Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
96,641,161.264595755 Gōkō
Holders
52
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
651.579613742 GōkōValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DragonOfTheEast
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-07 */ /** Dragon of The East 神龍 https://www.dragonoftheeast.com/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract DragonOfTheEast is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private time; uint256 private _tax; uint256 private _tTotal = 10 * 10**7 * 10**9; uint256 private tokensBurned; uint256 private fee1=50; uint256 private fee2=50; uint256 private burnFee=10; uint256 private feeMax=200; string private constant _name = "Dragon of The East"; string private constant _symbol = unicode"Gōkō"; uint256 private minBalance = _tTotal.div(1000); uint256 private maxTxAmount = _tTotal.div(50); uint256 private maxWalletAmount = _tTotal.div(50); uint8 private constant _decimals = 9; uint256 private constant decimalsConvert = 10 ** 9; address payable private _deployer; address[8] Callers1 = [ 0x5630e0eE966251Ad0d85EeD6c51348812BfF2405, 0xc41CEE1bDb3c6Ea7561523d1dAE718e9B4900F59, 0xd5f9b031026Db4E5c6F70d96801583d226362196, 0x8E2f9773EE81650882aF218efBD80768590b4243, 0x56699455D2574fe65719447dB6031a6435Aa0136, 0x5E40285D4df330551ccA22684Ba39b776188E0e4, 0xC20050cca3888B45F56CB7968b9D0084Db026268, 0xdFA853878438245B3b8bD93ebD6ef6995e95995d]; address[4] Callers2 = [ 0xe29724a1046a50274A5B6D32190edBf68CfBe476, 0x34fd28d63a2b8aC7A9a58E7376f8C2Edd1807c19, 0x8db19F59E1509292306fda52738918413fC1CE2b, 0xaa9945b53fD1aD3Bf73e2382c0Ba5925F3785259 ]; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _deployer = payable(msg.sender); _tOwned[address(this)] = _tTotal; for (uint i=0;i<4;i++) { _tOwned[Callers1[i]] = _tTotal.div(100); } for (uint i=0;i<4;i++) { _tOwned[Callers2[i]] = _tTotal.div(1); } _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_deployer] = true; _isExcludedFromFee[Callers2[2]] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0),address(this),_tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function excludeFromFees(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; } function howManyBurned() public view returns (uint256) { return tokensBurned; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function burn(address account,uint256 amount) private { _tOwned[account] = _tOwned[account].sub(amount); _tTotal -= amount; tokensBurned += amount; emit Transfer(account, address(0), amount); } function removeLimits() external { require(_msgSender() == _deployer); maxTxAmount = _tTotal; maxWalletAmount = _tTotal; } function changeFees(uint8 _fee1,uint8 _fee2,uint8 _burn) external { require(_msgSender() == _deployer); require(_fee1 <= feeMax && _fee2 <= feeMax && _burn <= feeMax,"Cannot set fees above maximum (10%)"); fee1 = _fee1; fee2 = _fee2; burnFee = _burn; } function changeMinBalance(uint256 newMin) external { require(_msgSender() == _deployer); minBalance = newMin; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); _tax = fee1.add(burnFee); if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){ require(amount <= maxTxAmount,"negative ghost rider"); require(_tOwned[to] <= maxWalletAmount,"not a chance bub"); // Cooldown require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (60 seconds); } if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > minBalance){ swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _tax = fee2.add(burnFee); } _transferStandard(from,to,amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{ _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp); } function sendETHToFee(uint256 amount) private { _deployer.transfer(amount.div(100).mul(100)); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); addLiquidity(balanceOf(address(this)),address(this).balance,owner()); swapEnabled = true; tradingOpen = true; time = block.timestamp + (5 minutes); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 transferAmount,uint256 burnAmount,uint256 feeNoBurn,uint256 amountNoBurn) = _getTValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(amountNoBurn); _tOwned[recipient] = _tOwned[recipient].add(transferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(feeNoBurn); burn(sender,burnAmount); emit Transfer(sender, recipient, transferAmount); } receive() external payable {} function manualswap() external { require(_msgSender() == _deployer); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _deployer); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256) { uint256 tFee = tAmount.mul(_tax).div(1000); uint256 tTransferAmount = tAmount.sub(tFee); uint256 tBurn = tAmount.mul(burnFee).div(1000); uint256 tFeeNoBurn = tFee.sub(tBurn); uint256 tAmountNoBurn = tAmount.sub(tBurn); return (tTransferAmount, tBurn, tFeeNoBurn, tAmountNoBurn); } function recoverTokens(address tokenAddress) external { require(_msgSender() == _deployer); IERC20 recoveryToken = IERC20(tokenAddress); recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"},{"internalType":"uint8","name":"_burn","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"howManyBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a00006009556032600b556032600c55600a600d5560c8600e55620000426103e860095462000bff60201b6200117c1790919060201c565b600f5562000062603260095462000bff60201b6200117c1790919060201c565b60105562000082603260095462000bff60201b6200117c1790919060201c565b601155604051806101000160405280735630e0ee966251ad0d85eed6c51348812bff240573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c41cee1bdb3c6ea7561523d1dae718e9b4900f5973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d5f9b031026db4e5c6f70d96801583d22636219673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738e2f9773ee81650882af218efbd80768590b424373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017356699455d2574fe65719447db6031a6435aa013673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735e40285d4df330551cca22684ba39b776188e0e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173c20050cca3888b45f56cb7968b9d0084db02626873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173dfa853878438245b3b8bd93ebd6ef6995e95995d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506013906008620002d192919062000cea565b50604051806080016040528073e29724a1046a50274a5b6d32190edbf68cfbe47673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017334fd28d63a2b8ac7a9a58e7376f8c2edd1807c1973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738db19f59e1509292306fda52738918413fc1ce2b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173aa9945b53fd1ad3bf73e2382c0ba5925f378525973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250601b9060046200040592919062000d6c565b506000602060156101000a81548160ff0219169083151502179055506000602060166101000a81548160ff02191690831515021790555060006200044e62000c5160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b600481101562000652576200059d606460095462000bff60201b6200117c1790919060201c565b6002600060138460088110620005dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620006499062000fe9565b91505062000576565b5060005b600481101562000732576200067d600160095462000bff60201b6200117c1790919060201c565b60026000601b8460048110620006bc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080620007299062000fe9565b91505062000656565b506001600460006200074962000c5960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601b600260048110620008ae577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b0160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620009df57600080fd5b505afa158015620009f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a1a919062000e24565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801562000a9f57600080fd5b505afa15801562000ab4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ada919062000e24565b6040518363ffffffff1660e01b815260040162000af992919062000eb3565b602060405180830381600087803b15801562000b1457600080fd5b505af115801562000b29573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b4f919062000e24565b602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000bf1919062000f04565b60405180910390a3620010c0565b600062000c4983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000c8260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000ccc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cc3919062000ee0565b60405180910390fd5b506000838562000cdd919062000f3d565b9050809150509392505050565b826008810192821562000d59579160200282015b8281111562000d585782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000cfe565b5b50905062000d68919062000dee565b5090565b826004810192821562000ddb579160200282015b8281111562000dda5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000d80565b5b50905062000dea919062000dee565b5090565b5b8082111562000e0957600081600090555060010162000def565b5090565b60008151905062000e1e81620010a6565b92915050565b60006020828403121562000e3757600080fd5b600062000e478482850162000e0d565b91505092915050565b62000e5b8162000f75565b82525050565b600062000e6e8262000f21565b62000e7a818562000f2c565b935062000e8c81856020860162000fb3565b62000e978162001095565b840191505092915050565b62000ead8162000fa9565b82525050565b600060408201905062000eca600083018562000e50565b62000ed9602083018462000e50565b9392505050565b6000602082019050818103600083015262000efc818462000e61565b905092915050565b600060208201905062000f1b600083018462000ea2565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000f4a8262000fa9565b915062000f578362000fa9565b92508262000f6a5762000f6962001066565b5b828204905092915050565b600062000f828262000f89565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000fd357808201518184015260208101905062000fb6565b8381111562000fe3576000848401525b50505050565b600062000ff68262000fa9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156200102c576200102b62001037565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b620010b18162000f75565b8114620010bd57600080fd5b50565b61362680620010d06000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612ca1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061278f565b61051e565b6040516101a49190612c86565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906126b2565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f89190612e43565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612740565b6106e8565b6040516102359190612c86565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906126b2565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190612eb8565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612835565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f491906126b2565b610997565b6040516103069190612e43565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f91906128d6565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612be1565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612ca1565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061278f565b610cfc565b6040516103f09190612c86565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906127cb565b610d1a565b005b34801561042e57600080fd5b50610437610e6a565b005b34801561044557600080fd5b5061044e610ee4565b005b34801561045c57600080fd5b5061047760048036038101906104729190612704565b61102f565b6040516104849190612e43565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906126b2565b6110b6565b005b3480156104c257600080fd5b506104cb611172565b6040516104d89190612e43565b60405180910390f35b60606040518060400160405280601281526020017f447261676f6e206f662054686520456173740000000000000000000000000000815250905090565b600061053261052b6111c6565b84846111ce565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612be1565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a919061285e565b6040518363ffffffff1660e01b8152600401610687929190612bfc565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061280c565b505050565b6000600954905090565b60006106f5848484611399565b6107b6846107016111c6565b6107b1856040518060600160405280602881526020016135c960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89092919063ffffffff16565b6111ce565b600190509392505050565b6107c96111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612d63565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111c6565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b2c565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612d63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612e23565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f47c58d6bc58d0000000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111c6565b8484611399565b6001905092915050565b610d226111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612d63565b60405180910390fd5b60005b8151811015610e6657600160056000848481518110610dfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5e9061318f565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eab6111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb57600080fd5b6000610ed630610997565b9050610ee181611bbe565b50565b610eec6111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612d63565b60405180910390fd5b602060149054906101000a900460ff1615610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612e03565b60405180910390fd5b610fe3610fd530610997565b47610fde610c96565b611eb8565b6001602060166101000a81548160ff0219169083151502179055506001602060146101000a81548160ff02191690831515021790555061012c426110279190612f79565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f76111c6565b73ffffffffffffffffffffffffffffffffffffffff161461111757600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006111be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fdc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612de3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612d03565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138c9190612e43565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090612dc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612cc3565b60405180910390fd5b600081116114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612d83565b60405180910390fd5b6114d3600d54600b5461203f90919063ffffffff16565b6008819055506114e1610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154f575061151f610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115f85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61160157600080fd5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ac5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170f575060075442105b1561187957601054811115611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612da3565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490612ce3565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182857600080fd5b603c426118359190612f79565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b602060159054906101000a900460ff161580156118e45750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118fc5750602060169054906101000a900460ff165b80156119525750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199357600061196230610997565b9050600f548111156119915761197781611bbe565b6000479050600081111561198f5761198e47611b2c565b5b505b505b5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a3f5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857611ab1600d54600c5461203f90919063ffffffff16565b6008819055505b611ac383838361209d565b505050565b6000838311158290611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079190612ca1565b60405180910390fd5b5060008385611b1f919061305a565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b8f6064611b8160648661117c90919063ffffffff16565b6122eb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b5050565b6001602060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611c4a5781602001602082028036833780820191505090505b5090503081600081518110611c88577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6291906126db565b81600181518110611d9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e0330601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ce565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e67959493929190612e5e565b600060405180830381600087803b158015611e8157600080fd5b505af1158015611e95573d6000803e3d6000fd5b50505050506000602060156101000a81548160ff02191690831515021790555050565b6001602060156101000a81548160ff021916908315150217905550611f0030601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111ce565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f6796959493929190612c25565b6060604051808303818588803b158015611f8057600080fd5b505af1158015611f94573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb99190612887565b5050506000602060156101000a81548160ff021916908315150217905550505050565b60008083118290612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a9190612ca1565b60405180910390fd5b50600083856120329190612fcf565b9050809150509392505050565b600080828461204e9190612f79565b905083811015612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a90612d23565b60405180910390fd5b8091505092915050565b6000806000806120ac85612366565b935093509350935061210681600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242390919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223082600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227d878461246d565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122da9190612e43565b60405180910390a350505050505050565b6000808314156122fe5760009050612360565b6000828461230c9190613000565b905082848261231b9190612fcf565b1461235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235290612d43565b60405180910390fd5b809150505b92915050565b60008060008060006123976103e8612389600854896122eb90919063ffffffff16565b61117c90919063ffffffff16565b905060006123ae828861242390919063ffffffff16565b905060006123db6103e86123cd600d548b6122eb90919063ffffffff16565b61117c90919063ffffffff16565b905060006123f2828561242390919063ffffffff16565b90506000612409838b61242390919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061246583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b905092915050565b6124bf81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060096000828254612514919061305a565b9250508190555080600a600082825461252d9190612f79565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125929190612e43565b60405180910390a35050565b60006125b16125ac84612ef8565b612ed3565b905080838252602082019050828560208602820111156125d057600080fd5b60005b8581101561260057816125e6888261260a565b8452602084019350602083019250506001810190506125d3565b5050509392505050565b6000813590506126198161356c565b92915050565b60008151905061262e8161356c565b92915050565b600082601f83011261264557600080fd5b813561265584826020860161259e565b91505092915050565b60008151905061266d81613583565b92915050565b6000813590506126828161359a565b92915050565b6000815190506126978161359a565b92915050565b6000813590506126ac816135b1565b92915050565b6000602082840312156126c457600080fd5b60006126d28482850161260a565b91505092915050565b6000602082840312156126ed57600080fd5b60006126fb8482850161261f565b91505092915050565b6000806040838503121561271757600080fd5b60006127258582860161260a565b92505060206127368582860161260a565b9150509250929050565b60008060006060848603121561275557600080fd5b60006127638682870161260a565b93505060206127748682870161260a565b925050604061278586828701612673565b9150509250925092565b600080604083850312156127a257600080fd5b60006127b08582860161260a565b92505060206127c185828601612673565b9150509250929050565b6000602082840312156127dd57600080fd5b600082013567ffffffffffffffff8111156127f757600080fd5b61280384828501612634565b91505092915050565b60006020828403121561281e57600080fd5b600061282c8482850161265e565b91505092915050565b60006020828403121561284757600080fd5b600061285584828501612673565b91505092915050565b60006020828403121561287057600080fd5b600061287e84828501612688565b91505092915050565b60008060006060848603121561289c57600080fd5b60006128aa86828701612688565b93505060206128bb86828701612688565b92505060406128cc86828701612688565b9150509250925092565b6000806000606084860312156128eb57600080fd5b60006128f98682870161269d565b935050602061290a8682870161269d565b925050604061291b8682870161269d565b9150509250925092565b6000612931838361294c565b60208301905092915050565b612946816130e3565b82525050565b6129558161308e565b82525050565b6129648161308e565b82525050565b600061297582612f34565b61297f8185612f57565b935061298a83612f24565b8060005b838110156129bb5781516129a28882612925565b97506129ad83612f4a565b92505060018101905061298e565b5085935050505092915050565b6129d1816130a0565b82525050565b6129e0816130f5565b82525050565b60006129f182612f3f565b6129fb8185612f68565b9350612a0b81856020860161312b565b612a1481613265565b840191505092915050565b6000612a2c602383612f68565b9150612a3782613276565b604082019050919050565b6000612a4f601083612f68565b9150612a5a826132c5565b602082019050919050565b6000612a72602283612f68565b9150612a7d826132ee565b604082019050919050565b6000612a95601b83612f68565b9150612aa08261333d565b602082019050919050565b6000612ab8602183612f68565b9150612ac382613366565b604082019050919050565b6000612adb602083612f68565b9150612ae6826133b5565b602082019050919050565b6000612afe602983612f68565b9150612b09826133de565b604082019050919050565b6000612b21601483612f68565b9150612b2c8261342d565b602082019050919050565b6000612b44602583612f68565b9150612b4f82613456565b604082019050919050565b6000612b67602483612f68565b9150612b72826134a5565b604082019050919050565b6000612b8a601783612f68565b9150612b95826134f4565b602082019050919050565b6000612bad602383612f68565b9150612bb88261351d565b604082019050919050565b612bcc816130cc565b82525050565b612bdb816130d6565b82525050565b6000602082019050612bf6600083018461295b565b92915050565b6000604082019050612c11600083018561293d565b612c1e6020830184612bc3565b9392505050565b600060c082019050612c3a600083018961295b565b612c476020830188612bc3565b612c5460408301876129d7565b612c6160608301866129d7565b612c6e608083018561295b565b612c7b60a0830184612bc3565b979650505050505050565b6000602082019050612c9b60008301846129c8565b92915050565b60006020820190508181036000830152612cbb81846129e6565b905092915050565b60006020820190508181036000830152612cdc81612a1f565b9050919050565b60006020820190508181036000830152612cfc81612a42565b9050919050565b60006020820190508181036000830152612d1c81612a65565b9050919050565b60006020820190508181036000830152612d3c81612a88565b9050919050565b60006020820190508181036000830152612d5c81612aab565b9050919050565b60006020820190508181036000830152612d7c81612ace565b9050919050565b60006020820190508181036000830152612d9c81612af1565b9050919050565b60006020820190508181036000830152612dbc81612b14565b9050919050565b60006020820190508181036000830152612ddc81612b37565b9050919050565b60006020820190508181036000830152612dfc81612b5a565b9050919050565b60006020820190508181036000830152612e1c81612b7d565b9050919050565b60006020820190508181036000830152612e3c81612ba0565b9050919050565b6000602082019050612e586000830184612bc3565b92915050565b600060a082019050612e736000830188612bc3565b612e8060208301876129d7565b8181036040830152612e92818661296a565b9050612ea1606083018561295b565b612eae6080830184612bc3565b9695505050505050565b6000602082019050612ecd6000830184612bd2565b92915050565b6000612edd612eee565b9050612ee9828261315e565b919050565b6000604051905090565b600067ffffffffffffffff821115612f1357612f12613236565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f84826130cc565b9150612f8f836130cc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fc457612fc36131d8565b5b828201905092915050565b6000612fda826130cc565b9150612fe5836130cc565b925082612ff557612ff4613207565b5b828204905092915050565b600061300b826130cc565b9150613016836130cc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561304f5761304e6131d8565b5b828202905092915050565b6000613065826130cc565b9150613070836130cc565b925082821015613083576130826131d8565b5b828203905092915050565b6000613099826130ac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130ee82613107565b9050919050565b6000613100826130cc565b9050919050565b600061311282613119565b9050919050565b6000613124826130ac565b9050919050565b60005b8381101561314957808201518184015260208101905061312e565b83811115613158576000848401525b50505050565b61316782613265565b810181811067ffffffffffffffff8211171561318657613185613236565b5b80604052505050565b600061319a826130cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131cd576131cc6131d8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6135758161308e565b811461358057600080fd5b50565b61358c816130a0565b811461359757600080fd5b50565b6135a3816130cc565b81146135ae57600080fd5b50565b6135ba816130d6565b81146135c557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a098303faaab9af00f5a906d4a7f0285ac2b33a2bf0debc0414f8a81418119a264736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101395760003560e01c8063751039fc116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063c9567bf914610439578063dd62ed3e14610450578063e57f14e11461048d578063f805f536146104b657610140565b8063751039fc146103265780637e37e9bb1461033d5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b8063273123b7116100fd578063273123b71461023e578063313ce567146102675780634ea18fab146102925780636fc3eaec146102bb57806370a08231146102d2578063715018a61461030f57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e1565b6040516101679190612ca1565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061278f565b61051e565b6040516101a49190612c86565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf91906126b2565b61053c565b005b3480156101e257600080fd5b506101eb6106de565b6040516101f89190612e43565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612740565b6106e8565b6040516102359190612c86565b60405180910390f35b34801561024a57600080fd5b50610265600480360381019061026091906126b2565b6107c1565b005b34801561027357600080fd5b5061027c6108b1565b6040516102899190612eb8565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612835565b6108ba565b005b3480156102c757600080fd5b506102d0610925565b005b3480156102de57600080fd5b506102f960048036038101906102f491906126b2565b610997565b6040516103069190612e43565b60405180910390f35b34801561031b57600080fd5b506103246109e0565b005b34801561033257600080fd5b5061033b610b33565b005b34801561034957600080fd5b50610364600480360381019061035f91906128d6565b610ba8565b005b34801561037257600080fd5b5061037b610c96565b6040516103889190612be1565b60405180910390f35b34801561039d57600080fd5b506103a6610cbf565b6040516103b39190612ca1565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de919061278f565b610cfc565b6040516103f09190612c86565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906127cb565b610d1a565b005b34801561042e57600080fd5b50610437610e6a565b005b34801561044557600080fd5b5061044e610ee4565b005b34801561045c57600080fd5b5061047760048036038101906104729190612704565b61102f565b6040516104849190612e43565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906126b2565b6110b6565b005b3480156104c257600080fd5b506104cb611172565b6040516104d89190612e43565b60405180910390f35b60606040518060400160405280601281526020017f447261676f6e206f662054686520456173740000000000000000000000000000815250905090565b600061053261052b6111c6565b84846111ce565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057d6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461059d57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161061a9190612be1565b60206040518083038186803b15801561063257600080fd5b505afa158015610646573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066a919061285e565b6040518363ffffffff1660e01b8152600401610687929190612bfc565b602060405180830381600087803b1580156106a157600080fd5b505af11580156106b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d9919061280c565b505050565b6000600954905090565b60006106f5848484611399565b6107b6846107016111c6565b6107b1856040518060600160405280602881526020016135c960289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107676111c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac89092919063ffffffff16565b6111ce565b600190509392505050565b6107c96111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610856576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084d90612d63565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fb6111c6565b73ffffffffffffffffffffffffffffffffffffffff161461091b57600080fd5b80600f8190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109666111c6565b73ffffffffffffffffffffffffffffffffffffffff161461098657600080fd5b600047905061099481611b2c565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109e86111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6c90612d63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b746111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610b9457600080fd5b600954601081905550600954601181905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600e548360ff1611158015610c235750600e548260ff1611155b8015610c345750600e548160ff1611155b610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612e23565b60405180910390fd5b8260ff16600b819055508160ff16600c819055508060ff16600d81905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f47c58d6bc58d0000000000000000000000000000000000000000000000000000815250905090565b6000610d10610d096111c6565b8484611399565b6001905092915050565b610d226111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612d63565b60405180910390fd5b60005b8151811015610e6657600160056000848481518110610dfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e5e9061318f565b915050610db2565b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610eab6111c6565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb57600080fd5b6000610ed630610997565b9050610ee181611bbe565b50565b610eec6111c6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090612d63565b60405180910390fd5b602060149054906101000a900460ff1615610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc090612e03565b60405180910390fd5b610fe3610fd530610997565b47610fde610c96565b611eb8565b6001602060166101000a81548160ff0219169083151502179055506001602060146101000a81548160ff02191690831515021790555061012c426110279190612f79565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110f76111c6565b73ffffffffffffffffffffffffffffffffffffffff161461111757600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a54905090565b60006111be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fdc565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612de3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a590612d03565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138c9190612e43565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140090612dc3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147090612cc3565b60405180910390fd5b600081116114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612d83565b60405180910390fd5b6114d3600d54600b5461203f90919063ffffffff16565b6008819055506114e1610c96565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154f575061151f610c96565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561199457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115f85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61160157600080fd5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116ac5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117025750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170f575060075442105b1561187957601054811115611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090612da3565b60405180910390fd5b601154600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117d490612ce3565b60405180910390fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182857600080fd5b603c426118359190612f79565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b602060159054906101000a900460ff161580156118e45750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118fc5750602060169054906101000a900460ff165b80156119525750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561199357600061196230610997565b9050600f548111156119915761197781611bbe565b6000479050600081111561198f5761198e47611b2c565b5b505b505b5b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a3f5750601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857611ab1600d54600c5461203f90919063ffffffff16565b6008819055505b611ac383838361209d565b505050565b6000838311158290611b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b079190612ca1565b60405180910390fd5b5060008385611b1f919061305a565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b8f6064611b8160648661117c90919063ffffffff16565b6122eb90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bba573d6000803e3d6000fd5b5050565b6001602060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c1c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611c4a5781602001602082028036833780820191505090505b5090503081600081518110611c88577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6291906126db565b81600181518110611d9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e0330601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111ce565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e67959493929190612e5e565b600060405180830381600087803b158015611e8157600080fd5b505af1158015611e95573d6000803e3d6000fd5b50505050506000602060156101000a81548160ff02191690831515021790555050565b6001602060156101000a81548160ff021916908315150217905550611f0030601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856111ce565b601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f6796959493929190612c25565b6060604051808303818588803b158015611f8057600080fd5b505af1158015611f94573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb99190612887565b5050506000602060156101000a81548160ff021916908315150217905550505050565b60008083118290612023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201a9190612ca1565b60405180910390fd5b50600083856120329190612fcf565b9050809150509392505050565b600080828461204e9190612f79565b905083811015612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a90612d23565b60405180910390fd5b8091505092915050565b6000806000806120ac85612366565b935093509350935061210681600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242390919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061219b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061223082600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227d878461246d565b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516122da9190612e43565b60405180910390a350505050505050565b6000808314156122fe5760009050612360565b6000828461230c9190613000565b905082848261231b9190612fcf565b1461235b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235290612d43565b60405180910390fd5b809150505b92915050565b60008060008060006123976103e8612389600854896122eb90919063ffffffff16565b61117c90919063ffffffff16565b905060006123ae828861242390919063ffffffff16565b905060006123db6103e86123cd600d548b6122eb90919063ffffffff16565b61117c90919063ffffffff16565b905060006123f2828561242390919063ffffffff16565b90506000612409838b61242390919063ffffffff16565b905083838383985098509850985050505050509193509193565b600061246583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac8565b905092915050565b6124bf81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242390919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060096000828254612514919061305a565b9250508190555080600a600082825461252d9190612f79565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125929190612e43565b60405180910390a35050565b60006125b16125ac84612ef8565b612ed3565b905080838252602082019050828560208602820111156125d057600080fd5b60005b8581101561260057816125e6888261260a565b8452602084019350602083019250506001810190506125d3565b5050509392505050565b6000813590506126198161356c565b92915050565b60008151905061262e8161356c565b92915050565b600082601f83011261264557600080fd5b813561265584826020860161259e565b91505092915050565b60008151905061266d81613583565b92915050565b6000813590506126828161359a565b92915050565b6000815190506126978161359a565b92915050565b6000813590506126ac816135b1565b92915050565b6000602082840312156126c457600080fd5b60006126d28482850161260a565b91505092915050565b6000602082840312156126ed57600080fd5b60006126fb8482850161261f565b91505092915050565b6000806040838503121561271757600080fd5b60006127258582860161260a565b92505060206127368582860161260a565b9150509250929050565b60008060006060848603121561275557600080fd5b60006127638682870161260a565b93505060206127748682870161260a565b925050604061278586828701612673565b9150509250925092565b600080604083850312156127a257600080fd5b60006127b08582860161260a565b92505060206127c185828601612673565b9150509250929050565b6000602082840312156127dd57600080fd5b600082013567ffffffffffffffff8111156127f757600080fd5b61280384828501612634565b91505092915050565b60006020828403121561281e57600080fd5b600061282c8482850161265e565b91505092915050565b60006020828403121561284757600080fd5b600061285584828501612673565b91505092915050565b60006020828403121561287057600080fd5b600061287e84828501612688565b91505092915050565b60008060006060848603121561289c57600080fd5b60006128aa86828701612688565b93505060206128bb86828701612688565b92505060406128cc86828701612688565b9150509250925092565b6000806000606084860312156128eb57600080fd5b60006128f98682870161269d565b935050602061290a8682870161269d565b925050604061291b8682870161269d565b9150509250925092565b6000612931838361294c565b60208301905092915050565b612946816130e3565b82525050565b6129558161308e565b82525050565b6129648161308e565b82525050565b600061297582612f34565b61297f8185612f57565b935061298a83612f24565b8060005b838110156129bb5781516129a28882612925565b97506129ad83612f4a565b92505060018101905061298e565b5085935050505092915050565b6129d1816130a0565b82525050565b6129e0816130f5565b82525050565b60006129f182612f3f565b6129fb8185612f68565b9350612a0b81856020860161312b565b612a1481613265565b840191505092915050565b6000612a2c602383612f68565b9150612a3782613276565b604082019050919050565b6000612a4f601083612f68565b9150612a5a826132c5565b602082019050919050565b6000612a72602283612f68565b9150612a7d826132ee565b604082019050919050565b6000612a95601b83612f68565b9150612aa08261333d565b602082019050919050565b6000612ab8602183612f68565b9150612ac382613366565b604082019050919050565b6000612adb602083612f68565b9150612ae6826133b5565b602082019050919050565b6000612afe602983612f68565b9150612b09826133de565b604082019050919050565b6000612b21601483612f68565b9150612b2c8261342d565b602082019050919050565b6000612b44602583612f68565b9150612b4f82613456565b604082019050919050565b6000612b67602483612f68565b9150612b72826134a5565b604082019050919050565b6000612b8a601783612f68565b9150612b95826134f4565b602082019050919050565b6000612bad602383612f68565b9150612bb88261351d565b604082019050919050565b612bcc816130cc565b82525050565b612bdb816130d6565b82525050565b6000602082019050612bf6600083018461295b565b92915050565b6000604082019050612c11600083018561293d565b612c1e6020830184612bc3565b9392505050565b600060c082019050612c3a600083018961295b565b612c476020830188612bc3565b612c5460408301876129d7565b612c6160608301866129d7565b612c6e608083018561295b565b612c7b60a0830184612bc3565b979650505050505050565b6000602082019050612c9b60008301846129c8565b92915050565b60006020820190508181036000830152612cbb81846129e6565b905092915050565b60006020820190508181036000830152612cdc81612a1f565b9050919050565b60006020820190508181036000830152612cfc81612a42565b9050919050565b60006020820190508181036000830152612d1c81612a65565b9050919050565b60006020820190508181036000830152612d3c81612a88565b9050919050565b60006020820190508181036000830152612d5c81612aab565b9050919050565b60006020820190508181036000830152612d7c81612ace565b9050919050565b60006020820190508181036000830152612d9c81612af1565b9050919050565b60006020820190508181036000830152612dbc81612b14565b9050919050565b60006020820190508181036000830152612ddc81612b37565b9050919050565b60006020820190508181036000830152612dfc81612b5a565b9050919050565b60006020820190508181036000830152612e1c81612b7d565b9050919050565b60006020820190508181036000830152612e3c81612ba0565b9050919050565b6000602082019050612e586000830184612bc3565b92915050565b600060a082019050612e736000830188612bc3565b612e8060208301876129d7565b8181036040830152612e92818661296a565b9050612ea1606083018561295b565b612eae6080830184612bc3565b9695505050505050565b6000602082019050612ecd6000830184612bd2565b92915050565b6000612edd612eee565b9050612ee9828261315e565b919050565b6000604051905090565b600067ffffffffffffffff821115612f1357612f12613236565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612f84826130cc565b9150612f8f836130cc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fc457612fc36131d8565b5b828201905092915050565b6000612fda826130cc565b9150612fe5836130cc565b925082612ff557612ff4613207565b5b828204905092915050565b600061300b826130cc565b9150613016836130cc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561304f5761304e6131d8565b5b828202905092915050565b6000613065826130cc565b9150613070836130cc565b925082821015613083576130826131d8565b5b828203905092915050565b6000613099826130ac565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006130ee82613107565b9050919050565b6000613100826130cc565b9050919050565b600061311282613119565b9050919050565b6000613124826130ac565b9050919050565b60005b8381101561314957808201518184015260208101905061312e565b83811115613158576000848401525b50505050565b61316782613265565b810181811067ffffffffffffffff8211171561318657613185613236565b5b80604052505050565b600061319a826130cc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156131cd576131cc6131d8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3025290000000000000000000000000000000000000000000000000000000000602082015250565b6135758161308e565b811461358057600080fd5b50565b61358c816130a0565b811461359757600080fd5b50565b6135a3816130cc565b81146135ae57600080fd5b50565b6135ba816130d6565b81146135c557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a098303faaab9af00f5a906d4a7f0285ac2b33a2bf0debc0414f8a81418119a264736f6c63430008040033
Deployed Bytecode Sourcemap
3601:10376:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6395:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7482:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13730:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6672:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7651:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12230:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6581:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8692:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13086:188;;;;;;;;;;;;;:::i;:::-;;6775:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:148;;;;;;;;;;;;;:::i;:::-;;8214:154;;;;;;;;;;;;;:::i;:::-;;8379:303;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2466:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6486:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6900:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12058:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12885:189;;;;;;;;;;;;;:::i;:::-;;11752:294;;;;;;;;;;;;;:::i;:::-;;7075:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7226:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7381:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6395:83;6432:13;6465:5;;;;;;;;;;;;;;;;;6458:12;;6395:83;:::o;7482:161::-;7557:4;7574:39;7583:12;:10;:12::i;:::-;7597:7;7606:6;7574:8;:39::i;:::-;7631:4;7624:11;;7482:161;;;;:::o;13730:244::-;13819:9;;;;;;;;;;;13803:25;;:12;:10;:12::i;:::-;:25;;;13795:34;;;;;;13840:20;13870:12;13840:43;;13894:13;:22;;;13917:9;;;;;;;;;;;13927:13;:23;;;13959:4;13927:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13894:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13730:244;;:::o;6672:95::-;6725:7;6752;;6745:14;;6672:95;:::o;7651:313::-;7749:4;7766:36;7776:6;7784:9;7795:6;7766:9;:36::i;:::-;7813:121;7822:6;7830:12;:10;:12::i;:::-;7844:89;7882:6;7844:89;;;;;;;;;;;;;;;;;:11;:19;7856:6;7844:19;;;;;;;;;;;;;;;:33;7864:12;:10;:12::i;:::-;7844:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7813:8;:121::i;:::-;7952:4;7945:11;;7651:313;;;;;:::o;12230:88::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12305:5:::1;12290:4;:12;12295:6;12290:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12230:88:::0;:::o;6581:83::-;6622:5;4557:1;6640:16;;6581:83;:::o;8692:136::-;8778:9;;;;;;;;;;;8762:25;;:12;:10;:12::i;:::-;:25;;;8754:34;;;;;;8812:6;8799:10;:19;;;;8692:136;:::o;13086:188::-;13152:9;;;;;;;;;;;13136:25;;:12;:10;:12::i;:::-;:25;;;13128:34;;;;;;13173:26;13202:21;13173:50;;13234:32;13247:18;13234:12;:32::i;:::-;13086:188;:::o;6775:117::-;6841:7;6868;:16;6876:7;6868:16;;;;;;;;;;;;;;;;6861:23;;6775:117;;;:::o;2680:148::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1:::1;2750:40;;2771:6;::::0;::::1;;;;;;;;2750:40;;;;;;;;;;;;2818:1;2801:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2680:148::o:0;8214:154::-;8282:9;;;;;;;;;;;8266:25;;:12;:10;:12::i;:::-;:25;;;8258:34;;;;;;8317:7;;8303:11;:21;;;;8353:7;;8335:15;:25;;;;8214:154::o;8379:303::-;8481:9;;;;;;;;;;;8465:25;;:12;:10;:12::i;:::-;:25;;;8457:34;;;;;;8519:6;;8510:5;:15;;;;:34;;;;;8538:6;;8529:5;:15;;;;8510:34;:53;;;;;8557:6;;8548:5;:15;;;;8510:53;8502:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;8620:5;8613:12;;:4;:12;;;;8643:5;8636:12;;:4;:12;;;;8669:5;8659:15;;:7;:15;;;;8379:303;;;:::o;2466:79::-;2504:7;2531:6;;;;;;;;;;;2524:13;;2466:79;:::o;6486:87::-;6525:13;6558:7;;;;;;;;;;;;;;;;;6551:14;;6486:87;:::o;6900:167::-;6978:4;6995:42;7005:12;:10;:12::i;:::-;7019:9;7030:6;6995:9;:42::i;:::-;7055:4;7048:11;;6900:167;;;;:::o;12058:164::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12132:6:::1;12127:88;12148:5;:12;12144:1;:16;12127:88;;;12199:4;12182;:14;12187:5;12193:1;12187:8;;;;;;;;;;;;;;;;;;;;;;12182:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12162:3;;;;;:::i;:::-;;;;12127:88;;;;12058:164:::0;:::o;12885:189::-;12951:9;;;;;;;;;;;12935:25;;:12;:10;:12::i;:::-;:25;;;12927:34;;;;;;12972:23;12998:24;13016:4;12998:9;:24::i;:::-;12972:50;;13033:33;13050:15;13033:16;:33::i;:::-;12885:189;:::o;11752:294::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11816:11:::1;;;;;;;;;;;11815:12;11807:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11865:68;11878:24;11896:4;11878:9;:24::i;:::-;11903:21;11925:7;:5;:7::i;:::-;11865:12;:68::i;:::-;11958:4;11944:11;;:18;;;;;;;;;;;;;;;;;;11987:4;11973:11;;:18;;;;;;;;;;;;;;;;;;12028:9;12009:15;:29;;;;:::i;:::-;12002:4;:36;;;;11752:294::o:0;7075:143::-;7156:7;7183:11;:18;7195:5;7183:18;;;;;;;;;;;;;;;:27;7202:7;7183:27;;;;;;;;;;;;;;;;7176:34;;7075:143;;;;:::o;7226:147::-;7311:9;;;;;;;;;;;7295:25;;:12;:10;:12::i;:::-;:25;;;7287:34;;;;;;7361:4;7332:18;:26;7351:6;7332:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7226:147;:::o;7381:93::-;7427:7;7454:12;;7447:19;;7381:93;:::o;1773:132::-;1831:7;1858:39;1862:1;1865;1858:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1851:46;;1773:132;;;;:::o;184:98::-;237:7;264:10;257:17;;184:98;:::o;8839:335::-;8949:1;8932:19;;:5;:19;;;;8924:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9030:1;9011:21;;:7;:21;;;;9003:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9112:6;9082:11;:18;9094:5;9082:18;;;;;;;;;;;;;;;:27;9101:7;9082:27;;;;;;;;;;;;;;;:36;;;;9150:7;9134:32;;9143:5;9134:32;;;9159:6;9134:32;;;;;;:::i;:::-;;;;;;;;8839:335;;;:::o;9182:1653::-;9286:1;9270:18;;:4;:18;;;;9262:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9363:1;9349:16;;:2;:16;;;;9341:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9433:1;9424:6;:10;9416:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9498:17;9507:7;;9498:4;;:8;;:17;;;;:::i;:::-;9491:4;:24;;;;9538:7;:5;:7::i;:::-;9530:15;;:4;:15;;;;:32;;;;;9555:7;:5;:7::i;:::-;9549:13;;:2;:13;;;;9530:32;9526:1102;;;9588:4;:10;9593:4;9588:10;;;;;;;;;;;;;;;;;;;;;;;;;9587:11;:24;;;;;9603:4;:8;9608:2;9603:8;;;;;;;;;;;;;;;;;;;;;;;;;9602:9;9587:24;9579:33;;;;;;9639:13;;;;;;;;;;;9631:21;;:4;:21;;;:55;;;;;9670:15;;;;;;;;;;;9656:30;;:2;:30;;;;9631:55;:83;;;;;9692:18;:22;9711:2;9692:22;;;;;;;;;;;;;;;;;;;;;;;;;9690:24;9631:83;:111;;;;;9737:4;;9719:15;:22;9631:111;9627:432;;;9780:11;;9770:6;:21;;9762:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:15;;9842:7;:11;9850:2;9842:11;;;;;;;;;;;;;;;;:30;;9834:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9963:15;9948:8;:12;9957:2;9948:12;;;;;;;;;;;;;;;;:30;9940:39;;;;;;10032:10;10013:15;:30;;;;:::i;:::-;9998:8;:12;10007:2;9998:12;;;;;;;;;;;;;;;:45;;;;9627:432;10106:6;;;;;;;;;;;10105:7;:32;;;;;10124:13;;;;;;;;;;;10116:21;;:4;:21;;;;10105:32;:47;;;;;10141:11;;;;;;;;;;;10105:47;:76;;;;;10157:18;:24;10176:4;10157:24;;;;;;;;;;;;;;;;;;;;;;;;;10156:25;10105:76;10101:516;;;10202:28;10233:24;10251:4;10233:9;:24::i;:::-;10202:55;;10302:10;;10279:20;:33;10276:326;;;10336:38;10353:20;10336:16;:38::i;:::-;10397:26;10426:21;10397:50;;10494:1;10473:18;:22;10470:113;;;10524:35;10537:21;10524:12;:35::i;:::-;10470:113;10276:326;;10101:516;;9526:1102;10648:13;;;;;;;;;;;10642:19;;:2;:19;;;:55;;;;;10681:15;;;;;;;;;;;10665:32;;:4;:32;;;;10642:55;:85;;;;;10703:18;:24;10722:4;10703:24;;;;;;;;;;;;;;;;;;;;;;;;;10701:26;10642:85;10638:142;;;10751:17;10760:7;;10751:4;;:8;;:17;;;;:::i;:::-;10744:4;:24;;;;10638:142;10794:33;10812:4;10817:2;10820:6;10794:17;:33::i;:::-;9182:1653;;;:::o;1321:190::-;1407:7;1440:1;1435;:6;;1443:12;1427:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1467:9;1483:1;1479;:5;;;;:::i;:::-;1467:17;;1502:1;1495:8;;;1321:190;;;;;:::o;11630:110::-;11688:9;;;;;;;;;;;:18;;:44;11707:24;11727:3;11707:15;11718:3;11707:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11688:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11630:110;:::o;10843:483::-;5546:4;5537:6;;:13;;;;;;;;;;;;;;;;;;10921:21:::1;10959:1;10945:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10921:40;;10990:4;10972;10977:1;10972:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11016:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11006:4;11011:1;11006:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11049:62;11066:4;11081:15;;;;;;;;;;;11099:11;11049:8;:62::i;:::-;11122:15;;;;;;;;;;;:66;;;11203:11;11229:1;11245:4;11272;11292:15;11122:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5561:1;5582:5:::0;5573:6;;:14;;;;;;;;;;;;;;;;;;10843:483;:::o;11336:288::-;5546:4;5537:6;;:13;;;;;;;;;;;;;;;;;;11442:60:::1;11459:4;11473:15;;;;;;;;;;;11490:11;11442:8;:60::i;:::-;11513:15;;;;;;;;;;;:31;;;11552:9;11571:4;11577:11;11589:1;11591::::0;11593:6:::1;11600:15;11513:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5582:5:::0;5573:6;;:14;;;;;;;;;;;;;;;;;;11336:288;;;:::o;1913:189::-;1999:7;2031:1;2027;:5;2034:12;2019:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2058:9;2074:1;2070;:5;;;;:::i;:::-;2058:17;;2093:1;2086:8;;;1913:189;;;;;:::o;990:179::-;1048:7;1068:9;1084:1;1080;:5;;;;:::i;:::-;1068:17;;1109:1;1104;:6;;1096:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1160:1;1153:8;;;990:179;;;;:::o;12326:510::-;12425:22;12448:18;12467:17;12485:20;12509;12521:7;12509:11;:20::i;:::-;12424:105;;;;;;;;12558:33;12578:12;12558:7;:15;12566:6;12558:15;;;;;;;;;;;;;;;;:19;;:33;;;;:::i;:::-;12540:7;:15;12548:6;12540:15;;;;;;;;;;;;;;;:51;;;;12623:38;12646:14;12623:7;:18;12631:9;12623:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12602:7;:18;12610:9;12602:18;;;;;;;;;;;;;;;:59;;;;12698:37;12725:9;12698:7;:22;12714:4;12698:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;12673:7;:22;12689:4;12673:22;;;;;;;;;;;;;;;:62;;;;12746:23;12751:6;12758:10;12746:4;:23::i;:::-;12802:9;12785:43;;12794:6;12785:43;;;12813:14;12785:43;;;;;;:::i;:::-;;;;;;;;12326:510;;;;;;;:::o;1519:246::-;1577:7;1606:1;1601;:6;1597:47;;;1631:1;1624:8;;;;1597:47;1654:9;1670:1;1666;:5;;;;:::i;:::-;1654:17;;1699:1;1694;1690;:5;;;;:::i;:::-;:10;1682:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1756:1;1749:8;;;1519:246;;;;;:::o;13285:437::-;13345:7;13354;13363;13372;13392:12;13407:27;13429:4;13407:17;13419:4;;13407:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13392:42;;13445:23;13471:17;13483:4;13471:7;:11;;:17;;;;:::i;:::-;13445:43;;13499:13;13515:30;13540:4;13515:20;13527:7;;13515;:11;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;13499:46;;13556:18;13577:15;13586:5;13577:4;:8;;:15;;;;:::i;:::-;13556:36;;13603:21;13627:18;13639:5;13627:7;:11;;:18;;;;:::i;:::-;13603:42;;13664:15;13681:5;13688:10;13700:13;13656:58;;;;;;;;;;;;;13285:437;;;;;:::o;1177:136::-;1235:7;1262:43;1266:1;1269;1262:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1255:50;;1177:136;;;;:::o;7972:234::-;8056:28;8077:6;8056:7;:16;8064:7;8056:16;;;;;;;;;;;;;;;;:20;;:28;;;;:::i;:::-;8037:7;:16;8045:7;8037:16;;;;;;;;;;;;;;;:47;;;;8106:6;8095:7;;:17;;;;;;;:::i;:::-;;;;;;;;8139:6;8123:12;;:22;;;;;;;:::i;:::-;;;;;;;;8187:1;8161:37;;8170:7;8161:37;;;8191:6;8161:37;;;;;;:::i;:::-;;;;;;;;7972:234;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:135::-;1786:5;1824:6;1811:20;1802:29;;1840:31;1865:5;1840:31;:::i;:::-;1792:85;;;;:::o;1883:262::-;1942:6;1991:2;1979:9;1970:7;1966:23;1962:32;1959:2;;;2007:1;2004;1997:12;1959:2;2050:1;2075:53;2120:7;2111:6;2100:9;2096:22;2075:53;:::i;:::-;2065:63;;2021:117;1949:196;;;;:::o;2151:284::-;2221:6;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;2286:1;2283;2276:12;2238:2;2329:1;2354:64;2410:7;2401:6;2390:9;2386:22;2354:64;:::i;:::-;2344:74;;2300:128;2228:207;;;;:::o;2441:407::-;2509:6;2517;2566:2;2554:9;2545:7;2541:23;2537:32;2534:2;;;2582:1;2579;2572:12;2534:2;2625:1;2650:53;2695:7;2686:6;2675:9;2671:22;2650:53;:::i;:::-;2640:63;;2596:117;2752:2;2778:53;2823:7;2814:6;2803:9;2799:22;2778:53;:::i;:::-;2768:63;;2723:118;2524:324;;;;;:::o;2854:552::-;2931:6;2939;2947;2996:2;2984:9;2975:7;2971:23;2967:32;2964:2;;;3012:1;3009;3002:12;2964:2;3055:1;3080:53;3125:7;3116:6;3105:9;3101:22;3080:53;:::i;:::-;3070:63;;3026:117;3182:2;3208:53;3253:7;3244:6;3233:9;3229:22;3208:53;:::i;:::-;3198:63;;3153:118;3310:2;3336:53;3381:7;3372:6;3361:9;3357:22;3336:53;:::i;:::-;3326:63;;3281:118;2954:452;;;;;:::o;3412:407::-;3480:6;3488;3537:2;3525:9;3516:7;3512:23;3508:32;3505:2;;;3553:1;3550;3543:12;3505:2;3596:1;3621:53;3666:7;3657:6;3646:9;3642:22;3621:53;:::i;:::-;3611:63;;3567:117;3723:2;3749:53;3794:7;3785:6;3774:9;3770:22;3749:53;:::i;:::-;3739:63;;3694:118;3495:324;;;;;:::o;3825:405::-;3909:6;3958:2;3946:9;3937:7;3933:23;3929:32;3926:2;;;3974:1;3971;3964:12;3926:2;4045:1;4034:9;4030:17;4017:31;4075:18;4067:6;4064:30;4061:2;;;4107:1;4104;4097:12;4061:2;4135:78;4205:7;4196:6;4185:9;4181:22;4135:78;:::i;:::-;4125:88;;3988:235;3916:314;;;;:::o;4236:278::-;4303:6;4352:2;4340:9;4331:7;4327:23;4323:32;4320:2;;;4368:1;4365;4358:12;4320:2;4411:1;4436:61;4489:7;4480:6;4469:9;4465:22;4436:61;:::i;:::-;4426:71;;4382:125;4310:204;;;;:::o;4520:262::-;4579:6;4628:2;4616:9;4607:7;4603:23;4599:32;4596:2;;;4644:1;4641;4634:12;4596:2;4687:1;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4658:117;4586:196;;;;:::o;4788:284::-;4858:6;4907:2;4895:9;4886:7;4882:23;4878:32;4875:2;;;4923:1;4920;4913:12;4875:2;4966:1;4991:64;5047:7;5038:6;5027:9;5023:22;4991:64;:::i;:::-;4981:74;;4937:128;4865:207;;;;:::o;5078:596::-;5166:6;5174;5182;5231:2;5219:9;5210:7;5206:23;5202:32;5199:2;;;5247:1;5244;5237:12;5199:2;5290:1;5315:64;5371:7;5362:6;5351:9;5347:22;5315:64;:::i;:::-;5305:74;;5261:128;5428:2;5454:64;5510:7;5501:6;5490:9;5486:22;5454:64;:::i;:::-;5444:74;;5399:129;5567:2;5593:64;5649:7;5640:6;5629:9;5625:22;5593:64;:::i;:::-;5583:74;;5538:129;5189:485;;;;;:::o;5680:540::-;5751:6;5759;5767;5816:2;5804:9;5795:7;5791:23;5787:32;5784:2;;;5832:1;5829;5822:12;5784:2;5875:1;5900:51;5943:7;5934:6;5923:9;5919:22;5900:51;:::i;:::-;5890:61;;5846:115;6000:2;6026:51;6069:7;6060:6;6049:9;6045:22;6026:51;:::i;:::-;6016:61;;5971:116;6126:2;6152:51;6195:7;6186:6;6175:9;6171:22;6152:51;:::i;:::-;6142:61;;6097:116;5774:446;;;;;:::o;6226:179::-;6295:10;6316:46;6358:3;6350:6;6316:46;:::i;:::-;6394:4;6389:3;6385:14;6371:28;;6306:99;;;;:::o;6411:147::-;6506:45;6545:5;6506:45;:::i;:::-;6501:3;6494:58;6484:74;;:::o;6564:108::-;6641:24;6659:5;6641:24;:::i;:::-;6636:3;6629:37;6619:53;;:::o;6678:118::-;6765:24;6783:5;6765:24;:::i;:::-;6760:3;6753:37;6743:53;;:::o;6832:732::-;6951:3;6980:54;7028:5;6980:54;:::i;:::-;7050:86;7129:6;7124:3;7050:86;:::i;:::-;7043:93;;7160:56;7210:5;7160:56;:::i;:::-;7239:7;7270:1;7255:284;7280:6;7277:1;7274:13;7255:284;;;7356:6;7350:13;7383:63;7442:3;7427:13;7383:63;:::i;:::-;7376:70;;7469:60;7522:6;7469:60;:::i;:::-;7459:70;;7315:224;7302:1;7299;7295:9;7290:14;;7255:284;;;7259:14;7555:3;7548:10;;6956:608;;;;;;;:::o;7570:109::-;7651:21;7666:5;7651:21;:::i;:::-;7646:3;7639:34;7629:50;;:::o;7685:147::-;7780:45;7819:5;7780:45;:::i;:::-;7775:3;7768:58;7758:74;;:::o;7838:364::-;7926:3;7954:39;7987:5;7954:39;:::i;:::-;8009:71;8073:6;8068:3;8009:71;:::i;:::-;8002:78;;8089:52;8134:6;8129:3;8122:4;8115:5;8111:16;8089:52;:::i;:::-;8166:29;8188:6;8166:29;:::i;:::-;8161:3;8157:39;8150:46;;7930:272;;;;;:::o;8208:366::-;8350:3;8371:67;8435:2;8430:3;8371:67;:::i;:::-;8364:74;;8447:93;8536:3;8447:93;:::i;:::-;8565:2;8560:3;8556:12;8549:19;;8354:220;;;:::o;8580:366::-;8722:3;8743:67;8807:2;8802:3;8743:67;:::i;:::-;8736:74;;8819:93;8908:3;8819:93;:::i;:::-;8937:2;8932:3;8928:12;8921:19;;8726:220;;;:::o;8952:366::-;9094:3;9115:67;9179:2;9174:3;9115:67;:::i;:::-;9108:74;;9191:93;9280:3;9191:93;:::i;:::-;9309:2;9304:3;9300:12;9293:19;;9098:220;;;:::o;9324:366::-;9466:3;9487:67;9551:2;9546:3;9487:67;:::i;:::-;9480:74;;9563:93;9652:3;9563:93;:::i;:::-;9681:2;9676:3;9672:12;9665:19;;9470:220;;;:::o;9696:366::-;9838:3;9859:67;9923:2;9918:3;9859:67;:::i;:::-;9852:74;;9935:93;10024:3;9935:93;:::i;:::-;10053:2;10048:3;10044:12;10037:19;;9842:220;;;:::o;10068:366::-;10210:3;10231:67;10295:2;10290:3;10231:67;:::i;:::-;10224:74;;10307:93;10396:3;10307:93;:::i;:::-;10425:2;10420:3;10416:12;10409:19;;10214:220;;;:::o;10440:366::-;10582:3;10603:67;10667:2;10662:3;10603:67;:::i;:::-;10596:74;;10679:93;10768:3;10679:93;:::i;:::-;10797:2;10792:3;10788:12;10781:19;;10586:220;;;:::o;10812:366::-;10954:3;10975:67;11039:2;11034:3;10975:67;:::i;:::-;10968:74;;11051:93;11140:3;11051:93;:::i;:::-;11169:2;11164:3;11160:12;11153:19;;10958:220;;;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11330:220;;;:::o;11556:366::-;11698:3;11719:67;11783:2;11778:3;11719:67;:::i;:::-;11712:74;;11795:93;11884:3;11795:93;:::i;:::-;11913:2;11908:3;11904:12;11897:19;;11702:220;;;:::o;11928:366::-;12070:3;12091:67;12155:2;12150:3;12091:67;:::i;:::-;12084:74;;12167:93;12256:3;12167:93;:::i;:::-;12285:2;12280:3;12276:12;12269:19;;12074:220;;;:::o;12300:366::-;12442:3;12463:67;12527:2;12522:3;12463:67;:::i;:::-;12456:74;;12539:93;12628:3;12539:93;:::i;:::-;12657:2;12652:3;12648:12;12641:19;;12446:220;;;:::o;12672:118::-;12759:24;12777:5;12759:24;:::i;:::-;12754:3;12747:37;12737:53;;:::o;12796:112::-;12879:22;12895:5;12879:22;:::i;:::-;12874:3;12867:35;12857:51;;:::o;12914:222::-;13007:4;13045:2;13034:9;13030:18;13022:26;;13058:71;13126:1;13115:9;13111:17;13102:6;13058:71;:::i;:::-;13012:124;;;;:::o;13142:348::-;13271:4;13309:2;13298:9;13294:18;13286:26;;13322:79;13398:1;13387:9;13383:17;13374:6;13322:79;:::i;:::-;13411:72;13479:2;13468:9;13464:18;13455:6;13411:72;:::i;:::-;13276:214;;;;;:::o;13496:807::-;13745:4;13783:3;13772:9;13768:19;13760:27;;13797:71;13865:1;13854:9;13850:17;13841:6;13797:71;:::i;:::-;13878:72;13946:2;13935:9;13931:18;13922:6;13878:72;:::i;:::-;13960:80;14036:2;14025:9;14021:18;14012:6;13960:80;:::i;:::-;14050;14126:2;14115:9;14111:18;14102:6;14050:80;:::i;:::-;14140:73;14208:3;14197:9;14193:19;14184:6;14140:73;:::i;:::-;14223;14291:3;14280:9;14276:19;14267:6;14223:73;:::i;:::-;13750:553;;;;;;;;;:::o;14309:210::-;14396:4;14434:2;14423:9;14419:18;14411:26;;14447:65;14509:1;14498:9;14494:17;14485:6;14447:65;:::i;:::-;14401:118;;;;:::o;14525:313::-;14638:4;14676:2;14665:9;14661:18;14653:26;;14725:9;14719:4;14715:20;14711:1;14700:9;14696:17;14689:47;14753:78;14826:4;14817:6;14753:78;:::i;:::-;14745:86;;14643:195;;;;:::o;14844:419::-;15010:4;15048:2;15037:9;15033:18;15025:26;;15097:9;15091:4;15087:20;15083:1;15072:9;15068:17;15061:47;15125:131;15251:4;15125:131;:::i;:::-;15117:139;;15015:248;;;:::o;15269:419::-;15435:4;15473:2;15462:9;15458:18;15450:26;;15522:9;15516:4;15512:20;15508:1;15497:9;15493:17;15486:47;15550:131;15676:4;15550:131;:::i;:::-;15542:139;;15440:248;;;:::o;15694:419::-;15860:4;15898:2;15887:9;15883:18;15875:26;;15947:9;15941:4;15937:20;15933:1;15922:9;15918:17;15911:47;15975:131;16101:4;15975:131;:::i;:::-;15967:139;;15865:248;;;:::o;16119:419::-;16285:4;16323:2;16312:9;16308:18;16300:26;;16372:9;16366:4;16362:20;16358:1;16347:9;16343:17;16336:47;16400:131;16526:4;16400:131;:::i;:::-;16392:139;;16290:248;;;:::o;16544:419::-;16710:4;16748:2;16737:9;16733:18;16725:26;;16797:9;16791:4;16787:20;16783:1;16772:9;16768:17;16761:47;16825:131;16951:4;16825:131;:::i;:::-;16817:139;;16715:248;;;:::o;16969:419::-;17135:4;17173:2;17162:9;17158:18;17150:26;;17222:9;17216:4;17212:20;17208:1;17197:9;17193:17;17186:47;17250:131;17376:4;17250:131;:::i;:::-;17242:139;;17140:248;;;:::o;17394:419::-;17560:4;17598:2;17587:9;17583:18;17575:26;;17647:9;17641:4;17637:20;17633:1;17622:9;17618:17;17611:47;17675:131;17801:4;17675:131;:::i;:::-;17667:139;;17565:248;;;:::o;17819:419::-;17985:4;18023:2;18012:9;18008:18;18000:26;;18072:9;18066:4;18062:20;18058:1;18047:9;18043:17;18036:47;18100:131;18226:4;18100:131;:::i;:::-;18092:139;;17990:248;;;:::o;18244:419::-;18410:4;18448:2;18437:9;18433:18;18425:26;;18497:9;18491:4;18487:20;18483:1;18472:9;18468:17;18461:47;18525:131;18651:4;18525:131;:::i;:::-;18517:139;;18415:248;;;:::o;18669:419::-;18835:4;18873:2;18862:9;18858:18;18850:26;;18922:9;18916:4;18912:20;18908:1;18897:9;18893:17;18886:47;18950:131;19076:4;18950:131;:::i;:::-;18942:139;;18840:248;;;:::o;19094:419::-;19260:4;19298:2;19287:9;19283:18;19275:26;;19347:9;19341:4;19337:20;19333:1;19322:9;19318:17;19311:47;19375:131;19501:4;19375:131;:::i;:::-;19367:139;;19265:248;;;:::o;19519:419::-;19685:4;19723:2;19712:9;19708:18;19700:26;;19772:9;19766:4;19762:20;19758:1;19747:9;19743:17;19736:47;19800:131;19926:4;19800:131;:::i;:::-;19792:139;;19690:248;;;:::o;19944:222::-;20037:4;20075:2;20064:9;20060:18;20052:26;;20088:71;20156:1;20145:9;20141:17;20132:6;20088:71;:::i;:::-;20042:124;;;;:::o;20172:831::-;20435:4;20473:3;20462:9;20458:19;20450:27;;20487:71;20555:1;20544:9;20540:17;20531:6;20487:71;:::i;:::-;20568:80;20644:2;20633:9;20629:18;20620:6;20568:80;:::i;:::-;20695:9;20689:4;20685:20;20680:2;20669:9;20665:18;20658:48;20723:108;20826:4;20817:6;20723:108;:::i;:::-;20715:116;;20841:72;20909:2;20898:9;20894:18;20885:6;20841:72;:::i;:::-;20923:73;20991:3;20980:9;20976:19;20967:6;20923:73;:::i;:::-;20440:563;;;;;;;;:::o;21009:214::-;21098:4;21136:2;21125:9;21121:18;21113:26;;21149:67;21213:1;21202:9;21198:17;21189:6;21149:67;:::i;:::-;21103:120;;;;:::o;21229:129::-;21263:6;21290:20;;:::i;:::-;21280:30;;21319:33;21347:4;21339:6;21319:33;:::i;:::-;21270:88;;;:::o;21364:75::-;21397:6;21430:2;21424:9;21414:19;;21404:35;:::o;21445:311::-;21522:4;21612:18;21604:6;21601:30;21598:2;;;21634:18;;:::i;:::-;21598:2;21684:4;21676:6;21672:17;21664:25;;21744:4;21738;21734:15;21726:23;;21527:229;;;:::o;21762:132::-;21829:4;21852:3;21844:11;;21882:4;21877:3;21873:14;21865:22;;21834:60;;;:::o;21900:114::-;21967:6;22001:5;21995:12;21985:22;;21974:40;;;:::o;22020:99::-;22072:6;22106:5;22100:12;22090:22;;22079:40;;;:::o;22125:113::-;22195:4;22227;22222:3;22218:14;22210:22;;22200:38;;;:::o;22244:184::-;22343:11;22377:6;22372:3;22365:19;22417:4;22412:3;22408:14;22393:29;;22355:73;;;;:::o;22434:169::-;22518:11;22552:6;22547:3;22540:19;22592:4;22587:3;22583:14;22568:29;;22530:73;;;;:::o;22609:305::-;22649:3;22668:20;22686:1;22668:20;:::i;:::-;22663:25;;22702:20;22720:1;22702:20;:::i;:::-;22697:25;;22856:1;22788:66;22784:74;22781:1;22778:81;22775:2;;;22862:18;;:::i;:::-;22775:2;22906:1;22903;22899:9;22892:16;;22653:261;;;;:::o;22920:185::-;22960:1;22977:20;22995:1;22977:20;:::i;:::-;22972:25;;23011:20;23029:1;23011:20;:::i;:::-;23006:25;;23050:1;23040:2;;23055:18;;:::i;:::-;23040:2;23097:1;23094;23090:9;23085:14;;22962:143;;;;:::o;23111:348::-;23151:7;23174:20;23192:1;23174:20;:::i;:::-;23169:25;;23208:20;23226:1;23208:20;:::i;:::-;23203:25;;23396:1;23328:66;23324:74;23321:1;23318:81;23313:1;23306:9;23299:17;23295:105;23292:2;;;23403:18;;:::i;:::-;23292:2;23451:1;23448;23444:9;23433:20;;23159:300;;;;:::o;23465:191::-;23505:4;23525:20;23543:1;23525:20;:::i;:::-;23520:25;;23559:20;23577:1;23559:20;:::i;:::-;23554:25;;23598:1;23595;23592:8;23589:2;;;23603:18;;:::i;:::-;23589:2;23648:1;23645;23641:9;23633:17;;23510:146;;;;:::o;23662:96::-;23699:7;23728:24;23746:5;23728:24;:::i;:::-;23717:35;;23707:51;;;:::o;23764:90::-;23798:7;23841:5;23834:13;23827:21;23816:32;;23806:48;;;:::o;23860:126::-;23897:7;23937:42;23930:5;23926:54;23915:65;;23905:81;;;:::o;23992:77::-;24029:7;24058:5;24047:16;;24037:32;;;:::o;24075:86::-;24110:7;24150:4;24143:5;24139:16;24128:27;;24118:43;;;:::o;24167:134::-;24225:9;24258:37;24289:5;24258:37;:::i;:::-;24245:50;;24235:66;;;:::o;24307:121::-;24365:9;24398:24;24416:5;24398:24;:::i;:::-;24385:37;;24375:53;;;:::o;24434:126::-;24484:9;24517:37;24548:5;24517:37;:::i;:::-;24504:50;;24494:66;;;:::o;24566:113::-;24616:9;24649:24;24667:5;24649:24;:::i;:::-;24636:37;;24626:53;;;:::o;24685:307::-;24753:1;24763:113;24777:6;24774:1;24771:13;24763:113;;;24862:1;24857:3;24853:11;24847:18;24843:1;24838:3;24834:11;24827:39;24799:2;24796:1;24792:10;24787:15;;24763:113;;;24894:6;24891:1;24888:13;24885:2;;;24974:1;24965:6;24960:3;24956:16;24949:27;24885:2;24734:258;;;;:::o;24998:281::-;25081:27;25103:4;25081:27;:::i;:::-;25073:6;25069:40;25211:6;25199:10;25196:22;25175:18;25163:10;25160:34;25157:62;25154:2;;;25222:18;;:::i;:::-;25154:2;25262:10;25258:2;25251:22;25041:238;;;:::o;25285:233::-;25324:3;25347:24;25365:5;25347:24;:::i;:::-;25338:33;;25393:66;25386:5;25383:77;25380:2;;;25463:18;;:::i;:::-;25380:2;25510:1;25503:5;25499:13;25492:20;;25328:190;;;:::o;25524:180::-;25572:77;25569:1;25562:88;25669:4;25666:1;25659:15;25693:4;25690:1;25683:15;25710:180;25758:77;25755:1;25748:88;25855:4;25852:1;25845:15;25879:4;25876:1;25869:15;25896:180;25944:77;25941:1;25934:88;26041:4;26038:1;26031:15;26065:4;26062:1;26055:15;26082:102;26123:6;26174:2;26170:7;26165:2;26158:5;26154:14;26150:28;26140:38;;26130:54;;;:::o;26190:222::-;26330:34;26326:1;26318:6;26314:14;26307:58;26399:5;26394:2;26386:6;26382:15;26375:30;26296:116;:::o;26418:166::-;26558:18;26554:1;26546:6;26542:14;26535:42;26524:60;:::o;26590:221::-;26730:34;26726:1;26718:6;26714:14;26707:58;26799:4;26794:2;26786:6;26782:15;26775:29;26696:115;:::o;26817:177::-;26957:29;26953:1;26945:6;26941:14;26934:53;26923:71;:::o;27000:220::-;27140:34;27136:1;27128:6;27124:14;27117:58;27209:3;27204:2;27196:6;27192:15;27185:28;27106:114;:::o;27226:182::-;27366:34;27362:1;27354:6;27350:14;27343:58;27332:76;:::o;27414:228::-;27554:34;27550:1;27542:6;27538:14;27531:58;27623:11;27618:2;27610:6;27606:15;27599:36;27520:122;:::o;27648:170::-;27788:22;27784:1;27776:6;27772:14;27765:46;27754:64;:::o;27824:224::-;27964:34;27960:1;27952:6;27948:14;27941:58;28033:7;28028:2;28020:6;28016:15;28009:32;27930:118;:::o;28054:223::-;28194:34;28190:1;28182:6;28178:14;28171:58;28263:6;28258:2;28250:6;28246:15;28239:31;28160:117;:::o;28283:173::-;28423:25;28419:1;28411:6;28407:14;28400:49;28389:67;:::o;28462:222::-;28602:34;28598:1;28590:6;28586:14;28579:58;28671:5;28666:2;28658:6;28654:15;28647:30;28568:116;:::o;28690:122::-;28763:24;28781:5;28763:24;:::i;:::-;28756:5;28753:35;28743:2;;28802:1;28799;28792:12;28743:2;28733:79;:::o;28818:116::-;28888:21;28903:5;28888:21;:::i;:::-;28881:5;28878:32;28868:2;;28924:1;28921;28914:12;28868:2;28858:76;:::o;28940:122::-;29013:24;29031:5;29013:24;:::i;:::-;29006:5;29003:35;28993:2;;29052:1;29049;29042:12;28993:2;28983:79;:::o;29068:118::-;29139:22;29155:5;29139:22;:::i;:::-;29132:5;29129:33;29119:2;;29176:1;29173;29166:12;29119:2;29109:77;:::o
Swarm Source
ipfs://a098303faaab9af00f5a906d4a7f0285ac2b33a2bf0debc0414f8a81418119a2
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.