More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 32 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18761776 | 272 days ago | IN | 0 ETH | 0.0014868 | ||||
Transfer | 18685990 | 283 days ago | IN | 0 ETH | 0.00178506 | ||||
Approve | 18685909 | 283 days ago | IN | 0 ETH | 0.00148293 | ||||
Approve | 18685902 | 283 days ago | IN | 0 ETH | 0.00183556 | ||||
Approve | 18685897 | 283 days ago | IN | 0 ETH | 0.00246849 | ||||
Approve | 18685882 | 283 days ago | IN | 0 ETH | 0.00296468 | ||||
Remove Limits | 18685880 | 283 days ago | IN | 0 ETH | 0.00215609 | ||||
Approve | 18685867 | 283 days ago | IN | 0 ETH | 0.00317174 | ||||
Update Initial B... | 18685864 | 283 days ago | IN | 0 ETH | 0.00145733 | ||||
Approve | 18685851 | 283 days ago | IN | 0 ETH | 0.00267347 | ||||
Approve | 18685850 | 283 days ago | IN | 0 ETH | 0.00262356 | ||||
Approve | 18685847 | 283 days ago | IN | 0 ETH | 0.00305486 | ||||
Approve | 18685845 | 283 days ago | IN | 0 ETH | 0.0030955 | ||||
Approve | 18685819 | 283 days ago | IN | 0 ETH | 0.00308681 | ||||
Approve | 18685813 | 283 days ago | IN | 0 ETH | 0.00306571 | ||||
Approve | 18685813 | 283 days ago | IN | 0 ETH | 0.00306571 | ||||
Approve | 18685813 | 283 days ago | IN | 0 ETH | 0.00339603 | ||||
Approve | 18685812 | 283 days ago | IN | 0 ETH | 0.00297237 | ||||
Approve | 18685812 | 283 days ago | IN | 0 ETH | 0.00297237 | ||||
Approve | 18685812 | 283 days ago | IN | 0 ETH | 0.00297237 | ||||
Approve | 18685810 | 283 days ago | IN | 0 ETH | 0.00296949 | ||||
Approve | 18685810 | 283 days ago | IN | 0 ETH | 0.00296949 | ||||
Approve | 18685810 | 283 days ago | IN | 0 ETH | 0.00296949 | ||||
Approve | 18685810 | 283 days ago | IN | 0 ETH | 0.00296949 | ||||
Approve | 18685810 | 283 days ago | IN | 0 ETH | 0.00296949 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CNOTES
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-30 */ /** *There's something that we're putting a lot of effort into, called Community Notes. -Elon Musk Website: https://www.cnoteserc.com/ https://x.com/elonmusk/status/1729354202982289748?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1729350688906281351?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1720246603699630108?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1718676793165750564?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1691708674463465559?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1723177188155908314?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1698094355381190669?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1722377479015297411?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1699084658401566847?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1726677845643260391?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1671293704454258690?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1674624540742230017?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1712986953488998407?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1692841803873964042?s=46&t=MObg3oLwfvEgaozUbs8sSg https://x.com/elonmusk/status/1704459036547059852?s=46&t=MObg3oLwfvEgaozUbs8sSg */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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 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; } } 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( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); } contract CNOTES 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; mapping (address => bool) private bots; address payable private _marWallet; uint256 firstBlock; uint256 private _initialBuyTax=24; uint256 private _initialSellTax=24; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=19; uint256 private _reduceSellTaxAt=29; uint256 private _preventSwapBefore=20; uint256 private _buyCount=0; uint8 private constant _decimals = 18; uint256 private constant _tTotal = 6900000000 * 10**_decimals; string private constant _name = unicode"Community Notes"; string private constant _symbol = unicode"CNOTES"; uint256 public _maxTxAmount = 138000000 * 10**_decimals; uint256 public _maxWalletSize = 138000000 * 10**_decimals; uint256 public _taxSwapThreshold= 69000000 * 10**_decimals; uint256 public _maxTaxSwap= 69000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen =true; bool private swapping = false; bool private swapEnabled = true; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { swapping = true; _; swapping = false; } constructor () { _marWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marWallet] = true; 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 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 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if (firstBlock + 3 > block.number) { require(!isContract(to)); } _buyCount++; } if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) { require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!swapping && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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 { _marWallet.transfer(amount); } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function updateReduceBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner { _reduceBuyTaxAt = _newBuy; _reduceSellTaxAt = _newSell; } function updateInitialBuySellTax(uint256 _newBuy,uint256 _newSell) public onlyOwner { _initialBuyTax = _newBuy; _initialSellTax = _newSell; } function updatePreventSwapBefore(uint256 _preventSwap) public onlyOwner { _preventSwapBefore = _preventSwap; } function isBot(address a) public view returns (bool){ return bots[a]; } 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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"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"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateInitialBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_preventSwap","type":"uint256"}],"name":"updatePreventSwapBefore","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"updateReduceBuySellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052601860075560186008555f6009555f600a556013600b55601d600c556014600d555f600e556012600a6200003991906200060f565b630839b6806200004a91906200065f565b600f556012600a6200005d91906200060f565b630839b6806200006e91906200065f565b6010556012600a6200008191906200060f565b63041cdb406200009291906200065f565b6011556012600a620000a591906200060f565b63041cdb40620000b691906200065f565b60125560016014806101000a81548160ff0219169083151502179055505f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555034801562000114575f80fd5b505f620001266200044f60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d26200044f60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200022191906200060f565b64019b45a5006200023391906200065f565b60015f620002466200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002986200045660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c26200044f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200042091906200060f565b64019b45a5006200043291906200065f565b604051620004419190620006ba565b60405180910390a3620006d5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050757808604811115620004df57620004de6200047d565b5b6001851615620004ef5780820291505b8081029050620004ff85620004aa565b9450620004bf565b94509492505050565b5f82620005215760019050620005f3565b8162000530575f9050620005f3565b816001811462000549576002811462000554576200058a565b6001915050620005f3565b60ff8411156200056957620005686200047d565b5b8360020a9150848211156200058357620005826200047d565b5b50620005f3565b5060208310610133831016604e8410600b8410161715620005c45782820a905083811115620005be57620005bd6200047d565b5b620005f3565b620005d38484846001620004b6565b92509050818404811115620005ed57620005ec6200047d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061b82620005fa565b9150620006288362000603565b9250620006577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000510565b905092915050565b5f6200066b82620005fa565b91506200067883620005fa565b92508282026200068881620005fa565b91508282048414831517620006a257620006a16200047d565b5b5092915050565b620006b481620005fa565b82525050565b5f602082019050620006cf5f830184620006a9565b92915050565b612e6e80620006e35f395ff3fe608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103fd578063a9059cbb14610427578063bb6bd6c014610463578063bf474bed1461048b578063d34628cc146104b5578063dd62ed3e146104dd5761013f565b8063715018a614610353578063751039fc146103695780637d1db4a51461037f5780638da5cb5b146103a95780638f9a55c0146103d35761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b5780633ec05c39146102c75780634458200a146102ef57806370a08231146103175761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190612012565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906120d0565b610556565b6040516101a09190612128565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190612150565b60405180910390f35b3480156101de575f80fd5b506101e7610579565b6040516101f49190612150565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612169565b61059d565b6040516102309190612128565b60405180910390f35b348015610244575f80fd5b5061024d610671565b60405161025a91906121d4565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061232d565b610679565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612374565b61079d565b6040516102be9190612128565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e8919061239f565b6107ef565b005b3480156102fa575f80fd5b50610315600480360381019061031091906123dd565b610895565b005b348015610322575f80fd5b5061033d60048036038101906103389190612374565b610933565b60405161034a9190612150565b60405180910390f35b34801561035e575f80fd5b50610367610979565b005b348015610374575f80fd5b5061037d610ac7565b005b34801561038a575f80fd5b50610393610bf9565b6040516103a09190612150565b60405180910390f35b3480156103b4575f80fd5b506103bd610bff565b6040516103ca9190612417565b60405180910390f35b3480156103de575f80fd5b506103e7610c26565b6040516103f49190612150565b60405180910390f35b348015610408575f80fd5b50610411610c2c565b60405161041e9190612012565b60405180910390f35b348015610432575f80fd5b5061044d600480360381019061044891906120d0565b610c69565b60405161045a9190612128565b60405180910390f35b34801561046e575f80fd5b506104896004803603810190610484919061239f565b610c86565b005b348015610496575f80fd5b5061049f610d2c565b6040516104ac9190612150565b60405180910390f35b3480156104c0575f80fd5b506104db60048036038101906104d6919061232d565b610d32565b005b3480156104e8575f80fd5b5061050360048036038101906104fe9190612430565b610e57565b6040516105109190612150565b60405180910390f35b60606040518060400160405280600f81526020017f436f6d6d756e697479204e6f7465730000000000000000000000000000000000815250905090565b5f610569610562610ed9565b8484610ee0565b6001905092915050565b60125481565b5f6012600a61058891906125ca565b64019b45a5006105989190612614565b905090565b5f6105a98484846110a3565b610666846105b5610ed9565b61066185604051806060016040528060288152602001612e116028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610618610ed9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a639092919063ffffffff16565b610ee0565b600190509392505050565b5f6012905090565b610681610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107049061269f565b60405180910390fd5b5f5b8151811015610799575f60045f84848151811061072f5761072e6126bd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610791906126ea565b91505061070f565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6107f7610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a9061269f565b60405180910390fd5b81600781905550806008819055505050565b61089d610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109209061269f565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610981610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a049061269f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610acf610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b529061269f565b60405180910390fd5b6012600a610b6991906125ca565b64019b45a500610b799190612614565b600f819055506012600a610b8d91906125ca565b64019b45a500610b9d9190612614565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bd291906125ca565b64019b45a500610be29190612614565b604051610bef9190612150565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f434e4f5445530000000000000000000000000000000000000000000000000000815250905090565b5f610c7c610c75610ed9565b84846110a3565b6001905092915050565b610c8e610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d119061269f565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d3a610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd9061269f565b60405180910390fd5b5f5b8151811015610e5357600160045f848481518110610de957610de86126bd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610e4b906126ea565b915050610dc8565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f45906127a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb39061282f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110969190612150565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906128bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061294b565b60405180910390fd5b5f81116111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b8906129d9565b60405180910390fd5b5f6111ca610bff565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112385750611208610bff565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112db575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6112e3575f80fd5b61131f6064611311600b54600e54116112fe57600754611302565b6009545b85611ac590919063ffffffff16565b611b3c90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113ca575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561150057600f54821115611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612a41565b60405180910390fd5b6010548261147485610933565b61147e9190612a5f565b11156114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612adc565b60405180910390fd5b4360036006546114cf9190612a5f565b11156114e8576114de83611b85565b156114e7575f80fd5b5b600e5f8154809291906114fa906126ea565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115a4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160257601054826115b685610933565b6115c09190612a5f565b1115611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890612adc565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116ce576116cb60646116bd600c54600e54116116aa576008546116ae565b600a545b85611ac590919063ffffffff16565b611b3c90919063ffffffff16565b90505b5f6116d830610933565b9050601460159054906101000a900460ff16158015611743575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561175b5750601460169054906101000a900460ff165b8015611768575060115481115b80156117775750600d54600e54115b156117b1576117996117948461178f84601254611b96565b611b96565b611bae565b5f4790505f8111156117af576117ae47611e19565b5b505b505b5f8111156118b25761180b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a99190612150565b60405180910390a35b6119028260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ede90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119a56119598284611ede90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a488486611ede90919063ffffffff16565b604051611a559190612150565b60405180910390a350505050565b5f838311158290611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19190612012565b60405180910390fd5b505f8385611ab89190612afa565b9050809150509392505050565b5f808303611ad5575f9050611b36565b5f8284611ae29190612614565b9050828482611af19190612b5a565b14611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890612bfa565b60405180910390fd5b809150505b92915050565b5f611b7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f27565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ba45782611ba6565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611be557611be46121f1565b5b604051908082528060200260200182016040528015611c135781602001602082028036833780820191505090505b50905030815f81518110611c2a57611c296126bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf29190612c2c565b81600181518110611d0657611d056126bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d6c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ee0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611dce959493929190612d50565b5f604051808303815f87803b158015611de5575f80fd5b505af1158015611df7573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e7d573d5f803e3d5ffd5b5050565b5f808284611e8f9190612a5f565b905083811015611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90612df2565b60405180910390fd5b8091505092915050565b5f611f1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a63565b905092915050565b5f8083118290611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f649190612012565b60405180910390fd5b505f8385611f7b9190612b5a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61206c82612043565b9050919050565b61207c81612062565b8114612086575f80fd5b50565b5f8135905061209781612073565b92915050565b5f819050919050565b6120af8161209d565b81146120b9575f80fd5b50565b5f813590506120ca816120a6565b92915050565b5f80604083850312156120e6576120e561203b565b5b5f6120f385828601612089565b9250506020612104858286016120bc565b9150509250929050565b5f8115159050919050565b6121228161210e565b82525050565b5f60208201905061213b5f830184612119565b92915050565b61214a8161209d565b82525050565b5f6020820190506121635f830184612141565b92915050565b5f805f606084860312156121805761217f61203b565b5b5f61218d86828701612089565b935050602061219e86828701612089565b92505060406121af868287016120bc565b9150509250925092565b5f60ff82169050919050565b6121ce816121b9565b82525050565b5f6020820190506121e75f8301846121c5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61222782611fca565b810181811067ffffffffffffffff82111715612246576122456121f1565b5b80604052505050565b5f612258612032565b9050612264828261221e565b919050565b5f67ffffffffffffffff821115612283576122826121f1565b5b602082029050602081019050919050565b5f80fd5b5f6122aa6122a584612269565b61224f565b905080838252602082019050602084028301858111156122cd576122cc612294565b5b835b818110156122f657806122e28882612089565b8452602084019350506020810190506122cf565b5050509392505050565b5f82601f830112612314576123136121ed565b5b8135612324848260208601612298565b91505092915050565b5f602082840312156123425761234161203b565b5b5f82013567ffffffffffffffff81111561235f5761235e61203f565b5b61236b84828501612300565b91505092915050565b5f602082840312156123895761238861203b565b5b5f61239684828501612089565b91505092915050565b5f80604083850312156123b5576123b461203b565b5b5f6123c2858286016120bc565b92505060206123d3858286016120bc565b9150509250929050565b5f602082840312156123f2576123f161203b565b5b5f6123ff848285016120bc565b91505092915050565b61241181612062565b82525050565b5f60208201905061242a5f830184612408565b92915050565b5f80604083850312156124465761244561203b565b5b5f61245385828601612089565b925050602061246485828601612089565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124f0578086048111156124cc576124cb61246e565b5b60018516156124db5780820291505b80810290506124e98561249b565b94506124b0565b94509492505050565b5f8261250857600190506125c3565b81612515575f90506125c3565b816001811461252b576002811461253557612564565b60019150506125c3565b60ff8411156125475761254661246e565b5b8360020a91508482111561255e5761255d61246e565b5b506125c3565b5060208310610133831016604e8410600b84101617156125995782820a9050838111156125945761259361246e565b5b6125c3565b6125a684848460016124a7565b925090508184048111156125bd576125bc61246e565b5b81810290505b9392505050565b5f6125d48261209d565b91506125df836121b9565b925061260c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124f9565b905092915050565b5f61261e8261209d565b91506126298361209d565b92508282026126378161209d565b9150828204841483151761264e5761264d61246e565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612689602083611f92565b915061269482612655565b602082019050919050565b5f6020820190508181035f8301526126b68161267d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6126f48261209d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127265761272561246e565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278b602483611f92565b915061279682612731565b604082019050919050565b5f6020820190508181035f8301526127b88161277f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612819602283611f92565b9150612824826127bf565b604082019050919050565b5f6020820190508181035f8301526128468161280d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128a7602583611f92565b91506128b28261284d565b604082019050919050565b5f6020820190508181035f8301526128d48161289b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612935602383611f92565b9150612940826128db565b604082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129c3602983611f92565b91506129ce82612969565b604082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612a2b601983611f92565b9150612a36826129f7565b602082019050919050565b5f6020820190508181035f830152612a5881612a1f565b9050919050565b5f612a698261209d565b9150612a748361209d565b9250828201905080821115612a8c57612a8b61246e565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ac6601a83611f92565b9150612ad182612a92565b602082019050919050565b5f6020820190508181035f830152612af381612aba565b9050919050565b5f612b048261209d565b9150612b0f8361209d565b9250828203905081811115612b2757612b2661246e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b648261209d565b9150612b6f8361209d565b925082612b7f57612b7e612b2d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be4602183611f92565b9150612bef82612b8a565b604082019050919050565b5f6020820190508181035f830152612c1181612bd8565b9050919050565b5f81519050612c2681612073565b92915050565b5f60208284031215612c4157612c4061203b565b5b5f612c4e84828501612c18565b91505092915050565b5f819050919050565b5f819050919050565b5f612c83612c7e612c7984612c57565b612c60565b61209d565b9050919050565b612c9381612c69565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ccb81612062565b82525050565b5f612cdc8383612cc2565b60208301905092915050565b5f602082019050919050565b5f612cfe82612c99565b612d088185612ca3565b9350612d1383612cb3565b805f5b83811015612d43578151612d2a8882612cd1565b9750612d3583612ce8565b925050600181019050612d16565b5085935050505092915050565b5f60a082019050612d635f830188612141565b612d706020830187612c8a565b8181036040830152612d828186612cf4565b9050612d916060830185612408565b612d9e6080830184612141565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ddc601b83611f92565b9150612de782612da8565b602082019050919050565b5f6020820190508181035f830152612e0981612dd0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5fb7ecec8d88f1c3728330fdf3e64b2d15488a0b6a23e67ebdfaed07cbef99964736f6c63430008140033
Deployed Bytecode
0x608060405260043610610138575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b41146103fd578063a9059cbb14610427578063bb6bd6c014610463578063bf474bed1461048b578063d34628cc146104b5578063dd62ed3e146104dd5761013f565b8063715018a614610353578063751039fc146103695780637d1db4a51461037f5780638da5cb5b146103a95780638f9a55c0146103d35761013f565b8063313ce567116100fc578063313ce5671461023957806331c2d847146102635780633bbac5791461028b5780633ec05c39146102c75780634458200a146102ef57806370a08231146103175761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b50610157610519565b6040516101649190612012565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906120d0565b610556565b6040516101a09190612128565b60405180910390f35b3480156101b4575f80fd5b506101bd610573565b6040516101ca9190612150565b60405180910390f35b3480156101de575f80fd5b506101e7610579565b6040516101f49190612150565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612169565b61059d565b6040516102309190612128565b60405180910390f35b348015610244575f80fd5b5061024d610671565b60405161025a91906121d4565b60405180910390f35b34801561026e575f80fd5b506102896004803603810190610284919061232d565b610679565b005b348015610296575f80fd5b506102b160048036038101906102ac9190612374565b61079d565b6040516102be9190612128565b60405180910390f35b3480156102d2575f80fd5b506102ed60048036038101906102e8919061239f565b6107ef565b005b3480156102fa575f80fd5b50610315600480360381019061031091906123dd565b610895565b005b348015610322575f80fd5b5061033d60048036038101906103389190612374565b610933565b60405161034a9190612150565b60405180910390f35b34801561035e575f80fd5b50610367610979565b005b348015610374575f80fd5b5061037d610ac7565b005b34801561038a575f80fd5b50610393610bf9565b6040516103a09190612150565b60405180910390f35b3480156103b4575f80fd5b506103bd610bff565b6040516103ca9190612417565b60405180910390f35b3480156103de575f80fd5b506103e7610c26565b6040516103f49190612150565b60405180910390f35b348015610408575f80fd5b50610411610c2c565b60405161041e9190612012565b60405180910390f35b348015610432575f80fd5b5061044d600480360381019061044891906120d0565b610c69565b60405161045a9190612128565b60405180910390f35b34801561046e575f80fd5b506104896004803603810190610484919061239f565b610c86565b005b348015610496575f80fd5b5061049f610d2c565b6040516104ac9190612150565b60405180910390f35b3480156104c0575f80fd5b506104db60048036038101906104d6919061232d565b610d32565b005b3480156104e8575f80fd5b5061050360048036038101906104fe9190612430565b610e57565b6040516105109190612150565b60405180910390f35b60606040518060400160405280600f81526020017f436f6d6d756e697479204e6f7465730000000000000000000000000000000000815250905090565b5f610569610562610ed9565b8484610ee0565b6001905092915050565b60125481565b5f6012600a61058891906125ca565b64019b45a5006105989190612614565b905090565b5f6105a98484846110a3565b610666846105b5610ed9565b61066185604051806060016040528060288152602001612e116028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610618610ed9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a639092919063ffffffff16565b610ee0565b600190509392505050565b5f6012905090565b610681610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107049061269f565b60405180910390fd5b5f5b8151811015610799575f60045f84848151811061072f5761072e6126bd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610791906126ea565b91505061070f565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b6107f7610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a9061269f565b60405180910390fd5b81600781905550806008819055505050565b61089d610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109209061269f565b60405180910390fd5b80600d8190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610981610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a049061269f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610acf610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b529061269f565b60405180910390fd5b6012600a610b6991906125ca565b64019b45a500610b799190612614565b600f819055506012600a610b8d91906125ca565b64019b45a500610b9d9190612614565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610bd291906125ca565b64019b45a500610be29190612614565b604051610bef9190612150565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600681526020017f434e4f5445530000000000000000000000000000000000000000000000000000815250905090565b5f610c7c610c75610ed9565b84846110a3565b6001905092915050565b610c8e610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d119061269f565b60405180910390fd5b81600b8190555080600c819055505050565b60115481565b610d3a610ed9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbd9061269f565b60405180910390fd5b5f5b8151811015610e5357600160045f848481518110610de957610de86126bd565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080610e4b906126ea565b915050610dc8565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f45906127a1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb39061282f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110969190612150565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611108906128bd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361117f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111769061294b565b60405180910390fd5b5f81116111c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b8906129d9565b60405180910390fd5b5f6111ca610bff565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112385750611208610bff565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b35760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156112db575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6112e3575f80fd5b61131f6064611311600b54600e54116112fe57600754611302565b6009545b85611ac590919063ffffffff16565b611b3c90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113ca575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561150057600f54821115611467576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145e90612a41565b60405180910390fd5b6010548261147485610933565b61147e9190612a5f565b11156114bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b690612adc565b60405180910390fd5b4360036006546114cf9190612a5f565b11156114e8576114de83611b85565b156114e7575f80fd5b5b600e5f8154809291906114fa906126ea565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115a4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561160257601054826115b685610933565b6115c09190612a5f565b1115611601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f890612adc565b60405180910390fd5b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116ce576116cb60646116bd600c54600e54116116aa576008546116ae565b600a545b85611ac590919063ffffffff16565b611b3c90919063ffffffff16565b90505b5f6116d830610933565b9050601460159054906101000a900460ff16158015611743575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561175b5750601460169054906101000a900460ff165b8015611768575060115481115b80156117775750600d54600e54115b156117b1576117996117948461178f84601254611b96565b611b96565b611bae565b5f4790505f8111156117af576117ae47611e19565b5b505b505b5f8111156118b25761180b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118a99190612150565b60405180910390a35b6119028260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ede90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119a56119598284611ede90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a488486611ede90919063ffffffff16565b604051611a559190612150565b60405180910390a350505050565b5f838311158290611aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa19190612012565b60405180910390fd5b505f8385611ab89190612afa565b9050809150509392505050565b5f808303611ad5575f9050611b36565b5f8284611ae29190612614565b9050828482611af19190612b5a565b14611b31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2890612bfa565b60405180910390fd5b809150505b92915050565b5f611b7d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f27565b905092915050565b5f80823b90505f8111915050919050565b5f818311611ba45782611ba6565b815b905092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611be557611be46121f1565b5b604051908082528060200260200182016040528015611c135781602001602082028036833780820191505090505b50905030815f81518110611c2a57611c296126bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf29190612c2c565b81600181518110611d0657611d056126bd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d6c3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ee0565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611dce959493929190612d50565b5f604051808303815f87803b158015611de5575f80fd5b505af1158015611df7573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e7d573d5f803e3d5ffd5b5050565b5f808284611e8f9190612a5f565b905083811015611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90612df2565b60405180910390fd5b8091505092915050565b5f611f1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a63565b905092915050565b5f8083118290611f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f649190612012565b60405180910390fd5b505f8385611f7b9190612b5a565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fbf578082015181840152602081019050611fa4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611fe482611f88565b611fee8185611f92565b9350611ffe818560208601611fa2565b61200781611fca565b840191505092915050565b5f6020820190508181035f83015261202a8184611fda565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61206c82612043565b9050919050565b61207c81612062565b8114612086575f80fd5b50565b5f8135905061209781612073565b92915050565b5f819050919050565b6120af8161209d565b81146120b9575f80fd5b50565b5f813590506120ca816120a6565b92915050565b5f80604083850312156120e6576120e561203b565b5b5f6120f385828601612089565b9250506020612104858286016120bc565b9150509250929050565b5f8115159050919050565b6121228161210e565b82525050565b5f60208201905061213b5f830184612119565b92915050565b61214a8161209d565b82525050565b5f6020820190506121635f830184612141565b92915050565b5f805f606084860312156121805761217f61203b565b5b5f61218d86828701612089565b935050602061219e86828701612089565b92505060406121af868287016120bc565b9150509250925092565b5f60ff82169050919050565b6121ce816121b9565b82525050565b5f6020820190506121e75f8301846121c5565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61222782611fca565b810181811067ffffffffffffffff82111715612246576122456121f1565b5b80604052505050565b5f612258612032565b9050612264828261221e565b919050565b5f67ffffffffffffffff821115612283576122826121f1565b5b602082029050602081019050919050565b5f80fd5b5f6122aa6122a584612269565b61224f565b905080838252602082019050602084028301858111156122cd576122cc612294565b5b835b818110156122f657806122e28882612089565b8452602084019350506020810190506122cf565b5050509392505050565b5f82601f830112612314576123136121ed565b5b8135612324848260208601612298565b91505092915050565b5f602082840312156123425761234161203b565b5b5f82013567ffffffffffffffff81111561235f5761235e61203f565b5b61236b84828501612300565b91505092915050565b5f602082840312156123895761238861203b565b5b5f61239684828501612089565b91505092915050565b5f80604083850312156123b5576123b461203b565b5b5f6123c2858286016120bc565b92505060206123d3858286016120bc565b9150509250929050565b5f602082840312156123f2576123f161203b565b5b5f6123ff848285016120bc565b91505092915050565b61241181612062565b82525050565b5f60208201905061242a5f830184612408565b92915050565b5f80604083850312156124465761244561203b565b5b5f61245385828601612089565b925050602061246485828601612089565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124f0578086048111156124cc576124cb61246e565b5b60018516156124db5780820291505b80810290506124e98561249b565b94506124b0565b94509492505050565b5f8261250857600190506125c3565b81612515575f90506125c3565b816001811461252b576002811461253557612564565b60019150506125c3565b60ff8411156125475761254661246e565b5b8360020a91508482111561255e5761255d61246e565b5b506125c3565b5060208310610133831016604e8410600b84101617156125995782820a9050838111156125945761259361246e565b5b6125c3565b6125a684848460016124a7565b925090508184048111156125bd576125bc61246e565b5b81810290505b9392505050565b5f6125d48261209d565b91506125df836121b9565b925061260c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846124f9565b905092915050565b5f61261e8261209d565b91506126298361209d565b92508282026126378161209d565b9150828204841483151761264e5761264d61246e565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612689602083611f92565b915061269482612655565b602082019050919050565b5f6020820190508181035f8301526126b68161267d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6126f48261209d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127265761272561246e565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61278b602483611f92565b915061279682612731565b604082019050919050565b5f6020820190508181035f8301526127b88161277f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612819602283611f92565b9150612824826127bf565b604082019050919050565b5f6020820190508181035f8301526128468161280d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6128a7602583611f92565b91506128b28261284d565b604082019050919050565b5f6020820190508181035f8301526128d48161289b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612935602383611f92565b9150612940826128db565b604082019050919050565b5f6020820190508181035f83015261296281612929565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6129c3602983611f92565b91506129ce82612969565b604082019050919050565b5f6020820190508181035f8301526129f0816129b7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612a2b601983611f92565b9150612a36826129f7565b602082019050919050565b5f6020820190508181035f830152612a5881612a1f565b9050919050565b5f612a698261209d565b9150612a748361209d565b9250828201905080821115612a8c57612a8b61246e565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ac6601a83611f92565b9150612ad182612a92565b602082019050919050565b5f6020820190508181035f830152612af381612aba565b9050919050565b5f612b048261209d565b9150612b0f8361209d565b9250828203905081811115612b2757612b2661246e565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612b648261209d565b9150612b6f8361209d565b925082612b7f57612b7e612b2d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be4602183611f92565b9150612bef82612b8a565b604082019050919050565b5f6020820190508181035f830152612c1181612bd8565b9050919050565b5f81519050612c2681612073565b92915050565b5f60208284031215612c4157612c4061203b565b5b5f612c4e84828501612c18565b91505092915050565b5f819050919050565b5f819050919050565b5f612c83612c7e612c7984612c57565b612c60565b61209d565b9050919050565b612c9381612c69565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ccb81612062565b82525050565b5f612cdc8383612cc2565b60208301905092915050565b5f602082019050919050565b5f612cfe82612c99565b612d088185612ca3565b9350612d1383612cb3565b805f5b83811015612d43578151612d2a8882612cd1565b9750612d3583612ce8565b925050600181019050612d16565b5085935050505092915050565b5f60a082019050612d635f830188612141565b612d706020830187612c8a565b8181036040830152612d828186612cf4565b9050612d916060830185612408565b612d9e6080830184612141565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ddc601b83611f92565b9150612de782612da8565b602082019050919050565b5f6020820190508181035f830152612e0981612dd0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5fb7ecec8d88f1c3728330fdf3e64b2d15488a0b6a23e67ebdfaed07cbef99964736f6c63430008140033
Deployed Bytecode Sourcemap
4612:7781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6476:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7309:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5738:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6753:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7478:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11621:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12268:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11964:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12136:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6856:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3968:148;;;;;;;;;;;;;:::i;:::-;;11182:159;;;;;;;;;;;;;:::i;:::-;;5547:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3754:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5609:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6567:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11791:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5673:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11449:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7158:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6476:83;6513:13;6546:5;;;;;;;;;;;;;;;;;6539:12;;6476:83;:::o;7309:161::-;7384:4;7401:39;7410:12;:10;:12::i;:::-;7424:7;7433:6;7401:8;:39::i;:::-;7458:4;7451:11;;7309:161;;;;:::o;5738:52::-;;;;:::o;6753:95::-;6806:7;5351:2;5408;:13;;;;:::i;:::-;5395:10;:26;;;;:::i;:::-;6826:14;;6753:95;:::o;7478:313::-;7576:4;7593:36;7603:6;7611:9;7622:6;7593:9;:36::i;:::-;7640:121;7649:6;7657:12;:10;:12::i;:::-;7671:89;7709:6;7671:89;;;;;;;;;;;;;;;;;:11;:19;7683:6;7671:19;;;;;;;;;;;;;;;:33;7691:12;:10;:12::i;:::-;7671:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7640:8;:121::i;:::-;7779:4;7772:11;;7478:313;;;;;:::o;6662:83::-;6703:5;5351:2;6721:16;;6662:83;:::o;11621:162::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11694:6:::1;11689:87;11710:6;:13;11706:1;:17;11689:87;;;11761:5;11743:4;:15;11748:6;11755:1;11748:9;;;;;;;;:::i;:::-;;;;;;;;11743:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11725:3;;;;;:::i;:::-;;;;11689:87;;;;11621:162:::0;:::o;12268:83::-;12315:4;12336;:7;12341:1;12336:7;;;;;;;;;;;;;;;;;;;;;;;;;12329:14;;12268:83;;;:::o;11964:164::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12076:7:::1;12059:14;:24;;;;12112:8;12094:15;:26;;;;11964:164:::0;;:::o;12136:124::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12240:12:::1;12219:18;:33;;;;12136:124:::0;:::o;6856:119::-;6922:7;6949:9;:18;6959:7;6949:18;;;;;;;;;;;;;;;;6942:25;;6856:119;;;:::o;3968:148::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4075:1:::1;4038:40;;4059:6;::::0;::::1;;;;;;;;4038:40;;;;;;;;;;;;4106:1;4089:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3968:148::o:0;11182:159::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5351:2:::1;5408;:13;;;;:::i;:::-;5395:10;:26;;;;:::i;:::-;11235:12;:22;;;;5351:2;5408;:13;;;;:::i;:::-;5395:10;:26;;;;:::i;:::-;11268:14;:22;;;;11306:27;5351:2;5408;:13;;;;:::i;:::-;5395:10;:26;;;;:::i;:::-;11306:27;;;;;;:::i;:::-;;;;;;;;11182:159::o:0;5547:55::-;;;;:::o;3754:79::-;3792:7;3819:6;;;;;;;;;;;3812:13;;3754:79;:::o;5609:57::-;;;;:::o;6567:87::-;6606:13;6639:7;;;;;;;;;;;;;;;;;6632:14;;6567:87;:::o;6983:167::-;7061:4;7078:42;7088:12;:10;:12::i;:::-;7102:9;7113:6;7078:9;:42::i;:::-;7138:4;7131:11;;6983:167;;;;:::o;11791:165::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11903:7:::1;11885:15;:25;;;;11940:8;11921:16;:27;;;;11791:165:::0;;:::o;5673:58::-;;;;:::o;11449:164::-;3891:12;:10;:12::i;:::-;3881:22;;:6;;;;;;;;;;:22;;;3873:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11523:6:::1;11518:88;11539:5;:12;11535:1;:16;11518:88;;;11590:4;11573;:14;11578:5;11584:1;11578:8;;;;;;;;:::i;:::-;;;;;;;;11573:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11553:3;;;;;:::i;:::-;;;;11518:88;;;;11449:164:::0;:::o;7158:143::-;7239:7;7266:11;:18;7278:5;7266:18;;;;;;;;;;;;;;;:27;7285:7;7266:27;;;;;;;;;;;;;;;;7259:34;;7158:143;;;;:::o;1508:98::-;1561:7;1588:10;1581:17;;1508:98;:::o;7799:335::-;7909:1;7892:19;;:5;:19;;;7884:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7990:1;7971:21;;:7;:21;;;7963:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8072:6;8042:11;:18;8054:5;8042:18;;;;;;;;;;;;;;;:27;8061:7;8042:27;;;;;;;;;;;;;;;:36;;;;8110:7;8094:32;;8103:5;8094:32;;;8119:6;8094:32;;;;;;:::i;:::-;;;;;;;;7799:335;;;:::o;8142:2230::-;8246:1;8230:18;;:4;:18;;;8222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8323:1;8309:16;;:2;:16;;;8301:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8393:1;8384:6;:10;8376:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8451:17;8493:7;:5;:7::i;:::-;8485:15;;:4;:15;;;;:32;;;;;8510:7;:5;:7::i;:::-;8504:13;;:2;:13;;;;8485:32;8481:1535;;;8543:4;:10;8548:4;8543:10;;;;;;;;;;;;;;;;;;;;;;;;;8542:11;:24;;;;;8558:4;:8;8563:2;8558:8;;;;;;;;;;;;;;;;;;;;;;;;;8557:9;8542:24;8534:33;;;;;;8594:76;8666:3;8594:67;8616:15;;8606:9;;:25;8605:55;;8646:14;;8605:55;;;8633:12;;8605:55;8594:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8582:88;;8699:13;;;;;;;;;;;8691:21;;:4;:21;;;:55;;;;;8730:15;;;;;;;;;;;8716:30;;:2;:30;;;;8691:55;:83;;;;;8752:18;:22;8771:2;8752:22;;;;;;;;;;;;;;;;;;;;;;;;;8750:24;8691:83;8687:436;;;8814:12;;8804:6;:22;;8796:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8909:14;;8899:6;8883:13;8893:2;8883:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8875:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8997:12;8992:1;8979:10;;:14;;;;:::i;:::-;:30;8975:103;;;9043:14;9054:2;9043:10;:14::i;:::-;9042:15;9034:24;;;;;;8975:103;9096:9;;:11;;;;;;;;;:::i;:::-;;;;;;8687:436;9149:13;;;;;;;;;;;9143:19;;:2;:19;;;;:47;;;;;9168:18;:22;9187:2;9168:22;;;;;;;;;;;;;;;;;;;;;;;;;9166:24;9143:47;9139:167;;;9245:14;;9235:6;9219:13;9229:2;9219:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9211:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9139:167;9331:13;;;;;;;;;;;9325:19;;:2;:19;;;:43;;;;;9363:4;9348:20;;:4;:20;;;;9325:43;9322:174;;;9401:79;9476:3;9401:70;9423:16;;9413:9;;:26;9412:58;;9455:15;;9412:58;;;9441:13;;9412:58;9401:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9389:91;;9322:174;9512:28;9543:24;9561:4;9543:9;:24::i;:::-;9512:55;;9587:8;;;;;;;;;;;9586:9;:34;;;;;9607:13;;;;;;;;;;;9599:21;;:2;:21;;;9586:34;:49;;;;;9624:11;;;;;;;;;;;9586:49;:91;;;;;9660:17;;9639:20;:38;9586:91;:123;;;;;9691:18;;9681:9;;:28;9586:123;9582:423;;;9730:67;9747:49;9751:6;9758:37;9762:20;9783:11;;9758:3;:37::i;:::-;9747:3;:49::i;:::-;9730:16;:67::i;:::-;9816:26;9845:21;9816:50;;9909:1;9888:18;:22;9885:105;;;9935:35;9948:21;9935:12;:35::i;:::-;9885:105;9711:294;9582:423;8519:1497;8481:1535;10041:1;10031:9;:11;10028:161;;;10081:39;10110:9;10081;:24;10099:4;10081:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10056:9;:24;10074:4;10056:24;;;;;;;;;;;;;;;:64;;;;10161:4;10138:39;;10147:4;10138:39;;;10167:9;10138:39;;;;;;:::i;:::-;;;;;;;;10028:161;10215:27;10235:6;10215:9;:15;10225:4;10215:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10199:9;:15;10209:4;10199:15;;;;;;;;;;;;;;;:43;;;;10267:40;10285:21;10296:9;10285:6;:10;;:21;;;;:::i;:::-;10267:9;:13;10277:2;10267:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10253:9;:13;10263:2;10253:13;;;;;;;;;;;;;;;:54;;;;10338:2;10323:41;;10332:4;10323:41;;;10342:21;10353:9;10342:6;:10;;:21;;;;:::i;:::-;10323:41;;;;;;:::i;:::-;;;;;;;;8211:2161;8142:2230;;;:::o;2646:190::-;2732:7;2765:1;2760;:6;;2768:12;2752:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2792:9;2808:1;2804;:5;;;;:::i;:::-;2792:17;;2827:1;2820:8;;;2646:190;;;;;:::o;2844:246::-;2902:7;2931:1;2926;:6;2922:47;;2956:1;2949:8;;;;2922:47;2979:9;2995:1;2991;:5;;;;:::i;:::-;2979:17;;3024:1;3019;3015;:5;;;;:::i;:::-;:10;3007:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3081:1;3074:8;;;2844:246;;;;;:::o;3098:132::-;3156:7;3183:39;3187:1;3190;3183:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3176:46;;3098:132;;;;:::o;10488:195::-;10547:4;10564:12;10631:7;10619:20;10611:28;;10674:1;10667:4;:8;10660:15;;;10488:195;;;:::o;10382:98::-;10439:7;10466:1;10464;:3;10463:9;;10471:1;10463:9;;;10469:1;10463:9;10456:16;;10382:98;;;;:::o;10691:483::-;6090:4;6079:8;;:15;;;;;;;;;;;;;;;;;;10769:21:::1;10807:1;10793:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10769:40;;10838:4;10820;10825:1;10820:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10864:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10854:4;10859:1;10854:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10897:62;10914:4;10929:15;;;;;;;;;;;10947:11;10897:8;:62::i;:::-;10970:15;;;;;;;;;;;:66;;;11051:11;11077:1;11093:4;11120;11140:15;10970:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10758:416;6128:5:::0;6117:8;;:16;;;;;;;;;;;;;;;;;;10691:483;:::o;11349:92::-;11406:10;;;;;;;;;;;:19;;:27;11426:6;11406:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11349:92;:::o;2315:179::-;2373:7;2393:9;2409:1;2405;:5;;;;:::i;:::-;2393:17;;2434:1;2429;:6;;2421:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2485:1;2478:8;;;2315:179;;;;:::o;2502:136::-;2560:7;2587:43;2591:1;2594;2587:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2580:50;;2502:136;;;;:::o;3238:189::-;3324:7;3356:1;3352;:5;3359:12;3344:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3383:9;3399:1;3395;:5;;;;:::i;:::-;3383:17;;3418:1;3411:8;;;3238:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:474::-;8098:6;8106;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8408:2;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8379:118;8030:474;;;;;:::o;8510:329::-;8569:6;8618:2;8606:9;8597:7;8593:23;8589:32;8586:119;;;8624:79;;:::i;:::-;8586:119;8744:1;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8715:117;8510:329;;;;:::o;8845:118::-;8932:24;8950:5;8932:24;:::i;:::-;8927:3;8920:37;8845:118;;:::o;8969:222::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:71;9181:1;9170:9;9166:17;9157:6;9113:71;:::i;:::-;8969:222;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:180::-;9725:77;9722:1;9715:88;9822:4;9819:1;9812:15;9846:4;9843:1;9836:15;9863:102;9905:8;9952:5;9949:1;9945:13;9924:34;;9863:102;;;:::o;9971:848::-;10032:5;10039:4;10063:6;10054:15;;10087:5;10078:14;;10101:712;10122:1;10112:8;10109:15;10101:712;;;10217:4;10212:3;10208:14;10202:4;10199:24;10196:50;;;10226:18;;:::i;:::-;10196:50;10276:1;10266:8;10262:16;10259:451;;;10691:4;10684:5;10680:16;10671:25;;10259:451;10741:4;10735;10731:15;10723:23;;10771:32;10794:8;10771:32;:::i;:::-;10759:44;;10101:712;;;9971:848;;;;;;;:::o;10825:1073::-;10879:5;11070:8;11060:40;;11091:1;11082:10;;11093:5;;11060:40;11119:4;11109:36;;11136:1;11127:10;;11138:5;;11109:36;11205:4;11253:1;11248:27;;;;11289:1;11284:191;;;;11198:277;;11248:27;11266:1;11257:10;;11268:5;;;11284:191;11329:3;11319:8;11316:17;11313:43;;;11336:18;;:::i;:::-;11313:43;11385:8;11382:1;11378:16;11369:25;;11420:3;11413:5;11410:14;11407:40;;;11427:18;;:::i;:::-;11407:40;11460:5;;;11198:277;;11584:2;11574:8;11571:16;11565:3;11559:4;11556:13;11552:36;11534:2;11524:8;11521:16;11516:2;11510:4;11507:12;11503:35;11487:111;11484:246;;;11640:8;11634:4;11630:19;11621:28;;11675:3;11668:5;11665:14;11662:40;;;11682:18;;:::i;:::-;11662:40;11715:5;;11484:246;11755:42;11793:3;11783:8;11777:4;11774:1;11755:42;:::i;:::-;11740:57;;;;11829:4;11824:3;11820:14;11813:5;11810:25;11807:51;;;11838:18;;:::i;:::-;11807:51;11887:4;11880:5;11876:16;11867:25;;10825:1073;;;;;;:::o;11904:281::-;11962:5;11986:23;12004:4;11986:23;:::i;:::-;11978:31;;12030:25;12046:8;12030:25;:::i;:::-;12018:37;;12074:104;12111:66;12101:8;12095:4;12074:104;:::i;:::-;12065:113;;11904:281;;;;:::o;12191:410::-;12231:7;12254:20;12272:1;12254:20;:::i;:::-;12249:25;;12288:20;12306:1;12288:20;:::i;:::-;12283:25;;12343:1;12340;12336:9;12365:30;12383:11;12365:30;:::i;:::-;12354:41;;12544:1;12535:7;12531:15;12528:1;12525:22;12505:1;12498:9;12478:83;12455:139;;12574:18;;:::i;:::-;12455:139;12239:362;12191:410;;;;:::o;12607:182::-;12747:34;12743:1;12735:6;12731:14;12724:58;12607:182;:::o;12795:366::-;12937:3;12958:67;13022:2;13017:3;12958:67;:::i;:::-;12951:74;;13034:93;13123:3;13034:93;:::i;:::-;13152:2;13147:3;13143:12;13136:19;;12795:366;;;:::o;13167:419::-;13333:4;13371:2;13360:9;13356:18;13348:26;;13420:9;13414:4;13410:20;13406:1;13395:9;13391:17;13384:47;13448:131;13574:4;13448:131;:::i;:::-;13440:139;;13167:419;;;:::o;13592:180::-;13640:77;13637:1;13630:88;13737:4;13734:1;13727:15;13761:4;13758:1;13751:15;13778:233;13817:3;13840:24;13858:5;13840:24;:::i;:::-;13831:33;;13886:66;13879:5;13876:77;13873:103;;13956:18;;:::i;:::-;13873:103;14003:1;13996:5;13992:13;13985:20;;13778:233;;;:::o;14017:223::-;14157:34;14153:1;14145:6;14141:14;14134:58;14226:6;14221:2;14213:6;14209:15;14202:31;14017:223;:::o;14246:366::-;14388:3;14409:67;14473:2;14468:3;14409:67;:::i;:::-;14402:74;;14485:93;14574:3;14485:93;:::i;:::-;14603:2;14598:3;14594:12;14587:19;;14246:366;;;:::o;14618:419::-;14784:4;14822:2;14811:9;14807:18;14799:26;;14871:9;14865:4;14861:20;14857:1;14846:9;14842:17;14835:47;14899:131;15025:4;14899:131;:::i;:::-;14891:139;;14618:419;;;:::o;15043:221::-;15183:34;15179:1;15171:6;15167:14;15160:58;15252:4;15247:2;15239:6;15235:15;15228:29;15043:221;:::o;15270:366::-;15412:3;15433:67;15497:2;15492:3;15433:67;:::i;:::-;15426:74;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15270:366;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:224::-;16207:34;16203:1;16195:6;16191:14;16184:58;16276:7;16271:2;16263:6;16259:15;16252:32;16067:224;:::o;16297:366::-;16439:3;16460:67;16524:2;16519:3;16460:67;:::i;:::-;16453:74;;16536:93;16625:3;16536:93;:::i;:::-;16654:2;16649:3;16645:12;16638:19;;16297:366;;;:::o;16669:419::-;16835:4;16873:2;16862:9;16858:18;16850:26;;16922:9;16916:4;16912:20;16908:1;16897:9;16893:17;16886:47;16950:131;17076:4;16950:131;:::i;:::-;16942:139;;16669:419;;;:::o;17094:222::-;17234:34;17230:1;17222:6;17218:14;17211:58;17303:5;17298:2;17290:6;17286:15;17279:30;17094:222;:::o;17322:366::-;17464:3;17485:67;17549:2;17544:3;17485:67;:::i;:::-;17478:74;;17561:93;17650:3;17561:93;:::i;:::-;17679:2;17674:3;17670:12;17663:19;;17322:366;;;:::o;17694:419::-;17860:4;17898:2;17887:9;17883:18;17875:26;;17947:9;17941:4;17937:20;17933:1;17922:9;17918:17;17911:47;17975:131;18101:4;17975:131;:::i;:::-;17967:139;;17694:419;;;:::o;18119:228::-;18259:34;18255:1;18247:6;18243:14;18236:58;18328:11;18323:2;18315:6;18311:15;18304:36;18119:228;:::o;18353:366::-;18495:3;18516:67;18580:2;18575:3;18516:67;:::i;:::-;18509:74;;18592:93;18681:3;18592:93;:::i;:::-;18710:2;18705:3;18701:12;18694:19;;18353:366;;;:::o;18725:419::-;18891:4;18929:2;18918:9;18914:18;18906:26;;18978:9;18972:4;18968:20;18964:1;18953:9;18949:17;18942:47;19006:131;19132:4;19006:131;:::i;:::-;18998:139;;18725:419;;;:::o;19150:175::-;19290:27;19286:1;19278:6;19274:14;19267:51;19150:175;:::o;19331:366::-;19473:3;19494:67;19558:2;19553:3;19494:67;:::i;:::-;19487:74;;19570:93;19659:3;19570:93;:::i;:::-;19688:2;19683:3;19679:12;19672:19;;19331:366;;;:::o;19703:419::-;19869:4;19907:2;19896:9;19892:18;19884:26;;19956:9;19950:4;19946:20;19942:1;19931:9;19927:17;19920:47;19984:131;20110:4;19984:131;:::i;:::-;19976:139;;19703:419;;;:::o;20128:191::-;20168:3;20187:20;20205:1;20187:20;:::i;:::-;20182:25;;20221:20;20239:1;20221:20;:::i;:::-;20216:25;;20264:1;20261;20257:9;20250:16;;20285:3;20282:1;20279:10;20276:36;;;20292:18;;:::i;:::-;20276:36;20128:191;;;;:::o;20325:176::-;20465:28;20461:1;20453:6;20449:14;20442:52;20325:176;:::o;20507:366::-;20649:3;20670:67;20734:2;20729:3;20670:67;:::i;:::-;20663:74;;20746:93;20835:3;20746:93;:::i;:::-;20864:2;20859:3;20855:12;20848:19;;20507:366;;;:::o;20879:419::-;21045:4;21083:2;21072:9;21068:18;21060:26;;21132:9;21126:4;21122:20;21118:1;21107:9;21103:17;21096:47;21160:131;21286:4;21160:131;:::i;:::-;21152:139;;20879:419;;;:::o;21304:194::-;21344:4;21364:20;21382:1;21364:20;:::i;:::-;21359:25;;21398:20;21416:1;21398:20;:::i;:::-;21393:25;;21442:1;21439;21435:9;21427:17;;21466:1;21460:4;21457:11;21454:37;;;21471:18;;:::i;:::-;21454:37;21304:194;;;;:::o;21504:180::-;21552:77;21549:1;21542:88;21649:4;21646:1;21639:15;21673:4;21670:1;21663:15;21690:185;21730:1;21747:20;21765:1;21747:20;:::i;:::-;21742:25;;21781:20;21799:1;21781:20;:::i;:::-;21776:25;;21820:1;21810:35;;21825:18;;:::i;:::-;21810:35;21867:1;21864;21860:9;21855:14;;21690:185;;;;:::o;21881:220::-;22021:34;22017:1;22009:6;22005:14;21998:58;22090:3;22085:2;22077:6;22073:15;22066:28;21881:220;:::o;22107:366::-;22249:3;22270:67;22334:2;22329:3;22270:67;:::i;:::-;22263:74;;22346:93;22435:3;22346:93;:::i;:::-;22464:2;22459:3;22455:12;22448:19;;22107:366;;;:::o;22479:419::-;22645:4;22683:2;22672:9;22668:18;22660:26;;22732:9;22726:4;22722:20;22718:1;22707:9;22703:17;22696:47;22760:131;22886:4;22760:131;:::i;:::-;22752:139;;22479:419;;;:::o;22904:143::-;22961:5;22992:6;22986:13;22977:22;;23008:33;23035:5;23008:33;:::i;:::-;22904:143;;;;:::o;23053:351::-;23123:6;23172:2;23160:9;23151:7;23147:23;23143:32;23140:119;;;23178:79;;:::i;:::-;23140:119;23298:1;23323:64;23379:7;23370:6;23359:9;23355:22;23323:64;:::i;:::-;23313:74;;23269:128;23053:351;;;;:::o;23410:85::-;23455:7;23484:5;23473:16;;23410:85;;;:::o;23501:60::-;23529:3;23550:5;23543:12;;23501:60;;;:::o;23567:158::-;23625:9;23658:61;23676:42;23685:32;23711:5;23685:32;:::i;:::-;23676:42;:::i;:::-;23658:61;:::i;:::-;23645:74;;23567:158;;;:::o;23731:147::-;23826:45;23865:5;23826:45;:::i;:::-;23821:3;23814:58;23731:147;;:::o;23884:114::-;23951:6;23985:5;23979:12;23969:22;;23884:114;;;:::o;24004:184::-;24103:11;24137:6;24132:3;24125:19;24177:4;24172:3;24168:14;24153:29;;24004:184;;;;:::o;24194:132::-;24261:4;24284:3;24276:11;;24314:4;24309:3;24305:14;24297:22;;24194:132;;;:::o;24332:108::-;24409:24;24427:5;24409:24;:::i;:::-;24404:3;24397:37;24332:108;;:::o;24446:179::-;24515:10;24536:46;24578:3;24570:6;24536:46;:::i;:::-;24614:4;24609:3;24605:14;24591:28;;24446:179;;;;:::o;24631:113::-;24701:4;24733;24728:3;24724:14;24716:22;;24631:113;;;:::o;24780:732::-;24899:3;24928:54;24976:5;24928:54;:::i;:::-;24998:86;25077:6;25072:3;24998:86;:::i;:::-;24991:93;;25108:56;25158:5;25108:56;:::i;:::-;25187:7;25218:1;25203:284;25228:6;25225:1;25222:13;25203:284;;;25304:6;25298:13;25331:63;25390:3;25375:13;25331:63;:::i;:::-;25324:70;;25417:60;25470:6;25417:60;:::i;:::-;25407:70;;25263:224;25250:1;25247;25243:9;25238:14;;25203:284;;;25207:14;25503:3;25496:10;;24904:608;;;24780:732;;;;:::o;25518:831::-;25781:4;25819:3;25808:9;25804:19;25796:27;;25833:71;25901:1;25890:9;25886:17;25877:6;25833:71;:::i;:::-;25914:80;25990:2;25979:9;25975:18;25966:6;25914:80;:::i;:::-;26041:9;26035:4;26031:20;26026:2;26015:9;26011:18;26004:48;26069:108;26172:4;26163:6;26069:108;:::i;:::-;26061:116;;26187:72;26255:2;26244:9;26240:18;26231:6;26187:72;:::i;:::-;26269:73;26337:3;26326:9;26322:19;26313:6;26269:73;:::i;:::-;25518:831;;;;;;;;:::o;26355:177::-;26495:29;26491:1;26483:6;26479:14;26472:53;26355:177;:::o;26538:366::-;26680:3;26701:67;26765:2;26760:3;26701:67;:::i;:::-;26694:74;;26777:93;26866:3;26777:93;:::i;:::-;26895:2;26890:3;26886:12;26879:19;;26538:366;;;:::o;26910:419::-;27076:4;27114:2;27103:9;27099:18;27091:26;;27163:9;27157:4;27153:20;27149:1;27138:9;27134:17;27127:47;27191:131;27317:4;27191:131;:::i;:::-;27183:139;;26910:419;;;:::o
Swarm Source
ipfs://f5fb7ecec8d88f1c3728330fdf3e64b2d15488a0b6a23e67ebdfaed07cbef999
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.