Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 $CYPHER
Holders
62
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Cypherswap
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-12 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.26; /* Twitter/X: https://x.com/swapcypher?s=21 Telegram: https://t.me/CypherSwapInc Website: https://www.cypherswaps.com/ */ 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; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract Cypherswap is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; uint256 public _cypherTaxOnBuy = 5; uint256 public _cypherTaxOnSell = 5; address payable public _cypherTreasuryWallet = payable(0x2C8408146C028bCe63c6414e88DF0219f67dfb44); uint8 private constant _decimals = 18; uint256 private constant _tTotal = 100000000 * 10**_decimals; string private constant _name = unicode"Cypherswap"; string private constant _symbol = unicode"$CYPHER"; uint256 public _taxSwapThreshold= 50000 * 10**_decimals; uint256 public _cypherMaxWalletSize = 2000000 * 10 ** decimals(); bool public tradeOperational = false; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private inSwap = false; bool private swapEnabled = true; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //testnet router // Create a uniswap pair for this new token uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); // set the rest of the contract variables uniswapV2Router = _uniswapV2Router; _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_cypherTreasuryWallet] = 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 (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { require(tradeOperational, "Trade not operational"); if(to != uniswapV2Pair){ require(balanceOf(to) + amount <= _cypherMaxWalletSize, "Alert: keep lower than Cypher whale limits"); } if(_cypherTaxOnBuy > 0) { if (from == uniswapV2Pair && to != address(uniswapV2Router)) { taxAmount = amount.mul(_cypherTaxOnBuy).div(100); } } if(_cypherTaxOnSell > 0) { if(to == uniswapV2Pair){ taxAmount = amount.mul(_cypherTaxOnSell).div(100); } } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) { swapTokensForEth(contractTokenBalance); 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 swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} 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 sendETHToFee(uint256 amount) private { (bool callSuccess, ) = payable(_cypherTreasuryWallet).call{value: amount}(""); require(callSuccess, "Call failed"); } receive() external payable {} function commandUpdateTaxFees(uint256 _bFee, uint256 _sFee) public onlyOwner { _cypherTaxOnBuy = _bFee; _cypherTaxOnSell = _sFee; } function commandWhiteListFromFee(address wallet) public onlyOwner { _isExcludedFromFee[wallet] = true; } function commandIncludeInFee(address wallet) public onlyOwner { _isExcludedFromFee[wallet] = false; } function commandActivateTrade() public onlyOwner { require(tradeOperational != true, "Trading already operational"); tradeOperational = true; } function commandUpdateMaxWalletSize(uint256 _maxLimit) public onlyOwner{ require(_maxLimit > totalSupply().div(200),"Limit too less"); _cypherMaxWalletSize = _maxLimit; } function commandUpdateTaxSwapThreshold(uint256 _taxLimit) public onlyOwner{ _taxSwapThreshold = _taxLimit; } function commandRecoverLostEther() public onlyOwner { require(address(this).balance > 0, "No stuck Ether"); uint256 ethBalance = address(this).balance; (bool callSuccess, ) = payable(msg.sender).call{value: ethBalance}( "" ); require(callSuccess, "Call failed"); } }
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":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":"_cypherMaxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cypherTaxOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cypherTaxOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cypherTreasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"commandActivateTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"commandIncludeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"commandRecoverLostEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"commandUpdateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bFee","type":"uint256"},{"internalType":"uint256","name":"_sFee","type":"uint256"}],"name":"commandUpdateTaxFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxLimit","type":"uint256"}],"name":"commandUpdateTaxSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"commandWhiteListFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"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":[],"name":"tradeOperational","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600560045560058055732c8408146c028bce63c6414e88df0219f67dfb4460065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a61006f919061079f565b61c35061007c91906107e9565b60075561008d61053760201b60201c565b600a610099919061079f565b621e84806100a791906107e9565b6008555f60095f6101000a81548160ff0219169083151502179055505f600a60146101000a81548160ff0219169083151502179055506001600a60156101000a81548160ff021916908315150217905550348015610103575f80fd5b5061012061011561053f60201b60201c565b61054660201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610181573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a59190610888565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022e9190610888565b6040518363ffffffff1660e01b815260040161024b9291906108c2565b6020604051808303815f875af1158015610267573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028b9190610888565b600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a610319919061079f565b6305f5e10061032891906107e9565b60015f61033961053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61038961060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104b161053f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a61050d919061079f565b6305f5e10061051c91906107e9565b60405161052991906108f8565b60405180910390a350610911565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106b05780860481111561068c5761068b61062e565b5b600185161561069b5780820291505b80810290506106a98561065b565b9450610670565b94509492505050565b5f826106c85760019050610783565b816106d5575f9050610783565b81600181146106eb57600281146106f557610724565b6001915050610783565b60ff8411156107075761070661062e565b5b8360020a91508482111561071e5761071d61062e565b5b50610783565b5060208310610133831016604e8410600b84101617156107595782820a9050838111156107545761075361062e565b5b610783565b6107668484846001610667565b9250905081840481111561077d5761077c61062e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6107a98261078a565b91506107b483610793565b92506107e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106b9565b905092915050565b5f6107f38261078a565b91506107fe8361078a565b925082820261080c8161078a565b915082820484148315176108235761082261062e565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6108578261082e565b9050919050565b6108678161084d565b8114610871575f80fd5b50565b5f815190506108828161085e565b92915050565b5f6020828403121561089d5761089c61082a565b5b5f6108aa84828501610874565b91505092915050565b6108bc8161084d565b82525050565b5f6040820190506108d55f8301856108b3565b6108e260208301846108b3565b9392505050565b6108f28161078a565b82525050565b5f60208201905061090b5f8301846108e9565b92915050565b612c668061091e5f395ff3fe608060405260043610610184575f3560e01c80638da5cb5b116100d0578063aa27ed8f11610089578063e1d8e9f711610063578063e1d8e9f714610551578063e8bceda41461057b578063f2fde38b146105a5578063fd042834146105cd5761018b565b8063aa27ed8f146104c3578063bf474bed146104eb578063dd62ed3e146105155761018b565b80638da5cb5b146103cd57806395d89b41146103f75780639ad4f65a14610421578063a237b67c14610437578063a5df3dc61461045f578063a9059cbb146104875761018b565b806327e1f16d1161013d578063715018a611610117578063715018a61461033b5780637424fac514610351578063768dc710146103675780637ed14de6146103a35761018b565b806327e1f16d146102ab578063313ce567146102d557806370a08231146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b957806318160ddd146101f55780631e5997fd1461021f57806320017a5b1461024757806323b872dd1461026f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105f7565b6040516101b09190611cea565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611d9b565b610634565b6040516101ec9190611df3565b60405180910390f35b348015610200575f80fd5b50610209610651565b6040516102169190611e1b565b60405180910390f35b34801561022a575f80fd5b5061024560048036038101906102409190611e34565b610674565b005b348015610252575f80fd5b5061026d60048036038101906102689190611e72565b61068e565b005b34801561027a575f80fd5b5061029560048036038101906102909190611e9d565b6106a0565b6040516102a29190611df3565b60405180910390f35b3480156102b6575f80fd5b506102bf610774565b6040516102cc9190611df3565b60405180910390f35b3480156102e0575f80fd5b506102e9610786565b6040516102f69190611f08565b60405180910390f35b34801561030a575f80fd5b5061032560048036038101906103209190611f21565b61078e565b6040516103329190611e1b565b60405180910390f35b348015610346575f80fd5b5061034f6107d4565b005b34801561035c575f80fd5b506103656107e7565b005b348015610372575f80fd5b5061038d60048036038101906103889190611f21565b6108e1565b60405161039a9190611df3565b60405180910390f35b3480156103ae575f80fd5b506103b76108fe565b6040516103c49190611e1b565b60405180910390f35b3480156103d8575f80fd5b506103e1610904565b6040516103ee9190611f5b565b60405180910390f35b348015610402575f80fd5b5061040b61092b565b6040516104189190611cea565b60405180910390f35b34801561042c575f80fd5b50610435610968565b005b348015610442575f80fd5b5061045d60048036038101906104589190611e72565b6109e1565b005b34801561046a575f80fd5b5061048560048036038101906104809190611f21565b610a4f565b005b348015610492575f80fd5b506104ad60048036038101906104a89190611d9b565b610aaf565b6040516104ba9190611df3565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190611f21565b610acc565b005b3480156104f6575f80fd5b506104ff610b2b565b60405161050c9190611e1b565b60405180910390f35b348015610520575f80fd5b5061053b60048036038101906105369190611f74565b610b31565b6040516105489190611e1b565b60405180910390f35b34801561055c575f80fd5b50610565610bb3565b6040516105729190611fd2565b60405180910390f35b348015610586575f80fd5b5061058f610bd8565b60405161059c9190611e1b565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190611f21565b610bde565b005b3480156105d8575f80fd5b506105e1610c60565b6040516105ee9190611e1b565b60405180910390f35b60606040518060400160405280600a81526020017f4379706865727377617000000000000000000000000000000000000000000000815250905090565b5f610647610640610c66565b8484610c6d565b6001905092915050565b5f6012600a6106609190612147565b6305f5e10061066f9190612191565b905090565b61067c610e30565b81600481905550806005819055505050565b610696610e30565b8060078190555050565b5f6106ac848484610eae565b610769846106b8610c66565b61076485604051806060016040528060288152602001612c096028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071b610c66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164c9092919063ffffffff16565b610c6d565b600190509392505050565b60095f9054906101000a900460ff1681565b5f6012905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107dc610e30565b6107e55f6116ae565b565b6107ef610e30565b5f4711610831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108289061221c565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161085a90612267565b5f6040518083038185875af1925050503d805f8114610894576040519150601f19603f3d011682016040523d82523d5f602084013e610899565b606091505b50509050806108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d4906122c5565b60405180910390fd5b5050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2443595048455200000000000000000000000000000000000000000000000000815250905090565b610970610e30565b6001151560095f9054906101000a900460ff161515036109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc9061232d565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b6109e9610e30565b610a0460c86109f6610651565b61176f90919063ffffffff16565b8111610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90612395565b60405180910390fd5b8060088190555050565b610a57610e30565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610ac2610abb610c66565b8484610eae565b6001905092915050565b610ad4610e30565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610be6610e30565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b90612423565b60405180910390fd5b610c5d816116ae565b50565b60055481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906124b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d409061253f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e239190611e1b565b60405180910390a3505050565b610e38610c66565b73ffffffffffffffffffffffffffffffffffffffff16610e56610904565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906125a7565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390612635565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f81906126c3565b60405180910390fd5b5f8111610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390612751565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139c5760095f9054906101000a900460ff166110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b5906127b9565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116b576008548261111f8561078e565b61112991906127d7565b111561116a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111619061287a565b60405180910390fd5b5b5f600454111561125057600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561121f5750600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561124f5761124c606461123e600454856117b890919063ffffffff16565b61176f90919063ffffffff16565b90505b5b5f60055411156112da57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d9576112d660646112c8600554856117b890919063ffffffff16565b61176f90919063ffffffff16565b90505b5b5f6112e43061078e565b9050600a60149054906101000a900460ff1615801561134f5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113675750600a60159054906101000a900460ff165b8015611374575060075481115b1561139a576113828161182f565b5f4790505f8111156113985761139747611aa6565b5b505b505b5f81111561149b576113f48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114929190611e1b565b60405180910390a35b6114eb8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061158e6115428284611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116318486611bd090919063ffffffff16565b60405161163e9190611e1b565b60405180910390a350505050565b5f838311158290611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a9190611cea565b60405180910390fd5b505f83856116a19190612898565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6117b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c19565b905092915050565b5f8083036117c8575f9050611829565b5f82846117d59190612191565b90508284826117e491906128f8565b14611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612998565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a89575f600267ffffffffffffffff81111561186e5761186d6129b6565b5b60405190808252806020026020018201604052801561189c5781602001602082028036833780820191505090505b50905030815f815181106118b3576118b26129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611958573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197c9190612a24565b816001815181106119905761198f6129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f730600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c6d565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a5a959493929190612b48565b5f604051808303815f87803b158015611a71575f80fd5b505af1158015611a83573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aec90612267565b5f6040518083038185875af1925050503d805f8114611b26576040519150601f19603f3d011682016040523d82523d5f602084013e611b2b565b606091505b5050905080611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b66906122c5565b60405180910390fd5b5050565b5f808284611b8191906127d7565b905083811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612bea565b60405180910390fd5b8091505092915050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164c565b905092915050565b5f8083118290611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569190611cea565b60405180910390fd5b505f8385611c6d91906128f8565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611cbc82611c7a565b611cc68185611c84565b9350611cd6818560208601611c94565b611cdf81611ca2565b840191505092915050565b5f6020820190508181035f830152611d028184611cb2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d3782611d0e565b9050919050565b611d4781611d2d565b8114611d51575f80fd5b50565b5f81359050611d6281611d3e565b92915050565b5f819050919050565b611d7a81611d68565b8114611d84575f80fd5b50565b5f81359050611d9581611d71565b92915050565b5f8060408385031215611db157611db0611d0a565b5b5f611dbe85828601611d54565b9250506020611dcf85828601611d87565b9150509250929050565b5f8115159050919050565b611ded81611dd9565b82525050565b5f602082019050611e065f830184611de4565b92915050565b611e1581611d68565b82525050565b5f602082019050611e2e5f830184611e0c565b92915050565b5f8060408385031215611e4a57611e49611d0a565b5b5f611e5785828601611d87565b9250506020611e6885828601611d87565b9150509250929050565b5f60208284031215611e8757611e86611d0a565b5b5f611e9484828501611d87565b91505092915050565b5f805f60608486031215611eb457611eb3611d0a565b5b5f611ec186828701611d54565b9350506020611ed286828701611d54565b9250506040611ee386828701611d87565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b5f60208284031215611f3657611f35611d0a565b5b5f611f4384828501611d54565b91505092915050565b611f5581611d2d565b82525050565b5f602082019050611f6e5f830184611f4c565b92915050565b5f8060408385031215611f8a57611f89611d0a565b5b5f611f9785828601611d54565b9250506020611fa885828601611d54565b9150509250929050565b5f611fbc82611d0e565b9050919050565b611fcc81611fb2565b82525050565b5f602082019050611fe55f830184611fc3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206d5780860481111561204957612048611feb565b5b60018516156120585780820291505b808102905061206685612018565b945061202d565b94509492505050565b5f826120855760019050612140565b81612092575f9050612140565b81600181146120a857600281146120b2576120e1565b6001915050612140565b60ff8411156120c4576120c3611feb565b5b8360020a9150848211156120db576120da611feb565b5b50612140565b5060208310610133831016604e8410600b84101617156121165782820a90508381111561211157612110611feb565b5b612140565b6121238484846001612024565b9250905081840481111561213a57612139611feb565b5b81810290505b9392505050565b5f61215182611d68565b915061215c83611eed565b92506121897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612076565b905092915050565b5f61219b82611d68565b91506121a683611d68565b92508282026121b481611d68565b915082820484148315176121cb576121ca611feb565b5b5092915050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f612206600e83611c84565b9150612211826121d2565b602082019050919050565b5f6020820190508181035f830152612233816121fa565b9050919050565b5f81905092915050565b50565b5f6122525f8361223a565b915061225d82612244565b5f82019050919050565b5f61227182612247565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f6122af600b83611c84565b91506122ba8261227b565b602082019050919050565b5f6020820190508181035f8301526122dc816122a3565b9050919050565b7f54726164696e6720616c7265616479206f7065726174696f6e616c00000000005f82015250565b5f612317601b83611c84565b9150612322826122e3565b602082019050919050565b5f6020820190508181035f8301526123448161230b565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61237f600e83611c84565b915061238a8261234b565b602082019050919050565b5f6020820190508181035f8301526123ac81612373565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61240d602683611c84565b9150612418826123b3565b604082019050919050565b5f6020820190508181035f83015261243a81612401565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61249b602483611c84565b91506124a682612441565b604082019050919050565b5f6020820190508181035f8301526124c88161248f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612529602283611c84565b9150612534826124cf565b604082019050919050565b5f6020820190508181035f8301526125568161251d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612591602083611c84565b915061259c8261255d565b602082019050919050565b5f6020820190508181035f8301526125be81612585565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261f602583611c84565b915061262a826125c5565b604082019050919050565b5f6020820190508181035f83015261264c81612613565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ad602383611c84565b91506126b882612653565b604082019050919050565b5f6020820190508181035f8301526126da816126a1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273b602983611c84565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f5472616465206e6f74206f7065726174696f6e616c00000000000000000000005f82015250565b5f6127a3601583611c84565b91506127ae8261276f565b602082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b5f6127e182611d68565b91506127ec83611d68565b925082820190508082111561280457612803611feb565b5b92915050565b7f416c6572743a206b656570206c6f776572207468616e204379706865722077685f8201527f616c65206c696d69747300000000000000000000000000000000000000000000602082015250565b5f612864602a83611c84565b915061286f8261280a565b604082019050919050565b5f6020820190508181035f83015261289181612858565b9050919050565b5f6128a282611d68565b91506128ad83611d68565b92508282039050818111156128c5576128c4611feb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290282611d68565b915061290d83611d68565b92508261291d5761291c6128cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612982602183611c84565b915061298d82612928565b604082019050919050565b5f6020820190508181035f8301526129af81612976565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1e81611d3e565b92915050565b5f60208284031215612a3957612a38611d0a565b5b5f612a4684828501612a10565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7b612a76612a7184612a4f565b612a58565b611d68565b9050919050565b612a8b81612a61565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac381611d2d565b82525050565b5f612ad48383612aba565b60208301905092915050565b5f602082019050919050565b5f612af682612a91565b612b008185612a9b565b9350612b0b83612aab565b805f5b83811015612b3b578151612b228882612ac9565b9750612b2d83612ae0565b925050600181019050612b0e565b5085935050505092915050565b5f60a082019050612b5b5f830188611e0c565b612b686020830187612a82565b8181036040830152612b7a8186612aec565b9050612b896060830185611f4c565b612b966080830184611e0c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd4601b83611c84565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200731c503493629a65dfcf1dda27adbb4014c35cfad962cfc4f7149276043147b64736f6c634300081a0033
Deployed Bytecode
0x608060405260043610610184575f3560e01c80638da5cb5b116100d0578063aa27ed8f11610089578063e1d8e9f711610063578063e1d8e9f714610551578063e8bceda41461057b578063f2fde38b146105a5578063fd042834146105cd5761018b565b8063aa27ed8f146104c3578063bf474bed146104eb578063dd62ed3e146105155761018b565b80638da5cb5b146103cd57806395d89b41146103f75780639ad4f65a14610421578063a237b67c14610437578063a5df3dc61461045f578063a9059cbb146104875761018b565b806327e1f16d1161013d578063715018a611610117578063715018a61461033b5780637424fac514610351578063768dc710146103675780637ed14de6146103a35761018b565b806327e1f16d146102ab578063313ce567146102d557806370a08231146102ff5761018b565b806306fdde031461018f578063095ea7b3146101b957806318160ddd146101f55780631e5997fd1461021f57806320017a5b1461024757806323b872dd1461026f5761018b565b3661018b57005b5f80fd5b34801561019a575f80fd5b506101a36105f7565b6040516101b09190611cea565b60405180910390f35b3480156101c4575f80fd5b506101df60048036038101906101da9190611d9b565b610634565b6040516101ec9190611df3565b60405180910390f35b348015610200575f80fd5b50610209610651565b6040516102169190611e1b565b60405180910390f35b34801561022a575f80fd5b5061024560048036038101906102409190611e34565b610674565b005b348015610252575f80fd5b5061026d60048036038101906102689190611e72565b61068e565b005b34801561027a575f80fd5b5061029560048036038101906102909190611e9d565b6106a0565b6040516102a29190611df3565b60405180910390f35b3480156102b6575f80fd5b506102bf610774565b6040516102cc9190611df3565b60405180910390f35b3480156102e0575f80fd5b506102e9610786565b6040516102f69190611f08565b60405180910390f35b34801561030a575f80fd5b5061032560048036038101906103209190611f21565b61078e565b6040516103329190611e1b565b60405180910390f35b348015610346575f80fd5b5061034f6107d4565b005b34801561035c575f80fd5b506103656107e7565b005b348015610372575f80fd5b5061038d60048036038101906103889190611f21565b6108e1565b60405161039a9190611df3565b60405180910390f35b3480156103ae575f80fd5b506103b76108fe565b6040516103c49190611e1b565b60405180910390f35b3480156103d8575f80fd5b506103e1610904565b6040516103ee9190611f5b565b60405180910390f35b348015610402575f80fd5b5061040b61092b565b6040516104189190611cea565b60405180910390f35b34801561042c575f80fd5b50610435610968565b005b348015610442575f80fd5b5061045d60048036038101906104589190611e72565b6109e1565b005b34801561046a575f80fd5b5061048560048036038101906104809190611f21565b610a4f565b005b348015610492575f80fd5b506104ad60048036038101906104a89190611d9b565b610aaf565b6040516104ba9190611df3565b60405180910390f35b3480156104ce575f80fd5b506104e960048036038101906104e49190611f21565b610acc565b005b3480156104f6575f80fd5b506104ff610b2b565b60405161050c9190611e1b565b60405180910390f35b348015610520575f80fd5b5061053b60048036038101906105369190611f74565b610b31565b6040516105489190611e1b565b60405180910390f35b34801561055c575f80fd5b50610565610bb3565b6040516105729190611fd2565b60405180910390f35b348015610586575f80fd5b5061058f610bd8565b60405161059c9190611e1b565b60405180910390f35b3480156105b0575f80fd5b506105cb60048036038101906105c69190611f21565b610bde565b005b3480156105d8575f80fd5b506105e1610c60565b6040516105ee9190611e1b565b60405180910390f35b60606040518060400160405280600a81526020017f4379706865727377617000000000000000000000000000000000000000000000815250905090565b5f610647610640610c66565b8484610c6d565b6001905092915050565b5f6012600a6106609190612147565b6305f5e10061066f9190612191565b905090565b61067c610e30565b81600481905550806005819055505050565b610696610e30565b8060078190555050565b5f6106ac848484610eae565b610769846106b8610c66565b61076485604051806060016040528060288152602001612c096028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61071b610c66565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461164c9092919063ffffffff16565b610c6d565b600190509392505050565b60095f9054906101000a900460ff1681565b5f6012905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107dc610e30565b6107e55f6116ae565b565b6107ef610e30565b5f4711610831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108289061221c565b60405180910390fd5b5f4790505f3373ffffffffffffffffffffffffffffffffffffffff168260405161085a90612267565b5f6040518083038185875af1925050503d805f8114610894576040519150601f19603f3d011682016040523d82523d5f602084013e610899565b606091505b50509050806108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d4906122c5565b60405180910390fd5b5050565b6003602052805f5260405f205f915054906101000a900460ff1681565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f2443595048455200000000000000000000000000000000000000000000000000815250905090565b610970610e30565b6001151560095f9054906101000a900460ff161515036109c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bc9061232d565b60405180910390fd5b600160095f6101000a81548160ff021916908315150217905550565b6109e9610e30565b610a0460c86109f6610651565b61176f90919063ffffffff16565b8111610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90612395565b60405180910390fd5b8060088190555050565b610a57610e30565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f610ac2610abb610c66565b8484610eae565b6001905092915050565b610ad4610e30565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b610be6610e30565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4b90612423565b60405180910390fd5b610c5d816116ae565b50565b60055481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd2906124b1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d409061253f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e239190611e1b565b60405180910390a3505050565b610e38610c66565b73ffffffffffffffffffffffffffffffffffffffff16610e56610904565b73ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea3906125a7565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390612635565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f81906126c3565b60405180910390fd5b5f8111610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc390612751565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561106b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561139c5760095f9054906101000a900460ff166110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b5906127b9565b60405180910390fd5b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461116b576008548261111f8561078e565b61112991906127d7565b111561116a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111619061287a565b60405180910390fd5b5b5f600454111561125057600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561121f5750600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561124f5761124c606461123e600454856117b890919063ffffffff16565b61176f90919063ffffffff16565b90505b5b5f60055411156112da57600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d9576112d660646112c8600554856117b890919063ffffffff16565b61176f90919063ffffffff16565b90505b5b5f6112e43061078e565b9050600a60149054906101000a900460ff1615801561134f5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156113675750600a60159054906101000a900460ff165b8015611374575060075481115b1561139a576113828161182f565b5f4790505f8111156113985761139747611aa6565b5b505b505b5f81111561149b576113f48160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114929190611e1b565b60405180910390a35b6114eb8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061158e6115428284611bd090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b7390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6116318486611bd090919063ffffffff16565b60405161163e9190611e1b565b60405180910390a350505050565b5f838311158290611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a9190611cea565b60405180910390fd5b505f83856116a19190612898565b9050809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6117b083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c19565b905092915050565b5f8083036117c8575f9050611829565b5f82846117d59190612191565b90508284826117e491906128f8565b14611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90612998565b60405180910390fd5b809150505b92915050565b6001600a60146101000a81548160ff0219169083151502179055505f810315611a89575f600267ffffffffffffffff81111561186e5761186d6129b6565b5b60405190808252806020026020018201604052801561189c5781602001602082028036833780820191505090505b50905030815f815181106118b3576118b26129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611958573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197c9190612a24565b816001815181106119905761198f6129e3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119f730600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610c6d565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a5a959493929190612b48565b5f604051808303815f87803b158015611a71575f80fd5b505af1158015611a83573d5f803e3d5ffd5b50505050505b5f600a60146101000a81548160ff02191690831515021790555050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aec90612267565b5f6040518083038185875af1925050503d805f8114611b26576040519150601f19603f3d011682016040523d82523d5f602084013e611b2b565b606091505b5050905080611b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b66906122c5565b60405180910390fd5b5050565b5f808284611b8191906127d7565b905083811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90612bea565b60405180910390fd5b8091505092915050565b5f611c1183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061164c565b905092915050565b5f8083118290611c5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c569190611cea565b60405180910390fd5b505f8385611c6d91906128f8565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611cbc82611c7a565b611cc68185611c84565b9350611cd6818560208601611c94565b611cdf81611ca2565b840191505092915050565b5f6020820190508181035f830152611d028184611cb2565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611d3782611d0e565b9050919050565b611d4781611d2d565b8114611d51575f80fd5b50565b5f81359050611d6281611d3e565b92915050565b5f819050919050565b611d7a81611d68565b8114611d84575f80fd5b50565b5f81359050611d9581611d71565b92915050565b5f8060408385031215611db157611db0611d0a565b5b5f611dbe85828601611d54565b9250506020611dcf85828601611d87565b9150509250929050565b5f8115159050919050565b611ded81611dd9565b82525050565b5f602082019050611e065f830184611de4565b92915050565b611e1581611d68565b82525050565b5f602082019050611e2e5f830184611e0c565b92915050565b5f8060408385031215611e4a57611e49611d0a565b5b5f611e5785828601611d87565b9250506020611e6885828601611d87565b9150509250929050565b5f60208284031215611e8757611e86611d0a565b5b5f611e9484828501611d87565b91505092915050565b5f805f60608486031215611eb457611eb3611d0a565b5b5f611ec186828701611d54565b9350506020611ed286828701611d54565b9250506040611ee386828701611d87565b9150509250925092565b5f60ff82169050919050565b611f0281611eed565b82525050565b5f602082019050611f1b5f830184611ef9565b92915050565b5f60208284031215611f3657611f35611d0a565b5b5f611f4384828501611d54565b91505092915050565b611f5581611d2d565b82525050565b5f602082019050611f6e5f830184611f4c565b92915050565b5f8060408385031215611f8a57611f89611d0a565b5b5f611f9785828601611d54565b9250506020611fa885828601611d54565b9150509250929050565b5f611fbc82611d0e565b9050919050565b611fcc81611fb2565b82525050565b5f602082019050611fe55f830184611fc3565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561206d5780860481111561204957612048611feb565b5b60018516156120585780820291505b808102905061206685612018565b945061202d565b94509492505050565b5f826120855760019050612140565b81612092575f9050612140565b81600181146120a857600281146120b2576120e1565b6001915050612140565b60ff8411156120c4576120c3611feb565b5b8360020a9150848211156120db576120da611feb565b5b50612140565b5060208310610133831016604e8410600b84101617156121165782820a90508381111561211157612110611feb565b5b612140565b6121238484846001612024565b9250905081840481111561213a57612139611feb565b5b81810290505b9392505050565b5f61215182611d68565b915061215c83611eed565b92506121897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612076565b905092915050565b5f61219b82611d68565b91506121a683611d68565b92508282026121b481611d68565b915082820484148315176121cb576121ca611feb565b5b5092915050565b7f4e6f20737475636b2045746865720000000000000000000000000000000000005f82015250565b5f612206600e83611c84565b9150612211826121d2565b602082019050919050565b5f6020820190508181035f830152612233816121fa565b9050919050565b5f81905092915050565b50565b5f6122525f8361223a565b915061225d82612244565b5f82019050919050565b5f61227182612247565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f6122af600b83611c84565b91506122ba8261227b565b602082019050919050565b5f6020820190508181035f8301526122dc816122a3565b9050919050565b7f54726164696e6720616c7265616479206f7065726174696f6e616c00000000005f82015250565b5f612317601b83611c84565b9150612322826122e3565b602082019050919050565b5f6020820190508181035f8301526123448161230b565b9050919050565b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f61237f600e83611c84565b915061238a8261234b565b602082019050919050565b5f6020820190508181035f8301526123ac81612373565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61240d602683611c84565b9150612418826123b3565b604082019050919050565b5f6020820190508181035f83015261243a81612401565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61249b602483611c84565b91506124a682612441565b604082019050919050565b5f6020820190508181035f8301526124c88161248f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612529602283611c84565b9150612534826124cf565b604082019050919050565b5f6020820190508181035f8301526125568161251d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612591602083611c84565b915061259c8261255d565b602082019050919050565b5f6020820190508181035f8301526125be81612585565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61261f602583611c84565b915061262a826125c5565b604082019050919050565b5f6020820190508181035f83015261264c81612613565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126ad602383611c84565b91506126b882612653565b604082019050919050565b5f6020820190508181035f8301526126da816126a1565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61273b602983611c84565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f5472616465206e6f74206f7065726174696f6e616c00000000000000000000005f82015250565b5f6127a3601583611c84565b91506127ae8261276f565b602082019050919050565b5f6020820190508181035f8301526127d081612797565b9050919050565b5f6127e182611d68565b91506127ec83611d68565b925082820190508082111561280457612803611feb565b5b92915050565b7f416c6572743a206b656570206c6f776572207468616e204379706865722077685f8201527f616c65206c696d69747300000000000000000000000000000000000000000000602082015250565b5f612864602a83611c84565b915061286f8261280a565b604082019050919050565b5f6020820190508181035f83015261289181612858565b9050919050565b5f6128a282611d68565b91506128ad83611d68565b92508282039050818111156128c5576128c4611feb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61290282611d68565b915061290d83611d68565b92508261291d5761291c6128cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612982602183611c84565b915061298d82612928565b604082019050919050565b5f6020820190508181035f8301526129af81612976565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a1e81611d3e565b92915050565b5f60208284031215612a3957612a38611d0a565b5b5f612a4684828501612a10565b91505092915050565b5f819050919050565b5f819050919050565b5f612a7b612a76612a7184612a4f565b612a58565b611d68565b9050919050565b612a8b81612a61565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ac381611d2d565b82525050565b5f612ad48383612aba565b60208301905092915050565b5f602082019050919050565b5f612af682612a91565b612b008185612a9b565b9350612b0b83612aab565b805f5b83811015612b3b578151612b228882612ac9565b9750612b2d83612ae0565b925050600181019050612b0e565b5085935050505092915050565b5f60a082019050612b5b5f830188611e0c565b612b686020830187612a82565b8181036040830152612b7a8186612aec565b9050612b896060830185611f4c565b612b966080830184611e0c565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612bd4601b83611c84565b9150612bdf82612ba0565b602082019050919050565b5f6020820190508181035f830152612c0181612bc8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200731c503493629a65dfcf1dda27adbb4014c35cfad962cfc4f7149276043147b64736f6c634300081a0033
Deployed Bytecode Sourcemap
4939:7624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6919:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7752:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7196:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11303:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12089:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7921:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7105:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7299:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:103;;;;;;;;;;;;;:::i;:::-;;12219:329;;;;;;;;;;;;;:::i;:::-;;5158:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5696:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2719:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7010;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11714:166;;;;;;;;;;;;;:::i;:::-;;11888:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11465:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7426:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11591:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5634:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7601:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5301:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3618:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5259:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6919:83;6956:13;6989:5;;;;;;;;;;;;;;;;;6982:12;;6919:83;:::o;7752:161::-;7827:4;7844:39;7853:12;:10;:12::i;:::-;7867:7;7876:6;7844:8;:39::i;:::-;7901:4;7894:11;;7752:161;;;;:::o;7196:95::-;7249:7;5443:2;5499;:13;;;;:::i;:::-;5487:9;:25;;;;:::i;:::-;7269:14;;7196:95;:::o;11303:154::-;2605:13;:11;:13::i;:::-;11409:5:::1;11391:15;:23;;;;11444:5;11425:16;:24;;;;11303:154:::0;;:::o;12089:122::-;2605:13;:11;:13::i;:::-;12194:9:::1;12174:17;:29;;;;12089:122:::0;:::o;7921:313::-;8019:4;8036:36;8046:6;8054:9;8065:6;8036:9;:36::i;:::-;8083:121;8092:6;8100:12;:10;:12::i;:::-;8114:89;8152:6;8114:89;;;;;;;;;;;;;;;;;:11;:19;8126:6;8114:19;;;;;;;;;;;;;;;:33;8134:12;:10;:12::i;:::-;8114:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8083:8;:121::i;:::-;8222:4;8215:11;;7921:313;;;;;:::o;5769:36::-;;;;;;;;;;;;;:::o;7105:83::-;7146:5;5443:2;7164:16;;7105:83;:::o;7299:119::-;7365:7;7392:9;:18;7402:7;7392:18;;;;;;;;;;;;;;;;7385:25;;7299:119;;;:::o;3360:103::-;2605:13;:11;:13::i;:::-;3425:30:::1;3452:1;3425:18;:30::i;:::-;3360:103::o:0;12219:329::-;2605:13;:11;:13::i;:::-;12314:1:::1;12290:21;:25;12282:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;12345:18;12366:21;12345:42;;12401:16;12431:10;12423:24;;12455:10;12423:71;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12400:94;;;12513:11;12505:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;12271:277;;12219:329::o:0;5158:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;5696:64::-;;;;:::o;2719:87::-;2765:7;2792:6;;;;;;;;;;;2785:13;;2719:87;:::o;7010:::-;7049:13;7082:7;;;;;;;;;;;;;;;;;7075:14;;7010:87;:::o;11714:166::-;2605:13;:11;:13::i;:::-;11802:4:::1;11782:24;;:16;;;;;;;;;;;:24;;::::0;11774:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11868:4;11849:16;;:23;;;;;;;;;;;;;;;;;;11714:166::o:0;11888:193::-;2605:13;:11;:13::i;:::-;11990:22:::1;12008:3;11990:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;11978:9;:34;11970:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;12064:9;12041:20;:32;;;;11888:193:::0;:::o;11465:118::-;2605:13;:11;:13::i;:::-;11571:4:::1;11542:18;:26;11561:6;11542:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11465:118:::0;:::o;7426:167::-;7504:4;7521:42;7531:12;:10;:12::i;:::-;7545:9;7556:6;7521:9;:42::i;:::-;7581:4;7574:11;;7426:167;;;;:::o;11591:115::-;2605:13;:11;:13::i;:::-;11693:5:::1;11664:18;:26;11683:6;11664:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11591:115:::0;:::o;5634:55::-;;;;:::o;7601:143::-;7682:7;7709:11;:18;7721:5;7709:18;;;;;;;;;;;;;;;:27;7728:7;7709:27;;;;;;;;;;;;;;;;7702:34;;7601:143;;;;:::o;5301:98::-;;;;;;;;;;;;;:::o;5218:34::-;;;;:::o;3618:201::-;2605:13;:11;:13::i;:::-;3727:1:::1;3707:22;;:8;:22;;::::0;3699:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3783:28;3802:8;3783:18;:28::i;:::-;3618:201:::0;:::o;5259:35::-;;;;:::o;222:98::-;275:7;302:10;295:17;;222:98;:::o;8242:335::-;8352:1;8335:19;;:5;:19;;;8327:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:1;8414:21;;:7;:21;;;8406:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8515:6;8485:11;:18;8497:5;8485:18;;;;;;;;;;;;;;;:27;8504:7;8485:27;;;;;;;;;;;;;;;:36;;;;8553:7;8537:32;;8546:5;8537:32;;;8562:6;8537:32;;;;;;:::i;:::-;;;;;;;;8242:335;;;:::o;2884:132::-;2959:12;:10;:12::i;:::-;2948:23;;:7;:5;:7::i;:::-;:23;;;2940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2884:132::o;8585:1842::-;8689:1;8673:18;;:4;:18;;;8665:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8766:1;8752:16;;:2;:16;;;8744:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8836:1;8827:6;:10;8819:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8894:17;8929:18;:24;8948:4;8929:24;;;;;;;;;;;;;;;;;;;;;;;;;8928:25;:52;;;;;8958:18;:22;8977:2;8958:22;;;;;;;;;;;;;;;;;;;;;;;;;8957:23;8928:52;8924:1147;;;9007:16;;;;;;;;;;;8999:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9075:13;;;;;;;;;;;9069:19;;:2;:19;;;9066:158;;9141:20;;9131:6;9115:13;9125:2;9115:9;:13::i;:::-;:22;;;;:::i;:::-;:46;;9107:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;9066:158;9261:1;9243:15;;:19;9240:198;;;9291:13;;;;;;;;;;;9283:21;;:4;:21;;;:55;;;;;9322:15;;;;;;;;;;;9308:30;;:2;:30;;;;9283:55;9279:144;;;9371:36;9403:3;9371:27;9382:15;;9371:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;9359:48;;9279:144;9240:198;9476:1;9457:16;;:20;9454:162;;;9503:13;;;;;;;;;;;9497:19;;:2;:19;;;9494:107;;9548:37;9581:3;9548:28;9559:16;;9548:6;:10;;:28;;;;:::i;:::-;:32;;:37;;;;:::i;:::-;9536:49;;9494:107;9454:162;9632:28;9663:24;9681:4;9663:9;:24::i;:::-;9632:55;;9707:6;;;;;;;;;;;9706:7;:30;;;;;9723:13;;;;;;;;;;;9717:19;;:2;:19;;;9706:30;:45;;;;;9740:11;;;;;;;;;;;9706:45;:87;;;;;9776:17;;9755:20;:38;9706:87;9702:358;;;9814:38;9831:20;9814:16;:38::i;:::-;9871:26;9900:21;9871:50;;9964:1;9943:18;:22;9940:105;;;9990:35;10003:21;9990:12;:35::i;:::-;9940:105;9795:265;9702:358;8982:1089;8924:1147;10096:1;10086:9;:11;10083:161;;;10136:39;10165:9;10136;:24;10154:4;10136:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10111:9;:24;10129:4;10111:24;;;;;;;;;;;;;;;:64;;;;10216:4;10193:39;;10202:4;10193:39;;;10222:9;10193:39;;;;;;:::i;:::-;;;;;;;;10083:161;10270:27;10290:6;10270:9;:15;10280:4;10270:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10254:9;:15;10264:4;10254:15;;;;;;;;;;;;;;;:43;;;;10322:40;10340:21;10351:9;10340:6;:10;;:21;;;;:::i;:::-;10322:9;:13;10332:2;10322:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10308:9;:13;10318:2;10308:13;;;;;;;;;;;;;;;:54;;;;10393:2;10378:41;;10387:4;10378:41;;;10397:21;10408:9;10397:6;:10;;:21;;;;:::i;:::-;10378:41;;;;;;:::i;:::-;;;;;;;;8654:1773;8585:1842;;;:::o;1359:190::-;1445:7;1478:1;1473;:6;;1481:12;1465:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1505:9;1521:1;1517;:5;;;;:::i;:::-;1505:17;;1540:1;1533:8;;;1359:190;;;;;:::o;3979:191::-;4053:16;4072:6;;;;;;;;;;;4053:25;;4098:8;4089:6;;:17;;;;;;;;;;;;;;;;;;4153:8;4122:40;;4143:8;4122:40;;;;;;;;;;;;4042:128;3979:191;:::o;1811:132::-;1869:7;1896:39;1900:1;1903;1896:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1889:46;;1811:132;;;;:::o;1557:246::-;1615:7;1644:1;1639;:6;1635:47;;1669:1;1662:8;;;;1635:47;1692:9;1708:1;1704;:5;;;;:::i;:::-;1692:17;;1737:1;1732;1728;:5;;;;:::i;:::-;:10;1720:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1794:1;1787:8;;;1557:246;;;;;:::o;10543:520::-;6014:4;6005:6;;:13;;;;;;;;;;;;;;;;;;10637:1:::1;10624:11;:14:::0;10621:27;10640:7:::1;10621:27;10658:21;10696:1;10682:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10658:40;;10727:4;10709;10714:1;10709:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10753:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10743:4;10748:1;10743:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10786:62;10803:4;10818:15;;;;;;;;;;;10836:11;10786:8;:62::i;:::-;10859:15;;;;;;;;;;;:66;;;10940:11;10966:1;10982:4;11009;11029:15;10859:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10610:453;6029:1;6050:5:::0;6041:6;;:14;;;;;;;;;;;;;;;;;;10543:520;:::o;11071:187::-;11128:16;11158:21;;;;;;;;;;;11150:35;;11193:6;11150:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11127:77;;;11223:11;11215:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;11117:141;11071:187;:::o;1028:179::-;1086:7;1106:9;1122:1;1118;:5;;;;:::i;:::-;1106:17;;1147:1;1142;:6;;1134:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1198:1;1191:8;;;1028:179;;;;:::o;1215:136::-;1273:7;1300:43;1304:1;1307;1300:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1293:50;;1215:136;;;;:::o;1951:189::-;2037:7;2069:1;2065;:5;2072:12;2057:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2096:9;2112:1;2108;:5;;;;:::i;:::-;2096:17;;2131:1;2124:8;;;1951: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:474::-;3759:6;3767;3816:2;3804:9;3795:7;3791:23;3787:32;3784:119;;;3822:79;;:::i;:::-;3784:119;3942:1;3967:53;4012:7;4003:6;3992:9;3988:22;3967:53;:::i;:::-;3957:63;;3913:117;4069:2;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4040:118;3691:474;;;;;:::o;4171:329::-;4230:6;4279:2;4267:9;4258:7;4254:23;4250:32;4247:119;;;4285:79;;:::i;:::-;4247:119;4405:1;4430:53;4475:7;4466:6;4455:9;4451:22;4430:53;:::i;:::-;4420:63;;4376:117;4171:329;;;;:::o;4506:619::-;4583:6;4591;4599;4648:2;4636:9;4627:7;4623:23;4619:32;4616:119;;;4654:79;;:::i;:::-;4616:119;4774:1;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4745:117;4901:2;4927:53;4972:7;4963:6;4952:9;4948:22;4927:53;:::i;:::-;4917:63;;4872:118;5029:2;5055:53;5100:7;5091:6;5080:9;5076:22;5055:53;:::i;:::-;5045:63;;5000:118;4506:619;;;;;:::o;5131:86::-;5166:7;5206:4;5199:5;5195:16;5184:27;;5131:86;;;:::o;5223:112::-;5306:22;5322:5;5306:22;:::i;:::-;5301:3;5294:35;5223:112;;:::o;5341:214::-;5430:4;5468:2;5457:9;5453:18;5445:26;;5481:67;5545:1;5534:9;5530:17;5521:6;5481:67;:::i;:::-;5341:214;;;;:::o;5561:329::-;5620:6;5669:2;5657:9;5648:7;5644:23;5640:32;5637:119;;;5675:79;;:::i;:::-;5637:119;5795:1;5820:53;5865:7;5856:6;5845:9;5841:22;5820:53;:::i;:::-;5810:63;;5766:117;5561:329;;;;:::o;5896:118::-;5983:24;6001:5;5983:24;:::i;:::-;5978:3;5971:37;5896:118;;:::o;6020:222::-;6113:4;6151:2;6140:9;6136:18;6128:26;;6164:71;6232:1;6221:9;6217:17;6208:6;6164:71;:::i;:::-;6020:222;;;;:::o;6248:474::-;6316:6;6324;6373:2;6361:9;6352:7;6348:23;6344:32;6341:119;;;6379:79;;:::i;:::-;6341:119;6499:1;6524:53;6569:7;6560:6;6549:9;6545:22;6524:53;:::i;:::-;6514:63;;6470:117;6626:2;6652:53;6697:7;6688:6;6677:9;6673:22;6652:53;:::i;:::-;6642:63;;6597:118;6248:474;;;;;:::o;6728:104::-;6773:7;6802:24;6820:5;6802:24;:::i;:::-;6791:35;;6728:104;;;:::o;6838:142::-;6941:32;6967:5;6941:32;:::i;:::-;6936:3;6929:45;6838:142;;:::o;6986:254::-;7095:4;7133:2;7122:9;7118:18;7110:26;;7146:87;7230:1;7219:9;7215:17;7206:6;7146:87;:::i;:::-;6986:254;;;;:::o;7246:180::-;7294:77;7291:1;7284:88;7391:4;7388:1;7381:15;7415:4;7412:1;7405:15;7432:102;7474:8;7521:5;7518:1;7514:13;7493:34;;7432:102;;;:::o;7540:848::-;7601:5;7608:4;7632:6;7623:15;;7656:5;7647:14;;7670:712;7691:1;7681:8;7678:15;7670:712;;;7786:4;7781:3;7777:14;7771:4;7768:24;7765:50;;;7795:18;;:::i;:::-;7765:50;7845:1;7835:8;7831:16;7828:451;;;8260:4;8253:5;8249:16;8240:25;;7828:451;8310:4;8304;8300:15;8292:23;;8340:32;8363:8;8340:32;:::i;:::-;8328:44;;7670:712;;;7540:848;;;;;;;:::o;8394:1073::-;8448:5;8639:8;8629:40;;8660:1;8651:10;;8662:5;;8629:40;8688:4;8678:36;;8705:1;8696:10;;8707:5;;8678:36;8774:4;8822:1;8817:27;;;;8858:1;8853:191;;;;8767:277;;8817:27;8835:1;8826:10;;8837:5;;;8853:191;8898:3;8888:8;8885:17;8882:43;;;8905:18;;:::i;:::-;8882:43;8954:8;8951:1;8947:16;8938:25;;8989:3;8982:5;8979:14;8976:40;;;8996:18;;:::i;:::-;8976:40;9029:5;;;8767:277;;9153:2;9143:8;9140:16;9134:3;9128:4;9125:13;9121:36;9103:2;9093:8;9090:16;9085:2;9079:4;9076:12;9072:35;9056:111;9053:246;;;9209:8;9203:4;9199:19;9190:28;;9244:3;9237:5;9234:14;9231:40;;;9251:18;;:::i;:::-;9231:40;9284:5;;9053:246;9324:42;9362:3;9352:8;9346:4;9343:1;9324:42;:::i;:::-;9309:57;;;;9398:4;9393:3;9389:14;9382:5;9379:25;9376:51;;;9407:18;;:::i;:::-;9376:51;9456:4;9449:5;9445:16;9436:25;;8394:1073;;;;;;:::o;9473:281::-;9531:5;9555:23;9573:4;9555:23;:::i;:::-;9547:31;;9599:25;9615:8;9599:25;:::i;:::-;9587:37;;9643:104;9680:66;9670:8;9664:4;9643:104;:::i;:::-;9634:113;;9473:281;;;;:::o;9760:410::-;9800:7;9823:20;9841:1;9823:20;:::i;:::-;9818:25;;9857:20;9875:1;9857:20;:::i;:::-;9852:25;;9912:1;9909;9905:9;9934:30;9952:11;9934:30;:::i;:::-;9923:41;;10113:1;10104:7;10100:15;10097:1;10094:22;10074:1;10067:9;10047:83;10024:139;;10143:18;;:::i;:::-;10024:139;9808:362;9760:410;;;;:::o;10176:164::-;10316:16;10312:1;10304:6;10300:14;10293:40;10176:164;:::o;10346:366::-;10488:3;10509:67;10573:2;10568:3;10509:67;:::i;:::-;10502:74;;10585:93;10674:3;10585:93;:::i;:::-;10703:2;10698:3;10694:12;10687:19;;10346:366;;;:::o;10718:419::-;10884:4;10922:2;10911:9;10907:18;10899:26;;10971:9;10965:4;10961:20;10957:1;10946:9;10942:17;10935:47;10999:131;11125:4;10999:131;:::i;:::-;10991:139;;10718:419;;;:::o;11143:147::-;11244:11;11281:3;11266:18;;11143:147;;;;:::o;11296:114::-;;:::o;11416:398::-;11575:3;11596:83;11677:1;11672:3;11596:83;:::i;:::-;11589:90;;11688:93;11777:3;11688:93;:::i;:::-;11806:1;11801:3;11797:11;11790:18;;11416:398;;;:::o;11820:379::-;12004:3;12026:147;12169:3;12026:147;:::i;:::-;12019:154;;12190:3;12183:10;;11820:379;;;:::o;12205:161::-;12345:13;12341:1;12333:6;12329:14;12322:37;12205:161;:::o;12372:366::-;12514:3;12535:67;12599:2;12594:3;12535:67;:::i;:::-;12528:74;;12611:93;12700:3;12611:93;:::i;:::-;12729:2;12724:3;12720:12;12713:19;;12372:366;;;:::o;12744:419::-;12910:4;12948:2;12937:9;12933:18;12925:26;;12997:9;12991:4;12987:20;12983:1;12972:9;12968:17;12961:47;13025:131;13151:4;13025:131;:::i;:::-;13017:139;;12744:419;;;:::o;13169:177::-;13309:29;13305:1;13297:6;13293:14;13286:53;13169:177;:::o;13352:366::-;13494:3;13515:67;13579:2;13574:3;13515:67;:::i;:::-;13508:74;;13591:93;13680:3;13591:93;:::i;:::-;13709:2;13704:3;13700:12;13693:19;;13352:366;;;:::o;13724:419::-;13890:4;13928:2;13917:9;13913:18;13905:26;;13977:9;13971:4;13967:20;13963:1;13952:9;13948:17;13941:47;14005:131;14131:4;14005:131;:::i;:::-;13997:139;;13724:419;;;:::o;14149:164::-;14289:16;14285:1;14277:6;14273:14;14266:40;14149:164;:::o;14319:366::-;14461:3;14482:67;14546:2;14541:3;14482:67;:::i;:::-;14475:74;;14558:93;14647:3;14558:93;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14319:366;;;:::o;14691:419::-;14857:4;14895:2;14884:9;14880:18;14872:26;;14944:9;14938:4;14934:20;14930:1;14919:9;14915:17;14908:47;14972:131;15098:4;14972:131;:::i;:::-;14964:139;;14691:419;;;:::o;15116:225::-;15256:34;15252:1;15244:6;15240:14;15233:58;15325:8;15320:2;15312:6;15308:15;15301:33;15116:225;:::o;15347:366::-;15489:3;15510:67;15574:2;15569:3;15510:67;:::i;:::-;15503:74;;15586:93;15675:3;15586:93;:::i;:::-;15704:2;15699:3;15695:12;15688:19;;15347:366;;;:::o;15719:419::-;15885:4;15923:2;15912:9;15908:18;15900:26;;15972:9;15966:4;15962:20;15958:1;15947:9;15943:17;15936:47;16000:131;16126:4;16000:131;:::i;:::-;15992:139;;15719:419;;;:::o;16144:223::-;16284:34;16280:1;16272:6;16268:14;16261:58;16353:6;16348:2;16340:6;16336:15;16329:31;16144:223;:::o;16373:366::-;16515:3;16536:67;16600:2;16595:3;16536:67;:::i;:::-;16529:74;;16612:93;16701:3;16612:93;:::i;:::-;16730:2;16725:3;16721:12;16714:19;;16373:366;;;:::o;16745:419::-;16911:4;16949:2;16938:9;16934:18;16926:26;;16998:9;16992:4;16988:20;16984:1;16973:9;16969:17;16962:47;17026:131;17152:4;17026:131;:::i;:::-;17018:139;;16745:419;;;:::o;17170:221::-;17310:34;17306:1;17298:6;17294:14;17287:58;17379:4;17374:2;17366:6;17362:15;17355:29;17170:221;:::o;17397:366::-;17539:3;17560:67;17624:2;17619:3;17560:67;:::i;:::-;17553:74;;17636:93;17725:3;17636:93;:::i;:::-;17754:2;17749:3;17745:12;17738:19;;17397:366;;;:::o;17769:419::-;17935:4;17973:2;17962:9;17958:18;17950:26;;18022:9;18016:4;18012:20;18008:1;17997:9;17993:17;17986:47;18050:131;18176:4;18050:131;:::i;:::-;18042:139;;17769:419;;;:::o;18194:182::-;18334:34;18330:1;18322:6;18318:14;18311:58;18194:182;:::o;18382:366::-;18524:3;18545:67;18609:2;18604:3;18545:67;:::i;:::-;18538:74;;18621:93;18710:3;18621:93;:::i;:::-;18739:2;18734:3;18730:12;18723:19;;18382:366;;;:::o;18754:419::-;18920:4;18958:2;18947:9;18943:18;18935:26;;19007:9;19001:4;18997:20;18993:1;18982:9;18978:17;18971:47;19035:131;19161:4;19035:131;:::i;:::-;19027:139;;18754:419;;;:::o;19179:224::-;19319:34;19315:1;19307:6;19303:14;19296:58;19388:7;19383:2;19375:6;19371:15;19364:32;19179:224;:::o;19409:366::-;19551:3;19572:67;19636:2;19631:3;19572:67;:::i;:::-;19565:74;;19648:93;19737:3;19648:93;:::i;:::-;19766:2;19761:3;19757:12;19750:19;;19409:366;;;:::o;19781:419::-;19947:4;19985:2;19974:9;19970:18;19962:26;;20034:9;20028:4;20024:20;20020:1;20009:9;20005:17;19998:47;20062:131;20188:4;20062:131;:::i;:::-;20054:139;;19781:419;;;:::o;20206:222::-;20346:34;20342:1;20334:6;20330:14;20323:58;20415:5;20410:2;20402:6;20398:15;20391:30;20206:222;:::o;20434:366::-;20576:3;20597:67;20661:2;20656:3;20597:67;:::i;:::-;20590:74;;20673:93;20762:3;20673:93;:::i;:::-;20791:2;20786:3;20782:12;20775:19;;20434:366;;;:::o;20806:419::-;20972:4;21010:2;20999:9;20995:18;20987:26;;21059:9;21053:4;21049:20;21045:1;21034:9;21030:17;21023:47;21087:131;21213:4;21087:131;:::i;:::-;21079:139;;20806:419;;;:::o;21231:228::-;21371:34;21367:1;21359:6;21355:14;21348:58;21440:11;21435:2;21427:6;21423:15;21416:36;21231:228;:::o;21465:366::-;21607:3;21628:67;21692:2;21687:3;21628:67;:::i;:::-;21621:74;;21704:93;21793:3;21704:93;:::i;:::-;21822:2;21817:3;21813:12;21806:19;;21465:366;;;:::o;21837:419::-;22003:4;22041:2;22030:9;22026:18;22018:26;;22090:9;22084:4;22080:20;22076:1;22065:9;22061:17;22054:47;22118:131;22244:4;22118:131;:::i;:::-;22110:139;;21837:419;;;:::o;22262:171::-;22402:23;22398:1;22390:6;22386:14;22379:47;22262:171;:::o;22439:366::-;22581:3;22602:67;22666:2;22661:3;22602:67;:::i;:::-;22595:74;;22678:93;22767:3;22678:93;:::i;:::-;22796:2;22791:3;22787:12;22780:19;;22439:366;;;:::o;22811:419::-;22977:4;23015:2;23004:9;23000:18;22992:26;;23064:9;23058:4;23054:20;23050:1;23039:9;23035:17;23028:47;23092:131;23218:4;23092:131;:::i;:::-;23084:139;;22811:419;;;:::o;23236:191::-;23276:3;23295:20;23313:1;23295:20;:::i;:::-;23290:25;;23329:20;23347:1;23329:20;:::i;:::-;23324:25;;23372:1;23369;23365:9;23358:16;;23393:3;23390:1;23387:10;23384:36;;;23400:18;;:::i;:::-;23384:36;23236:191;;;;:::o;23433:229::-;23573:34;23569:1;23561:6;23557:14;23550:58;23642:12;23637:2;23629:6;23625:15;23618:37;23433:229;:::o;23668:366::-;23810:3;23831:67;23895:2;23890:3;23831:67;:::i;:::-;23824:74;;23907:93;23996:3;23907:93;:::i;:::-;24025:2;24020:3;24016:12;24009:19;;23668:366;;;:::o;24040:419::-;24206:4;24244:2;24233:9;24229:18;24221:26;;24293:9;24287:4;24283:20;24279:1;24268:9;24264:17;24257:47;24321:131;24447:4;24321:131;:::i;:::-;24313:139;;24040:419;;;:::o;24465:194::-;24505:4;24525:20;24543:1;24525:20;:::i;:::-;24520:25;;24559:20;24577:1;24559:20;:::i;:::-;24554:25;;24603:1;24600;24596:9;24588:17;;24627:1;24621:4;24618:11;24615:37;;;24632:18;;:::i;:::-;24615:37;24465:194;;;;:::o;24665:180::-;24713:77;24710:1;24703:88;24810:4;24807:1;24800:15;24834:4;24831:1;24824:15;24851:185;24891:1;24908:20;24926:1;24908:20;:::i;:::-;24903:25;;24942:20;24960:1;24942:20;:::i;:::-;24937:25;;24981:1;24971:35;;24986:18;;:::i;:::-;24971:35;25028:1;25025;25021:9;25016:14;;24851:185;;;;:::o;25042:220::-;25182:34;25178:1;25170:6;25166:14;25159:58;25251:3;25246:2;25238:6;25234:15;25227:28;25042:220;:::o;25268:366::-;25410:3;25431:67;25495:2;25490:3;25431:67;:::i;:::-;25424:74;;25507:93;25596:3;25507:93;:::i;:::-;25625:2;25620:3;25616:12;25609:19;;25268:366;;;:::o;25640:419::-;25806:4;25844:2;25833:9;25829:18;25821:26;;25893:9;25887:4;25883:20;25879:1;25868:9;25864:17;25857:47;25921:131;26047:4;25921:131;:::i;:::-;25913:139;;25640:419;;;:::o;26065:180::-;26113:77;26110:1;26103:88;26210:4;26207:1;26200:15;26234:4;26231:1;26224:15;26251:180;26299:77;26296:1;26289:88;26396:4;26393:1;26386:15;26420:4;26417:1;26410:15;26437:143;26494:5;26525:6;26519:13;26510:22;;26541:33;26568:5;26541:33;:::i;:::-;26437:143;;;;:::o;26586:351::-;26656:6;26705:2;26693:9;26684:7;26680:23;26676:32;26673:119;;;26711:79;;:::i;:::-;26673:119;26831:1;26856:64;26912:7;26903:6;26892:9;26888:22;26856:64;:::i;:::-;26846:74;;26802:128;26586:351;;;;:::o;26943:85::-;26988:7;27017:5;27006:16;;26943:85;;;:::o;27034:60::-;27062:3;27083:5;27076:12;;27034:60;;;:::o;27100:158::-;27158:9;27191:61;27209:42;27218:32;27244:5;27218:32;:::i;:::-;27209:42;:::i;:::-;27191:61;:::i;:::-;27178:74;;27100:158;;;:::o;27264:147::-;27359:45;27398:5;27359:45;:::i;:::-;27354:3;27347:58;27264:147;;:::o;27417:114::-;27484:6;27518:5;27512:12;27502:22;;27417:114;;;:::o;27537:184::-;27636:11;27670:6;27665:3;27658:19;27710:4;27705:3;27701:14;27686:29;;27537:184;;;;:::o;27727:132::-;27794:4;27817:3;27809:11;;27847:4;27842:3;27838:14;27830:22;;27727:132;;;:::o;27865:108::-;27942:24;27960:5;27942:24;:::i;:::-;27937:3;27930:37;27865:108;;:::o;27979:179::-;28048:10;28069:46;28111:3;28103:6;28069:46;:::i;:::-;28147:4;28142:3;28138:14;28124:28;;27979:179;;;;:::o;28164:113::-;28234:4;28266;28261:3;28257:14;28249:22;;28164:113;;;:::o;28313:732::-;28432:3;28461:54;28509:5;28461:54;:::i;:::-;28531:86;28610:6;28605:3;28531:86;:::i;:::-;28524:93;;28641:56;28691:5;28641:56;:::i;:::-;28720:7;28751:1;28736:284;28761:6;28758:1;28755:13;28736:284;;;28837:6;28831:13;28864:63;28923:3;28908:13;28864:63;:::i;:::-;28857:70;;28950:60;29003:6;28950:60;:::i;:::-;28940:70;;28796:224;28783:1;28780;28776:9;28771:14;;28736:284;;;28740:14;29036:3;29029:10;;28437:608;;;28313:732;;;;:::o;29051:831::-;29314:4;29352:3;29341:9;29337:19;29329:27;;29366:71;29434:1;29423:9;29419:17;29410:6;29366:71;:::i;:::-;29447:80;29523:2;29512:9;29508:18;29499:6;29447:80;:::i;:::-;29574:9;29568:4;29564:20;29559:2;29548:9;29544:18;29537:48;29602:108;29705:4;29696:6;29602:108;:::i;:::-;29594:116;;29720:72;29788:2;29777:9;29773:18;29764:6;29720:72;:::i;:::-;29802:73;29870:3;29859:9;29855:19;29846:6;29802:73;:::i;:::-;29051:831;;;;;;;;:::o;29888:177::-;30028:29;30024:1;30016:6;30012:14;30005:53;29888:177;:::o;30071:366::-;30213:3;30234:67;30298:2;30293:3;30234:67;:::i;:::-;30227:74;;30310:93;30399:3;30310:93;:::i;:::-;30428:2;30423:3;30419:12;30412:19;;30071:366;;;:::o;30443:419::-;30609:4;30647:2;30636:9;30632:18;30624:26;;30696:9;30690:4;30686:20;30682:1;30671:9;30667:17;30660:47;30724:131;30850:4;30724:131;:::i;:::-;30716:139;;30443:419;;;:::o
Swarm Source
ipfs://0731c503493629a65dfcf1dda27adbb4014c35cfad962cfc4f7149276043147b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.