ERC-20
Overview
Max Total Supply
100,000,000,000 GOOMPY
Holders
110
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,069,716,817.925280604 GOOMPYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
GOOMPY
Compiler Version
v0.8.23+commit.f704f362
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-11-11 */ // SPDX-License-Identifier: UNLICENSE /* Goompy Greenman is one of 1,000 Hedz. Hand drawn by Matt Furie on planet Earth in 2022. $GOOMPY https://t.me/goompyerc https://x.com/goompyerc https://goompyerc.com/ */ pragma solidity ^0.8.23; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract GOOMPY is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; address payable private _taxWallet; uint256 private _iBuyTax=0; uint256 private _iSellTax=0; uint256 private _fBuyTax=0; uint256 private _fSellTax=0; uint256 private _reduceBuyTaxAt=0; uint256 private _reduceSellTaxAt=0; uint256 private _preventSwapBefore=0; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _totalSupply = 100000000000 * 10**_decimals; string private _name = "Goompy Greenman"; string private _symbol = "GOOMPY"; uint256 public _maxTx = 100000000000 * 10**_decimals; uint256 public _maxWallet = 100000000000 * 10**_decimals; uint256 public _taxSwapThreshold= 100000000000 * 10**_decimals; uint256 public _maxSwap= 100000000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; uint256 private sellCount = 0; uint256 private lastSellBlock = 0; event MaxTxAmountUpdated(uint _maxTx); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner() && to != _taxWallet) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_fBuyTax:_iBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTx, "Exceeds the _maxTx."); require(balanceOf(to) + amount <= _maxWallet, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_fBuyTax:_iBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_fSellTax:_iSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxSwap))); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function addBot(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } function openTrade() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _totalSupply); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external{ require(_msgSender()==_taxWallet); require(_newFee<=_fBuyTax && _newFee<=_fSellTax); _fBuyTax=_newFee; _fSellTax=_newFee; } receive() external payable {} function rescueERC20(address _address, uint256 percent) external { require(_msgSender()==_taxWallet); uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100); IERC20(_address).transfer(_taxWallet, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTx","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f6006555f6007555f6008555f6009555f600a555f600b555f600c555f600d555f600e556040518060400160405280600f81526020017f476f6f6d707920477265656e6d616e0000000000000000000000000000000000815250600f90816200006e919062000608565b506040518060400160405280600681526020017f474f4f4d5059000000000000000000000000000000000000000000000000000081525060109081620000b5919062000608565b506009600a620000c6919062000875565b64174876e800620000d89190620008c5565b6011556009600a620000eb919062000875565b64174876e800620000fd9190620008c5565b6012556009600a62000110919062000875565b64174876e800620001229190620008c5565b6013556009600a62000135919062000875565b64174876e800620001479190620008c5565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f60185534801562000191575f80fd5b505f620001a36200039d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200024f6200039d60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200029e919062000875565b64174876e800620002b09190620008c5565b60015f620002c36200039d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620003106200039d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200036e919062000875565b64174876e800620003809190620008c5565b6040516200038f919062000920565b60405180910390a36200093b565b5f33905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200042057607f821691505b602082108103620004365762000435620003db565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200049a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200045d565b620004a686836200045d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004f0620004ea620004e484620004be565b620004c7565b620004be565b9050919050565b5f819050919050565b6200050b83620004d0565b620005236200051a82620004f7565b84845462000469565b825550505050565b5f90565b620005396200052b565b6200054681848462000500565b505050565b5b818110156200056d57620005615f826200052f565b6001810190506200054c565b5050565b601f821115620005bc5762000586816200043c565b62000591846200044e565b81016020851015620005a1578190505b620005b9620005b0856200044e565b8301826200054b565b50505b505050565b5f82821c905092915050565b5f620005de5f1984600802620005c1565b1980831691505092915050565b5f620005f88383620005cd565b9150826002028217905092915050565b6200061382620003a4565b67ffffffffffffffff8111156200062f576200062e620003ae565b5b6200063b825462000408565b6200064882828562000571565b5f60209050601f8311600181146200067e575f841562000669578287015190505b620006758582620005eb565b865550620006e4565b601f1984166200068e866200043c565b5f5b82811015620006b75784890151825560018201915060208501945060208101905062000690565b86831015620006d75784890151620006d3601f891682620005cd565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000776578086048111156200074e576200074d620006ec565b5b60018516156200075e5780820291505b80810290506200076e8562000719565b94506200072e565b94509492505050565b5f8262000790576001905062000862565b816200079f575f905062000862565b8160018114620007b85760028114620007c357620007f9565b600191505062000862565b60ff841115620007d857620007d7620006ec565b5b8360020a915084821115620007f257620007f1620006ec565b5b5062000862565b5060208310610133831016604e8410600b8410161715620008335782820a9050838111156200082d576200082c620006ec565b5b62000862565b62000842848484600162000725565b925090508184048111156200085c576200085b620006ec565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200088182620004be565b91506200088e8362000869565b9250620008bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200077f565b905092915050565b5f620008d182620004be565b9150620008de83620004be565b9250828202620008ee81620004be565b91508282048414831517620009085762000907620006ec565b5b5092915050565b6200091a81620004be565b82525050565b5f602082019050620009355f8301846200090f565b92915050565b61360e80620009495f395ff3fe60806040526004361061012d575f3560e01c806382247ec0116100aa578063bf474bed1161006e578063bf474bed146103f0578063c97c18211461041a578063d7091b7114610442578063dd62ed3e1461046c578063ec1f3f63146104a8578063fb201b1d146104d057610134565b806382247ec01461030e5780638cd4426d146103385780638da5cb5b1461036057806395d89b411461038a578063a9059cbb146103b457610134565b8063313ce567116100f1578063313ce5671461022c5780633bbac5791461025657806370a0823114610292578063715018a6146102ce5780637830b072146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806321bbcbb1146101c857806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104e6565b60405161015991906124b9565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612577565b610576565b60405161019591906125cf565b60405180910390f35b3480156101a9575f80fd5b506101b2610593565b6040516101bf91906125f7565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e99190612750565b6105b7565b005b3480156101fb575f80fd5b5061021660048036038101906102119190612797565b6106d6565b60405161022391906125cf565b60405180910390f35b348015610237575f80fd5b506102406107aa565b60405161024d9190612802565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061281b565b6107b2565b60405161028991906125cf565b60405180910390f35b34801561029d575f80fd5b506102b860048036038101906102b3919061281b565b610804565b6040516102c591906125f7565b60405180910390f35b3480156102d9575f80fd5b506102e261084a565b005b3480156102ef575f80fd5b506102f8610998565b60405161030591906125f7565b60405180910390f35b348015610319575f80fd5b5061032261099e565b60405161032f91906125f7565b60405180910390f35b348015610343575f80fd5b5061035e60048036038101906103599190612577565b6109a4565b005b34801561036b575f80fd5b50610374610b45565b6040516103819190612855565b60405180910390f35b348015610395575f80fd5b5061039e610b6c565b6040516103ab91906124b9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d59190612577565b610bfc565b6040516103e791906125cf565b60405180910390f35b3480156103fb575f80fd5b50610404610c19565b60405161041191906125f7565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b9190612750565b610c1f565b005b34801561044d575f80fd5b50610456610d3d565b60405161046391906125f7565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d919061286e565b610d43565b60405161049f91906125f7565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c991906128ac565b610dc5565b005b3480156104db575f80fd5b506104e4610e51565b005b6060600f80546104f590612904565b80601f016020809104026020016040519081016040528092919081815260200182805461052190612904565b801561056c5780601f106105435761010080835404028352916020019161056c565b820191905f5260205f20905b81548152906001019060200180831161054f57829003601f168201915b5050505050905090565b5f610589610582611373565b848461137a565b6001905092915050565b5f6009600a6105a29190612a90565b64174876e8006105b29190612ada565b905090565b6105bf611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064290612b65565b60405180910390fd5b5f5b81518110156106d257600160045f84848151811061066e5761066d612b83565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061064d565b5050565b5f6106e284848461153d565b61079f846106ee611373565b61079a856040518060600160405280602881526020016135b16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610751611373565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b9092919063ffffffff16565b61137a565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610852611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590612b65565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e4611373565b73ffffffffffffffffffffffffffffffffffffffff1614610a03575f80fd5b5f610aa16064610a93848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a469190612855565b602060405180830381865afa158015610a61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a859190612bc4565b611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610aff929190612c4a565b6020604051808303815f875af1158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f9190612c9b565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060108054610b7b90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba790612904565b8015610bf25780601f10610bc957610100808354040283529160200191610bf2565b820191905f5260205f20905b815481529060010190602001808311610bd557829003601f168201915b5050505050905090565b5f610c0f610c08611373565b848461153d565b6001905092915050565b60135481565b610c27611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90612b65565b60405180910390fd5b5f5b8151811015610d39575f60045f848481518110610cd557610cd4612b83565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610cb5565b5050565b60145481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e05611373565b73ffffffffffffffffffffffffffffffffffffffff1614610e24575f80fd5b6008548111158015610e3857506009548111155b610e40575f80fd5b806008819055508060098190555050565b610e59611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612b65565b60405180910390fd5b601660149054906101000a900460ff1615610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c90612d10565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fd23060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fbd9190612a90565b64174876e800610fcd9190612ada565b61137a565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110609190612d42565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110a9190612d42565b6040518363ffffffff1660e01b8152600401611127929190612d6d565b6020604051808303815f875af1158015611143573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111679190612d42565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ee30610804565b5f806111f8610b45565b426040518863ffffffff1660e01b815260040161121a96959493929190612dcd565b60606040518083038185885af1158015611236573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061125b9190612e2c565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fb929190612e7c565b6020604051808303815f875af1158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190612c9b565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612f13565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d90612fa1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153091906125f7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061302f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611610906130bd565b60405180910390fd5b5f811161165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529061314b565b60405180910390fd5b5f611664610b45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116d257506116a2610b45565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561172b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c6b5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117ce575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6117d6575f80fd5b5f600e540361181e5761181b606461180d600a54600e54116117fa576006546117fe565b6008545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b5f600e541115611853576118506064611842600d5485611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118fc575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a4757601154821115611999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611990906131b3565b60405180910390fd5b601254826119a685610804565b6119b091906131d1565b11156119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e89061324e565b60405180910390fd5b611a2d6064611a1f600a54600e5411611a0c57600654611a10565b6008545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b9050600e5f815480929190611a419061326c565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611acf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b1357611b106064611b02600b54600e5411611aef57600754611af3565b6009545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b5f611b1d30610804565b9050601660159054906101000a900460ff16158015611b88575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9e575060168054906101000a900460ff165b8015611bab575060135481115b8015611bba5750600c54600e54115b15611c6957601854431115611bd1575f6017819055505b600360175410611c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0d906132fd565b60405180910390fd5b611c33611c2e84611c298460145461203d565b61203d565b612055565b5f4790505f811115611c4957611c48476122c0565b5b60175f815480929190611c5b9061326c565b919050555043601881905550505b505b5f811115611d6a57611cc38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d6191906125f7565b60405180910390a35b611dba8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5d611e11828461238590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f00848661238590919063ffffffff16565b604051611f0d91906125f7565b60405180910390a350505050565b5f838311158290611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5991906124b9565b60405180910390fd5b505f8385611f70919061331b565b9050809150509392505050565b5f808303611f8d575f9050611fee565b5f8284611f9a9190612ada565b9050828482611fa9919061337b565b14611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe09061341b565b60405180910390fd5b809150505b92915050565b5f61203583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ce565b905092915050565b5f81831161204b578261204d565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561208c5761208b612614565b5b6040519080825280602002602001820160405280156120ba5781602001602082028036833780820191505090505b50905030815f815181106120d1576120d0612b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612175573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121999190612d42565b816001815181106121ad576121ac612b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122133060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461137a565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122759594939291906134f0565b5f604051808303815f87803b15801561228c575f80fd5b505af115801561229e573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612324573d5f803e3d5ffd5b5050565b5f80828461233691906131d1565b90508381101561237b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237290613592565b60405180910390fd5b8091505092915050565b5f6123c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f1b565b905092915050565b5f8083118290612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b91906124b9565b60405180910390fd5b505f8385612422919061337b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246657808201518184015260208101905061244b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248b8261242f565b6124958185612439565b93506124a5818560208601612449565b6124ae81612471565b840191505092915050565b5f6020820190508181035f8301526124d18184612481565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612513826124ea565b9050919050565b61252381612509565b811461252d575f80fd5b50565b5f8135905061253e8161251a565b92915050565b5f819050919050565b61255681612544565b8114612560575f80fd5b50565b5f813590506125718161254d565b92915050565b5f806040838503121561258d5761258c6124e2565b5b5f61259a85828601612530565b92505060206125ab85828601612563565b9150509250929050565b5f8115159050919050565b6125c9816125b5565b82525050565b5f6020820190506125e25f8301846125c0565b92915050565b6125f181612544565b82525050565b5f60208201905061260a5f8301846125e8565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61264a82612471565b810181811067ffffffffffffffff8211171561266957612668612614565b5b80604052505050565b5f61267b6124d9565b90506126878282612641565b919050565b5f67ffffffffffffffff8211156126a6576126a5612614565b5b602082029050602081019050919050565b5f80fd5b5f6126cd6126c88461268c565b612672565b905080838252602082019050602084028301858111156126f0576126ef6126b7565b5b835b8181101561271957806127058882612530565b8452602084019350506020810190506126f2565b5050509392505050565b5f82601f83011261273757612736612610565b5b81356127478482602086016126bb565b91505092915050565b5f60208284031215612765576127646124e2565b5b5f82013567ffffffffffffffff811115612782576127816124e6565b5b61278e84828501612723565b91505092915050565b5f805f606084860312156127ae576127ad6124e2565b5b5f6127bb86828701612530565b93505060206127cc86828701612530565b92505060406127dd86828701612563565b9150509250925092565b5f60ff82169050919050565b6127fc816127e7565b82525050565b5f6020820190506128155f8301846127f3565b92915050565b5f602082840312156128305761282f6124e2565b5b5f61283d84828501612530565b91505092915050565b61284f81612509565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f8060408385031215612884576128836124e2565b5b5f61289185828601612530565b92505060206128a285828601612530565b9150509250929050565b5f602082840312156128c1576128c06124e2565b5b5f6128ce84828501612563565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061291b57607f821691505b60208210810361292e5761292d6128d7565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129b65780860481111561299257612991612934565b5b60018516156129a15780820291505b80810290506129af85612961565b9450612976565b94509492505050565b5f826129ce5760019050612a89565b816129db575f9050612a89565b81600181146129f157600281146129fb57612a2a565b6001915050612a89565b60ff841115612a0d57612a0c612934565b5b8360020a915084821115612a2457612a23612934565b5b50612a89565b5060208310610133831016604e8410600b8410161715612a5f5782820a905083811115612a5a57612a59612934565b5b612a89565b612a6c848484600161296d565b92509050818404811115612a8357612a82612934565b5b81810290505b9392505050565b5f612a9a82612544565b9150612aa5836127e7565b9250612ad27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129bf565b905092915050565b5f612ae482612544565b9150612aef83612544565b9250828202612afd81612544565b91508282048414831517612b1457612b13612934565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b4f602083612439565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612bbe8161254d565b92915050565b5f60208284031215612bd957612bd86124e2565b5b5f612be684828501612bb0565b91505092915050565b5f819050919050565b5f612c12612c0d612c08846124ea565b612bef565b6124ea565b9050919050565b5f612c2382612bf8565b9050919050565b5f612c3482612c19565b9050919050565b612c4481612c2a565b82525050565b5f604082019050612c5d5f830185612c3b565b612c6a60208301846125e8565b9392505050565b612c7a816125b5565b8114612c84575f80fd5b50565b5f81519050612c9581612c71565b92915050565b5f60208284031215612cb057612caf6124e2565b5b5f612cbd84828501612c87565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612cfa601783612439565b9150612d0582612cc6565b602082019050919050565b5f6020820190508181035f830152612d2781612cee565b9050919050565b5f81519050612d3c8161251a565b92915050565b5f60208284031215612d5757612d566124e2565b5b5f612d6484828501612d2e565b91505092915050565b5f604082019050612d805f830185612846565b612d8d6020830184612846565b9392505050565b5f819050919050565b5f612db7612db2612dad84612d94565b612bef565b612544565b9050919050565b612dc781612d9d565b82525050565b5f60c082019050612de05f830189612846565b612ded60208301886125e8565b612dfa6040830187612dbe565b612e076060830186612dbe565b612e146080830185612846565b612e2160a08301846125e8565b979650505050505050565b5f805f60608486031215612e4357612e426124e2565b5b5f612e5086828701612bb0565b9350506020612e6186828701612bb0565b9250506040612e7286828701612bb0565b9150509250925092565b5f604082019050612e8f5f830185612846565b612e9c60208301846125e8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612efd602483612439565b9150612f0882612ea3565b604082019050919050565b5f6020820190508181035f830152612f2a81612ef1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f8b602283612439565b9150612f9682612f31565b604082019050919050565b5f6020820190508181035f830152612fb881612f7f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613019602583612439565b915061302482612fbf565b604082019050919050565b5f6020820190508181035f8301526130468161300d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130a7602383612439565b91506130b28261304d565b604082019050919050565b5f6020820190508181035f8301526130d48161309b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613135602983612439565b9150613140826130db565b604082019050919050565b5f6020820190508181035f83015261316281613129565b9050919050565b7f4578636565647320746865205f6d617854782e000000000000000000000000005f82015250565b5f61319d601383612439565b91506131a882613169565b602082019050919050565b5f6020820190508181035f8301526131ca81613191565b9050919050565b5f6131db82612544565b91506131e683612544565b92508282019050808211156131fe576131fd612934565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613238601a83612439565b915061324382613204565b602082019050919050565b5f6020820190508181035f8301526132658161322c565b9050919050565b5f61327682612544565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132a8576132a7612934565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6132e7601783612439565b91506132f2826132b3565b602082019050919050565b5f6020820190508181035f830152613314816132db565b9050919050565b5f61332582612544565b915061333083612544565b925082820390508181111561334857613347612934565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338582612544565b915061339083612544565b9250826133a05761339f61334e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613405602183612439565b9150613410826133ab565b604082019050919050565b5f6020820190508181035f830152613432816133f9565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61346b81612509565b82525050565b5f61347c8383613462565b60208301905092915050565b5f602082019050919050565b5f61349e82613439565b6134a88185613443565b93506134b383613453565b805f5b838110156134e35781516134ca8882613471565b97506134d583613488565b9250506001810190506134b6565b5085935050505092915050565b5f60a0820190506135035f8301886125e8565b6135106020830187612dbe565b81810360408301526135228186613494565b90506135316060830185612846565b61353e60808301846125e8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61357c601b83612439565b915061358782613548565b602082019050919050565b5f6020820190508181035f8301526135a981613570565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035fe216c4845b16c391f950e9dec404fa426abbbedb67c12826252c8cedf958c64736f6c63430008170033
Deployed Bytecode
0x60806040526004361061012d575f3560e01c806382247ec0116100aa578063bf474bed1161006e578063bf474bed146103f0578063c97c18211461041a578063d7091b7114610442578063dd62ed3e1461046c578063ec1f3f63146104a8578063fb201b1d146104d057610134565b806382247ec01461030e5780638cd4426d146103385780638da5cb5b1461036057806395d89b411461038a578063a9059cbb146103b457610134565b8063313ce567116100f1578063313ce5671461022c5780633bbac5791461025657806370a0823114610292578063715018a6146102ce5780637830b072146102e457610134565b806306fdde0314610138578063095ea7b31461016257806318160ddd1461019e57806321bbcbb1146101c857806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104e6565b60405161015991906124b9565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190612577565b610576565b60405161019591906125cf565b60405180910390f35b3480156101a9575f80fd5b506101b2610593565b6040516101bf91906125f7565b60405180910390f35b3480156101d3575f80fd5b506101ee60048036038101906101e99190612750565b6105b7565b005b3480156101fb575f80fd5b5061021660048036038101906102119190612797565b6106d6565b60405161022391906125cf565b60405180910390f35b348015610237575f80fd5b506102406107aa565b60405161024d9190612802565b60405180910390f35b348015610261575f80fd5b5061027c6004803603810190610277919061281b565b6107b2565b60405161028991906125cf565b60405180910390f35b34801561029d575f80fd5b506102b860048036038101906102b3919061281b565b610804565b6040516102c591906125f7565b60405180910390f35b3480156102d9575f80fd5b506102e261084a565b005b3480156102ef575f80fd5b506102f8610998565b60405161030591906125f7565b60405180910390f35b348015610319575f80fd5b5061032261099e565b60405161032f91906125f7565b60405180910390f35b348015610343575f80fd5b5061035e60048036038101906103599190612577565b6109a4565b005b34801561036b575f80fd5b50610374610b45565b6040516103819190612855565b60405180910390f35b348015610395575f80fd5b5061039e610b6c565b6040516103ab91906124b9565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d59190612577565b610bfc565b6040516103e791906125cf565b60405180910390f35b3480156103fb575f80fd5b50610404610c19565b60405161041191906125f7565b60405180910390f35b348015610425575f80fd5b50610440600480360381019061043b9190612750565b610c1f565b005b34801561044d575f80fd5b50610456610d3d565b60405161046391906125f7565b60405180910390f35b348015610477575f80fd5b50610492600480360381019061048d919061286e565b610d43565b60405161049f91906125f7565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c991906128ac565b610dc5565b005b3480156104db575f80fd5b506104e4610e51565b005b6060600f80546104f590612904565b80601f016020809104026020016040519081016040528092919081815260200182805461052190612904565b801561056c5780601f106105435761010080835404028352916020019161056c565b820191905f5260205f20905b81548152906001019060200180831161054f57829003601f168201915b5050505050905090565b5f610589610582611373565b848461137a565b6001905092915050565b5f6009600a6105a29190612a90565b64174876e8006105b29190612ada565b905090565b6105bf611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461064b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064290612b65565b60405180910390fd5b5f5b81518110156106d257600160045f84848151811061066e5761066d612b83565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061064d565b5050565b5f6106e284848461153d565b61079f846106ee611373565b61079a856040518060600160405280602881526020016135b16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610751611373565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f1b9092919063ffffffff16565b61137a565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610852611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d590612b65565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b60125481565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109e4611373565b73ffffffffffffffffffffffffffffffffffffffff1614610a03575f80fd5b5f610aa16064610a93848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a469190612855565b602060405180830381865afa158015610a61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a859190612bc4565b611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610aff929190612c4a565b6020604051808303815f875af1158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f9190612c9b565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060108054610b7b90612904565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba790612904565b8015610bf25780601f10610bc957610100808354040283529160200191610bf2565b820191905f5260205f20905b815481529060010190602001808311610bd557829003601f168201915b5050505050905090565b5f610c0f610c08611373565b848461153d565b6001905092915050565b60135481565b610c27611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610caa90612b65565b60405180910390fd5b5f5b8151811015610d39575f60045f848481518110610cd557610cd4612b83565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610cb5565b5050565b60145481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e05611373565b73ffffffffffffffffffffffffffffffffffffffff1614610e24575f80fd5b6008548111158015610e3857506009548111155b610e40575f80fd5b806008819055508060098190555050565b610e59611373565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90612b65565b60405180910390fd5b601660149054906101000a900460ff1615610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c90612d10565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fd23060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610fbd9190612a90565b64174876e800610fcd9190612ada565b61137a565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561103c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110609190612d42565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110a9190612d42565b6040518363ffffffff1660e01b8152600401611127929190612d6d565b6020604051808303815f875af1158015611143573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111679190612d42565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111ee30610804565b5f806111f8610b45565b426040518863ffffffff1660e01b815260040161121a96959493929190612dcd565b60606040518083038185885af1158015611236573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061125b9190612e2c565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fb929190612e7c565b6020604051808303815f875af1158015611317573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061133b9190612c9b565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612f13565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611456576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144d90612fa1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153091906125f7565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a29061302f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611619576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611610906130bd565b60405180910390fd5b5f811161165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529061314b565b60405180910390fd5b5f611664610b45565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116d257506116a2610b45565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561172b575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c6b5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117ce575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6117d6575f80fd5b5f600e540361181e5761181b606461180d600a54600e54116117fa576006546117fe565b6008545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b5f600e541115611853576118506064611842600d5485611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118fc575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561194f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611a4757601154821115611999576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611990906131b3565b60405180910390fd5b601254826119a685610804565b6119b091906131d1565b11156119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e89061324e565b60405180910390fd5b611a2d6064611a1f600a54600e5411611a0c57600654611a10565b6008545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b9050600e5f815480929190611a419061326c565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611acf57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b1357611b106064611b02600b54600e5411611aef57600754611af3565b6009545b85611f7d90919063ffffffff16565b611ff490919063ffffffff16565b90505b5f611b1d30610804565b9050601660159054906101000a900460ff16158015611b88575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b9e575060168054906101000a900460ff165b8015611bab575060135481115b8015611bba5750600c54600e54115b15611c6957601854431115611bd1575f6017819055505b600360175410611c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0d906132fd565b60405180910390fd5b611c33611c2e84611c298460145461203d565b61203d565b612055565b5f4790505f811115611c4957611c48476122c0565b5b60175f815480929190611c5b9061326c565b919050555043601881905550505b505b5f811115611d6a57611cc38160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d6191906125f7565b60405180910390a35b611dba8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461238590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e5d611e11828461238590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461232890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f00848661238590919063ffffffff16565b604051611f0d91906125f7565b60405180910390a350505050565b5f838311158290611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5991906124b9565b60405180910390fd5b505f8385611f70919061331b565b9050809150509392505050565b5f808303611f8d575f9050611fee565b5f8284611f9a9190612ada565b9050828482611fa9919061337b565b14611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe09061341b565b60405180910390fd5b809150505b92915050565b5f61203583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123ce565b905092915050565b5f81831161204b578261204d565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561208c5761208b612614565b5b6040519080825280602002602001820160405280156120ba5781602001602082028036833780820191505090505b50905030815f815181106120d1576120d0612b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612175573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121999190612d42565b816001815181106121ad576121ac612b83565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122133060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461137a565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016122759594939291906134f0565b5f604051808303815f87803b15801561228c575f80fd5b505af115801561229e573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612324573d5f803e3d5ffd5b5050565b5f80828461233691906131d1565b90508381101561237b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237290613592565b60405180910390fd5b8091505092915050565b5f6123c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f1b565b905092915050565b5f8083118290612414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240b91906124b9565b60405180910390fd5b505f8385612422919061337b565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561246657808201518184015260208101905061244b565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61248b8261242f565b6124958185612439565b93506124a5818560208601612449565b6124ae81612471565b840191505092915050565b5f6020820190508181035f8301526124d18184612481565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612513826124ea565b9050919050565b61252381612509565b811461252d575f80fd5b50565b5f8135905061253e8161251a565b92915050565b5f819050919050565b61255681612544565b8114612560575f80fd5b50565b5f813590506125718161254d565b92915050565b5f806040838503121561258d5761258c6124e2565b5b5f61259a85828601612530565b92505060206125ab85828601612563565b9150509250929050565b5f8115159050919050565b6125c9816125b5565b82525050565b5f6020820190506125e25f8301846125c0565b92915050565b6125f181612544565b82525050565b5f60208201905061260a5f8301846125e8565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61264a82612471565b810181811067ffffffffffffffff8211171561266957612668612614565b5b80604052505050565b5f61267b6124d9565b90506126878282612641565b919050565b5f67ffffffffffffffff8211156126a6576126a5612614565b5b602082029050602081019050919050565b5f80fd5b5f6126cd6126c88461268c565b612672565b905080838252602082019050602084028301858111156126f0576126ef6126b7565b5b835b8181101561271957806127058882612530565b8452602084019350506020810190506126f2565b5050509392505050565b5f82601f83011261273757612736612610565b5b81356127478482602086016126bb565b91505092915050565b5f60208284031215612765576127646124e2565b5b5f82013567ffffffffffffffff811115612782576127816124e6565b5b61278e84828501612723565b91505092915050565b5f805f606084860312156127ae576127ad6124e2565b5b5f6127bb86828701612530565b93505060206127cc86828701612530565b92505060406127dd86828701612563565b9150509250925092565b5f60ff82169050919050565b6127fc816127e7565b82525050565b5f6020820190506128155f8301846127f3565b92915050565b5f602082840312156128305761282f6124e2565b5b5f61283d84828501612530565b91505092915050565b61284f81612509565b82525050565b5f6020820190506128685f830184612846565b92915050565b5f8060408385031215612884576128836124e2565b5b5f61289185828601612530565b92505060206128a285828601612530565b9150509250929050565b5f602082840312156128c1576128c06124e2565b5b5f6128ce84828501612563565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061291b57607f821691505b60208210810361292e5761292d6128d7565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156129b65780860481111561299257612991612934565b5b60018516156129a15780820291505b80810290506129af85612961565b9450612976565b94509492505050565b5f826129ce5760019050612a89565b816129db575f9050612a89565b81600181146129f157600281146129fb57612a2a565b6001915050612a89565b60ff841115612a0d57612a0c612934565b5b8360020a915084821115612a2457612a23612934565b5b50612a89565b5060208310610133831016604e8410600b8410161715612a5f5782820a905083811115612a5a57612a59612934565b5b612a89565b612a6c848484600161296d565b92509050818404811115612a8357612a82612934565b5b81810290505b9392505050565b5f612a9a82612544565b9150612aa5836127e7565b9250612ad27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129bf565b905092915050565b5f612ae482612544565b9150612aef83612544565b9250828202612afd81612544565b91508282048414831517612b1457612b13612934565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612b4f602083612439565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612bbe8161254d565b92915050565b5f60208284031215612bd957612bd86124e2565b5b5f612be684828501612bb0565b91505092915050565b5f819050919050565b5f612c12612c0d612c08846124ea565b612bef565b6124ea565b9050919050565b5f612c2382612bf8565b9050919050565b5f612c3482612c19565b9050919050565b612c4481612c2a565b82525050565b5f604082019050612c5d5f830185612c3b565b612c6a60208301846125e8565b9392505050565b612c7a816125b5565b8114612c84575f80fd5b50565b5f81519050612c9581612c71565b92915050565b5f60208284031215612cb057612caf6124e2565b5b5f612cbd84828501612c87565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612cfa601783612439565b9150612d0582612cc6565b602082019050919050565b5f6020820190508181035f830152612d2781612cee565b9050919050565b5f81519050612d3c8161251a565b92915050565b5f60208284031215612d5757612d566124e2565b5b5f612d6484828501612d2e565b91505092915050565b5f604082019050612d805f830185612846565b612d8d6020830184612846565b9392505050565b5f819050919050565b5f612db7612db2612dad84612d94565b612bef565b612544565b9050919050565b612dc781612d9d565b82525050565b5f60c082019050612de05f830189612846565b612ded60208301886125e8565b612dfa6040830187612dbe565b612e076060830186612dbe565b612e146080830185612846565b612e2160a08301846125e8565b979650505050505050565b5f805f60608486031215612e4357612e426124e2565b5b5f612e5086828701612bb0565b9350506020612e6186828701612bb0565b9250506040612e7286828701612bb0565b9150509250925092565b5f604082019050612e8f5f830185612846565b612e9c60208301846125e8565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612efd602483612439565b9150612f0882612ea3565b604082019050919050565b5f6020820190508181035f830152612f2a81612ef1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f8b602283612439565b9150612f9682612f31565b604082019050919050565b5f6020820190508181035f830152612fb881612f7f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613019602583612439565b915061302482612fbf565b604082019050919050565b5f6020820190508181035f8301526130468161300d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6130a7602383612439565b91506130b28261304d565b604082019050919050565b5f6020820190508181035f8301526130d48161309b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613135602983612439565b9150613140826130db565b604082019050919050565b5f6020820190508181035f83015261316281613129565b9050919050565b7f4578636565647320746865205f6d617854782e000000000000000000000000005f82015250565b5f61319d601383612439565b91506131a882613169565b602082019050919050565b5f6020820190508181035f8301526131ca81613191565b9050919050565b5f6131db82612544565b91506131e683612544565b92508282019050808211156131fe576131fd612934565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613238601a83612439565b915061324382613204565b602082019050919050565b5f6020820190508181035f8301526132658161322c565b9050919050565b5f61327682612544565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132a8576132a7612934565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6132e7601783612439565b91506132f2826132b3565b602082019050919050565b5f6020820190508181035f830152613314816132db565b9050919050565b5f61332582612544565b915061333083612544565b925082820390508181111561334857613347612934565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61338582612544565b915061339083612544565b9250826133a05761339f61334e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613405602183612439565b9150613410826133ab565b604082019050919050565b5f6020820190508181035f830152613432816133f9565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61346b81612509565b82525050565b5f61347c8383613462565b60208301905092915050565b5f602082019050919050565b5f61349e82613439565b6134a88185613443565b93506134b383613453565b805f5b838110156134e35781516134ca8882613471565b97506134d583613488565b9250506001810190506134b6565b5085935050505092915050565b5f60a0820190506135035f8301886125e8565b6135106020830187612dbe565b81810360408301526135228186613494565b90506135316060830185612846565b61353e60808301846125e8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61357c601b83612439565b915061358782613548565b602082019050919050565b5f6020820190508181035f8301526135a981613570565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122035fe216c4845b16c391f950e9dec404fa426abbbedb67c12826252c8cedf958c64736f6c63430008170033
Deployed Bytecode Sourcemap
3677:8231:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5473:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6312:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5751:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10271:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6481:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5660:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10611;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5859:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2758:148;;;;;;;;;;;;;:::i;:::-;;4576:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4635:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11637:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2544:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5986:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4698:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10442:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4767:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6161:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11390:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10702:674;;;;;;;;;;;;;:::i;:::-;;5473:83;5510:13;5543:5;5536:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5473:83;:::o;6312:161::-;6387:4;6404:39;6413:12;:10;:12::i;:::-;6427:7;6436:6;6404:8;:39::i;:::-;6461:4;6454:11;;6312:161;;;;:::o;5751:100::-;5804:7;4403:1;4467:2;:13;;;;:::i;:::-;4452:12;:28;;;;:::i;:::-;5824:19;;5751:100;:::o;10271:163::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10344:6:::1;10339:88;10360:5;:12;10356:1;:16;10339:88;;;10411:4;10394;:14;10399:5;10405:1;10399:8;;;;;;;;:::i;:::-;;;;;;;;10394:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10374:3;;;;;;;10339:88;;;;10271:163:::0;:::o;6481:313::-;6579:4;6596:36;6606:6;6614:9;6625:6;6596:9;:36::i;:::-;6643:121;6652:6;6660:12;:10;:12::i;:::-;6674:89;6712:6;6674:89;;;;;;;;;;;;;;;;;:11;:19;6686:6;6674:19;;;;;;;;;;;;;;;:33;6694:12;:10;:12::i;:::-;6674:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6643:8;:121::i;:::-;6782:4;6775:11;;6481:313;;;;;:::o;5660:83::-;5701:5;4403:1;5719:16;;5660:83;:::o;10611:::-;10658:4;10679;:7;10684:1;10679:7;;;;;;;;;;;;;;;;;;;;;;;;;10672:14;;10611:83;;;:::o;5859:119::-;5925:7;5952:9;:18;5962:7;5952:18;;;;;;;;;;;;;;;;5945:25;;5859:119;;;:::o;2758:148::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2865:1:::1;2828:40;;2849:6;::::0;::::1;;;;;;;;2828:40;;;;;;;;;;;;2896:1;2879:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2758:148::o:0;4576:52::-;;;;:::o;4635:56::-;;;;:::o;11637:266::-;11735:10;;;;;;;;;;;11721:24;;:12;:10;:12::i;:::-;:24;;;11713:33;;;;;;11757:15;11775:63;11834:3;11775:54;11821:7;11782:8;11775:26;;;11810:4;11775:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;11757:81;;11856:8;11849:25;;;11875:10;;;;;;;;;;;11887:7;11849:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11702:201;11637:266;;:::o;2544:79::-;2582:7;2609:6;;;;;;;;;;;2602:13;;2544:79;:::o;5564:88::-;5604:13;5637:7;5630:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5564:88;:::o;5986:167::-;6064:4;6081:42;6091:12;:10;:12::i;:::-;6105:9;6116:6;6081:9;:42::i;:::-;6141:4;6134:11;;5986:167;;;;:::o;4698:62::-;;;;:::o;10442:161::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10514:6:::1;10509:87;10530:6;:13;10526:1;:17;10509:87;;;10581:5;10563:4;:15;10568:6;10575:1;10568:9;;;;;;;;:::i;:::-;;;;;;;;10563:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10545:3;;;;;;;10509:87;;;;10442:161:::0;:::o;4767:53::-;;;;:::o;6161:143::-;6242:7;6269:11;:18;6281:5;6269:18;;;;;;;;;;;;;;;:27;6288:7;6269:27;;;;;;;;;;;;;;;;6262:34;;6161:143;;;;:::o;11390:202::-;11465:10;;;;;;;;;;;11451:24;;:12;:10;:12::i;:::-;:24;;;11443:33;;;;;;11502:8;;11493:7;:17;;:39;;;;;11523:9;;11514:7;:18;;11493:39;11485:48;;;;;;11551:7;11542:8;:16;;;;11577:7;11567:9;:17;;;;11390:202;:::o;10702:674::-;2681:12;:10;:12::i;:::-;2671:22;;:6;;;;;;;;;;:22;;;2663:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10764:11:::1;;;;;;;;;;;10763:12;10755:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10850:42;10813:15;;:80;;;;;;;;;;;;;;;;;;10904:63;10921:4;10936:15;;;;;;;;;;;4403:1;4467:2;:13;;;;:::i;:::-;4452:12;:28;;;;:::i;:::-;10904:8;:63::i;:::-;11012:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10994:55;;;11058:4;11065:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10994:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10978:13;;:110;;;;;;;;;;;;;;;;;;11099:15;;;;;;;;;;;:31;;;11138:21;11169:4;11175:24;11193:4;11175:9;:24::i;:::-;11200:1;11202::::0;11204:7:::1;:5;:7::i;:::-;11212:15;11099:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11246:13;;;;;;;;;;;11239:29;;;11277:15;;;;;;;;;;;11295:14;11239:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11335:4;11321:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11364:4;11350:11;;:18;;;;;;;;;;;;;;;;;;10702:674::o:0;299:98::-;352:7;379:10;372:17;;299:98;:::o;6802:335::-;6912:1;6895:19;;:5;:19;;;6887:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6993:1;6974:21;;:7;:21;;;6966:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7075:6;7045:11;:18;7057:5;7045:18;;;;;;;;;;;;;;;:27;7064:7;7045:27;;;;;;;;;;;;;;;:36;;;;7113:7;7097:32;;7106:5;7097:32;;;7122:6;7097:32;;;;;;:::i;:::-;;;;;;;;6802:335;;;:::o;7145:2419::-;7249:1;7233:18;;:4;:18;;;7225:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7326:1;7312:16;;:2;:16;;;7304:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7396:1;7387:6;:10;7379:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7454:17;7496:7;:5;:7::i;:::-;7488:15;;:4;:15;;;;:32;;;;;7513:7;:5;:7::i;:::-;7507:13;;:2;:13;;;;7488:32;:52;;;;;7530:10;;;;;;;;;;;7524:16;;:2;:16;;;;7488:52;7484:1724;;;7566:4;:10;7571:4;7566:10;;;;;;;;;;;;;;;;;;;;;;;;;7565:11;:24;;;;;7581:4;:8;7586:2;7581:8;;;;;;;;;;;;;;;;;;;;;;;;;7580:9;7565:24;7557:33;;;;;;7621:1;7610:9;;:12;7607:129;;7654:66;7716:3;7654:57;7676:15;;7666:9;;:25;7665:45;;7702:8;;7665:45;;;7693:8;;7665:45;7654:6;:10;;:57;;;;:::i;:::-;:61;;:66;;;;:::i;:::-;7642:78;;7607:129;7763:1;7753:9;;:11;7750:95;;;7796:33;7825:3;7796:24;7807:12;;7796:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7784:45;;7750:95;7873:13;;;;;;;;;;;7865:21;;:4;:21;;;:55;;;;;7904:15;;;;;;;;;;;7890:30;;:2;:30;;;;7865:55;:83;;;;;7926:18;:22;7945:2;7926:22;;;;;;;;;;;;;;;;;;;;;;;;;7924:24;7865:83;7861:394;;;7988:6;;7978;:16;;7970:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;8071:10;;8061:6;8045:13;8055:2;8045:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;8037:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8143:66;8205:3;8143:57;8165:15;;8155:9;;:25;8154:45;;8191:8;;8154:45;;;8182:8;;8154:45;8143:6;:10;;:57;;;;:::i;:::-;:61;;:66;;;;:::i;:::-;8131:78;;8228:9;;:11;;;;;;;;;:::i;:::-;;;;;;7861:394;8280:13;;;;;;;;;;;8274:19;;:2;:19;;;:43;;;;;8312:4;8297:20;;:4;:20;;;;8274:43;8271:164;;;8350:69;8415:3;8350:60;8372:16;;8362:9;;:26;8361:48;;8400:9;;8361:48;;;8390:9;;8361:48;8350:6;:10;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;8338:81;;8271:164;8451:28;8482:24;8500:4;8482:9;:24::i;:::-;8451:55;;8526:6;;;;;;;;;;;8525:7;:30;;;;;8542:13;;;;;;;;;;;8536:19;;:2;:19;;;8525:30;:45;;;;;8559:11;;;;;;;;;;8525:45;:89;;;;;8597:17;;8574:20;:40;8525:89;:123;;;;;8630:18;;8618:9;;:30;8525:123;8521:676;;;8688:13;;8673:12;:28;8669:90;;;8738:1;8726:9;:13;;;;8669:90;8797:1;8785:9;;:13;8777:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8845:66;8862:48;8866:6;8874:35;8878:20;8900:8;;8874:3;:35::i;:::-;8862:3;:48::i;:::-;8845:16;:66::i;:::-;8930:26;8959:21;8930:50;;9024:1;9003:18;:22;8999:106;;;9050:35;9063:21;9050:12;:35::i;:::-;8999:106;9123:9;;:11;;;;;;;;;:::i;:::-;;;;;;9169:12;9153:13;:28;;;;8650:547;8521:676;7542:1666;7484:1724;9233:1;9223:9;:11;9220:161;;;9273:39;9302:9;9273;:24;9291:4;9273:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9248:9;:24;9266:4;9248:24;;;;;;;;;;;;;;;:64;;;;9353:4;9330:39;;9339:4;9330:39;;;9359:9;9330:39;;;;;;:::i;:::-;;;;;;;;9220:161;9407:27;9427:6;9407:9;:15;9417:4;9407:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9391:9;:15;9401:4;9391:15;;;;;;;;;;;;;;;:43;;;;9459:40;9477:21;9488:9;9477:6;:10;;:21;;;;:::i;:::-;9459:9;:13;9469:2;9459:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9445:9;:13;9455:2;9445:13;;;;;;;;;;;;;;;:54;;;;9530:2;9515:41;;9524:4;9515:41;;;9534:21;9545:9;9534:6;:10;;:21;;;;:::i;:::-;9515:41;;;;;;:::i;:::-;;;;;;;;7214:2350;7145:2419;;;:::o;1436:190::-;1522:7;1555:1;1550;:6;;1558:12;1542:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1582:9;1598:1;1594;:5;;;;:::i;:::-;1582:17;;1617:1;1610:8;;;1436:190;;;;;:::o;1634:246::-;1692:7;1721:1;1716;:6;1712:47;;1746:1;1739:8;;;;1712:47;1769:9;1785:1;1781;:5;;;;:::i;:::-;1769:17;;1814:1;1809;1805;:5;;;;:::i;:::-;:10;1797:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1871:1;1864:8;;;1634:246;;;;;:::o;1888:132::-;1946:7;1973:39;1977:1;1980;1973:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1966:46;;1888:132;;;;:::o;9574:98::-;9631:7;9658:1;9656;:3;9655:9;;9663:1;9655:9;;;9661:1;9655:9;9648:16;;9574:98;;;;:::o;9680:483::-;5225:4;5216:6;;:13;;;;;;;;;;;;;;;;;;9758:21:::1;9796:1;9782:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9758:40;;9827:4;9809;9814:1;9809:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9853:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9843:4;9848:1;9843:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9886:62;9903:4;9918:15;;;;;;;;;;;9936:11;9886:8;:62::i;:::-;9959:15;;;;;;;;;;;:66;;;10040:11;10066:1;10082:4;10109;10129:15;9959:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9747:416;5261:5:::0;5252:6;;:14;;;;;;;;;;;;;;;;;;9680:483;:::o;10171:92::-;10228:10;;;;;;;;;;;:19;;:27;10248:6;10228:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10171:92;:::o;1105:179::-;1163:7;1183:9;1199:1;1195;:5;;;;:::i;:::-;1183:17;;1224:1;1219;:6;;1211:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1275:1;1268:8;;;1105:179;;;;:::o;1292:136::-;1350:7;1377:43;1381:1;1384;1377:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1370:50;;1292:136;;;;:::o;2028:189::-;2114:7;2146:1;2142;:5;2149:12;2134:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2173:9;2189:1;2185;:5;;;;:::i;:::-;2173:17;;2208:1;2201:8;;;2028:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:117::-;3907:1;3904;3897:12;3921:180;3969:77;3966:1;3959:88;4066:4;4063:1;4056:15;4090:4;4087:1;4080:15;4107:281;4190:27;4212:4;4190:27;:::i;:::-;4182:6;4178:40;4320:6;4308:10;4305:22;4284:18;4272:10;4269:34;4266:62;4263:88;;;4331:18;;:::i;:::-;4263:88;4371:10;4367:2;4360:22;4150:238;4107:281;;:::o;4394:129::-;4428:6;4455:20;;:::i;:::-;4445:30;;4484:33;4512:4;4504:6;4484:33;:::i;:::-;4394:129;;;:::o;4529:311::-;4606:4;4696:18;4688:6;4685:30;4682:56;;;4718:18;;:::i;:::-;4682:56;4768:4;4760:6;4756:17;4748:25;;4828:4;4822;4818:15;4810:23;;4529:311;;;:::o;4846:117::-;4955:1;4952;4945:12;4986:710;5082:5;5107:81;5123:64;5180:6;5123:64;:::i;:::-;5107:81;:::i;:::-;5098:90;;5208:5;5237:6;5230:5;5223:21;5271:4;5264:5;5260:16;5253:23;;5324:4;5316:6;5312:17;5304:6;5300:30;5353:3;5345:6;5342:15;5339:122;;;5372:79;;:::i;:::-;5339:122;5487:6;5470:220;5504:6;5499:3;5496:15;5470:220;;;5579:3;5608:37;5641:3;5629:10;5608:37;:::i;:::-;5603:3;5596:50;5675:4;5670:3;5666:14;5659:21;;5546:144;5530:4;5525:3;5521:14;5514:21;;5470:220;;;5474:21;5088:608;;4986:710;;;;;:::o;5719:370::-;5790:5;5839:3;5832:4;5824:6;5820:17;5816:27;5806:122;;5847:79;;:::i;:::-;5806:122;5964:6;5951:20;5989:94;6079:3;6071:6;6064:4;6056:6;6052:17;5989:94;:::i;:::-;5980:103;;5796:293;5719:370;;;;:::o;6095:539::-;6179:6;6228:2;6216:9;6207:7;6203:23;6199:32;6196:119;;;6234:79;;:::i;:::-;6196:119;6382:1;6371:9;6367:17;6354:31;6412:18;6404:6;6401:30;6398:117;;;6434:79;;:::i;:::-;6398:117;6539:78;6609:7;6600:6;6589:9;6585:22;6539:78;:::i;:::-;6529:88;;6325:302;6095:539;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:320;9427:6;9464:1;9458:4;9454:12;9444:22;;9511:1;9505:4;9501:12;9532:18;9522:81;;9588:4;9580:6;9576:17;9566:27;;9522:81;9650:2;9642:6;9639:14;9619:18;9616:38;9613:84;;9669:18;;:::i;:::-;9613:84;9434:269;9383:320;;;:::o;9709:180::-;9757:77;9754:1;9747:88;9854:4;9851:1;9844:15;9878:4;9875:1;9868:15;9895:102;9937:8;9984:5;9981:1;9977:13;9956:34;;9895:102;;;:::o;10003:848::-;10064:5;10071:4;10095:6;10086:15;;10119:5;10110:14;;10133:712;10154:1;10144:8;10141:15;10133:712;;;10249:4;10244:3;10240:14;10234:4;10231:24;10228:50;;;10258:18;;:::i;:::-;10228:50;10308:1;10298:8;10294:16;10291:451;;;10723:4;10716:5;10712:16;10703:25;;10291:451;10773:4;10767;10763:15;10755:23;;10803:32;10826:8;10803:32;:::i;:::-;10791:44;;10133:712;;;10003:848;;;;;;;:::o;10857:1073::-;10911:5;11102:8;11092:40;;11123:1;11114:10;;11125:5;;11092:40;11151:4;11141:36;;11168:1;11159:10;;11170:5;;11141:36;11237:4;11285:1;11280:27;;;;11321:1;11316:191;;;;11230:277;;11280:27;11298:1;11289:10;;11300:5;;;11316:191;11361:3;11351:8;11348:17;11345:43;;;11368:18;;:::i;:::-;11345:43;11417:8;11414:1;11410:16;11401:25;;11452:3;11445:5;11442:14;11439:40;;;11459:18;;:::i;:::-;11439:40;11492:5;;;11230:277;;11616:2;11606:8;11603:16;11597:3;11591:4;11588:13;11584:36;11566:2;11556:8;11553:16;11548:2;11542:4;11539:12;11535:35;11519:111;11516:246;;;11672:8;11666:4;11662:19;11653:28;;11707:3;11700:5;11697:14;11694:40;;;11714:18;;:::i;:::-;11694:40;11747:5;;11516:246;11787:42;11825:3;11815:8;11809:4;11806:1;11787:42;:::i;:::-;11772:57;;;;11861:4;11856:3;11852:14;11845:5;11842:25;11839:51;;;11870:18;;:::i;:::-;11839:51;11919:4;11912:5;11908:16;11899:25;;10857:1073;;;;;;:::o;11936:281::-;11994:5;12018:23;12036:4;12018:23;:::i;:::-;12010:31;;12062:25;12078:8;12062:25;:::i;:::-;12050:37;;12106:104;12143:66;12133:8;12127:4;12106:104;:::i;:::-;12097:113;;11936:281;;;;:::o;12223:410::-;12263:7;12286:20;12304:1;12286:20;:::i;:::-;12281:25;;12320:20;12338:1;12320:20;:::i;:::-;12315:25;;12375:1;12372;12368:9;12397:30;12415:11;12397:30;:::i;:::-;12386:41;;12576:1;12567:7;12563:15;12560:1;12557:22;12537:1;12530:9;12510:83;12487:139;;12606:18;;:::i;:::-;12487:139;12271:362;12223:410;;;;:::o;12639:182::-;12779:34;12775:1;12767:6;12763:14;12756:58;12639:182;:::o;12827:366::-;12969:3;12990:67;13054:2;13049:3;12990:67;:::i;:::-;12983:74;;13066:93;13155:3;13066:93;:::i;:::-;13184:2;13179:3;13175:12;13168:19;;12827:366;;;:::o;13199:419::-;13365:4;13403:2;13392:9;13388:18;13380:26;;13452:9;13446:4;13442:20;13438:1;13427:9;13423:17;13416:47;13480:131;13606:4;13480:131;:::i;:::-;13472:139;;13199:419;;;:::o;13624:180::-;13672:77;13669:1;13662:88;13769:4;13766:1;13759:15;13793:4;13790:1;13783:15;13810:143;13867:5;13898:6;13892:13;13883:22;;13914:33;13941:5;13914:33;:::i;:::-;13810:143;;;;:::o;13959:351::-;14029:6;14078:2;14066:9;14057:7;14053:23;14049:32;14046:119;;;14084:79;;:::i;:::-;14046:119;14204:1;14229:64;14285:7;14276:6;14265:9;14261:22;14229:64;:::i;:::-;14219:74;;14175:128;13959:351;;;;:::o;14316:60::-;14344:3;14365:5;14358:12;;14316:60;;;:::o;14382:142::-;14432:9;14465:53;14483:34;14492:24;14510:5;14492:24;:::i;:::-;14483:34;:::i;:::-;14465:53;:::i;:::-;14452:66;;14382:142;;;:::o;14530:126::-;14580:9;14613:37;14644:5;14613:37;:::i;:::-;14600:50;;14530:126;;;:::o;14662:134::-;14720:9;14753:37;14784:5;14753:37;:::i;:::-;14740:50;;14662:134;;;:::o;14802:147::-;14897:45;14936:5;14897:45;:::i;:::-;14892:3;14885:58;14802:147;;:::o;14955:348::-;15084:4;15122:2;15111:9;15107:18;15099:26;;15135:79;15211:1;15200:9;15196:17;15187:6;15135:79;:::i;:::-;15224:72;15292:2;15281:9;15277:18;15268:6;15224:72;:::i;:::-;14955:348;;;;;:::o;15309:116::-;15379:21;15394:5;15379:21;:::i;:::-;15372:5;15369:32;15359:60;;15415:1;15412;15405:12;15359:60;15309:116;:::o;15431:137::-;15485:5;15516:6;15510:13;15501:22;;15532:30;15556:5;15532:30;:::i;:::-;15431:137;;;;:::o;15574:345::-;15641:6;15690:2;15678:9;15669:7;15665:23;15661:32;15658:119;;;15696:79;;:::i;:::-;15658:119;15816:1;15841:61;15894:7;15885:6;15874:9;15870:22;15841:61;:::i;:::-;15831:71;;15787:125;15574:345;;;;:::o;15925:173::-;16065:25;16061:1;16053:6;16049:14;16042:49;15925:173;:::o;16104:366::-;16246:3;16267:67;16331:2;16326:3;16267:67;:::i;:::-;16260:74;;16343:93;16432:3;16343:93;:::i;:::-;16461:2;16456:3;16452:12;16445:19;;16104:366;;;:::o;16476:419::-;16642:4;16680:2;16669:9;16665:18;16657:26;;16729:9;16723:4;16719:20;16715:1;16704:9;16700:17;16693:47;16757:131;16883:4;16757:131;:::i;:::-;16749:139;;16476:419;;;:::o;16901:143::-;16958:5;16989:6;16983:13;16974:22;;17005:33;17032:5;17005:33;:::i;:::-;16901:143;;;;:::o;17050:351::-;17120:6;17169:2;17157:9;17148:7;17144:23;17140:32;17137:119;;;17175:79;;:::i;:::-;17137:119;17295:1;17320:64;17376:7;17367:6;17356:9;17352:22;17320:64;:::i;:::-;17310:74;;17266:128;17050:351;;;;:::o;17407:332::-;17528:4;17566:2;17555:9;17551:18;17543:26;;17579:71;17647:1;17636:9;17632:17;17623:6;17579:71;:::i;:::-;17660:72;17728:2;17717:9;17713:18;17704:6;17660:72;:::i;:::-;17407:332;;;;;:::o;17745:85::-;17790:7;17819:5;17808:16;;17745:85;;;:::o;17836:158::-;17894:9;17927:61;17945:42;17954:32;17980:5;17954:32;:::i;:::-;17945:42;:::i;:::-;17927:61;:::i;:::-;17914:74;;17836:158;;;:::o;18000:147::-;18095:45;18134:5;18095:45;:::i;:::-;18090:3;18083:58;18000:147;;:::o;18153:807::-;18402:4;18440:3;18429:9;18425:19;18417:27;;18454:71;18522:1;18511:9;18507:17;18498:6;18454:71;:::i;:::-;18535:72;18603:2;18592:9;18588:18;18579:6;18535:72;:::i;:::-;18617:80;18693:2;18682:9;18678:18;18669:6;18617:80;:::i;:::-;18707;18783:2;18772:9;18768:18;18759:6;18707:80;:::i;:::-;18797:73;18865:3;18854:9;18850:19;18841:6;18797:73;:::i;:::-;18880;18948:3;18937:9;18933:19;18924:6;18880:73;:::i;:::-;18153:807;;;;;;;;;:::o;18966:663::-;19054:6;19062;19070;19119:2;19107:9;19098:7;19094:23;19090:32;19087:119;;;19125:79;;:::i;:::-;19087:119;19245:1;19270:64;19326:7;19317:6;19306:9;19302:22;19270:64;:::i;:::-;19260:74;;19216:128;19383:2;19409:64;19465:7;19456:6;19445:9;19441:22;19409:64;:::i;:::-;19399:74;;19354:129;19522:2;19548:64;19604:7;19595:6;19584:9;19580:22;19548:64;:::i;:::-;19538:74;;19493:129;18966:663;;;;;:::o;19635:332::-;19756:4;19794:2;19783:9;19779:18;19771:26;;19807:71;19875:1;19864:9;19860:17;19851:6;19807:71;:::i;:::-;19888:72;19956:2;19945:9;19941:18;19932:6;19888:72;:::i;:::-;19635:332;;;;;:::o;19973:223::-;20113:34;20109:1;20101:6;20097:14;20090:58;20182:6;20177:2;20169:6;20165:15;20158:31;19973:223;:::o;20202:366::-;20344:3;20365:67;20429:2;20424:3;20365:67;:::i;:::-;20358:74;;20441:93;20530:3;20441:93;:::i;:::-;20559:2;20554:3;20550:12;20543:19;;20202:366;;;:::o;20574:419::-;20740:4;20778:2;20767:9;20763:18;20755:26;;20827:9;20821:4;20817:20;20813:1;20802:9;20798:17;20791:47;20855:131;20981:4;20855:131;:::i;:::-;20847:139;;20574:419;;;:::o;20999:221::-;21139:34;21135:1;21127:6;21123:14;21116:58;21208:4;21203:2;21195:6;21191:15;21184:29;20999:221;:::o;21226:366::-;21368:3;21389:67;21453:2;21448:3;21389:67;:::i;:::-;21382:74;;21465:93;21554:3;21465:93;:::i;:::-;21583:2;21578:3;21574:12;21567:19;;21226:366;;;:::o;21598:419::-;21764:4;21802:2;21791:9;21787:18;21779:26;;21851:9;21845:4;21841:20;21837:1;21826:9;21822:17;21815:47;21879:131;22005:4;21879:131;:::i;:::-;21871:139;;21598:419;;;:::o;22023:224::-;22163:34;22159:1;22151:6;22147:14;22140:58;22232:7;22227:2;22219:6;22215:15;22208:32;22023:224;:::o;22253:366::-;22395:3;22416:67;22480:2;22475:3;22416:67;:::i;:::-;22409:74;;22492:93;22581:3;22492:93;:::i;:::-;22610:2;22605:3;22601:12;22594:19;;22253:366;;;:::o;22625:419::-;22791:4;22829:2;22818:9;22814:18;22806:26;;22878:9;22872:4;22868:20;22864:1;22853:9;22849:17;22842:47;22906:131;23032:4;22906:131;:::i;:::-;22898:139;;22625:419;;;:::o;23050:222::-;23190:34;23186:1;23178:6;23174:14;23167:58;23259:5;23254:2;23246:6;23242:15;23235:30;23050:222;:::o;23278:366::-;23420:3;23441:67;23505:2;23500:3;23441:67;:::i;:::-;23434:74;;23517:93;23606:3;23517:93;:::i;:::-;23635:2;23630:3;23626:12;23619:19;;23278:366;;;:::o;23650:419::-;23816:4;23854:2;23843:9;23839:18;23831:26;;23903:9;23897:4;23893:20;23889:1;23878:9;23874:17;23867:47;23931:131;24057:4;23931:131;:::i;:::-;23923:139;;23650:419;;;:::o;24075:228::-;24215:34;24211:1;24203:6;24199:14;24192:58;24284:11;24279:2;24271:6;24267:15;24260:36;24075:228;:::o;24309:366::-;24451:3;24472:67;24536:2;24531:3;24472:67;:::i;:::-;24465:74;;24548:93;24637:3;24548:93;:::i;:::-;24666:2;24661:3;24657:12;24650:19;;24309:366;;;:::o;24681:419::-;24847:4;24885:2;24874:9;24870:18;24862:26;;24934:9;24928:4;24924:20;24920:1;24909:9;24905:17;24898:47;24962:131;25088:4;24962:131;:::i;:::-;24954:139;;24681:419;;;:::o;25106:169::-;25246:21;25242:1;25234:6;25230:14;25223:45;25106:169;:::o;25281:366::-;25423:3;25444:67;25508:2;25503:3;25444:67;:::i;:::-;25437:74;;25520:93;25609:3;25520:93;:::i;:::-;25638:2;25633:3;25629:12;25622:19;;25281:366;;;:::o;25653:419::-;25819:4;25857:2;25846:9;25842:18;25834:26;;25906:9;25900:4;25896:20;25892:1;25881:9;25877:17;25870:47;25934:131;26060:4;25934:131;:::i;:::-;25926:139;;25653:419;;;:::o;26078:191::-;26118:3;26137:20;26155:1;26137:20;:::i;:::-;26132:25;;26171:20;26189:1;26171:20;:::i;:::-;26166:25;;26214:1;26211;26207:9;26200:16;;26235:3;26232:1;26229:10;26226:36;;;26242:18;;:::i;:::-;26226:36;26078:191;;;;:::o;26275:176::-;26415:28;26411:1;26403:6;26399:14;26392:52;26275:176;:::o;26457:366::-;26599:3;26620:67;26684:2;26679:3;26620:67;:::i;:::-;26613:74;;26696:93;26785:3;26696:93;:::i;:::-;26814:2;26809:3;26805:12;26798:19;;26457:366;;;:::o;26829:419::-;26995:4;27033:2;27022:9;27018:18;27010:26;;27082:9;27076:4;27072:20;27068:1;27057:9;27053:17;27046:47;27110:131;27236:4;27110:131;:::i;:::-;27102:139;;26829:419;;;:::o;27254:233::-;27293:3;27316:24;27334:5;27316:24;:::i;:::-;27307:33;;27362:66;27355:5;27352:77;27349:103;;27432:18;;:::i;:::-;27349:103;27479:1;27472:5;27468:13;27461:20;;27254:233;;;:::o;27493:173::-;27633:25;27629:1;27621:6;27617:14;27610:49;27493:173;:::o;27672:366::-;27814:3;27835:67;27899:2;27894:3;27835:67;:::i;:::-;27828:74;;27911:93;28000:3;27911:93;:::i;:::-;28029:2;28024:3;28020:12;28013:19;;27672:366;;;:::o;28044:419::-;28210:4;28248:2;28237:9;28233:18;28225:26;;28297:9;28291:4;28287:20;28283:1;28272:9;28268:17;28261:47;28325:131;28451:4;28325:131;:::i;:::-;28317:139;;28044:419;;;:::o;28469:194::-;28509:4;28529:20;28547:1;28529:20;:::i;:::-;28524:25;;28563:20;28581:1;28563:20;:::i;:::-;28558:25;;28607:1;28604;28600:9;28592:17;;28631:1;28625:4;28622:11;28619:37;;;28636:18;;:::i;:::-;28619:37;28469:194;;;;:::o;28669:180::-;28717:77;28714:1;28707:88;28814:4;28811:1;28804:15;28838:4;28835:1;28828:15;28855:185;28895:1;28912:20;28930:1;28912:20;:::i;:::-;28907:25;;28946:20;28964:1;28946:20;:::i;:::-;28941:25;;28985:1;28975:35;;28990:18;;:::i;:::-;28975:35;29032:1;29029;29025:9;29020:14;;28855:185;;;;:::o;29046:220::-;29186:34;29182:1;29174:6;29170:14;29163:58;29255:3;29250:2;29242:6;29238:15;29231:28;29046:220;:::o;29272:366::-;29414:3;29435:67;29499:2;29494:3;29435:67;:::i;:::-;29428:74;;29511:93;29600:3;29511:93;:::i;:::-;29629:2;29624:3;29620:12;29613:19;;29272:366;;;:::o;29644:419::-;29810:4;29848:2;29837:9;29833:18;29825:26;;29897:9;29891:4;29887:20;29883:1;29872:9;29868:17;29861:47;29925:131;30051:4;29925:131;:::i;:::-;29917:139;;29644:419;;;:::o;30069:114::-;30136:6;30170:5;30164:12;30154:22;;30069:114;;;:::o;30189:184::-;30288:11;30322:6;30317:3;30310:19;30362:4;30357:3;30353:14;30338:29;;30189:184;;;;:::o;30379:132::-;30446:4;30469:3;30461:11;;30499:4;30494:3;30490:14;30482:22;;30379:132;;;:::o;30517:108::-;30594:24;30612:5;30594:24;:::i;:::-;30589:3;30582:37;30517:108;;:::o;30631:179::-;30700:10;30721:46;30763:3;30755:6;30721:46;:::i;:::-;30799:4;30794:3;30790:14;30776:28;;30631:179;;;;:::o;30816:113::-;30886:4;30918;30913:3;30909:14;30901:22;;30816:113;;;:::o;30965:732::-;31084:3;31113:54;31161:5;31113:54;:::i;:::-;31183:86;31262:6;31257:3;31183:86;:::i;:::-;31176:93;;31293:56;31343:5;31293:56;:::i;:::-;31372:7;31403:1;31388:284;31413:6;31410:1;31407:13;31388:284;;;31489:6;31483:13;31516:63;31575:3;31560:13;31516:63;:::i;:::-;31509:70;;31602:60;31655:6;31602:60;:::i;:::-;31592:70;;31448:224;31435:1;31432;31428:9;31423:14;;31388:284;;;31392:14;31688:3;31681:10;;31089:608;;;30965:732;;;;:::o;31703:831::-;31966:4;32004:3;31993:9;31989:19;31981:27;;32018:71;32086:1;32075:9;32071:17;32062:6;32018:71;:::i;:::-;32099:80;32175:2;32164:9;32160:18;32151:6;32099:80;:::i;:::-;32226:9;32220:4;32216:20;32211:2;32200:9;32196:18;32189:48;32254:108;32357:4;32348:6;32254:108;:::i;:::-;32246:116;;32372:72;32440:2;32429:9;32425:18;32416:6;32372:72;:::i;:::-;32454:73;32522:3;32511:9;32507:19;32498:6;32454:73;:::i;:::-;31703:831;;;;;;;;:::o;32540:177::-;32680:29;32676:1;32668:6;32664:14;32657:53;32540:177;:::o;32723:366::-;32865:3;32886:67;32950:2;32945:3;32886:67;:::i;:::-;32879:74;;32962:93;33051:3;32962:93;:::i;:::-;33080:2;33075:3;33071:12;33064:19;;32723:366;;;:::o;33095:419::-;33261:4;33299:2;33288:9;33284:18;33276:26;;33348:9;33342:4;33338:20;33334:1;33323:9;33319:17;33312:47;33376:131;33502:4;33376:131;:::i;:::-;33368:139;;33095:419;;;:::o
Swarm Source
ipfs://35fe216c4845b16c391f950e9dec404fa426abbbedb67c12826252c8cedf958c
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.