ERC-20
Overview
Max Total Supply
100,000,000,000 sAQUA
Holders
49
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
31,592,178.839715499999999998 sAQUAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SAQUA
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-09 */ pragma solidity 0.8.20; // SPDX-License-Identifier: none abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } 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); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "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 _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract SAQUA is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public launched; modifier lockSwapping() { swapping = true; _; swapping = false; } event TransferForeignToken(address token, uint256 amount); event Launched(); event SwapEnabled(); event SwapThresholdUpdated(); event BuyTaxesUpdated(); event SellTaxesUpdated(); event devWalletUpdated(); event DevelopmentWalletUpdated(); event StoicDaoWalletUpdated(); event ExcludedFromFeesUpdated(); event MaxTxAmountUpdated(); event MaxWalletAmountUpdated(); event StuckEthersCleared(); uint256 public swapThreshold = 10000 * 10**18; //0.1% of total supply address public devWallet = 0x5e6F217b6677537DB638979026B7681a5B57b2E5; struct Taxes { uint256 dev; } Taxes public buyTaxes = Taxes(30); Taxes public sellTaxes = Taxes(30 ); uint256 private totBuyTax = 30; //30% uint256 private totSellTax = 30; //30% mapping (address => bool) public excludedFromFees; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("sAQUA", "sAQUA") { _mint(msg.sender, 100000000000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); uint256 fee; if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; else{ if(recipient == pair) fee = amount * totSellTax / 100; else if(sender == pair) fee = amount * totBuyTax / 100; else fee = 0; } if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { swapTokensForETH(contractBalance); uint256 deltaBalance = address(this).balance; payable(devWallet).sendValue(deltaBalance); } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable address(0xdead), block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { // to be used only in case of dire emergency swapEnabled = state; emit SwapEnabled(); } function setSwapThreshold(uint256 new_amount) external onlyOwner { require(new_amount >= 10000, "Swap amount cannot be lower than 0.001% total supply."); require(new_amount <= 30000000, "Swap amount cannot be higher than 3% total supply."); swapThreshold = new_amount * (10**18); emit SwapThresholdUpdated(); } function launch() external onlyOwner{ require(!launched, "Trading already active"); launched = true; swapEnabled = true; emit Launched(); } function setBuyTaxes(uint256 _dev) external onlyOwner{ buyTaxes = Taxes(_dev); totBuyTax = _dev; require(totBuyTax <= 40,"Total buy fees cannot be greater than 5%"); emit BuyTaxesUpdated(); } function setSellTaxes(uint256 _dev) external onlyOwner{ sellTaxes = Taxes(_dev); totSellTax = _dev ; require(totSellTax <= 40,"Total sell fees cannot be greater than 5%"); emit SellTaxesUpdated(); } function setdevWallet(address newWallet) external onlyOwner{ excludedFromFees[devWallet] = false; require(newWallet != address(0), "dev Wallet cannot be zero address"); devWallet = newWallet; emit devWalletUpdated(); } function setpairWallet(address _pair) external onlyOwner{ require(_pair != address(0), "_pair Wallet cannot be zero address"); pair = _pair; } function setExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; emit ExcludedFromFeesUpdated(); } function withdrawStuckTokens(address _token, address _to) external onlyOwner returns (bool _sent) { uint256 _contractBalance = IERC20(_token).balanceOf(address(this)); _sent = IERC20(_token).transfer(_to, _contractBalance); emit TransferForeignToken(_token, _contractBalance); } function clearStuckEthers(uint256 amountPercentage) external onlyOwner { uint256 amountETH = address(this).balance; payable(msg.sender).transfer((amountETH * amountPercentage) / 100); emit StuckEthersCleared(); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StoicDaoWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"anonymous":false,"inputs":[],"name":"devWalletUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setdevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"}],"name":"setpairWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405269021e19e0c9bab2400000600855735e6f217b6677537db638979026b7681a5b57b2e560095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060200160405280601e815250600a5f820151815f015550506040518060200160405280601e815250600b5f820151815f01555050601e600c55601e600d55348015620000b4575f80fd5b506040518060400160405280600581526020017f73415155410000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f7341515541000000000000000000000000000000000000000000000000000000815250816003908162000132919062000961565b50806004908162000144919062000961565b505050620001676200015b620004c960201b60201c565b620004d060201b60201c565b620001a8336200017c6200059360201b60201c565b600a6200018a919062000bce565b64174876e8006200019c919062000c1e565b6200059b60201b60201c565b6001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000260573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000286919062000ccd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000312919062000ccd565b6040518363ffffffff1660e01b81526004016200033192919062000d0e565b6020604051808303815f875af11580156200034e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000374919062000ccd565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505062000e1d565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006039062000d97565b60405180910390fd5b6200061f5f8383620006f860201b60201c565b8060025f82825462000632919062000db7565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825462000686919062000db7565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006ec919062000e02565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200077957607f821691505b6020821081036200078f576200078e62000734565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007b6565b620007ff8683620007b6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000849620008436200083d8462000817565b62000820565b62000817565b9050919050565b5f819050919050565b620008648362000829565b6200087c620008738262000850565b848454620007c2565b825550505050565b5f90565b6200089262000884565b6200089f81848462000859565b505050565b5b81811015620008c657620008ba5f8262000888565b600181019050620008a5565b5050565b601f8211156200091557620008df8162000795565b620008ea84620007a7565b81016020851015620008fa578190505b620009126200090985620007a7565b830182620008a4565b50505b505050565b5f82821c905092915050565b5f620009375f19846008026200091a565b1980831691505092915050565b5f62000951838362000926565b9150826002028217905092915050565b6200096c82620006fd565b67ffffffffffffffff81111562000988576200098762000707565b5b62000994825462000761565b620009a1828285620008ca565b5f60209050601f831160018114620009d7575f8415620009c2578287015190505b620009ce858262000944565b86555062000a3d565b601f198416620009e78662000795565b5f5b8281101562000a1057848901518255600182019150602085019450602081019050620009e9565b8683101562000a30578489015162000a2c601f89168262000926565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000acf5780860481111562000aa75762000aa662000a45565b5b600185161562000ab75780820291505b808102905062000ac78562000a72565b945062000a87565b94509492505050565b5f8262000ae9576001905062000bbb565b8162000af8575f905062000bbb565b816001811462000b11576002811462000b1c5762000b52565b600191505062000bbb565b60ff84111562000b315762000b3062000a45565b5b8360020a91508482111562000b4b5762000b4a62000a45565b5b5062000bbb565b5060208310610133831016604e8410600b841016171562000b8c5782820a90508381111562000b865762000b8562000a45565b5b62000bbb565b62000b9b848484600162000a7e565b9250905081840481111562000bb55762000bb462000a45565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000bda8262000817565b915062000be78362000bc2565b925062000c167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ad8565b905092915050565b5f62000c2a8262000817565b915062000c378362000817565b925082820262000c478162000817565b9150828204841483151762000c615762000c6062000a45565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000c978262000c6c565b9050919050565b62000ca98162000c8b565b811462000cb4575f80fd5b50565b5f8151905062000cc78162000c9e565b92915050565b5f6020828403121562000ce55762000ce462000c68565b5b5f62000cf48482850162000cb7565b91505092915050565b62000d088162000c8b565b82525050565b5f60408201905062000d235f83018562000cfd565b62000d32602083018462000cfd565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000d7f601f8362000d39565b915062000d8c8262000d49565b602082019050919050565b5f6020820190508181035f83015262000db08162000d71565b9050919050565b5f62000dc38262000817565b915062000dd08362000817565b925082820190508082111562000deb5762000dea62000a45565b5b92915050565b62000dfc8162000817565b82525050565b5f60208201905062000e175f83018462000df1565b92915050565b61398d8062000e2b5f395ff3fe6080604052600436106101f1575f3560e01c8063864701a51161010c578063a457c2d71161009f578063dd62ed3e1161006e578063dd62ed3e146106ee578063e01af92c1461072a578063f2fde38b14610752578063f66895a31461077a578063f887ea40146107a4576101f8565b8063a457c2d714610610578063a8aa1b311461064c578063a9059cbb14610676578063dbe66ca0146106b2576101f8565b806395f4d088116100db57806395f4d088146105705780639aed7370146105985780639d0014b1146105c0578063a3ca847d146105e8576101f8565b8063864701a5146104c85780638da5cb5b146104f25780638ea5220f1461051c57806395d89b4114610546576101f8565b8063313ce5671161018457806370a082311161015357806370a0823114610424578063715018a61461046057806374e7f699146104765780638091f3bf1461049e576101f8565b8063313ce5671461036c5780633950935114610396578063590ffdce146103d25780636ddd1713146103fa576101f8565b8063095ea7b3116101c0578063095ea7b31461028e57806318160ddd146102ca57806323b872dd146102f457806325b86edf14610330576101f8565b806301339c21146101fc5780630445b6671461021257806306fdde031461023c5780630940bbc714610266576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b506102106107ce565b005b34801561021d575f80fd5b506102266108fe565b60405161023391906126e7565b60405180910390f35b348015610247575f80fd5b50610250610904565b60405161025d919061278a565b60405180910390f35b348015610271575f80fd5b5061028c600480360381019061028791906127d8565b610994565b005b348015610299575f80fd5b506102b460048036038101906102af919061285d565b610aa8565b6040516102c191906128b5565b60405180910390f35b3480156102d5575f80fd5b506102de610ac5565b6040516102eb91906126e7565b60405180910390f35b3480156102ff575f80fd5b5061031a600480360381019061031591906128ce565b610ace565b60405161032791906128b5565b60405180910390f35b34801561033b575f80fd5b506103566004803603810190610351919061291e565b610bc9565b60405161036391906128b5565b60405180910390f35b348015610377575f80fd5b50610380610d7e565b60405161038d9190612977565b60405180910390f35b3480156103a1575f80fd5b506103bc60048036038101906103b7919061285d565b610d86565b6040516103c991906128b5565b60405180910390f35b3480156103dd575f80fd5b506103f860048036038101906103f391906129ba565b610e2d565b005b348015610405575f80fd5b5061040e610f2d565b60405161041b91906128b5565b60405180910390f35b34801561042f575f80fd5b5061044a600480360381019061044591906129f8565b610f40565b60405161045791906126e7565b60405180910390f35b34801561046b575f80fd5b50610474610f85565b005b348015610481575f80fd5b5061049c600480360381019061049791906129f8565b61100c565b005b3480156104a9575f80fd5b506104b2611139565b6040516104bf91906128b5565b60405180910390f35b3480156104d3575f80fd5b506104dc61114c565b6040516104e991906126e7565b60405180910390f35b3480156104fd575f80fd5b50610506611157565b6040516105139190612a32565b60405180910390f35b348015610527575f80fd5b5061053061117f565b60405161053d9190612a32565b60405180910390f35b348015610551575f80fd5b5061055a6111a4565b604051610567919061278a565b60405180910390f35b34801561057b575f80fd5b50610596600480360381019061059191906129f8565b611234565b005b3480156105a3575f80fd5b506105be60048036038101906105b991906127d8565b611402565b005b3480156105cb575f80fd5b506105e660048036038101906105e191906127d8565b61150d565b005b3480156105f3575f80fd5b5061060e600480360381019061060991906127d8565b61165d565b005b34801561061b575f80fd5b506106366004803603810190610631919061285d565b611771565b60405161064391906128b5565b60405180910390f35b348015610657575f80fd5b50610660611860565b60405161066d9190612a32565b60405180910390f35b348015610681575f80fd5b5061069c6004803603810190610697919061285d565b611885565b6040516106a991906128b5565b60405180910390f35b3480156106bd575f80fd5b506106d860048036038101906106d391906129f8565b6118a2565b6040516106e591906128b5565b60405180910390f35b3480156106f9575f80fd5b50610714600480360381019061070f919061291e565b6118bf565b60405161072191906126e7565b60405180910390f35b348015610735575f80fd5b50610750600480360381019061074b9190612a4b565b611941565b005b34801561075d575f80fd5b50610778600480360381019061077391906129f8565b611a06565b005b348015610785575f80fd5b5061078e611afc565b60405161079b91906126e7565b60405180910390f35b3480156107af575f80fd5b506107b8611b07565b6040516107c59190612ad1565b60405180910390f35b6107d6611b2c565b73ffffffffffffffffffffffffffffffffffffffff166107f4611157565b73ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084190612b34565b60405180910390fd5b600760169054906101000a900460ff161561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612b9c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a1565b60085481565b60606003805461091390612be7565b80601f016020809104026020016040519081016040528092919081815260200182805461093f90612be7565b801561098a5780601f106109615761010080835404028352916020019161098a565b820191905f5260205f20905b81548152906001019060200180831161096d57829003601f168201915b5050505050905090565b61099c611b2c565b73ffffffffffffffffffffffffffffffffffffffff166109ba611157565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0790612b34565b60405180910390fd5b604051806020016040528082815250600b5f820151815f015590505080600d819055506028600d541115610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7090612c87565b60405180910390fd5b7f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c3078560405160405180910390a150565b5f610abb610ab4611b2c565b8484611b33565b6001905092915050565b5f600254905090565b5f610ada848484611cf6565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b21611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790612d15565b60405180910390fd5b610bbd85610bac611b2c565b8584610bb89190612d60565b611b33565b60019150509392505050565b5f610bd2611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610bf0611157565b73ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90612b34565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c809190612a32565b602060405180830381865afa158015610c9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190612da7565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610cfc929190612dd2565b6020604051808303815f875af1158015610d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612e0d565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610d6f929190612dd2565b60405180910390a15092915050565b5f6012905090565b5f610e23610d92611b2c565b848460015f610d9f611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e1e9190612e38565b611b33565b6001905092915050565b610e35611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610e53611157565b73ffffffffffffffffffffffffffffffffffffffff1614610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612b34565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f8d611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610fab611157565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890612b34565b60405180910390fd5b61100a5f611fb3565b565b611014611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611032611157565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612edb565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760169054906101000a900460ff1681565b600a805f0154905081565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546111b390612be7565b80601f01602080910402602001604051908101604052809291908181526020018280546111df90612be7565b801561122a5780601f106112015761010080835404028352916020019161122a565b820191905f5260205f20905b81548152906001019060200180831161120d57829003601f168201915b5050505050905090565b61123c611b2c565b73ffffffffffffffffffffffffffffffffffffffff1661125a611157565b73ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612b34565b60405180910390fd5b5f600e5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138a90612f69565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ffeda45486c362ea4053392bf33dfb290a9d2727432dfc61fe5a5b0acdc6dad60405160405180910390a150565b61140a611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611428611157565b73ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590612b34565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846114aa9190612f87565b6114b49190612ff5565b90811502906040515f60405180830381858888f193505050501580156114dc573d5f803e3d5ffd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b611515611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611533611157565b73ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612b34565b60405180910390fd5b6127108110156115ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c590613095565b60405180910390fd5b6301c9c380811115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613123565b60405180910390fd5b670de0b6b3a7640000816116299190612f87565b6008819055507ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d60405160405180910390a150565b611665611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611683611157565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090612b34565b60405180910390fd5b604051806020016040528082815250600a5f820151815f015590505080600c819055506028600c541115611742576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611739906131b1565b60405180910390fd5b7f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d60405160405180910390a150565b5f8060015f61177e611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f9061323f565b60405180910390fd5b611855611843611b2c565b8585846118509190612d60565b611b33565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611898611891611b2c565b8484611cf6565b6001905092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611949611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611967611157565b73ffffffffffffffffffffffffffffffffffffffff16146119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490612b34565b60405180910390fd5b80600760156101000a81548160ff0219169083151502179055507f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a60405160405180910390a150565b611a0e611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611a2c611157565b73ffffffffffffffffffffffffffffffffffffffff1614611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906132cd565b60405180910390fd5b611af981611fb3565b50565b600b805f0154905081565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061335b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c06906133e9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ce991906126e7565b60405180910390a3505050565b5f8111611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613477565b60405180910390fd5b5f600760149054906101000a900460ff1680611d9a5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611deb5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df8575f9050611ee8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e6d576064600d5483611e5c9190612f87565b611e669190612ff5565b9050611ee7565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ee2576064600c5483611ed19190612f87565b611edb9190612ff5565b9050611ee6565b5f90505b5b5b600760159054906101000a900460ff168015611f115750600760149054906101000a900460ff16155b8015611f6a575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7557505f81115b15611f8357611f82612076565b5b611f9984848385611f949190612d60565b612131565b5f811115611fad57611fac843083612131565b5b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661212f576001600760146101000a81548160ff0219169083151502179055505f6120af30610f40565b90506008548110612113576120c3816123a4565b5f4790506121118160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166125da90919063ffffffff16565b505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690613505565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361220d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220490613593565b60405180910390fd5b6122188383836126ca565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613621565b60405180910390fd5b81816122a79190612d60565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123329190612e38565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239691906126e7565b60405180910390a350505050565b5f600267ffffffffffffffff8111156123c0576123bf61363f565b5b6040519080825280602002602001820160405280156123ee5781602001602082028036833780820191505090505b50905030815f815181106124055761240461366c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cd91906136ad565b816001815181106124e1576124e061366c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125473060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b33565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125a99594939291906137c8565b5f604051808303815f87803b1580156125c0575f80fd5b505af11580156125d2573d5f803e3d5ffd5b505050505050565b8047101561261d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126149061386a565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612642906138b5565b5f6040518083038185875af1925050503d805f811461267c576040519150601f19603f3d011682016040523d82523d5f602084013e612681565b606091505b50509050806126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90613939565b60405180910390fd5b505050565b505050565b5f819050919050565b6126e1816126cf565b82525050565b5f6020820190506126fa5f8301846126d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561273757808201518184015260208101905061271c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61275c82612700565b612766818561270a565b935061277681856020860161271a565b61277f81612742565b840191505092915050565b5f6020820190508181035f8301526127a28184612752565b905092915050565b5f80fd5b6127b7816126cf565b81146127c1575f80fd5b50565b5f813590506127d2816127ae565b92915050565b5f602082840312156127ed576127ec6127aa565b5b5f6127fa848285016127c4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61282c82612803565b9050919050565b61283c81612822565b8114612846575f80fd5b50565b5f8135905061285781612833565b92915050565b5f8060408385031215612873576128726127aa565b5b5f61288085828601612849565b9250506020612891858286016127c4565b9150509250929050565b5f8115159050919050565b6128af8161289b565b82525050565b5f6020820190506128c85f8301846128a6565b92915050565b5f805f606084860312156128e5576128e46127aa565b5b5f6128f286828701612849565b935050602061290386828701612849565b9250506040612914868287016127c4565b9150509250925092565b5f8060408385031215612934576129336127aa565b5b5f61294185828601612849565b925050602061295285828601612849565b9150509250929050565b5f60ff82169050919050565b6129718161295c565b82525050565b5f60208201905061298a5f830184612968565b92915050565b6129998161289b565b81146129a3575f80fd5b50565b5f813590506129b481612990565b92915050565b5f80604083850312156129d0576129cf6127aa565b5b5f6129dd85828601612849565b92505060206129ee858286016129a6565b9150509250929050565b5f60208284031215612a0d57612a0c6127aa565b5b5f612a1a84828501612849565b91505092915050565b612a2c81612822565b82525050565b5f602082019050612a455f830184612a23565b92915050565b5f60208284031215612a6057612a5f6127aa565b5b5f612a6d848285016129a6565b91505092915050565b5f819050919050565b5f612a99612a94612a8f84612803565b612a76565b612803565b9050919050565b5f612aaa82612a7f565b9050919050565b5f612abb82612aa0565b9050919050565b612acb81612ab1565b82525050565b5f602082019050612ae45f830184612ac2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b1e60208361270a565b9150612b2982612aea565b602082019050919050565b5f6020820190508181035f830152612b4b81612b12565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612b8660168361270a565b9150612b9182612b52565b602082019050919050565b5f6020820190508181035f830152612bb381612b7a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612bfe57607f821691505b602082108103612c1157612c10612bba565b5b50919050565b7f546f74616c2073656c6c20666565732063616e6e6f74206265206772656174655f8201527f72207468616e2035250000000000000000000000000000000000000000000000602082015250565b5f612c7160298361270a565b9150612c7c82612c17565b604082019050919050565b5f6020820190508181035f830152612c9e81612c65565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612cff60288361270a565b9150612d0a82612ca5565b604082019050919050565b5f6020820190508181035f830152612d2c81612cf3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d6a826126cf565b9150612d75836126cf565b9250828203905081811115612d8d57612d8c612d33565b5b92915050565b5f81519050612da1816127ae565b92915050565b5f60208284031215612dbc57612dbb6127aa565b5b5f612dc984828501612d93565b91505092915050565b5f604082019050612de55f830185612a23565b612df260208301846126d8565b9392505050565b5f81519050612e0781612990565b92915050565b5f60208284031215612e2257612e216127aa565b5b5f612e2f84828501612df9565b91505092915050565b5f612e42826126cf565b9150612e4d836126cf565b9250828201905080821115612e6557612e64612d33565b5b92915050565b7f5f706169722057616c6c65742063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ec560238361270a565b9150612ed082612e6b565b604082019050919050565b5f6020820190508181035f830152612ef281612eb9565b9050919050565b7f6465762057616c6c65742063616e6e6f74206265207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5360218361270a565b9150612f5e82612ef9565b604082019050919050565b5f6020820190508181035f830152612f8081612f47565b9050919050565b5f612f91826126cf565b9150612f9c836126cf565b9250828202612faa816126cf565b91508282048414831517612fc157612fc0612d33565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fff826126cf565b915061300a836126cf565b92508261301a57613019612fc8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61307f60358361270a565b915061308a82613025565b604082019050919050565b5f6020820190508181035f8301526130ac81613073565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000602082015250565b5f61310d60328361270a565b9150613118826130b3565b604082019050919050565b5f6020820190508181035f83015261313a81613101565b9050919050565b7f546f74616c2062757920666565732063616e6e6f7420626520677265617465725f8201527f207468616e203525000000000000000000000000000000000000000000000000602082015250565b5f61319b60288361270a565b91506131a682613141565b604082019050919050565b5f6020820190508181035f8301526131c88161318f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61322960258361270a565b9150613234826131cf565b604082019050919050565b5f6020820190508181035f8301526132568161321d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132b760268361270a565b91506132c28261325d565b604082019050919050565b5f6020820190508181035f8301526132e4816132ab565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61334560248361270a565b9150613350826132eb565b604082019050919050565b5f6020820190508181035f83015261337281613339565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d360228361270a565b91506133de82613379565b604082019050919050565b5f6020820190508181035f830152613400816133c7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61346160298361270a565b915061346c82613407565b604082019050919050565b5f6020820190508181035f83015261348e81613455565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ef60258361270a565b91506134fa82613495565b604082019050919050565b5f6020820190508181035f83015261351c816134e3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61357d60238361270a565b915061358882613523565b604082019050919050565b5f6020820190508181035f8301526135aa81613571565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61360b60268361270a565b9150613616826135b1565b604082019050919050565b5f6020820190508181035f830152613638816135ff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506136a781612833565b92915050565b5f602082840312156136c2576136c16127aa565b5b5f6136cf84828501613699565b91505092915050565b5f819050919050565b5f6136fb6136f66136f1846136d8565b612a76565b6126cf565b9050919050565b61370b816136e1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61374381612822565b82525050565b5f613754838361373a565b60208301905092915050565b5f602082019050919050565b5f61377682613711565b613780818561371b565b935061378b8361372b565b805f5b838110156137bb5781516137a28882613749565b97506137ad83613760565b92505060018101905061378e565b5085935050505092915050565b5f60a0820190506137db5f8301886126d8565b6137e86020830187613702565b81810360408301526137fa818661376c565b90506138096060830185612a23565b61381660808301846126d8565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613854601d8361270a565b915061385f82613820565b602082019050919050565b5f6020820190508181035f83015261388181613848565b9050919050565b5f81905092915050565b50565b5f6138a05f83613888565b91506138ab82613892565b5f82019050919050565b5f6138bf82613895565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613923603a8361270a565b915061392e826138c9565b604082019050919050565b5f6020820190508181035f83015261395081613917565b905091905056fea26469706673582212200196b6a95f29986b3a37eb53c53081ce4ccd09e742b78d02afd279c7dfaae98964736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101f1575f3560e01c8063864701a51161010c578063a457c2d71161009f578063dd62ed3e1161006e578063dd62ed3e146106ee578063e01af92c1461072a578063f2fde38b14610752578063f66895a31461077a578063f887ea40146107a4576101f8565b8063a457c2d714610610578063a8aa1b311461064c578063a9059cbb14610676578063dbe66ca0146106b2576101f8565b806395f4d088116100db57806395f4d088146105705780639aed7370146105985780639d0014b1146105c0578063a3ca847d146105e8576101f8565b8063864701a5146104c85780638da5cb5b146104f25780638ea5220f1461051c57806395d89b4114610546576101f8565b8063313ce5671161018457806370a082311161015357806370a0823114610424578063715018a61461046057806374e7f699146104765780638091f3bf1461049e576101f8565b8063313ce5671461036c5780633950935114610396578063590ffdce146103d25780636ddd1713146103fa576101f8565b8063095ea7b3116101c0578063095ea7b31461028e57806318160ddd146102ca57806323b872dd146102f457806325b86edf14610330576101f8565b806301339c21146101fc5780630445b6671461021257806306fdde031461023c5780630940bbc714610266576101f8565b366101f857005b5f80fd5b348015610207575f80fd5b506102106107ce565b005b34801561021d575f80fd5b506102266108fe565b60405161023391906126e7565b60405180910390f35b348015610247575f80fd5b50610250610904565b60405161025d919061278a565b60405180910390f35b348015610271575f80fd5b5061028c600480360381019061028791906127d8565b610994565b005b348015610299575f80fd5b506102b460048036038101906102af919061285d565b610aa8565b6040516102c191906128b5565b60405180910390f35b3480156102d5575f80fd5b506102de610ac5565b6040516102eb91906126e7565b60405180910390f35b3480156102ff575f80fd5b5061031a600480360381019061031591906128ce565b610ace565b60405161032791906128b5565b60405180910390f35b34801561033b575f80fd5b506103566004803603810190610351919061291e565b610bc9565b60405161036391906128b5565b60405180910390f35b348015610377575f80fd5b50610380610d7e565b60405161038d9190612977565b60405180910390f35b3480156103a1575f80fd5b506103bc60048036038101906103b7919061285d565b610d86565b6040516103c991906128b5565b60405180910390f35b3480156103dd575f80fd5b506103f860048036038101906103f391906129ba565b610e2d565b005b348015610405575f80fd5b5061040e610f2d565b60405161041b91906128b5565b60405180910390f35b34801561042f575f80fd5b5061044a600480360381019061044591906129f8565b610f40565b60405161045791906126e7565b60405180910390f35b34801561046b575f80fd5b50610474610f85565b005b348015610481575f80fd5b5061049c600480360381019061049791906129f8565b61100c565b005b3480156104a9575f80fd5b506104b2611139565b6040516104bf91906128b5565b60405180910390f35b3480156104d3575f80fd5b506104dc61114c565b6040516104e991906126e7565b60405180910390f35b3480156104fd575f80fd5b50610506611157565b6040516105139190612a32565b60405180910390f35b348015610527575f80fd5b5061053061117f565b60405161053d9190612a32565b60405180910390f35b348015610551575f80fd5b5061055a6111a4565b604051610567919061278a565b60405180910390f35b34801561057b575f80fd5b50610596600480360381019061059191906129f8565b611234565b005b3480156105a3575f80fd5b506105be60048036038101906105b991906127d8565b611402565b005b3480156105cb575f80fd5b506105e660048036038101906105e191906127d8565b61150d565b005b3480156105f3575f80fd5b5061060e600480360381019061060991906127d8565b61165d565b005b34801561061b575f80fd5b506106366004803603810190610631919061285d565b611771565b60405161064391906128b5565b60405180910390f35b348015610657575f80fd5b50610660611860565b60405161066d9190612a32565b60405180910390f35b348015610681575f80fd5b5061069c6004803603810190610697919061285d565b611885565b6040516106a991906128b5565b60405180910390f35b3480156106bd575f80fd5b506106d860048036038101906106d391906129f8565b6118a2565b6040516106e591906128b5565b60405180910390f35b3480156106f9575f80fd5b50610714600480360381019061070f919061291e565b6118bf565b60405161072191906126e7565b60405180910390f35b348015610735575f80fd5b50610750600480360381019061074b9190612a4b565b611941565b005b34801561075d575f80fd5b50610778600480360381019061077391906129f8565b611a06565b005b348015610785575f80fd5b5061078e611afc565b60405161079b91906126e7565b60405180910390f35b3480156107af575f80fd5b506107b8611b07565b6040516107c59190612ad1565b60405180910390f35b6107d6611b2c565b73ffffffffffffffffffffffffffffffffffffffff166107f4611157565b73ffffffffffffffffffffffffffffffffffffffff161461084a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084190612b34565b60405180910390fd5b600760169054906101000a900460ff161561089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612b9c565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a1565b60085481565b60606003805461091390612be7565b80601f016020809104026020016040519081016040528092919081815260200182805461093f90612be7565b801561098a5780601f106109615761010080835404028352916020019161098a565b820191905f5260205f20905b81548152906001019060200180831161096d57829003601f168201915b5050505050905090565b61099c611b2c565b73ffffffffffffffffffffffffffffffffffffffff166109ba611157565b73ffffffffffffffffffffffffffffffffffffffff1614610a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0790612b34565b60405180910390fd5b604051806020016040528082815250600b5f820151815f015590505080600d819055506028600d541115610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7090612c87565b60405180910390fd5b7f13f91d6936cb30f23ecef75125dc94fead23e2cb4beb9d95058df43aa8c3078560405160405180910390a150565b5f610abb610ab4611b2c565b8484611b33565b6001905092915050565b5f600254905090565b5f610ada848484611cf6565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610b21611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790612d15565b60405180910390fd5b610bbd85610bac611b2c565b8584610bb89190612d60565b611b33565b60019150509392505050565b5f610bd2611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610bf0611157565b73ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90612b34565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c809190612a32565b602060405180830381865afa158015610c9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190612da7565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610cfc929190612dd2565b6020604051808303815f875af1158015610d18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612e0d565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610d6f929190612dd2565b60405180910390a15092915050565b5f6012905090565b5f610e23610d92611b2c565b848460015f610d9f611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610e1e9190612e38565b611b33565b6001905092915050565b610e35611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610e53611157565b73ffffffffffffffffffffffffffffffffffffffff1614610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612b34565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f8d611b2c565b73ffffffffffffffffffffffffffffffffffffffff16610fab611157565b73ffffffffffffffffffffffffffffffffffffffff1614611001576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff890612b34565b60405180910390fd5b61100a5f611fb3565b565b611014611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611032611157565b73ffffffffffffffffffffffffffffffffffffffff1614611088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107f90612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612edb565b60405180910390fd5b8060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760169054906101000a900460ff1681565b600a805f0154905081565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546111b390612be7565b80601f01602080910402602001604051908101604052809291908181526020018280546111df90612be7565b801561122a5780601f106112015761010080835404028352916020019161122a565b820191905f5260205f20905b81548152906001019060200180831161120d57829003601f168201915b5050505050905090565b61123c611b2c565b73ffffffffffffffffffffffffffffffffffffffff1661125a611157565b73ffffffffffffffffffffffffffffffffffffffff16146112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a790612b34565b60405180910390fd5b5f600e5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138a90612f69565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7ffeda45486c362ea4053392bf33dfb290a9d2727432dfc61fe5a5b0acdc6dad60405160405180910390a150565b61140a611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611428611157565b73ffffffffffffffffffffffffffffffffffffffff161461147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147590612b34565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846114aa9190612f87565b6114b49190612ff5565b90811502906040515f60405180830381858888f193505050501580156114dc573d5f803e3d5ffd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b611515611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611533611157565b73ffffffffffffffffffffffffffffffffffffffff1614611589576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158090612b34565b60405180910390fd5b6127108110156115ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c590613095565b60405180910390fd5b6301c9c380811115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90613123565b60405180910390fd5b670de0b6b3a7640000816116299190612f87565b6008819055507ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d60405160405180910390a150565b611665611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611683611157565b73ffffffffffffffffffffffffffffffffffffffff16146116d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d090612b34565b60405180910390fd5b604051806020016040528082815250600a5f820151815f015590505080600c819055506028600c541115611742576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611739906131b1565b60405180910390fd5b7f5603f0cab8983038ffb2c31e46a497a67322819231397b1a4eff19e46e39851d60405160405180910390a150565b5f8060015f61177e611b2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f9061323f565b60405180910390fd5b611855611843611b2c565b8585846118509190612d60565b611b33565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611898611891611b2c565b8484611cf6565b6001905092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611949611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611967611157565b73ffffffffffffffffffffffffffffffffffffffff16146119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490612b34565b60405180910390fd5b80600760156101000a81548160ff0219169083151502179055507f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a60405160405180910390a150565b611a0e611b2c565b73ffffffffffffffffffffffffffffffffffffffff16611a2c611157565b73ffffffffffffffffffffffffffffffffffffffff1614611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae7906132cd565b60405180910390fd5b611af981611fb3565b50565b600b805f0154905081565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b989061335b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c06906133e9565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ce991906126e7565b60405180910390a3505050565b5f8111611d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2f90613477565b60405180910390fd5b5f600760149054906101000a900460ff1680611d9a5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611deb5750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611df8575f9050611ee8565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e6d576064600d5483611e5c9190612f87565b611e669190612ff5565b9050611ee7565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ee2576064600c5483611ed19190612f87565b611edb9190612ff5565b9050611ee6565b5f90505b5b5b600760159054906101000a900460ff168015611f115750600760149054906101000a900460ff16155b8015611f6a575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f7557505f81115b15611f8357611f82612076565b5b611f9984848385611f949190612d60565b612131565b5f811115611fad57611fac843083612131565b5b50505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff1661212f576001600760146101000a81548160ff0219169083151502179055505f6120af30610f40565b90506008548110612113576120c3816123a4565b5f4790506121118160095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166125da90919063ffffffff16565b505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361219f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219690613505565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361220d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220490613593565b60405180910390fd5b6122188383836126ca565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229290613621565b60405180910390fd5b81816122a79190612d60565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123329190612e38565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161239691906126e7565b60405180910390a350505050565b5f600267ffffffffffffffff8111156123c0576123bf61363f565b5b6040519080825280602002602001820160405280156123ee5781602001602082028036833780820191505090505b50905030815f815181106124055761240461366c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124cd91906136ad565b816001815181106124e1576124e061366c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125473060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b33565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125a99594939291906137c8565b5f604051808303815f87803b1580156125c0575f80fd5b505af11580156125d2573d5f803e3d5ffd5b505050505050565b8047101561261d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126149061386a565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612642906138b5565b5f6040518083038185875af1925050503d805f811461267c576040519150601f19603f3d011682016040523d82523d5f602084013e612681565b606091505b50509050806126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90613939565b60405180910390fd5b505050565b505050565b5f819050919050565b6126e1816126cf565b82525050565b5f6020820190506126fa5f8301846126d8565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561273757808201518184015260208101905061271c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61275c82612700565b612766818561270a565b935061277681856020860161271a565b61277f81612742565b840191505092915050565b5f6020820190508181035f8301526127a28184612752565b905092915050565b5f80fd5b6127b7816126cf565b81146127c1575f80fd5b50565b5f813590506127d2816127ae565b92915050565b5f602082840312156127ed576127ec6127aa565b5b5f6127fa848285016127c4565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61282c82612803565b9050919050565b61283c81612822565b8114612846575f80fd5b50565b5f8135905061285781612833565b92915050565b5f8060408385031215612873576128726127aa565b5b5f61288085828601612849565b9250506020612891858286016127c4565b9150509250929050565b5f8115159050919050565b6128af8161289b565b82525050565b5f6020820190506128c85f8301846128a6565b92915050565b5f805f606084860312156128e5576128e46127aa565b5b5f6128f286828701612849565b935050602061290386828701612849565b9250506040612914868287016127c4565b9150509250925092565b5f8060408385031215612934576129336127aa565b5b5f61294185828601612849565b925050602061295285828601612849565b9150509250929050565b5f60ff82169050919050565b6129718161295c565b82525050565b5f60208201905061298a5f830184612968565b92915050565b6129998161289b565b81146129a3575f80fd5b50565b5f813590506129b481612990565b92915050565b5f80604083850312156129d0576129cf6127aa565b5b5f6129dd85828601612849565b92505060206129ee858286016129a6565b9150509250929050565b5f60208284031215612a0d57612a0c6127aa565b5b5f612a1a84828501612849565b91505092915050565b612a2c81612822565b82525050565b5f602082019050612a455f830184612a23565b92915050565b5f60208284031215612a6057612a5f6127aa565b5b5f612a6d848285016129a6565b91505092915050565b5f819050919050565b5f612a99612a94612a8f84612803565b612a76565b612803565b9050919050565b5f612aaa82612a7f565b9050919050565b5f612abb82612aa0565b9050919050565b612acb81612ab1565b82525050565b5f602082019050612ae45f830184612ac2565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b1e60208361270a565b9150612b2982612aea565b602082019050919050565b5f6020820190508181035f830152612b4b81612b12565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612b8660168361270a565b9150612b9182612b52565b602082019050919050565b5f6020820190508181035f830152612bb381612b7a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612bfe57607f821691505b602082108103612c1157612c10612bba565b5b50919050565b7f546f74616c2073656c6c20666565732063616e6e6f74206265206772656174655f8201527f72207468616e2035250000000000000000000000000000000000000000000000602082015250565b5f612c7160298361270a565b9150612c7c82612c17565b604082019050919050565b5f6020820190508181035f830152612c9e81612c65565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612cff60288361270a565b9150612d0a82612ca5565b604082019050919050565b5f6020820190508181035f830152612d2c81612cf3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d6a826126cf565b9150612d75836126cf565b9250828203905081811115612d8d57612d8c612d33565b5b92915050565b5f81519050612da1816127ae565b92915050565b5f60208284031215612dbc57612dbb6127aa565b5b5f612dc984828501612d93565b91505092915050565b5f604082019050612de55f830185612a23565b612df260208301846126d8565b9392505050565b5f81519050612e0781612990565b92915050565b5f60208284031215612e2257612e216127aa565b5b5f612e2f84828501612df9565b91505092915050565b5f612e42826126cf565b9150612e4d836126cf565b9250828201905080821115612e6557612e64612d33565b5b92915050565b7f5f706169722057616c6c65742063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612ec560238361270a565b9150612ed082612e6b565b604082019050919050565b5f6020820190508181035f830152612ef281612eb9565b9050919050565b7f6465762057616c6c65742063616e6e6f74206265207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f5360218361270a565b9150612f5e82612ef9565b604082019050919050565b5f6020820190508181035f830152612f8081612f47565b9050919050565b5f612f91826126cf565b9150612f9c836126cf565b9250828202612faa816126cf565b91508282048414831517612fc157612fc0612d33565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fff826126cf565b915061300a836126cf565b92508261301a57613019612fc8565b5b828204905092915050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b5f61307f60358361270a565b915061308a82613025565b604082019050919050565b5f6020820190508181035f8301526130ac81613073565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20332520746f74616c20737570706c792e0000000000000000000000000000602082015250565b5f61310d60328361270a565b9150613118826130b3565b604082019050919050565b5f6020820190508181035f83015261313a81613101565b9050919050565b7f546f74616c2062757920666565732063616e6e6f7420626520677265617465725f8201527f207468616e203525000000000000000000000000000000000000000000000000602082015250565b5f61319b60288361270a565b91506131a682613141565b604082019050919050565b5f6020820190508181035f8301526131c88161318f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61322960258361270a565b9150613234826131cf565b604082019050919050565b5f6020820190508181035f8301526132568161321d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6132b760268361270a565b91506132c28261325d565b604082019050919050565b5f6020820190508181035f8301526132e4816132ab565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61334560248361270a565b9150613350826132eb565b604082019050919050565b5f6020820190508181035f83015261337281613339565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d360228361270a565b91506133de82613379565b604082019050919050565b5f6020820190508181035f830152613400816133c7565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61346160298361270a565b915061346c82613407565b604082019050919050565b5f6020820190508181035f83015261348e81613455565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ef60258361270a565b91506134fa82613495565b604082019050919050565b5f6020820190508181035f83015261351c816134e3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61357d60238361270a565b915061358882613523565b604082019050919050565b5f6020820190508181035f8301526135aa81613571565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61360b60268361270a565b9150613616826135b1565b604082019050919050565b5f6020820190508181035f830152613638816135ff565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f815190506136a781612833565b92915050565b5f602082840312156136c2576136c16127aa565b5b5f6136cf84828501613699565b91505092915050565b5f819050919050565b5f6136fb6136f66136f1846136d8565b612a76565b6126cf565b9050919050565b61370b816136e1565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61374381612822565b82525050565b5f613754838361373a565b60208301905092915050565b5f602082019050919050565b5f61377682613711565b613780818561371b565b935061378b8361372b565b805f5b838110156137bb5781516137a28882613749565b97506137ad83613760565b92505060018101905061378e565b5085935050505092915050565b5f60a0820190506137db5f8301886126d8565b6137e86020830187613702565b81810360408301526137fa818661376c565b90506138096060830185612a23565b61381660808301846126d8565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613854601d8361270a565b915061385f82613820565b602082019050919050565b5f6020820190508181035f83015261388181613848565b9050919050565b5f81905092915050565b50565b5f6138a05f83613888565b91506138ab82613892565b5f82019050919050565b5f6138bf82613895565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613923603a8361270a565b915061392e826138c9565b604082019050919050565b5f6020820190508181035f83015261395081613917565b905091905056fea26469706673582212200196b6a95f29986b3a37eb53c53081ce4ccd09e742b78d02afd279c7dfaae98964736f6c63430008140033
Deployed Bytecode Sourcemap
7253:6397:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11716:180;;;;;;;;;;;;;:::i;:::-;;8058:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1690:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12144:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2604:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2011:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2781:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13030:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1910:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3211:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12846:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7426:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2127:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6030:94;;;;;;;;;;;;;:::i;:::-;;12668:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7456:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8279:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5807:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8139:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1798:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12395:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13348:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11357:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11904:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3434:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7366:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2262:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8456:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2445:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11182:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6132:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8319:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7338:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11716:180;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11772:8:::1;;;;;;;;;;;11771:9;11763:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;11829:4;11818:8;;:15;;;;;;;;;;;;;;;;;;11858:4;11844:11;;:18;;;;;;;;;;;;;;;;;;11878:10;;;;;;;;;;11716:180::o:0;8058:45::-;;;;:::o;1690:100::-;1744:13;1777:5;1770:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:100;:::o;12144:239::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12221:11:::1;;;;;;;;12227:4;12221:11;;::::0;12209:9:::1;:23;;;;;;;;;;;12256:4;12243:10;:17;;;;12294:2;12280:10;;:16;;12272:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12357:18;;;;;;;;;;12144:239:::0;:::o;2604:169::-;2687:4;2704:39;2713:12;:10;:12::i;:::-;2727:7;2736:6;2704:8;:39::i;:::-;2761:4;2754:11;;2604:169;;;;:::o;2011:108::-;2072:7;2099:12;;2092:19;;2011:108;:::o;2781:422::-;2887:4;2904:36;2914:6;2922:9;2933:6;2904:9;:36::i;:::-;2953:24;2980:11;:19;2992:6;2980:19;;;;;;;;;;;;;;;:33;3000:12;:10;:12::i;:::-;2980:33;;;;;;;;;;;;;;;;2953:60;;3052:6;3032:16;:26;;3024:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3114:57;3123:6;3131:12;:10;:12::i;:::-;3164:6;3145:16;:25;;;;:::i;:::-;3114:8;:57::i;:::-;3191:4;3184:11;;;2781:422;;;;;:::o;13030:310::-;13116:10;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13139:24:::1;13173:6;13166:24;;;13199:4;13166:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13139:66;;13231:6;13224:23;;;13248:3;13253:16;13224:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13216:54;;13286:46;13307:6;13315:16;13286:46;;;;;;;:::i;:::-;;;;;;;;13128:212;13030:310:::0;;;;:::o;1910:93::-;1968:5;1993:2;1986:9;;1910:93;:::o;3211:215::-;3299:4;3316:80;3325:12;:10;:12::i;:::-;3339:7;3385:10;3348:11;:25;3360:12;:10;:12::i;:::-;3348:25;;;;;;;;;;;;;;;:34;3374:7;3348:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3316:8;:80::i;:::-;3414:4;3407:11;;3211:215;;;;:::o;12846:172::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12964:5:::1;12935:16;:26;12952:8;12935:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12985:25;;;;;;;;;;12846:172:::0;;:::o;7426:23::-;;;;;;;;;;;;;:::o;2127:127::-;2201:7;2228:9;:18;2238:7;2228:18;;;;;;;;;;;;;;;;2221:25;;2127:127;;;:::o;6030:94::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6095:21:::1;6113:1;6095:9;:21::i;:::-;6030:94::o:0;12668:170::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12760:1:::1;12743:19;;:5;:19;;::::0;12735:67:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12820:5;12813:4;;:12;;;;;;;;;;;;;;;;;;12668:170:::0;:::o;7456:20::-;;;;;;;;;;;;;:::o;8279:33::-;;;;;;;;;:::o;5807:87::-;5853:7;5880:6;;;;;;;;;;;5873:13;;5807:87;:::o;8139:69::-;;;;;;;;;;;;;:::o;1798:104::-;1854:13;1887:7;1880:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1798:104;:::o;12395:264::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12495:5:::1;12465:16;:27;12482:9;;;;;;;;;;;12465:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;12540:1;12519:23;;:9;:23;;::::0;12511:69:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12603:9;12591;;:21;;;;;;;;;;;;;;;;;;12628:18;;;;;;;;;;12395:264:::0;:::o;13348:244::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13430:17:::1;13450:21;13430:41;;13490:10;13482:28;;:66;13544:3;13524:16;13512:9;:28;;;;:::i;:::-;13511:36;;;;:::i;:::-;13482:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13564:20;;;;;;;;;;13419:173;13348:244:::0;:::o;11357:351::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11455:5:::1;11441:10;:19;;11433:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11551:8;11537:10;:22;;11529:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11655:6;11641:10;:21;;;;:::i;:::-;11625:13;:37;;;;11678:22;;;;;;;;;;11357:351:::0;:::o;11904:232::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11979:11:::1;;;;;;;;11985:4;11979:11;;::::0;11968:8:::1;:22;;;;;;;;;;;12013:4;12001:9;:16;;;;12049:2;12036:9;;:15;;12028:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12111:17;;;;;;;;;;11904:232:::0;:::o;3434:377::-;3527:4;3544:24;3571:11;:25;3583:12;:10;:12::i;:::-;3571:25;;;;;;;;;;;;;;;:34;3597:7;3571:34;;;;;;;;;;;;;;;;3544:61;;3644:15;3624:16;:35;;3616:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3712:67;3721:12;:10;:12::i;:::-;3735:7;3763:15;3744:16;:34;;;;:::i;:::-;3712:8;:67::i;:::-;3799:4;3792:11;;;3434:377;;;;:::o;7366:19::-;;;;;;;;;;;;;:::o;2262:175::-;2348:4;2365:42;2375:12;:10;:12::i;:::-;2389:9;2400:6;2365:9;:42::i;:::-;2425:4;2418:11;;2262:175;;;;:::o;8456:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;2445:151::-;2534:7;2561:11;:18;2573:5;2561:18;;;;;;;;;;;;;;;:27;2580:7;2561:27;;;;;;;;;;;;;;;;2554:34;;2445:151;;;;:::o;11182:167::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11307:5:::1;11293:11;;:19;;;;;;;;;;;;;;;;;;11328:13;;;;;;;;;;11182:167:::0;:::o;6132:192::-;5953:12;:10;:12::i;:::-;5942:23;;:7;:5;:7::i;:::-;:23;;;5934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6241:1:::1;6221:22;;:8;:22;;::::0;6213:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6297:19;6307:8;6297:9;:19::i;:::-;6132:192:::0;:::o;8319:35::-;;;;;;;;;:::o;7338:21::-;;;;;;;;;;;;;:::o;92:98::-;145:7;172:10;165:17;;92:98;:::o;4777:346::-;4896:1;4879:19;;:5;:19;;;4871:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4977:1;4958:21;;:7;:21;;;4950:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5061:6;5031:11;:18;5043:5;5031:18;;;;;;;;;;;;;;;:27;5050:7;5031:27;;;;;;;;;;;;;;;:36;;;;5099:7;5083:32;;5092:5;5083:32;;;5108:6;5083:32;;;;;;:::i;:::-;;;;;;;;4777:346;;;:::o;9169:737::-;9285:1;9276:6;:10;9268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9361:11;9399:8;;;;;;;;;;;:36;;;;9411:16;:24;9428:6;9411:24;;;;;;;;;;;;;;;;;;;;;;;;;9399:36;:67;;;;9439:16;:27;9456:9;9439:27;;;;;;;;;;;;;;;;;;;;;;;;;9399:67;9395:282;;;9474:1;9468:7;;9395:282;;;9532:4;;;;;;;;;;;9519:17;;:9;:17;;;9516:149;;9566:3;9553:10;;9544:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;9538:31;;9516:149;;;9602:4;;;;;;;;;;;9592:14;;:6;:14;;;9589:76;;9635:3;9623:9;;9614:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;9608:30;;9589:76;;;9664:1;9658:7;;9589:76;9516:149;9395:282;9701:11;;;;;;;;;;;:24;;;;;9717:8;;;;;;;;;;;9716:9;9701:24;:42;;;;;9739:4;;;;;;;;;;;9729:14;;:6;:14;;;;9701:42;:53;;;;;9753:1;9747:3;:7;9701:53;9697:72;;;9756:13;:11;:13::i;:::-;9697:72;9782:48;9798:6;9806:9;9826:3;9817:6;:12;;;;:::i;:::-;9782:15;:48::i;:::-;9850:1;9844:3;:7;9841:55;;;9853:43;9869:6;9885:4;9892:3;9853:15;:43::i;:::-;9841:55;9257:649;9169:737;;;:::o;6332:173::-;6388:16;6407:6;;;;;;;;;;;6388:25;;6433:8;6424:6;;:17;;;;;;;;;;;;;;;;;;6488:8;6457:40;;6478:8;6457:40;;;;;;;;;;;;6377:128;6332:173;:::o;9912:347::-;8552:8;;;;;;;;;;;8547:104;;8588:4;8577:8;;:15;;;;;;;;;;;;;;;;;;9961:23:::1;9987:24;10005:4;9987:9;:24::i;:::-;9961:50;;10047:13;;10028:15;:32;10024:228;;10081:33;10098:15;10081:16;:33::i;:::-;10135:20;10158:21;10135:44;;10198:42;10227:12;10206:9;;;;;;;;;;;10198:28;;;;:42;;;;:::i;:::-;10062:190;10024:228;9950:309;8634:5:::0;8623:8;;:16;;;;;;;;;;;;;;;;;;8547:104;9912:347::o;3819:604::-;3943:1;3925:20;;:6;:20;;;3917:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4027:1;4006:23;;:9;:23;;;3998:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4082:47;4103:6;4111:9;4122:6;4082:20;:47::i;:::-;4142:21;4166:9;:17;4176:6;4166:17;;;;;;;;;;;;;;;;4142:41;;4219:6;4202:13;:23;;4194:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4315:6;4299:13;:22;;;;:::i;:::-;4279:9;:17;4289:6;4279:17;;;;;;;;;;;;;;;:42;;;;4356:6;4332:9;:20;4342:9;4332:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4397:9;4380:35;;4389:6;4380:35;;;4408:6;4380:35;;;;;;:::i;:::-;;;;;;;;3906:517;3819:604;;;:::o;10267:398::-;10333:21;10371:1;10357:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10333:40;;10402:4;10384;10389:1;10384:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10428:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10418:4;10423:1;10418:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10454:53;10471:4;10486:6;;;;;;;;;;;10495:11;10454:8;:53::i;:::-;10546:6;;;;;;;;;;;:57;;;10604:11;10617:1;10620:4;10634;10641:15;10546:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10322:343;10267:398;:::o;5252:317::-;5367:6;5342:21;:31;;5334:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5421:12;5439:9;:14;;5461:6;5439:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5420:52;;;5491:7;5483:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5323:246;5252:317;;:::o;5131:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:122;2184:24;2202:5;2184:24;:::i;:::-;2177:5;2174:35;2164:63;;2223:1;2220;2213:12;2164:63;2111:122;:::o;2239:139::-;2285:5;2323:6;2310:20;2301:29;;2339:33;2366:5;2339:33;:::i;:::-;2239:139;;;;:::o;2384:329::-;2443:6;2492:2;2480:9;2471:7;2467:23;2463:32;2460:119;;;2498:79;;:::i;:::-;2460:119;2618:1;2643:53;2688:7;2679:6;2668:9;2664:22;2643:53;:::i;:::-;2633:63;;2589:117;2384:329;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:474::-;4826:6;4834;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4758:474;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:116::-;5738:21;5753:5;5738:21;:::i;:::-;5731:5;5728:32;5718:60;;5774:1;5771;5764:12;5718:60;5668:116;:::o;5790:133::-;5833:5;5871:6;5858:20;5849:29;;5887:30;5911:5;5887:30;:::i;:::-;5790:133;;;;:::o;5929:468::-;5994:6;6002;6051:2;6039:9;6030:7;6026:23;6022:32;6019:119;;;6057:79;;:::i;:::-;6019:119;6177:1;6202:53;6247:7;6238:6;6227:9;6223:22;6202:53;:::i;:::-;6192:63;;6148:117;6304:2;6330:50;6372:7;6363:6;6352:9;6348:22;6330:50;:::i;:::-;6320:60;;6275:115;5929:468;;;;;:::o;6403:329::-;6462:6;6511:2;6499:9;6490:7;6486:23;6482:32;6479:119;;;6517:79;;:::i;:::-;6479:119;6637:1;6662:53;6707:7;6698:6;6687:9;6683:22;6662:53;:::i;:::-;6652:63;;6608:117;6403:329;;;;:::o;6738:118::-;6825:24;6843:5;6825:24;:::i;:::-;6820:3;6813:37;6738:118;;:::o;6862:222::-;6955:4;6993:2;6982:9;6978:18;6970:26;;7006:71;7074:1;7063:9;7059:17;7050:6;7006:71;:::i;:::-;6862:222;;;;:::o;7090:323::-;7146:6;7195:2;7183:9;7174:7;7170:23;7166:32;7163:119;;;7201:79;;:::i;:::-;7163:119;7321:1;7346:50;7388:7;7379:6;7368:9;7364:22;7346:50;:::i;:::-;7336:60;;7292:114;7090:323;;;;:::o;7419:60::-;7447:3;7468:5;7461:12;;7419:60;;;:::o;7485:142::-;7535:9;7568:53;7586:34;7595:24;7613:5;7595:24;:::i;:::-;7586:34;:::i;:::-;7568:53;:::i;:::-;7555:66;;7485:142;;;:::o;7633:126::-;7683:9;7716:37;7747:5;7716:37;:::i;:::-;7703:50;;7633:126;;;:::o;7765:141::-;7830:9;7863:37;7894:5;7863:37;:::i;:::-;7850:50;;7765:141;;;:::o;7912:161::-;8014:52;8060:5;8014:52;:::i;:::-;8009:3;8002:65;7912:161;;:::o;8079:252::-;8187:4;8225:2;8214:9;8210:18;8202:26;;8238:86;8321:1;8310:9;8306:17;8297:6;8238:86;:::i;:::-;8079:252;;;;:::o;8337:182::-;8477:34;8473:1;8465:6;8461:14;8454:58;8337:182;:::o;8525:366::-;8667:3;8688:67;8752:2;8747:3;8688:67;:::i;:::-;8681:74;;8764:93;8853:3;8764:93;:::i;:::-;8882:2;8877:3;8873:12;8866:19;;8525:366;;;:::o;8897:419::-;9063:4;9101:2;9090:9;9086:18;9078:26;;9150:9;9144:4;9140:20;9136:1;9125:9;9121:17;9114:47;9178:131;9304:4;9178:131;:::i;:::-;9170:139;;8897:419;;;:::o;9322:172::-;9462:24;9458:1;9450:6;9446:14;9439:48;9322:172;:::o;9500:366::-;9642:3;9663:67;9727:2;9722:3;9663:67;:::i;:::-;9656:74;;9739:93;9828:3;9739:93;:::i;:::-;9857:2;9852:3;9848:12;9841:19;;9500:366;;;:::o;9872:419::-;10038:4;10076:2;10065:9;10061:18;10053:26;;10125:9;10119:4;10115:20;10111:1;10100:9;10096:17;10089:47;10153:131;10279:4;10153:131;:::i;:::-;10145:139;;9872:419;;;:::o;10297:180::-;10345:77;10342:1;10335:88;10442:4;10439:1;10432:15;10466:4;10463:1;10456:15;10483:320;10527:6;10564:1;10558:4;10554:12;10544:22;;10611:1;10605:4;10601:12;10632:18;10622:81;;10688:4;10680:6;10676:17;10666:27;;10622:81;10750:2;10742:6;10739:14;10719:18;10716:38;10713:84;;10769:18;;:::i;:::-;10713:84;10534:269;10483:320;;;:::o;10809:228::-;10949:34;10945:1;10937:6;10933:14;10926:58;11018:11;11013:2;11005:6;11001:15;10994:36;10809:228;:::o;11043:366::-;11185:3;11206:67;11270:2;11265:3;11206:67;:::i;:::-;11199:74;;11282:93;11371:3;11282:93;:::i;:::-;11400:2;11395:3;11391:12;11384:19;;11043:366;;;:::o;11415:419::-;11581:4;11619:2;11608:9;11604:18;11596:26;;11668:9;11662:4;11658:20;11654:1;11643:9;11639:17;11632:47;11696:131;11822:4;11696:131;:::i;:::-;11688:139;;11415:419;;;:::o;11840:227::-;11980:34;11976:1;11968:6;11964:14;11957:58;12049:10;12044:2;12036:6;12032:15;12025:35;11840:227;:::o;12073:366::-;12215:3;12236:67;12300:2;12295:3;12236:67;:::i;:::-;12229:74;;12312:93;12401:3;12312:93;:::i;:::-;12430:2;12425:3;12421:12;12414:19;;12073:366;;;:::o;12445:419::-;12611:4;12649:2;12638:9;12634:18;12626:26;;12698:9;12692:4;12688:20;12684:1;12673:9;12669:17;12662:47;12726:131;12852:4;12726:131;:::i;:::-;12718:139;;12445:419;;;:::o;12870:180::-;12918:77;12915:1;12908:88;13015:4;13012:1;13005:15;13039:4;13036:1;13029:15;13056:194;13096:4;13116:20;13134:1;13116:20;:::i;:::-;13111:25;;13150:20;13168:1;13150:20;:::i;:::-;13145:25;;13194:1;13191;13187:9;13179:17;;13218:1;13212:4;13209:11;13206:37;;;13223:18;;:::i;:::-;13206:37;13056:194;;;;:::o;13256:143::-;13313:5;13344:6;13338:13;13329:22;;13360:33;13387:5;13360:33;:::i;:::-;13256:143;;;;:::o;13405:351::-;13475:6;13524:2;13512:9;13503:7;13499:23;13495:32;13492:119;;;13530:79;;:::i;:::-;13492:119;13650:1;13675:64;13731:7;13722:6;13711:9;13707:22;13675:64;:::i;:::-;13665:74;;13621:128;13405:351;;;;:::o;13762:332::-;13883:4;13921:2;13910:9;13906:18;13898:26;;13934:71;14002:1;13991:9;13987:17;13978:6;13934:71;:::i;:::-;14015:72;14083:2;14072:9;14068:18;14059:6;14015:72;:::i;:::-;13762:332;;;;;:::o;14100:137::-;14154:5;14185:6;14179:13;14170:22;;14201:30;14225:5;14201:30;:::i;:::-;14100:137;;;;:::o;14243:345::-;14310:6;14359:2;14347:9;14338:7;14334:23;14330:32;14327:119;;;14365:79;;:::i;:::-;14327:119;14485:1;14510:61;14563:7;14554:6;14543:9;14539:22;14510:61;:::i;:::-;14500:71;;14456:125;14243:345;;;;:::o;14594:191::-;14634:3;14653:20;14671:1;14653:20;:::i;:::-;14648:25;;14687:20;14705:1;14687:20;:::i;:::-;14682:25;;14730:1;14727;14723:9;14716:16;;14751:3;14748:1;14745:10;14742:36;;;14758:18;;:::i;:::-;14742:36;14594:191;;;;:::o;14791:222::-;14931:34;14927:1;14919:6;14915:14;14908:58;15000:5;14995:2;14987:6;14983:15;14976:30;14791:222;:::o;15019:366::-;15161:3;15182:67;15246:2;15241:3;15182:67;:::i;:::-;15175:74;;15258:93;15347:3;15258:93;:::i;:::-;15376:2;15371:3;15367:12;15360:19;;15019:366;;;:::o;15391:419::-;15557:4;15595:2;15584:9;15580:18;15572:26;;15644:9;15638:4;15634:20;15630:1;15619:9;15615:17;15608:47;15672:131;15798:4;15672:131;:::i;:::-;15664:139;;15391:419;;;:::o;15816:220::-;15956:34;15952:1;15944:6;15940:14;15933:58;16025:3;16020:2;16012:6;16008:15;16001:28;15816:220;:::o;16042:366::-;16184:3;16205:67;16269:2;16264:3;16205:67;:::i;:::-;16198:74;;16281:93;16370:3;16281:93;:::i;:::-;16399:2;16394:3;16390:12;16383:19;;16042:366;;;:::o;16414:419::-;16580:4;16618:2;16607:9;16603:18;16595:26;;16667:9;16661:4;16657:20;16653:1;16642:9;16638:17;16631:47;16695:131;16821:4;16695:131;:::i;:::-;16687:139;;16414:419;;;:::o;16839:410::-;16879:7;16902:20;16920:1;16902:20;:::i;:::-;16897:25;;16936:20;16954:1;16936:20;:::i;:::-;16931:25;;16991:1;16988;16984:9;17013:30;17031:11;17013:30;:::i;:::-;17002:41;;17192:1;17183:7;17179:15;17176:1;17173:22;17153:1;17146:9;17126:83;17103:139;;17222:18;;:::i;:::-;17103:139;16887:362;16839:410;;;;:::o;17255:180::-;17303:77;17300:1;17293:88;17400:4;17397:1;17390:15;17424:4;17421:1;17414:15;17441:185;17481:1;17498:20;17516:1;17498:20;:::i;:::-;17493:25;;17532:20;17550:1;17532:20;:::i;:::-;17527:25;;17571:1;17561:35;;17576:18;;:::i;:::-;17561:35;17618:1;17615;17611:9;17606:14;;17441:185;;;;:::o;17632:240::-;17772:34;17768:1;17760:6;17756:14;17749:58;17841:23;17836:2;17828:6;17824:15;17817:48;17632:240;:::o;17878:366::-;18020:3;18041:67;18105:2;18100:3;18041:67;:::i;:::-;18034:74;;18117:93;18206:3;18117:93;:::i;:::-;18235:2;18230:3;18226:12;18219:19;;17878:366;;;:::o;18250:419::-;18416:4;18454:2;18443:9;18439:18;18431:26;;18503:9;18497:4;18493:20;18489:1;18478:9;18474:17;18467:47;18531:131;18657:4;18531:131;:::i;:::-;18523:139;;18250:419;;;:::o;18675:237::-;18815:34;18811:1;18803:6;18799:14;18792:58;18884:20;18879:2;18871:6;18867:15;18860:45;18675:237;:::o;18918:366::-;19060:3;19081:67;19145:2;19140:3;19081:67;:::i;:::-;19074:74;;19157:93;19246:3;19157:93;:::i;:::-;19275:2;19270:3;19266:12;19259:19;;18918:366;;;:::o;19290:419::-;19456:4;19494:2;19483:9;19479:18;19471:26;;19543:9;19537:4;19533:20;19529:1;19518:9;19514:17;19507:47;19571:131;19697:4;19571:131;:::i;:::-;19563:139;;19290:419;;;:::o;19715:227::-;19855:34;19851:1;19843:6;19839:14;19832:58;19924:10;19919:2;19911:6;19907:15;19900:35;19715:227;:::o;19948:366::-;20090:3;20111:67;20175:2;20170:3;20111:67;:::i;:::-;20104:74;;20187:93;20276:3;20187:93;:::i;:::-;20305:2;20300:3;20296:12;20289:19;;19948:366;;;:::o;20320:419::-;20486:4;20524:2;20513:9;20509:18;20501:26;;20573:9;20567:4;20563:20;20559:1;20548:9;20544:17;20537:47;20601:131;20727:4;20601:131;:::i;:::-;20593:139;;20320:419;;;:::o;20745:224::-;20885:34;20881:1;20873:6;20869:14;20862:58;20954:7;20949:2;20941:6;20937:15;20930:32;20745:224;:::o;20975:366::-;21117:3;21138:67;21202:2;21197:3;21138:67;:::i;:::-;21131:74;;21214:93;21303:3;21214:93;:::i;:::-;21332:2;21327:3;21323:12;21316:19;;20975:366;;;:::o;21347:419::-;21513:4;21551:2;21540:9;21536:18;21528:26;;21600:9;21594:4;21590:20;21586:1;21575:9;21571:17;21564:47;21628:131;21754:4;21628:131;:::i;:::-;21620:139;;21347:419;;;:::o;21772:225::-;21912:34;21908:1;21900:6;21896:14;21889:58;21981:8;21976:2;21968:6;21964:15;21957:33;21772:225;:::o;22003:366::-;22145:3;22166:67;22230:2;22225:3;22166:67;:::i;:::-;22159:74;;22242:93;22331:3;22242:93;:::i;:::-;22360:2;22355:3;22351:12;22344:19;;22003:366;;;:::o;22375:419::-;22541:4;22579:2;22568:9;22564:18;22556:26;;22628:9;22622:4;22618:20;22614:1;22603:9;22599:17;22592:47;22656:131;22782:4;22656:131;:::i;:::-;22648:139;;22375:419;;;:::o;22800:223::-;22940:34;22936:1;22928:6;22924:14;22917:58;23009:6;23004:2;22996:6;22992:15;22985:31;22800:223;:::o;23029:366::-;23171:3;23192:67;23256:2;23251:3;23192:67;:::i;:::-;23185:74;;23268:93;23357:3;23268:93;:::i;:::-;23386:2;23381:3;23377:12;23370:19;;23029:366;;;:::o;23401:419::-;23567:4;23605:2;23594:9;23590:18;23582:26;;23654:9;23648:4;23644:20;23640:1;23629:9;23625:17;23618:47;23682:131;23808:4;23682:131;:::i;:::-;23674:139;;23401:419;;;:::o;23826:221::-;23966:34;23962:1;23954:6;23950:14;23943:58;24035:4;24030:2;24022:6;24018:15;24011:29;23826:221;:::o;24053:366::-;24195:3;24216:67;24280:2;24275:3;24216:67;:::i;:::-;24209:74;;24292:93;24381:3;24292:93;:::i;:::-;24410:2;24405:3;24401:12;24394:19;;24053:366;;;:::o;24425:419::-;24591:4;24629:2;24618:9;24614:18;24606:26;;24678:9;24672:4;24668:20;24664:1;24653:9;24649:17;24642:47;24706:131;24832:4;24706:131;:::i;:::-;24698:139;;24425:419;;;:::o;24850:228::-;24990:34;24986:1;24978:6;24974:14;24967:58;25059:11;25054:2;25046:6;25042:15;25035:36;24850:228;:::o;25084:366::-;25226:3;25247:67;25311:2;25306:3;25247:67;:::i;:::-;25240:74;;25323:93;25412:3;25323:93;:::i;:::-;25441:2;25436:3;25432:12;25425:19;;25084:366;;;:::o;25456:419::-;25622:4;25660:2;25649:9;25645:18;25637:26;;25709:9;25703:4;25699:20;25695:1;25684:9;25680:17;25673:47;25737:131;25863:4;25737:131;:::i;:::-;25729:139;;25456:419;;;:::o;25881:224::-;26021:34;26017:1;26009:6;26005:14;25998:58;26090:7;26085:2;26077:6;26073:15;26066:32;25881:224;:::o;26111:366::-;26253:3;26274:67;26338:2;26333:3;26274:67;:::i;:::-;26267:74;;26350:93;26439:3;26350:93;:::i;:::-;26468:2;26463:3;26459:12;26452:19;;26111:366;;;:::o;26483:419::-;26649:4;26687:2;26676:9;26672:18;26664:26;;26736:9;26730:4;26726:20;26722:1;26711:9;26707:17;26700:47;26764:131;26890:4;26764:131;:::i;:::-;26756:139;;26483:419;;;:::o;26908:222::-;27048:34;27044:1;27036:6;27032:14;27025:58;27117:5;27112:2;27104:6;27100:15;27093:30;26908:222;:::o;27136:366::-;27278:3;27299:67;27363:2;27358:3;27299:67;:::i;:::-;27292:74;;27375:93;27464:3;27375:93;:::i;:::-;27493:2;27488:3;27484:12;27477:19;;27136:366;;;:::o;27508:419::-;27674:4;27712:2;27701:9;27697:18;27689:26;;27761:9;27755:4;27751:20;27747:1;27736:9;27732:17;27725:47;27789:131;27915:4;27789:131;:::i;:::-;27781:139;;27508:419;;;:::o;27933:225::-;28073:34;28069:1;28061:6;28057:14;28050:58;28142:8;28137:2;28129:6;28125:15;28118:33;27933:225;:::o;28164:366::-;28306:3;28327:67;28391:2;28386:3;28327:67;:::i;:::-;28320:74;;28403:93;28492:3;28403:93;:::i;:::-;28521:2;28516:3;28512:12;28505:19;;28164:366;;;:::o;28536:419::-;28702:4;28740:2;28729:9;28725:18;28717:26;;28789:9;28783:4;28779:20;28775:1;28764:9;28760:17;28753:47;28817:131;28943:4;28817:131;:::i;:::-;28809:139;;28536:419;;;:::o;28961:180::-;29009:77;29006:1;28999:88;29106:4;29103:1;29096:15;29130:4;29127:1;29120:15;29147:180;29195:77;29192:1;29185:88;29292:4;29289:1;29282:15;29316:4;29313:1;29306:15;29333:143;29390:5;29421:6;29415:13;29406:22;;29437:33;29464:5;29437:33;:::i;:::-;29333:143;;;;:::o;29482:351::-;29552:6;29601:2;29589:9;29580:7;29576:23;29572:32;29569:119;;;29607:79;;:::i;:::-;29569:119;29727:1;29752:64;29808:7;29799:6;29788:9;29784:22;29752:64;:::i;:::-;29742:74;;29698:128;29482:351;;;;:::o;29839:85::-;29884:7;29913:5;29902:16;;29839:85;;;:::o;29930:158::-;29988:9;30021:61;30039:42;30048:32;30074:5;30048:32;:::i;:::-;30039:42;:::i;:::-;30021:61;:::i;:::-;30008:74;;29930:158;;;:::o;30094:147::-;30189:45;30228:5;30189:45;:::i;:::-;30184:3;30177:58;30094:147;;:::o;30247:114::-;30314:6;30348:5;30342:12;30332:22;;30247:114;;;:::o;30367:184::-;30466:11;30500:6;30495:3;30488:19;30540:4;30535:3;30531:14;30516:29;;30367:184;;;;:::o;30557:132::-;30624:4;30647:3;30639:11;;30677:4;30672:3;30668:14;30660:22;;30557:132;;;:::o;30695:108::-;30772:24;30790:5;30772:24;:::i;:::-;30767:3;30760:37;30695:108;;:::o;30809:179::-;30878:10;30899:46;30941:3;30933:6;30899:46;:::i;:::-;30977:4;30972:3;30968:14;30954:28;;30809:179;;;;:::o;30994:113::-;31064:4;31096;31091:3;31087:14;31079:22;;30994:113;;;:::o;31143:732::-;31262:3;31291:54;31339:5;31291:54;:::i;:::-;31361:86;31440:6;31435:3;31361:86;:::i;:::-;31354:93;;31471:56;31521:5;31471:56;:::i;:::-;31550:7;31581:1;31566:284;31591:6;31588:1;31585:13;31566:284;;;31667:6;31661:13;31694:63;31753:3;31738:13;31694:63;:::i;:::-;31687:70;;31780:60;31833:6;31780:60;:::i;:::-;31770:70;;31626:224;31613:1;31610;31606:9;31601:14;;31566:284;;;31570:14;31866:3;31859:10;;31267:608;;;31143:732;;;;:::o;31881:831::-;32144:4;32182:3;32171:9;32167:19;32159:27;;32196:71;32264:1;32253:9;32249:17;32240:6;32196:71;:::i;:::-;32277:80;32353:2;32342:9;32338:18;32329:6;32277:80;:::i;:::-;32404:9;32398:4;32394:20;32389:2;32378:9;32374:18;32367:48;32432:108;32535:4;32526:6;32432:108;:::i;:::-;32424:116;;32550:72;32618:2;32607:9;32603:18;32594:6;32550:72;:::i;:::-;32632:73;32700:3;32689:9;32685:19;32676:6;32632:73;:::i;:::-;31881:831;;;;;;;;:::o;32718:179::-;32858:31;32854:1;32846:6;32842:14;32835:55;32718:179;:::o;32903:366::-;33045:3;33066:67;33130:2;33125:3;33066:67;:::i;:::-;33059:74;;33142:93;33231:3;33142:93;:::i;:::-;33260:2;33255:3;33251:12;33244:19;;32903:366;;;:::o;33275:419::-;33441:4;33479:2;33468:9;33464:18;33456:26;;33528:9;33522:4;33518:20;33514:1;33503:9;33499:17;33492:47;33556:131;33682:4;33556:131;:::i;:::-;33548:139;;33275:419;;;:::o;33700:147::-;33801:11;33838:3;33823:18;;33700:147;;;;:::o;33853:114::-;;:::o;33973:398::-;34132:3;34153:83;34234:1;34229:3;34153:83;:::i;:::-;34146:90;;34245:93;34334:3;34245:93;:::i;:::-;34363:1;34358:3;34354:11;34347:18;;33973:398;;;:::o;34377:379::-;34561:3;34583:147;34726:3;34583:147;:::i;:::-;34576:154;;34747:3;34740:10;;34377:379;;;:::o;34762:245::-;34902:34;34898:1;34890:6;34886:14;34879:58;34971:28;34966:2;34958:6;34954:15;34947:53;34762:245;:::o;35013:366::-;35155:3;35176:67;35240:2;35235:3;35176:67;:::i;:::-;35169:74;;35252:93;35341:3;35252:93;:::i;:::-;35370:2;35365:3;35361:12;35354:19;;35013:366;;;:::o;35385:419::-;35551:4;35589:2;35578:9;35574:18;35566:26;;35638:9;35632:4;35628:20;35624:1;35613:9;35609:17;35602:47;35666:131;35792:4;35666:131;:::i;:::-;35658:139;;35385:419;;;:::o
Swarm Source
ipfs://0196b6a95f29986b3a37eb53c53081ce4ccd09e742b78d02afd279c7dfaae989
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.