ERC-20
Overview
Max Total Supply
1,000,000 TEST
Holders
7
Market
Price
$0.00 @ 0.000000 S
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
879.209882143149525997 TESTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
TEST
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at SonicScan.org on 2025-02-24 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.20; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_msgSender() == _owner, "Not owner"); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "Zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender,address recipient,uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract ERC20 is Context, IERC20 { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 internal _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view returns(string memory){ return _name; } function symbol() public view returns(string memory){ return _symbol; } function decimals() public pure returns(uint8){ return 18; } function totalSupply() public view override returns(uint256){ return _totalSupply; } 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()] - amount); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0) && recipient != address(0), "Zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "Insufficient balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "Mint to zero"); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0) && spender != address(0), "Zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } } interface ImetropolisV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface ImetropolisV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 tokenAmount, uint256 minETH, address[] calldata path, address to, uint256 deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 tokenAmount, uint256 minTokens, address[] calldata path, address to, uint256 deadline ) external; } contract TEST is ERC20, Ownable { ImetropolisV2Router02 public metropolisV2Router; address public metropolisV2Pair; address public marketingWallet; address public rewardToken; // e.g., wS token address; update before deployment uint256 public maxWallet; uint256 public swapTokensAtAmount; bool private swapping; // Fee structure in basis points (out of 1000) uint256 public rewardsFeeBuy; uint256 public marketingFeeBuy; uint256 public rewardsFeeSell; uint256 public marketingFeeSell; uint256 public totalBuyFees; uint256 public totalSellFees; // Dividend tracking (dividends in rewardToken) uint256 public magnifiedDividendPerShare; mapping(address => int256) public magnifiedDividendCorrections; mapping(address => uint256) public withdrawnDividends; uint256 constant internal magnitude = 2**128; event DividendClaimed(address indexed account, uint256 amount); constructor() ERC20("TEST1", "TEST") { uint256 totalSupply = 1e6 * 1e18; _mint(msg.sender, totalSupply); maxWallet = totalSupply * 2 / 100; // 2% max wallet swapTokensAtAmount = totalSupply * 2 / 1000; // 0.2% threshold // Set fee percentages (basis points: 30 = 3.0%) rewardsFeeBuy = 30; marketingFeeBuy = 20; totalBuyFees = rewardsFeeBuy + marketingFeeBuy; rewardsFeeSell = 30; marketingFeeSell = 20; totalSellFees = rewardsFeeSell + marketingFeeSell; marketingWallet = msg.sender; // deployer wallet receives marketing ETH rewardToken = 0x039e2fB66102314Ce7b64Ce5Ce3E5183bc94aD38; // <-- Set your reward token (wS) address here // Initialize router and create pair (update router address for your network) metropolisV2Router = ImetropolisV2Router02(0x95a7e403d7cF20F675fF9273D66e94d35ba49fA3); metropolisV2Pair = ImetropolisV2Factory(metropolisV2Router.factory()).createPair(address(this), metropolisV2Router.WETH()); } // Trading is always enabled. // Override _transfer to enforce max wallet and deduct fees on buys/sells. function _transfer(address from, address to, uint256 amount) internal override { if (to != metropolisV2Pair && to != owner()) { require(balanceOf(to) + amount <= maxWallet, "Exceeds max wallet"); } uint256 fees = 0; if (!swapping && from != owner() && to != owner()) { if (from == metropolisV2Pair) { // Buy transaction fees = amount * totalBuyFees / 1000; } else if (to == metropolisV2Pair) { // Sell transaction fees = amount * totalSellFees / 1000; } } if (fees > 0) { super._transfer(from, address(this), fees); amount -= fees; } super._transfer(from, to, amount); // Update dividend correction for simple dividend tracking. int256 correction = int256(magnifiedDividendPerShare * amount); magnifiedDividendCorrections[from] += correction; magnifiedDividendCorrections[to] -= correction; // If not in a swap and threshold met on non-buy, process swap. if (!swapping && balanceOf(address(this)) >= swapTokensAtAmount && from != metropolisV2Pair) { swapBack(); } } // Swap collected fee tokens: // - Swap marketing portion for ETH and send to marketing wallet. // - Swap rewards portion for rewardToken and distribute as dividends. function swapBack() private { swapping = true; uint256 contractBalance = balanceOf(address(this)); uint256 totalFeePortion = totalBuyFees + totalSellFees; uint256 rewardsPortion = contractBalance * (rewardsFeeBuy + rewardsFeeSell) / totalFeePortion; uint256 marketingPortion = contractBalance - rewardsPortion; swapTokensForEth(marketingPortion); (bool sent, ) = marketingWallet.call{value: address(this).balance}(""); require(sent, "ETH transfer failed"); uint256 initialRewardBalance = IERC20(rewardToken).balanceOf(address(this)); swapTokensForReward(rewardsPortion); uint256 newRewardBalance = IERC20(rewardToken).balanceOf(address(this)) - initialRewardBalance; if (newRewardBalance > 0) { distributeSDividends(newRewardBalance); } swapping = false; } function swapTokensForEth(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = metropolisV2Router.WETH(); _approve(address(this), address(metropolisV2Router), tokenAmount); metropolisV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function swapTokensForReward(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = metropolisV2Router.WETH(); path[2] = rewardToken; _approve(address(this), address(metropolisV2Router), tokenAmount); metropolisV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } // Increase per-token dividend amount. function distributeSDividends(uint256 amount) internal { if (_totalSupply > 0) { magnifiedDividendPerShare += amount * magnitude / _totalSupply; } } // View function for withdrawable dividend of an account. function withdrawableSDividendOf(address account) public view returns (uint256) { int256 accumulated = int256(balanceOf(account)) * int256(magnifiedDividendPerShare) + magnifiedDividendCorrections[account]; uint256 totalAccumulated = accumulated < 0 ? 0 : uint256(accumulated); return totalAccumulated - withdrawnDividends[account]; } // Claim dividends (rewardToken) for the caller; gas paid by caller. function claimSDividend() external { uint256 dividend = withdrawableSDividendOf(msg.sender); require(dividend > 0, "No dividend"); withdrawnDividends[msg.sender] += dividend; IERC20(rewardToken).transfer(msg.sender, dividend); emit DividendClaimed(msg.sender, dividend); } 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":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DividendClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimSDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"magnifiedDividendCorrections","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"magnifiedDividendPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metropolisV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metropolisV2Router","outputs":[{"internalType":"contract ImetropolisV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardsFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdrawableSDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawnDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801562000010575f80fd5b506040518060400160405280600581526020017f54455354310000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f544553540000000000000000000000000000000000000000000000000000000081525081600390816200008e9190620008a7565b508060049081620000a09190620008a7565b505050620000b3620004f260201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f69d3c21bcecceda100000090506200018d3382620004f960201b60201c565b60646002826200019e9190620009b8565b620001aa919062000a2f565b600a819055506103e8600282620001c29190620009b8565b620001ce919062000a2f565b600b81905550601e600d819055506014600e81905550600e54600d54620001f6919062000a66565b601181905550601e600f819055506014601081905550601054600f546200021e919062000a66565b6012819055503360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073039e2fb66102314ce7b64ce5ce3e5183bc94ad3860095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395a7e403d7cf20f675ff9273d66e94d35ba49fa360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000377573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039d919062000b05565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000424573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200044a919062000b05565b6040518363ffffffff1660e01b81526004016200046992919062000b46565b6020604051808303815f875af115801562000486573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004ac919062000b05565b60075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000c1b565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200056a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005619062000bcf565b60405180910390fd5b8060025f8282546200057d919062000a66565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620005d1919062000a66565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000637919062000c00565b60405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620006bf57607f821691505b602082108103620006d557620006d46200067a565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006fc565b620007458683620006fc565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200078f6200078962000783846200075d565b62000766565b6200075d565b9050919050565b5f819050919050565b620007aa836200076f565b620007c2620007b98262000796565b84845462000708565b825550505050565b5f90565b620007d8620007ca565b620007e58184846200079f565b505050565b5b818110156200080c57620008005f82620007ce565b600181019050620007eb565b5050565b601f8211156200085b576200082581620006db565b6200083084620006ed565b8101602085101562000840578190505b620008586200084f85620006ed565b830182620007ea565b50505b505050565b5f82821c905092915050565b5f6200087d5f198460080262000860565b1980831691505092915050565b5f6200089783836200086c565b9150826002028217905092915050565b620008b28262000643565b67ffffffffffffffff811115620008ce57620008cd6200064d565b5b620008da8254620006a7565b620008e782828562000810565b5f60209050601f8311600181146200091d575f841562000908578287015190505b6200091485826200088a565b86555062000983565b601f1984166200092d86620006db565b5f5b8281101562000956578489015182556001820191506020850194506020810190506200092f565b8683101562000976578489015162000972601f8916826200086c565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620009c4826200075d565b9150620009d1836200075d565b9250828202620009e1816200075d565b91508282048414831517620009fb57620009fa6200098b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a3b826200075d565b915062000a48836200075d565b92508262000a5b5762000a5a62000a02565b5b828204905092915050565b5f62000a72826200075d565b915062000a7f836200075d565b925082820190508082111562000a9a5762000a996200098b565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000acf8262000aa4565b9050919050565b62000ae18162000ac3565b811462000aec575f80fd5b50565b5f8151905062000aff8162000ad6565b92915050565b5f6020828403121562000b1d5762000b1c62000aa0565b5b5f62000b2c8482850162000aef565b91505092915050565b62000b408162000ac3565b82525050565b5f60408201905062000b5b5f83018562000b35565b62000b6a602083018462000b35565b9392505050565b5f82825260208201905092915050565b7f4d696e7420746f207a65726f00000000000000000000000000000000000000005f82015250565b5f62000bb7600c8362000b71565b915062000bc48262000b81565b602082019050919050565b5f6020820190508181035f83015262000be88162000ba9565b9050919050565b62000bfa816200075d565b82525050565b5f60208201905062000c155f83018462000bef565b92915050565b612a168062000c295f395ff3fe6080604052600436106101ba575f3560e01c806395d89b41116100eb578063dd62ed3e11610089578063e2f4560511610063578063e2f4560514610631578063f2fde38b1461065b578063f7c618c114610683578063f8b45b05146106ad576101c1565b8063dd62ed3e1461058f578063de3aaf61146105cb578063e17527e214610607576101c1565b8063ac87cb57116100c5578063ac87cb57146104e9578063b9e9370014610525578063bbdc440a1461054f578063d0a3981414610565576101c1565b806395d89b411461044757806397a0672414610471578063a9059cbb146104ad576101c1565b806323b872dd11610158578063653c251a11610132578063653c251a1461038d57806370a08231146103b757806375f0a874146103f35780638da5cb5b1461041d576101c1565b806323b872dd146102fd578063313ce567146103395780633a7960e014610363576101c1565b806310075a691161019457806310075a691461025557806313374e7a1461027f57806318160ddd146102a957806320073a3e146102d3576101c1565b806303898c17146101c557806306fdde03146101ef578063095ea7b314610219576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106d7565b6040516101e69190611e98565b60405180910390f35b3480156101fa575f80fd5b506102036106dd565b6040516102109190611f3b565b60405180910390f35b348015610224575f80fd5b5061023f600480360381019061023a9190611fe3565b61076d565b60405161024c919061203b565b60405180910390f35b348015610260575f80fd5b5061026961078a565b6040516102769190611e98565b60405180910390f35b34801561028a575f80fd5b50610293610790565b6040516102a09190611e98565b60405180910390f35b3480156102b4575f80fd5b506102bd610796565b6040516102ca9190611e98565b60405180910390f35b3480156102de575f80fd5b506102e761079f565b6040516102f49190612063565b60405180910390f35b348015610308575f80fd5b50610323600480360381019061031e919061207c565b6107c4565b604051610330919061203b565b60405180910390f35b348015610344575f80fd5b5061034d610877565b60405161035a91906120e7565b60405180910390f35b34801561036e575f80fd5b5061037761087f565b6040516103849190611e98565b60405180910390f35b348015610398575f80fd5b506103a1610885565b6040516103ae919061215b565b60405180910390f35b3480156103c2575f80fd5b506103dd60048036038101906103d89190612174565b6108aa565b6040516103ea9190611e98565b60405180910390f35b3480156103fe575f80fd5b506104076108ef565b6040516104149190612063565b60405180910390f35b348015610428575f80fd5b50610431610914565b60405161043e9190612063565b60405180910390f35b348015610452575f80fd5b5061045b61093c565b6040516104689190611f3b565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612174565b6109cc565b6040516104a491906121b7565b60405180910390f35b3480156104b8575f80fd5b506104d360048036038101906104ce9190611fe3565b6109e1565b6040516104e0919061203b565b60405180910390f35b3480156104f4575f80fd5b5061050f600480360381019061050a9190612174565b6109fe565b60405161051c9190611e98565b60405180910390f35b348015610530575f80fd5b50610539610ac4565b6040516105469190611e98565b60405180910390f35b34801561055a575f80fd5b50610563610aca565b005b348015610570575f80fd5b50610579610c59565b6040516105869190611e98565b60405180910390f35b34801561059a575f80fd5b506105b560048036038101906105b091906121d0565b610c5f565b6040516105c29190611e98565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec9190612174565b610ce1565b6040516105fe9190611e98565b60405180910390f35b348015610612575f80fd5b5061061b610cf6565b6040516106289190611e98565b60405180910390f35b34801561063c575f80fd5b50610645610cfc565b6040516106529190611e98565b60405180910390f35b348015610666575f80fd5b50610681600480360381019061067c9190612174565b610d02565b005b34801561068e575f80fd5b50610697610ec4565b6040516106a49190612063565b60405180910390f35b3480156106b8575f80fd5b506106c1610ee9565b6040516106ce9190611e98565b60405180910390f35b600f5481565b6060600380546106ec9061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546107189061223b565b80156107635780601f1061073a57610100808354040283529160200191610763565b820191905f5260205f20905b81548152906001019060200180831161074657829003601f168201915b5050505050905090565b5f610780610779610eef565b8484610ef6565b6001905092915050565b600e5481565b60105481565b5f600254905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107d0848484611084565b61086c846107dc610eef565b8460015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610823610eef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108679190612298565b610ef6565b600190509392505050565b5f6012905090565b60135481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461094b9061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546109779061223b565b80156109c25780601f10610999576101008083540402835291602001916109c2565b820191905f5260205f20905b8154815290600101906020018083116109a557829003601f168201915b5050505050905090565b6014602052805f5260405f205f915090505481565b5f6109f46109ed610eef565b8484611084565b6001905092915050565b5f8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054601354610a4a856108aa565b610a5491906122cb565b610a5e9190612341565b90505f808212610a6e5781610a70565b5f5b905060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481610abb9190612298565b92505050919050565b60115481565b5f610ad4336109fe565b90505f8111610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f906123cc565b60405180910390fd5b8060155f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b6491906123ea565b9250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610bc792919061241d565b6020604051808303815f875af1158015610be3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c07919061246e565b503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c5682604051610c4e9190611e98565b60405180910390a250565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6015602052805f5260405f205f915090505481565b600d5481565b600b5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d42610eef565b73ffffffffffffffffffffffffffffffffffffffff1614610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f906124e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd9061254b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f5e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f949061254b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110779190611e98565b60405180910390a3505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561111457506110e4610914565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561117257600a5481611126846108aa565b61113091906123ea565b1115611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906125b3565b60405180910390fd5b5b5f600c5f9054906101000a900460ff161580156111c25750611192610914565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561120157506111d1610914565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f05760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127c576103e86011548361126b91906125d1565b611275919061263f565b90506112ef565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ee576103e8601254836112e191906125d1565b6112eb919061263f565b90505b5b5b5f81111561131257611303843083611468565b808261130f9190612298565b91505b61131d848484611468565b5f8260135461132c91906125d1565b90508060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461137a9190612341565b925050819055508060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113cd919061266f565b92505081905550600c5f9054906101000a900460ff161580156113fa5750600b546113f7306108aa565b10155b8015611453575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561146157611460611692565b5b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061254b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611589906126f9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461162091906123ea565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116849190611e98565b60405180910390a350505050565b6001600c5f6101000a81548160ff0219169083151502179055505f6116b6306108aa565b90505f6012546011546116c991906123ea565b90505f81600f54600d546116dd91906123ea565b846116e891906125d1565b6116f2919061263f565b90505f81846117019190612298565b905061170c81611955565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161175290612744565b5f6040518083038185875af1925050503d805f811461178c576040519150601f19603f3d011682016040523d82523d5f602084013e611791565b606091505b50509050806117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc906127a2565b60405180910390fd5b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118309190612063565b602060405180830381865afa15801561184b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061186f91906127d4565b905061187a84611b8b565b5f8160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118d69190612063565b602060405180830381865afa1580156118f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191591906127d4565b61191f9190612298565b90505f8111156119335761193281611e31565b5b5f600c5f6101000a81548160ff02191690831515021790555050505050505050565b5f600267ffffffffffffffff811115611971576119706127ff565b5b60405190808252806020026020018201604052801561199f5781602001602082028036833780820191505090505b50905030815f815181106119b6576119b561282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7e919061286d565b81600181518110611a9257611a9161282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611af83060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ef6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b5a959493929190612988565b5f604051808303815f87803b158015611b71575f80fd5b505af1158015611b83573d5f803e3d5ffd5b505050505050565b5f600367ffffffffffffffff811115611ba757611ba66127ff565b5b604051908082528060200260200182016040528015611bd55781602001602082028036833780820191505090505b50905030815f81518110611bec57611beb61282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb4919061286d565b81600181518110611cc857611cc761282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110611d3857611d3761282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ef6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401611e00959493929190612988565b5f604051808303815f87803b158015611e17575f80fd5b505af1158015611e29573d5f803e3d5ffd5b505050505050565b5f6002541115611e7d5760025470010000000000000000000000000000000082611e5b91906125d1565b611e65919061263f565b60135f828254611e7591906123ea565b925050819055505b50565b5f819050919050565b611e9281611e80565b82525050565b5f602082019050611eab5f830184611e89565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ee8578082015181840152602081019050611ecd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0d82611eb1565b611f178185611ebb565b9350611f27818560208601611ecb565b611f3081611ef3565b840191505092915050565b5f6020820190508181035f830152611f538184611f03565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f8882611f5f565b9050919050565b611f9881611f7e565b8114611fa2575f80fd5b50565b5f81359050611fb381611f8f565b92915050565b611fc281611e80565b8114611fcc575f80fd5b50565b5f81359050611fdd81611fb9565b92915050565b5f8060408385031215611ff957611ff8611f5b565b5b5f61200685828601611fa5565b925050602061201785828601611fcf565b9150509250929050565b5f8115159050919050565b61203581612021565b82525050565b5f60208201905061204e5f83018461202c565b92915050565b61205d81611f7e565b82525050565b5f6020820190506120765f830184612054565b92915050565b5f805f6060848603121561209357612092611f5b565b5b5f6120a086828701611fa5565b93505060206120b186828701611fa5565b92505060406120c286828701611fcf565b9150509250925092565b5f60ff82169050919050565b6120e1816120cc565b82525050565b5f6020820190506120fa5f8301846120d8565b92915050565b5f819050919050565b5f61212361211e61211984611f5f565b612100565b611f5f565b9050919050565b5f61213482612109565b9050919050565b5f6121458261212a565b9050919050565b6121558161213b565b82525050565b5f60208201905061216e5f83018461214c565b92915050565b5f6020828403121561218957612188611f5b565b5b5f61219684828501611fa5565b91505092915050565b5f819050919050565b6121b18161219f565b82525050565b5f6020820190506121ca5f8301846121a8565b92915050565b5f80604083850312156121e6576121e5611f5b565b5b5f6121f385828601611fa5565b925050602061220485828601611fa5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061225257607f821691505b6020821081036122655761226461220e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6122a282611e80565b91506122ad83611e80565b92508282039050818111156122c5576122c461226b565b5b92915050565b5f6122d58261219f565b91506122e08361219f565b92508282026122ee8161219f565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156123255761232461226b565b5b828205841483151761233a5761233961226b565b5b5092915050565b5f61234b8261219f565b91506123568361219f565b92508282019050828112155f8312168382125f84121516171561237c5761237b61226b565b5b92915050565b7f4e6f206469766964656e640000000000000000000000000000000000000000005f82015250565b5f6123b6600b83611ebb565b91506123c182612382565b602082019050919050565b5f6020820190508181035f8301526123e3816123aa565b9050919050565b5f6123f482611e80565b91506123ff83611e80565b92508282019050808211156124175761241661226b565b5b92915050565b5f6040820190506124305f830185612054565b61243d6020830184611e89565b9392505050565b61244d81612021565b8114612457575f80fd5b50565b5f8151905061246881612444565b92915050565b5f6020828403121561248357612482611f5b565b5b5f6124908482850161245a565b91505092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124cd600983611ebb565b91506124d882612499565b602082019050919050565b5f6020820190508181035f8301526124fa816124c1565b9050919050565b7f5a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f612535600c83611ebb565b915061254082612501565b602082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45786365656473206d61782077616c6c657400000000000000000000000000005f82015250565b5f61259d601283611ebb565b91506125a882612569565b602082019050919050565b5f6020820190508181035f8301526125ca81612591565b9050919050565b5f6125db82611e80565b91506125e683611e80565b92508282026125f481611e80565b9150828204841483151761260b5761260a61226b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61264982611e80565b915061265483611e80565b92508261266457612663612612565b5b828204905092915050565b5f6126798261219f565b91506126848361219f565b925082820390508181125f8412168282135f8512151617156126a9576126a861226b565b5b92915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6126e3601483611ebb565b91506126ee826126af565b602082019050919050565b5f6020820190508181035f830152612710816126d7565b9050919050565b5f81905092915050565b50565b5f61272f5f83612717565b915061273a82612721565b5f82019050919050565b5f61274e82612724565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f61278c601383611ebb565b915061279782612758565b602082019050919050565b5f6020820190508181035f8301526127b981612780565b9050919050565b5f815190506127ce81611fb9565b92915050565b5f602082840312156127e9576127e8611f5b565b5b5f6127f6848285016127c0565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061286781611f8f565b92915050565b5f6020828403121561288257612881611f5b565b5b5f61288f84828501612859565b91505092915050565b5f819050919050565b5f6128bb6128b66128b184612898565b612100565b611e80565b9050919050565b6128cb816128a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61290381611f7e565b82525050565b5f61291483836128fa565b60208301905092915050565b5f602082019050919050565b5f612936826128d1565b61294081856128db565b935061294b836128eb565b805f5b8381101561297b5781516129628882612909565b975061296d83612920565b92505060018101905061294e565b5085935050505092915050565b5f60a08201905061299b5f830188611e89565b6129a860208301876128c2565b81810360408301526129ba818661292c565b90506129c96060830185612054565b6129d66080830184611e89565b969550505050505056fea2646970667358221220651db216138e80fa100ecc0806ad9fd3020f6f055e5671ad11760a53ce1724c164736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101ba575f3560e01c806395d89b41116100eb578063dd62ed3e11610089578063e2f4560511610063578063e2f4560514610631578063f2fde38b1461065b578063f7c618c114610683578063f8b45b05146106ad576101c1565b8063dd62ed3e1461058f578063de3aaf61146105cb578063e17527e214610607576101c1565b8063ac87cb57116100c5578063ac87cb57146104e9578063b9e9370014610525578063bbdc440a1461054f578063d0a3981414610565576101c1565b806395d89b411461044757806397a0672414610471578063a9059cbb146104ad576101c1565b806323b872dd11610158578063653c251a11610132578063653c251a1461038d57806370a08231146103b757806375f0a874146103f35780638da5cb5b1461041d576101c1565b806323b872dd146102fd578063313ce567146103395780633a7960e014610363576101c1565b806310075a691161019457806310075a691461025557806313374e7a1461027f57806318160ddd146102a957806320073a3e146102d3576101c1565b806303898c17146101c557806306fdde03146101ef578063095ea7b314610219576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d96106d7565b6040516101e69190611e98565b60405180910390f35b3480156101fa575f80fd5b506102036106dd565b6040516102109190611f3b565b60405180910390f35b348015610224575f80fd5b5061023f600480360381019061023a9190611fe3565b61076d565b60405161024c919061203b565b60405180910390f35b348015610260575f80fd5b5061026961078a565b6040516102769190611e98565b60405180910390f35b34801561028a575f80fd5b50610293610790565b6040516102a09190611e98565b60405180910390f35b3480156102b4575f80fd5b506102bd610796565b6040516102ca9190611e98565b60405180910390f35b3480156102de575f80fd5b506102e761079f565b6040516102f49190612063565b60405180910390f35b348015610308575f80fd5b50610323600480360381019061031e919061207c565b6107c4565b604051610330919061203b565b60405180910390f35b348015610344575f80fd5b5061034d610877565b60405161035a91906120e7565b60405180910390f35b34801561036e575f80fd5b5061037761087f565b6040516103849190611e98565b60405180910390f35b348015610398575f80fd5b506103a1610885565b6040516103ae919061215b565b60405180910390f35b3480156103c2575f80fd5b506103dd60048036038101906103d89190612174565b6108aa565b6040516103ea9190611e98565b60405180910390f35b3480156103fe575f80fd5b506104076108ef565b6040516104149190612063565b60405180910390f35b348015610428575f80fd5b50610431610914565b60405161043e9190612063565b60405180910390f35b348015610452575f80fd5b5061045b61093c565b6040516104689190611f3b565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612174565b6109cc565b6040516104a491906121b7565b60405180910390f35b3480156104b8575f80fd5b506104d360048036038101906104ce9190611fe3565b6109e1565b6040516104e0919061203b565b60405180910390f35b3480156104f4575f80fd5b5061050f600480360381019061050a9190612174565b6109fe565b60405161051c9190611e98565b60405180910390f35b348015610530575f80fd5b50610539610ac4565b6040516105469190611e98565b60405180910390f35b34801561055a575f80fd5b50610563610aca565b005b348015610570575f80fd5b50610579610c59565b6040516105869190611e98565b60405180910390f35b34801561059a575f80fd5b506105b560048036038101906105b091906121d0565b610c5f565b6040516105c29190611e98565b60405180910390f35b3480156105d6575f80fd5b506105f160048036038101906105ec9190612174565b610ce1565b6040516105fe9190611e98565b60405180910390f35b348015610612575f80fd5b5061061b610cf6565b6040516106289190611e98565b60405180910390f35b34801561063c575f80fd5b50610645610cfc565b6040516106529190611e98565b60405180910390f35b348015610666575f80fd5b50610681600480360381019061067c9190612174565b610d02565b005b34801561068e575f80fd5b50610697610ec4565b6040516106a49190612063565b60405180910390f35b3480156106b8575f80fd5b506106c1610ee9565b6040516106ce9190611e98565b60405180910390f35b600f5481565b6060600380546106ec9061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546107189061223b565b80156107635780601f1061073a57610100808354040283529160200191610763565b820191905f5260205f20905b81548152906001019060200180831161074657829003601f168201915b5050505050905090565b5f610780610779610eef565b8484610ef6565b6001905092915050565b600e5481565b60105481565b5f600254905090565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6107d0848484611084565b61086c846107dc610eef565b8460015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610823610eef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546108679190612298565b610ef6565b600190509392505050565b5f6012905090565b60135481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461094b9061223b565b80601f01602080910402602001604051908101604052809291908181526020018280546109779061223b565b80156109c25780601f10610999576101008083540402835291602001916109c2565b820191905f5260205f20905b8154815290600101906020018083116109a557829003601f168201915b5050505050905090565b6014602052805f5260405f205f915090505481565b5f6109f46109ed610eef565b8484611084565b6001905092915050565b5f8060145f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054601354610a4a856108aa565b610a5491906122cb565b610a5e9190612341565b90505f808212610a6e5781610a70565b5f5b905060155f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481610abb9190612298565b92505050919050565b60115481565b5f610ad4336109fe565b90505f8111610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f906123cc565b60405180910390fd5b8060155f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610b6491906123ea565b9250508190555060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610bc792919061241d565b6020604051808303815f875af1158015610be3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c07919061246e565b503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c5682604051610c4e9190611e98565b60405180910390a250565b60125481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6015602052805f5260405f205f915090505481565b600d5481565b600b5481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d42610eef565b73ffffffffffffffffffffffffffffffffffffffff1614610d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8f906124e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd9061254b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f5e57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f949061254b565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110779190611e98565b60405180910390a3505050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561111457506110e4610914565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561117257600a5481611126846108aa565b61113091906123ea565b1115611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906125b3565b60405180910390fd5b5b5f600c5f9054906101000a900460ff161580156111c25750611192610914565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561120157506111d1610914565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112f05760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361127c576103e86011548361126b91906125d1565b611275919061263f565b90506112ef565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ee576103e8601254836112e191906125d1565b6112eb919061263f565b90505b5b5b5f81111561131257611303843083611468565b808261130f9190612298565b91505b61131d848484611468565b5f8260135461132c91906125d1565b90508060145f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461137a9190612341565b925050819055508060145f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113cd919061266f565b92505081905550600c5f9054906101000a900460ff161580156113fa5750600b546113f7306108aa565b10155b8015611453575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561146157611460611692565b5b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114d057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061254b565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611592576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611589906126f9565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461162091906123ea565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116849190611e98565b60405180910390a350505050565b6001600c5f6101000a81548160ff0219169083151502179055505f6116b6306108aa565b90505f6012546011546116c991906123ea565b90505f81600f54600d546116dd91906123ea565b846116e891906125d1565b6116f2919061263f565b90505f81846117019190612298565b905061170c81611955565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161175290612744565b5f6040518083038185875af1925050503d805f811461178c576040519150601f19603f3d011682016040523d82523d5f602084013e611791565b606091505b50509050806117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc906127a2565b60405180910390fd5b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118309190612063565b602060405180830381865afa15801561184b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061186f91906127d4565b905061187a84611b8b565b5f8160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016118d69190612063565b602060405180830381865afa1580156118f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061191591906127d4565b61191f9190612298565b90505f8111156119335761193281611e31565b5b5f600c5f6101000a81548160ff02191690831515021790555050505050505050565b5f600267ffffffffffffffff811115611971576119706127ff565b5b60405190808252806020026020018201604052801561199f5781602001602082028036833780820191505090505b50905030815f815181106119b6576119b561282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7e919061286d565b81600181518110611a9257611a9161282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611af83060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ef6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b5a959493929190612988565b5f604051808303815f87803b158015611b71575f80fd5b505af1158015611b83573d5f803e3d5ffd5b505050505050565b5f600367ffffffffffffffff811115611ba757611ba66127ff565b5b604051908082528060200260200182016040528015611bd55781602001602082028036833780820191505090505b50905030815f81518110611bec57611beb61282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb4919061286d565b81600181518110611cc857611cc761282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110611d3857611d3761282c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d9e3060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ef6565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795835f8430426040518663ffffffff1660e01b8152600401611e00959493929190612988565b5f604051808303815f87803b158015611e17575f80fd5b505af1158015611e29573d5f803e3d5ffd5b505050505050565b5f6002541115611e7d5760025470010000000000000000000000000000000082611e5b91906125d1565b611e65919061263f565b60135f828254611e7591906123ea565b925050819055505b50565b5f819050919050565b611e9281611e80565b82525050565b5f602082019050611eab5f830184611e89565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611ee8578082015181840152602081019050611ecd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f0d82611eb1565b611f178185611ebb565b9350611f27818560208601611ecb565b611f3081611ef3565b840191505092915050565b5f6020820190508181035f830152611f538184611f03565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f8882611f5f565b9050919050565b611f9881611f7e565b8114611fa2575f80fd5b50565b5f81359050611fb381611f8f565b92915050565b611fc281611e80565b8114611fcc575f80fd5b50565b5f81359050611fdd81611fb9565b92915050565b5f8060408385031215611ff957611ff8611f5b565b5b5f61200685828601611fa5565b925050602061201785828601611fcf565b9150509250929050565b5f8115159050919050565b61203581612021565b82525050565b5f60208201905061204e5f83018461202c565b92915050565b61205d81611f7e565b82525050565b5f6020820190506120765f830184612054565b92915050565b5f805f6060848603121561209357612092611f5b565b5b5f6120a086828701611fa5565b93505060206120b186828701611fa5565b92505060406120c286828701611fcf565b9150509250925092565b5f60ff82169050919050565b6120e1816120cc565b82525050565b5f6020820190506120fa5f8301846120d8565b92915050565b5f819050919050565b5f61212361211e61211984611f5f565b612100565b611f5f565b9050919050565b5f61213482612109565b9050919050565b5f6121458261212a565b9050919050565b6121558161213b565b82525050565b5f60208201905061216e5f83018461214c565b92915050565b5f6020828403121561218957612188611f5b565b5b5f61219684828501611fa5565b91505092915050565b5f819050919050565b6121b18161219f565b82525050565b5f6020820190506121ca5f8301846121a8565b92915050565b5f80604083850312156121e6576121e5611f5b565b5b5f6121f385828601611fa5565b925050602061220485828601611fa5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061225257607f821691505b6020821081036122655761226461220e565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6122a282611e80565b91506122ad83611e80565b92508282039050818111156122c5576122c461226b565b5b92915050565b5f6122d58261219f565b91506122e08361219f565b92508282026122ee8161219f565b91507f800000000000000000000000000000000000000000000000000000000000000084145f841216156123255761232461226b565b5b828205841483151761233a5761233961226b565b5b5092915050565b5f61234b8261219f565b91506123568361219f565b92508282019050828112155f8312168382125f84121516171561237c5761237b61226b565b5b92915050565b7f4e6f206469766964656e640000000000000000000000000000000000000000005f82015250565b5f6123b6600b83611ebb565b91506123c182612382565b602082019050919050565b5f6020820190508181035f8301526123e3816123aa565b9050919050565b5f6123f482611e80565b91506123ff83611e80565b92508282019050808211156124175761241661226b565b5b92915050565b5f6040820190506124305f830185612054565b61243d6020830184611e89565b9392505050565b61244d81612021565b8114612457575f80fd5b50565b5f8151905061246881612444565b92915050565b5f6020828403121561248357612482611f5b565b5b5f6124908482850161245a565b91505092915050565b7f4e6f74206f776e657200000000000000000000000000000000000000000000005f82015250565b5f6124cd600983611ebb565b91506124d882612499565b602082019050919050565b5f6020820190508181035f8301526124fa816124c1565b9050919050565b7f5a65726f206164647265737300000000000000000000000000000000000000005f82015250565b5f612535600c83611ebb565b915061254082612501565b602082019050919050565b5f6020820190508181035f83015261256281612529565b9050919050565b7f45786365656473206d61782077616c6c657400000000000000000000000000005f82015250565b5f61259d601283611ebb565b91506125a882612569565b602082019050919050565b5f6020820190508181035f8301526125ca81612591565b9050919050565b5f6125db82611e80565b91506125e683611e80565b92508282026125f481611e80565b9150828204841483151761260b5761260a61226b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61264982611e80565b915061265483611e80565b92508261266457612663612612565b5b828204905092915050565b5f6126798261219f565b91506126848361219f565b925082820390508181125f8412168282135f8512151617156126a9576126a861226b565b5b92915050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f6126e3601483611ebb565b91506126ee826126af565b602082019050919050565b5f6020820190508181035f830152612710816126d7565b9050919050565b5f81905092915050565b50565b5f61272f5f83612717565b915061273a82612721565b5f82019050919050565b5f61274e82612724565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f61278c601383611ebb565b915061279782612758565b602082019050919050565b5f6020820190508181035f8301526127b981612780565b9050919050565b5f815190506127ce81611fb9565b92915050565b5f602082840312156127e9576127e8611f5b565b5b5f6127f6848285016127c0565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061286781611f8f565b92915050565b5f6020828403121561288257612881611f5b565b5b5f61288f84828501612859565b91505092915050565b5f819050919050565b5f6128bb6128b66128b184612898565b612100565b611e80565b9050919050565b6128cb816128a1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61290381611f7e565b82525050565b5f61291483836128fa565b60208301905092915050565b5f602082019050919050565b5f612936826128d1565b61294081856128db565b935061294b836128eb565b805f5b8381101561297b5781516129628882612909565b975061296d83612920565b92505060018101905061294e565b5085935050505092915050565b5f60a08201905061299b5f830188611e89565b6129a860208301876128c2565b81810360408301526129ba818661292c565b90506129c96060830185612054565b6129d66080830184611e89565b969550505050505056fea2646970667358221220651db216138e80fa100ecc0806ad9fd3020f6f055e5671ad11760a53ce1724c164736f6c63430008140033
Deployed Bytecode Sourcemap
4662:6664:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5144:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1846:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2579:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5107:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5180:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2062:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4755:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2744:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1996:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5346:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4701:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2152:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;445:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1919:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5393:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10507:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10959:322;;;;;;;;;;;;;:::i;:::-;;5252:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2432:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5072:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4946:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;595:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4830:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4915:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5144:29;;;;:::o;1846:67::-;1882:13;1905:5;1898:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1846:67;:::o;2579:159::-;2653:4;2669:39;2678:12;:10;:12::i;:::-;2692:7;2701:6;2669:8;:39::i;:::-;2726:4;2719:11;;2579:159;;;;:::o;5107:30::-;;;;:::o;5180:31::-;;;;:::o;2062:84::-;2114:7;2131:12;;2124:19;;2062:84;:::o;4755:31::-;;;;;;;;;;;;;:::o;2744:264::-;2841:4;2857:36;2867:6;2875:9;2886:6;2857:9;:36::i;:::-;2904:74;2913:6;2921:12;:10;:12::i;:::-;2971:6;2935:11;:19;2947:6;2935:19;;;;;;;;;;;;;;;:33;2955:12;:10;:12::i;:::-;2935:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;2904:8;:74::i;:::-;2996:4;2989:11;;2744:264;;;;;:::o;1996:60::-;2036:5;2051:2;2044:9;;1996:60;:::o;5346:40::-;;;;:::o;4701:47::-;;;;;;;;;;;;;:::o;2152:103::-;2217:7;2234:9;:18;2244:7;2234:18;;;;;;;;;;;;;;;;2227:25;;2152:103;;;:::o;4793:30::-;;;;;;;;;;;;;:::o;445:65::-;483:7;501:6;;;;;;;;;;;494:13;;445:65;:::o;1919:71::-;1957:13;1980:7;1973:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1919:71;:::o;5393:62::-;;;;;;;;;;;;;;;;;:::o;2261:165::-;2338:4;2354:42;2364:12;:10;:12::i;:::-;2378:9;2389:6;2354:9;:42::i;:::-;2414:4;2407:11;;2261:165;;;;:::o;10507:366::-;10578:7;10598:18;10684:28;:37;10713:7;10684:37;;;;;;;;;;;;;;;;10655:25;;10626:18;10636:7;10626:9;:18::i;:::-;10619:62;;;;:::i;:::-;:102;;;;:::i;:::-;10598:123;;10732:24;10773:1;10759:11;:15;:42;;10789:11;10759:42;;;10777:1;10759:42;10732:69;;10838:18;:27;10857:7;10838:27;;;;;;;;;;;;;;;;10819:16;:46;;;;:::i;:::-;10812:53;;;;10507:366;;;:::o;5218:27::-;;;;:::o;10959:322::-;11005:16;11024:35;11048:10;11024:23;:35::i;:::-;11005:54;;11089:1;11078:8;:12;11070:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;11151:8;11117:18;:30;11136:10;11117:30;;;;;;;;;;;;;;;;:42;;;;;;;:::i;:::-;;;;;;;;11177:11;;;;;;;;;;;11170:28;;;11199:10;11211:8;11170:50;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11252:10;11236:37;;;11264:8;11236:37;;;;;;:::i;:::-;;;;;;;;10994:287;10959:322::o;5252:28::-;;;;:::o;2432:141::-;2512:7;2538:11;:18;2550:5;2538:18;;;;;;;;;;;;;;;:27;2557:7;2538:27;;;;;;;;;;;;;;;;2531:34;;2432:141;;;;:::o;5462:53::-;;;;;;;;;;;;;;;;;:::o;5072:28::-;;;;:::o;4946:33::-;;;;:::o;595:210::-;563:6;;;;;;;;;;;547:22;;:12;:10;:12::i;:::-;:22;;;539:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;696:1:::1;676:22;;:8;:22;;::::0;668:47:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;760:8;731:38;;752:6;;;;;;;;;;;731:38;;;;;;;;;;;;789:8;780:6;;:17;;;;;;;;;;;;;;;;;;595:210:::0;:::o;4830:26::-;;;;;;;;;;;;;:::o;4915:24::-;;;;:::o;93:98::-;146:7;173:10;166:17;;93:98;:::o;3737:266::-;3856:1;3839:19;;:5;:19;;;;:44;;;;;3881:1;3862:21;;:7;:21;;;;3839:44;3831:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;3941:6;3911:11;:18;3923:5;3911:18;;;;;;;;;;;;;;;:27;3930:7;3911:27;;;;;;;;;;;;;;;:36;;;;3979:7;3963:32;;3972:5;3963:32;;;3988:6;3963:32;;;;;;:::i;:::-;;;;;;;;3737:266;;;:::o;6890:1270::-;6990:16;;;;;;;;;;;6984:22;;:2;:22;;;;:39;;;;;7016:7;:5;:7::i;:::-;7010:13;;:2;:13;;;;6984:39;6980:138;;;7074:9;;7064:6;7048:13;7058:2;7048:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;7040:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6980:138;7138:12;7170:8;;;;;;;;;;;7169:9;:28;;;;;7190:7;:5;:7::i;:::-;7182:15;;:4;:15;;;;7169:28;:45;;;;;7207:7;:5;:7::i;:::-;7201:13;;:2;:13;;;;7169:45;7165:321;;;7243:16;;;;;;;;;;;7235:24;;:4;:24;;;7231:244;;7330:4;7315:12;;7306:6;:21;;;;:::i;:::-;:28;;;;:::i;:::-;7299:35;;7231:244;;;7366:16;;;;;;;;;;;7360:22;;:2;:22;;;7356:119;;7455:4;7439:13;;7430:6;:22;;;;:::i;:::-;:29;;;;:::i;:::-;7423:36;;7356:119;7231:244;7165:321;7517:1;7510:4;:8;7506:112;;;7535:42;7551:4;7565;7572;7535:15;:42::i;:::-;7602:4;7592:14;;;;;:::i;:::-;;;7506:112;7628:33;7644:4;7650:2;7654:6;7628:15;:33::i;:::-;7751:17;7806:6;7778:25;;:34;;;;:::i;:::-;7751:62;;7862:10;7824:28;:34;7853:4;7824:34;;;;;;;;;;;;;;;;:48;;;;;;;:::i;:::-;;;;;;;;7919:10;7883:28;:32;7912:2;7883:32;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;8028:8;;;;;;;;;;;8027:9;:59;;;;;8068:18;;8040:24;8058:4;8040:9;:24::i;:::-;:46;;8027:59;:87;;;;;8098:16;;;;;;;;;;;8090:24;;:4;:24;;;;8027:87;8023:130;;;8131:10;:8;:10::i;:::-;8023:130;6969:1191;;6890:1270;;;:::o;3014:456::-;3138:1;3120:20;;:6;:20;;;;:47;;;;;3165:1;3144:23;;:9;:23;;;;3120:47;3112:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3195:21;3219:9;:17;3229:6;3219:17;;;;;;;;;;;;;;;;3195:41;;3272:6;3255:13;:23;;3247:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3362:6;3346:13;:22;3326:9;:17;3336:6;3326:17;;;;;;;;;;;;;;;:42;;;;3405:6;3381:9;:20;3391:9;3381:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;3444:9;3427:35;;3436:6;3427:35;;;3455:6;3427:35;;;;;;:::i;:::-;;;;;;;;3101:369;3014:456;;;:::o;8354:920::-;8404:4;8393:8;;:15;;;;;;;;;;;;;;;;;;8419:23;8445:24;8463:4;8445:9;:24::i;:::-;8419:50;;8480:23;8521:13;;8506:12;;:28;;;;:::i;:::-;8480:54;;8545:22;8623:15;8605:14;;8589:13;;:30;;;;:::i;:::-;8570:15;:50;;;;:::i;:::-;:68;;;;:::i;:::-;8545:93;;8649:24;8694:14;8676:15;:32;;;;:::i;:::-;8649:59;;8729:34;8746:16;8729;:34::i;:::-;8775:9;8790:15;;;;;;;;;;;:20;;8818:21;8790:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8774:70;;;8863:4;8855:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;8912:28;8950:11;;;;;;;;;;;8943:29;;;8981:4;8943:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8912:75;;8998:35;9018:14;8998:19;:35::i;:::-;9044:24;9118:20;9078:11;;;;;;;;;;;9071:29;;;9109:4;9071:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;;;;:::i;:::-;9044:94;;9172:1;9153:16;:20;9149:91;;;9190:38;9211:16;9190:20;:38::i;:::-;9149:91;9261:5;9250:8;;:16;;;;;;;;;;;;;;;;;;8382:892;;;;;;;8354:920::o;9286:428::-;9352:21;9390:1;9376:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9352:40;;9421:4;9403;9408:1;9403:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9447:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9437:4;9442:1;9437:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;9483:65;9500:4;9515:18;;;;;;;;;;;9536:11;9483:8;:65::i;:::-;9559:18;;;;;;;;;;;:69;;;9643:11;9656:1;9659:4;9673;9680:15;9559:147;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9341:373;9286:428;:::o;9726:466::-;9795:21;9833:1;9819:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9795:40;;9864:4;9846;9851:1;9846:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9890:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9880:4;9885:1;9880:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;9936:11;;;;;;;;;;;9926:4;9931:1;9926:7;;;;;;;;:::i;:::-;;;;;;;:21;;;;;;;;;;;9958:65;9975:4;9990:18;;;;;;;;;;;10011:11;9958:8;:65::i;:::-;10034:18;;;;;;;;;;;:72;;;10121:11;10134:1;10137:4;10151;10158:15;10034:150;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9784:408;9726:466;:::o;10248:184::-;10333:1;10318:12;;:16;10314:111;;;10401:12;;5560:6;10380;:18;;;;:::i;:::-;:33;;;;:::i;:::-;10351:25;;:62;;;;;;;:::i;:::-;;;;;;;;10314:111;10248:184;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:60::-;5233:3;5254:5;5247:12;;5205:60;;;:::o;5271:142::-;5321:9;5354:53;5372:34;5381:24;5399:5;5381:24;:::i;:::-;5372:34;:::i;:::-;5354:53;:::i;:::-;5341:66;;5271:142;;;:::o;5419:126::-;5469:9;5502:37;5533:5;5502:37;:::i;:::-;5489:50;;5419:126;;;:::o;5551:155::-;5630:9;5663:37;5694:5;5663:37;:::i;:::-;5650:50;;5551:155;;;:::o;5712:189::-;5828:66;5888:5;5828:66;:::i;:::-;5823:3;5816:79;5712:189;;:::o;5907:280::-;6029:4;6067:2;6056:9;6052:18;6044:26;;6080:100;6177:1;6166:9;6162:17;6153:6;6080:100;:::i;:::-;5907:280;;;;:::o;6193:329::-;6252:6;6301:2;6289:9;6280:7;6276:23;6272:32;6269:119;;;6307:79;;:::i;:::-;6269:119;6427:1;6452:53;6497:7;6488:6;6477:9;6473:22;6452:53;:::i;:::-;6442:63;;6398:117;6193:329;;;;:::o;6528:76::-;6564:7;6593:5;6582:16;;6528:76;;;:::o;6610:115::-;6695:23;6712:5;6695:23;:::i;:::-;6690:3;6683:36;6610:115;;:::o;6731:218::-;6822:4;6860:2;6849:9;6845:18;6837:26;;6873:69;6939:1;6928:9;6924:17;6915:6;6873:69;:::i;:::-;6731:218;;;;:::o;6955:474::-;7023:6;7031;7080:2;7068:9;7059:7;7055:23;7051:32;7048:119;;;7086:79;;:::i;:::-;7048:119;7206:1;7231:53;7276:7;7267:6;7256:9;7252:22;7231:53;:::i;:::-;7221:63;;7177:117;7333:2;7359:53;7404:7;7395:6;7384:9;7380:22;7359:53;:::i;:::-;7349:63;;7304:118;6955:474;;;;;:::o;7435:180::-;7483:77;7480:1;7473:88;7580:4;7577:1;7570:15;7604:4;7601:1;7594:15;7621:320;7665:6;7702:1;7696:4;7692:12;7682:22;;7749:1;7743:4;7739:12;7770:18;7760:81;;7826:4;7818:6;7814:17;7804:27;;7760:81;7888:2;7880:6;7877:14;7857:18;7854:38;7851:84;;7907:18;;:::i;:::-;7851:84;7672:269;7621:320;;;:::o;7947:180::-;7995:77;7992:1;7985:88;8092:4;8089:1;8082:15;8116:4;8113:1;8106:15;8133:194;8173:4;8193:20;8211:1;8193:20;:::i;:::-;8188:25;;8227:20;8245:1;8227:20;:::i;:::-;8222:25;;8271:1;8268;8264:9;8256:17;;8295:1;8289:4;8286:11;8283:37;;;8300:18;;:::i;:::-;8283:37;8133:194;;;;:::o;8333:556::-;8372:7;8395:19;8412:1;8395:19;:::i;:::-;8390:24;;8428:19;8445:1;8428:19;:::i;:::-;8423:24;;8482:1;8479;8475:9;8504:29;8521:11;8504:29;:::i;:::-;8493:40;;8591:66;8588:1;8585:73;8581:1;8578;8574:9;8570:89;8567:115;;;8662:18;;:::i;:::-;8567:115;8832:1;8823:7;8818:16;8815:1;8812:23;8792:1;8785:9;8765:84;8742:140;;8862:18;;:::i;:::-;8742:140;8380:509;8333:556;;;;:::o;8895:375::-;8934:3;8953:19;8970:1;8953:19;:::i;:::-;8948:24;;8986:19;9003:1;8986:19;:::i;:::-;8981:24;;9028:1;9025;9021:9;9014:16;;9226:1;9221:3;9217:11;9210:19;9206:1;9203;9199:9;9195:35;9178:1;9173:3;9169:11;9164:1;9161;9157:9;9150:17;9146:35;9130:110;9127:136;;;9243:18;;:::i;:::-;9127:136;8895:375;;;;:::o;9276:161::-;9416:13;9412:1;9404:6;9400:14;9393:37;9276:161;:::o;9443:366::-;9585:3;9606:67;9670:2;9665:3;9606:67;:::i;:::-;9599:74;;9682:93;9771:3;9682:93;:::i;:::-;9800:2;9795:3;9791:12;9784:19;;9443:366;;;:::o;9815:419::-;9981:4;10019:2;10008:9;10004:18;9996:26;;10068:9;10062:4;10058:20;10054:1;10043:9;10039:17;10032:47;10096:131;10222:4;10096:131;:::i;:::-;10088:139;;9815:419;;;:::o;10240:191::-;10280:3;10299:20;10317:1;10299:20;:::i;:::-;10294:25;;10333:20;10351:1;10333:20;:::i;:::-;10328:25;;10376:1;10373;10369:9;10362:16;;10397:3;10394:1;10391:10;10388:36;;;10404:18;;:::i;:::-;10388:36;10240:191;;;;:::o;10437:332::-;10558:4;10596:2;10585:9;10581:18;10573:26;;10609:71;10677:1;10666:9;10662:17;10653:6;10609:71;:::i;:::-;10690:72;10758:2;10747:9;10743:18;10734:6;10690:72;:::i;:::-;10437:332;;;;;:::o;10775:116::-;10845:21;10860:5;10845:21;:::i;:::-;10838:5;10835:32;10825:60;;10881:1;10878;10871:12;10825:60;10775:116;:::o;10897:137::-;10951:5;10982:6;10976:13;10967:22;;10998:30;11022:5;10998:30;:::i;:::-;10897:137;;;;:::o;11040:345::-;11107:6;11156:2;11144:9;11135:7;11131:23;11127:32;11124:119;;;11162:79;;:::i;:::-;11124:119;11282:1;11307:61;11360:7;11351:6;11340:9;11336:22;11307:61;:::i;:::-;11297:71;;11253:125;11040:345;;;;:::o;11391:159::-;11531:11;11527:1;11519:6;11515:14;11508:35;11391:159;:::o;11556:365::-;11698:3;11719:66;11783:1;11778:3;11719:66;:::i;:::-;11712:73;;11794:93;11883:3;11794:93;:::i;:::-;11912:2;11907:3;11903:12;11896:19;;11556:365;;;:::o;11927:419::-;12093:4;12131:2;12120:9;12116:18;12108:26;;12180:9;12174:4;12170:20;12166:1;12155:9;12151:17;12144:47;12208:131;12334:4;12208:131;:::i;:::-;12200:139;;11927:419;;;:::o;12352:162::-;12492:14;12488:1;12480:6;12476:14;12469:38;12352:162;:::o;12520:366::-;12662:3;12683:67;12747:2;12742:3;12683:67;:::i;:::-;12676:74;;12759:93;12848:3;12759:93;:::i;:::-;12877:2;12872:3;12868:12;12861:19;;12520:366;;;:::o;12892:419::-;13058:4;13096:2;13085:9;13081:18;13073:26;;13145:9;13139:4;13135:20;13131:1;13120:9;13116:17;13109:47;13173:131;13299:4;13173:131;:::i;:::-;13165:139;;12892:419;;;:::o;13317:168::-;13457:20;13453:1;13445:6;13441:14;13434:44;13317:168;:::o;13491:366::-;13633:3;13654:67;13718:2;13713:3;13654:67;:::i;:::-;13647:74;;13730:93;13819:3;13730:93;:::i;:::-;13848:2;13843:3;13839:12;13832:19;;13491:366;;;:::o;13863:419::-;14029:4;14067:2;14056:9;14052:18;14044:26;;14116:9;14110:4;14106:20;14102:1;14091:9;14087:17;14080:47;14144:131;14270:4;14144:131;:::i;:::-;14136:139;;13863:419;;;:::o;14288:410::-;14328:7;14351:20;14369:1;14351:20;:::i;:::-;14346:25;;14385:20;14403:1;14385:20;:::i;:::-;14380:25;;14440:1;14437;14433:9;14462:30;14480:11;14462:30;:::i;:::-;14451:41;;14641:1;14632:7;14628:15;14625:1;14622:22;14602:1;14595:9;14575:83;14552:139;;14671:18;;:::i;:::-;14552:139;14336:362;14288:410;;;;:::o;14704:180::-;14752:77;14749:1;14742:88;14849:4;14846:1;14839:15;14873:4;14870:1;14863:15;14890:185;14930:1;14947:20;14965:1;14947:20;:::i;:::-;14942:25;;14981:20;14999:1;14981:20;:::i;:::-;14976:25;;15020:1;15010:35;;15025:18;;:::i;:::-;15010:35;15067:1;15064;15060:9;15055:14;;14890:185;;;;:::o;15081:372::-;15120:4;15140:19;15157:1;15140:19;:::i;:::-;15135:24;;15173:19;15190:1;15173:19;:::i;:::-;15168:24;;15216:1;15213;15209:9;15201:17;;15410:1;15404:4;15400:12;15396:1;15393;15389:9;15385:28;15368:1;15362:4;15358:12;15353:1;15350;15346:9;15339:17;15335:36;15319:104;15316:130;;;15426:18;;:::i;:::-;15316:130;15081:372;;;;:::o;15459:170::-;15599:22;15595:1;15587:6;15583:14;15576:46;15459:170;:::o;15635:366::-;15777:3;15798:67;15862:2;15857:3;15798:67;:::i;:::-;15791:74;;15874:93;15963:3;15874:93;:::i;:::-;15992:2;15987:3;15983:12;15976:19;;15635:366;;;:::o;16007:419::-;16173:4;16211:2;16200:9;16196:18;16188:26;;16260:9;16254:4;16250:20;16246:1;16235:9;16231:17;16224:47;16288:131;16414:4;16288:131;:::i;:::-;16280:139;;16007:419;;;:::o;16432:147::-;16533:11;16570:3;16555:18;;16432:147;;;;:::o;16585:114::-;;:::o;16705:398::-;16864:3;16885:83;16966:1;16961:3;16885:83;:::i;:::-;16878:90;;16977:93;17066:3;16977:93;:::i;:::-;17095:1;17090:3;17086:11;17079:18;;16705:398;;;:::o;17109:379::-;17293:3;17315:147;17458:3;17315:147;:::i;:::-;17308:154;;17479:3;17472:10;;17109:379;;;:::o;17494:169::-;17634:21;17630:1;17622:6;17618:14;17611:45;17494:169;:::o;17669:366::-;17811:3;17832:67;17896:2;17891:3;17832:67;:::i;:::-;17825:74;;17908:93;17997:3;17908:93;:::i;:::-;18026:2;18021:3;18017:12;18010:19;;17669:366;;;:::o;18041:419::-;18207:4;18245:2;18234:9;18230:18;18222:26;;18294:9;18288:4;18284:20;18280:1;18269:9;18265:17;18258:47;18322:131;18448:4;18322:131;:::i;:::-;18314:139;;18041:419;;;:::o;18466:143::-;18523:5;18554:6;18548:13;18539:22;;18570:33;18597:5;18570:33;:::i;:::-;18466:143;;;;:::o;18615:351::-;18685:6;18734:2;18722:9;18713:7;18709:23;18705:32;18702:119;;;18740:79;;:::i;:::-;18702:119;18860:1;18885:64;18941:7;18932:6;18921:9;18917:22;18885:64;:::i;:::-;18875:74;;18831:128;18615:351;;;;:::o;18972:180::-;19020:77;19017:1;19010:88;19117:4;19114:1;19107:15;19141:4;19138:1;19131:15;19158:180;19206:77;19203:1;19196:88;19303:4;19300:1;19293:15;19327:4;19324:1;19317:15;19344:143;19401:5;19432:6;19426:13;19417:22;;19448:33;19475:5;19448:33;:::i;:::-;19344:143;;;;:::o;19493:351::-;19563:6;19612:2;19600:9;19591:7;19587:23;19583:32;19580:119;;;19618:79;;:::i;:::-;19580:119;19738:1;19763:64;19819:7;19810:6;19799:9;19795:22;19763:64;:::i;:::-;19753:74;;19709:128;19493:351;;;;:::o;19850:85::-;19895:7;19924:5;19913:16;;19850:85;;;:::o;19941:158::-;19999:9;20032:61;20050:42;20059:32;20085:5;20059:32;:::i;:::-;20050:42;:::i;:::-;20032:61;:::i;:::-;20019:74;;19941:158;;;:::o;20105:147::-;20200:45;20239:5;20200:45;:::i;:::-;20195:3;20188:58;20105:147;;:::o;20258:114::-;20325:6;20359:5;20353:12;20343:22;;20258:114;;;:::o;20378:184::-;20477:11;20511:6;20506:3;20499:19;20551:4;20546:3;20542:14;20527:29;;20378:184;;;;:::o;20568:132::-;20635:4;20658:3;20650:11;;20688:4;20683:3;20679:14;20671:22;;20568:132;;;:::o;20706:108::-;20783:24;20801:5;20783:24;:::i;:::-;20778:3;20771:37;20706:108;;:::o;20820:179::-;20889:10;20910:46;20952:3;20944:6;20910:46;:::i;:::-;20988:4;20983:3;20979:14;20965:28;;20820:179;;;;:::o;21005:113::-;21075:4;21107;21102:3;21098:14;21090:22;;21005:113;;;:::o;21154:732::-;21273:3;21302:54;21350:5;21302:54;:::i;:::-;21372:86;21451:6;21446:3;21372:86;:::i;:::-;21365:93;;21482:56;21532:5;21482:56;:::i;:::-;21561:7;21592:1;21577:284;21602:6;21599:1;21596:13;21577:284;;;21678:6;21672:13;21705:63;21764:3;21749:13;21705:63;:::i;:::-;21698:70;;21791:60;21844:6;21791:60;:::i;:::-;21781:70;;21637:224;21624:1;21621;21617:9;21612:14;;21577:284;;;21581:14;21877:3;21870:10;;21278:608;;;21154:732;;;;:::o;21892:831::-;22155:4;22193:3;22182:9;22178:19;22170:27;;22207:71;22275:1;22264:9;22260:17;22251:6;22207:71;:::i;:::-;22288:80;22364:2;22353:9;22349:18;22340:6;22288:80;:::i;:::-;22415:9;22409:4;22405:20;22400:2;22389:9;22385:18;22378:48;22443:108;22546:4;22537:6;22443:108;:::i;:::-;22435:116;;22561:72;22629:2;22618:9;22614:18;22605:6;22561:72;:::i;:::-;22643:73;22711:3;22700:9;22696:19;22687:6;22643:73;:::i;:::-;21892:831;;;;;;;;:::o
Swarm Source
ipfs://651db216138e80fa100ecc0806ad9fd3020f6f055e5671ad11760a53ce1724c1
[ 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.