ERC-20
Overview
Max Total Supply
420,690,000,000 Imagen 3
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
4,665,386,114.896514277 Imagen 3Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x8c1Ea99B...DBD79699B The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Event
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-06 */ // SPDX-License-Identifier: MIT /* test */ pragma solidity 0.8.25; 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 Event 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 _initialBuyTax=22; uint256 private _initialSellTax=25; uint256 private _finalBuyTax=0; uint256 private _finalSellTax=0; uint256 private _reduceBuyTaxAt=22; uint256 private _reduceSellTaxAt=25; uint256 private _preventSwapBefore=25; uint256 private _transferTax=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420_690_000_000 * 10**_decimals; string private _name; string private _symbol; uint256 public _maxTxAmount = 2 * (_tTotal/100); uint256 public _maxWalletSize = 2 * (_tTotal/100); uint256 public _taxSwapThreshold = 2 * (_tTotal/1000); uint256 public _maxTaxSwap = 2 * (_tTotal/100); 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 _maxTxAmount); event TransferTaxUpdated(uint _tax); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } 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 _tTotal; } 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()) { require(!bots[from] && !bots[to]); if(_buyCount==0){ taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); } if(_buyCount>0){ taxAmount = amount.mul(_transferTax).div(100); } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < 5, "Only 5 sells per block!"); swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap))); 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); 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; } receive() external payable {} function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } function manualsend() external { require(_msgSender()==_taxWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"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":"_maxTxAmount","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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
6080604052601660065560196007555f6008555f6009556016600a556019600b556019600c555f600d555f600e5560646009600a61003d9190610660565b6461f313f88061004d91906106aa565b6100579190610718565b600261006391906106aa565b60115560646009600a6100769190610660565b6461f313f88061008691906106aa565b6100909190610718565b600261009c91906106aa565b6012556103e86009600a6100b09190610660565b6461f313f8806100c091906106aa565b6100ca9190610718565b60026100d691906106aa565b60135560646009600a6100e99190610660565b6461f313f8806100f991906106aa565b6101039190610718565b600261010f91906106aa565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f601855348015610158575f80fd5b50604051613c44380380613c44833981810160405281019061017a9190610895565b5f6101896104c160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600f90816102349190610b0f565b5080601090816102449190610b0f565b506102536104c160201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6102a09190610660565b6461f313f8806102b091906106aa565b60015f6102c16104c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6103116104c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506104396104c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6104959190610660565b6461f313f8806104a591906106aa565b6040516104b29190610bed565b60405180910390a35050610c06565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156105715780860481111561054d5761054c6104ef565b5b600185161561055c5780820291505b808102905061056a8561051c565b9450610531565b94509492505050565b5f826105895760019050610644565b81610596575f9050610644565b81600181146105ac57600281146105b6576105e5565b6001915050610644565b60ff8411156105c8576105c76104ef565b5b8360020a9150848211156105df576105de6104ef565b5b50610644565b5060208310610133831016604e8410600b841016171561061a5782820a905083811115610615576106146104ef565b5b610644565b6106278484846001610528565b9250905081840481111561063e5761063d6104ef565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61066a8261064b565b915061067583610654565b92506106a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461057a565b905092915050565b5f6106b48261064b565b91506106bf8361064b565b92508282026106cd8161064b565b915082820484148315176106e4576106e36104ef565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107228261064b565b915061072d8361064b565b92508261073d5761073c6106eb565b5b828204905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107a782610761565b810181811067ffffffffffffffff821117156107c6576107c5610771565b5b80604052505050565b5f6107d8610748565b90506107e4828261079e565b919050565b5f67ffffffffffffffff82111561080357610802610771565b5b61080c82610761565b9050602081019050919050565b8281835e5f83830152505050565b5f610839610834846107e9565b6107cf565b9050828152602081018484840111156108555761085461075d565b5b610860848285610819565b509392505050565b5f82601f83011261087c5761087b610759565b5b815161088c848260208601610827565b91505092915050565b5f80604083850312156108ab576108aa610751565b5b5f83015167ffffffffffffffff8111156108c8576108c7610755565b5b6108d485828601610868565b925050602083015167ffffffffffffffff8111156108f5576108f4610755565b5b61090185828601610868565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061095957607f821691505b60208210810361096c5761096b610915565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026109ce7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610993565b6109d88683610993565b95508019841693508086168417925050509392505050565b5f819050919050565b5f610a13610a0e610a098461064b565b6109f0565b61064b565b9050919050565b5f819050919050565b610a2c836109f9565b610a40610a3882610a1a565b84845461099f565b825550505050565b5f90565b610a54610a48565b610a5f818484610a23565b505050565b5b81811015610a8257610a775f82610a4c565b600181019050610a65565b5050565b601f821115610ac757610a9881610972565b610aa184610984565b81016020851015610ab0578190505b610ac4610abc85610984565b830182610a64565b50505b505050565b5f82821c905092915050565b5f610ae75f1984600802610acc565b1980831691505092915050565b5f610aff8383610ad8565b9150826002028217905092915050565b610b188261090b565b67ffffffffffffffff811115610b3157610b30610771565b5b610b3b8254610942565b610b46828285610a86565b5f60209050601f831160018114610b77575f8415610b65578287015190505b610b6f8582610af4565b865550610bd6565b601f198416610b8586610972565b5f5b82811015610bac57848901518255600182019150602085019450602081019050610b87565b86831015610bc95784890151610bc5601f891682610ad8565b8355505b6001600288020188555050505b505050505050565b610be78161064b565b82525050565b5f602082019050610c005f830184610bde565b92915050565b61303180610c135f395ff3fe608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610354578063a9059cbb1461037e578063bf474bed146103ba578063c9567bf9146103e4578063dd62ed3e146103fa5761011e565b8063715018a6146102aa578063751039fc146102c05780637d1db4a5146102d65780638da5cb5b146103005780638f9a55c01461032a5761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c85146102425780636fc3eaec1461025857806370a082311461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610436565b6040516101439190612112565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906121c3565b6104c6565b60405161017f919061221b565b60405180910390f35b348015610193575f80fd5b5061019c6104e3565b6040516101a99190612243565b60405180910390f35b3480156101bd575f80fd5b506101c66104e9565b6040516101d39190612243565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd919061225c565b61050d565b60405161020f919061221b565b60405180910390f35b348015610223575f80fd5b5061022c6105e1565b60405161023991906122c7565b60405180910390f35b34801561024d575f80fd5b506102566105e9565b005b348015610263575f80fd5b5061026c610680565b005b348015610279575f80fd5b50610294600480360381019061028f91906122e0565b6106ef565b6040516102a19190612243565b60405180910390f35b3480156102b5575f80fd5b506102be610735565b005b3480156102cb575f80fd5b506102d4610883565b005b3480156102e1575f80fd5b506102ea6109b5565b6040516102f79190612243565b60405180910390f35b34801561030b575f80fd5b506103146109bb565b604051610321919061231a565b60405180910390f35b348015610335575f80fd5b5061033e6109e2565b60405161034b9190612243565b60405180910390f35b34801561035f575f80fd5b506103686109e8565b6040516103759190612112565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f91906121c3565b610a78565b6040516103b1919061221b565b60405180910390f35b3480156103c5575f80fd5b506103ce610a95565b6040516103db9190612243565b60405180910390f35b3480156103ef575f80fd5b506103f8610a9b565b005b348015610405575f80fd5b50610420600480360381019061041b9190612333565b610fbd565b60405161042d9190612243565b60405180910390f35b6060600f80546104459061239e565b80601f01602080910402602001604051908101604052809291908181526020018280546104719061239e565b80156104bc5780601f10610493576101008083540402835291602001916104bc565b820191905f5260205f20905b81548152906001019060200180831161049f57829003601f168201915b5050505050905090565b5f6104d96104d261103f565b8484611046565b6001905092915050565b60145481565b5f6009600a6104f8919061252a565b6461f313f8806105089190612574565b905090565b5f610519848484611209565b6105d68461052561103f565b6105d185604051806060016040528060288152602001612fd46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61058861103f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8e9092919063ffffffff16565b611046565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661062961103f565b73ffffffffffffffffffffffffffffffffffffffff1614610648575f80fd5b5f610652306106ef565b90505f8111156106665761066581611bf0565b5b5f4790505f81111561067c5761067b81611e5b565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c061103f565b73ffffffffffffffffffffffffffffffffffffffff16146106df575f80fd5b5f4790506106ec81611e5b565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61073d61103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c0906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61088b61103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e906125ff565b60405180910390fd5b6009600a610925919061252a565b6461f313f8806109359190612574565b6011819055506009600a610949919061252a565b6461f313f8806109599190612574565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61098e919061252a565b6461f313f88061099e9190612574565b6040516109ab9190612243565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6060601080546109f79061239e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a239061239e565b8015610a6e5780601f10610a4557610100808354040283529160200191610a6e565b820191905f5260205f20905b815481529060010190602001808311610a5157829003601f168201915b5050505050905090565b5f610a8b610a8461103f565b8484611209565b6001905092915050565b60135481565b610aa361103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906125ff565b60405180910390fd5b601660149054906101000a900460ff1615610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690612667565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c1c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c07919061252a565b6461f313f880610c179190612574565b611046565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caa9190612699565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d549190612699565b6040518363ffffffff1660e01b8152600401610d719291906126c4565b6020604051808303815f875af1158015610d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db19190612699565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e38306106ef565b5f80610e426109bb565b426040518863ffffffff1660e01b8152600401610e649695949392919061272d565b60606040518083038185885af1158015610e80573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ea591906127a0565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f459291906127f0565b6020604051808303815f875af1158015610f61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f859190612841565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906128dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061296a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111fc9190612243565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e906129f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90612a86565b60405180910390fd5b5f8111611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90612b14565b60405180910390fd5b5f6113306109bb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561139e575061136e6109bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118de5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611441575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611449575f80fd5b5f600e54036114915761148e6064611480600a54600e541161146d57600654611471565b6008545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b5f600e5411156114c6576114c360646114b5600d5485611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561156f575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115c2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ba5760115482111561160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612b7c565b60405180910390fd5b60125482611619856106ef565b6116239190612b9a565b1115611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90612c17565b60405180910390fd5b6116a06064611692600a54600e541161167f57600654611683565b6008545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b9050600e5f8154809291906116b490612c35565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611786576117836064611775600b54600e541161176257600754611766565b6009545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b5f611790306106ef565b9050601660159054906101000a900460ff161580156117fb575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611811575060168054906101000a900460ff165b801561181e575060135481115b801561182d5750600c54600e54115b156118dc57601854431115611844575f6017819055505b600560175410611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612cc6565b60405180910390fd5b6118a66118a18461189c84601454611f83565b611f83565b611bf0565b5f4790505f8111156118bc576118bb47611e5b565b5b60175f8154809291906118ce90612c35565b919050555043601881905550505b505b5f8111156119dd576119368160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f9b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119d49190612243565b60405180910390a35b611a2d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ad0611a848284611ff890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f9b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b738486611ff890919063ffffffff16565b604051611b809190612243565b60405180910390a350505050565b5f838311158290611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc9190612112565b60405180910390fd5b505f8385611be39190612ce4565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c2757611c26612d17565b5b604051908082528060200260200182016040528015611c555781602001602082028036833780820191505090505b50905030815f81518110611c6c57611c6b612d44565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d349190612699565b81600181518110611d4857611d47612d44565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dae3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611046565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e10959493929190612e28565b5f604051808303815f87803b158015611e27575f80fd5b505af1158015611e39573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ebf573d5f803e3d5ffd5b5050565b5f808303611ed3575f9050611f34565b5f8284611ee09190612574565b9050828482611eef9190612ead565b14611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690612f4d565b60405180910390fd5b809150505b92915050565b5f611f7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612041565b905092915050565b5f818311611f915782611f93565b815b905092915050565b5f808284611fa99190612b9a565b905083811015611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590612fb5565b60405180910390fd5b8091505092915050565b5f61203983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b8e565b905092915050565b5f8083118290612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e9190612112565b60405180910390fd5b505f83856120959190612ead565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120e4826120a2565b6120ee81856120ac565b93506120fe8185602086016120bc565b612107816120ca565b840191505092915050565b5f6020820190508181035f83015261212a81846120da565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61215f82612136565b9050919050565b61216f81612155565b8114612179575f80fd5b50565b5f8135905061218a81612166565b92915050565b5f819050919050565b6121a281612190565b81146121ac575f80fd5b50565b5f813590506121bd81612199565b92915050565b5f80604083850312156121d9576121d8612132565b5b5f6121e68582860161217c565b92505060206121f7858286016121af565b9150509250929050565b5f8115159050919050565b61221581612201565b82525050565b5f60208201905061222e5f83018461220c565b92915050565b61223d81612190565b82525050565b5f6020820190506122565f830184612234565b92915050565b5f805f6060848603121561227357612272612132565b5b5f6122808682870161217c565b93505060206122918682870161217c565b92505060406122a2868287016121af565b9150509250925092565b5f60ff82169050919050565b6122c1816122ac565b82525050565b5f6020820190506122da5f8301846122b8565b92915050565b5f602082840312156122f5576122f4612132565b5b5f6123028482850161217c565b91505092915050565b61231481612155565b82525050565b5f60208201905061232d5f83018461230b565b92915050565b5f806040838503121561234957612348612132565b5b5f6123568582860161217c565b92505060206123678582860161217c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806123b557607f821691505b6020821081036123c8576123c7612371565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124505780860481111561242c5761242b6123ce565b5b600185161561243b5780820291505b8081029050612449856123fb565b9450612410565b94509492505050565b5f826124685760019050612523565b81612475575f9050612523565b816001811461248b5760028114612495576124c4565b6001915050612523565b60ff8411156124a7576124a66123ce565b5b8360020a9150848211156124be576124bd6123ce565b5b50612523565b5060208310610133831016604e8410600b84101617156124f95782820a9050838111156124f4576124f36123ce565b5b612523565b6125068484846001612407565b9250905081840481111561251d5761251c6123ce565b5b81810290505b9392505050565b5f61253482612190565b915061253f836122ac565b925061256c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612459565b905092915050565b5f61257e82612190565b915061258983612190565b925082820261259781612190565b915082820484148315176125ae576125ad6123ce565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125e96020836120ac565b91506125f4826125b5565b602082019050919050565b5f6020820190508181035f830152612616816125dd565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126516017836120ac565b915061265c8261261d565b602082019050919050565b5f6020820190508181035f83015261267e81612645565b9050919050565b5f8151905061269381612166565b92915050565b5f602082840312156126ae576126ad612132565b5b5f6126bb84828501612685565b91505092915050565b5f6040820190506126d75f83018561230b565b6126e4602083018461230b565b9392505050565b5f819050919050565b5f819050919050565b5f61271761271261270d846126eb565b6126f4565b612190565b9050919050565b612727816126fd565b82525050565b5f60c0820190506127405f83018961230b565b61274d6020830188612234565b61275a604083018761271e565b612767606083018661271e565b612774608083018561230b565b61278160a0830184612234565b979650505050505050565b5f8151905061279a81612199565b92915050565b5f805f606084860312156127b7576127b6612132565b5b5f6127c48682870161278c565b93505060206127d58682870161278c565b92505060406127e68682870161278c565b9150509250925092565b5f6040820190506128035f83018561230b565b6128106020830184612234565b9392505050565b61282081612201565b811461282a575f80fd5b50565b5f8151905061283b81612817565b92915050565b5f6020828403121561285657612855612132565b5b5f6128638482850161282d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128c66024836120ac565b91506128d18261286c565b604082019050919050565b5f6020820190508181035f8301526128f3816128ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129546022836120ac565b915061295f826128fa565b604082019050919050565b5f6020820190508181035f83015261298181612948565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129e26025836120ac565b91506129ed82612988565b604082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a706023836120ac565b9150612a7b82612a16565b604082019050919050565b5f6020820190508181035f830152612a9d81612a64565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612afe6029836120ac565b9150612b0982612aa4565b604082019050919050565b5f6020820190508181035f830152612b2b81612af2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b666019836120ac565b9150612b7182612b32565b602082019050919050565b5f6020820190508181035f830152612b9381612b5a565b9050919050565b5f612ba482612190565b9150612baf83612190565b9250828201905080821115612bc757612bc66123ce565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c01601a836120ac565b9150612c0c82612bcd565b602082019050919050565b5f6020820190508181035f830152612c2e81612bf5565b9050919050565b5f612c3f82612190565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7157612c706123ce565b5b600182019050919050565b7f4f6e6c7920352073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cb06017836120ac565b9150612cbb82612c7c565b602082019050919050565b5f6020820190508181035f830152612cdd81612ca4565b9050919050565b5f612cee82612190565b9150612cf983612190565b9250828203905081811115612d1157612d106123ce565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612da381612155565b82525050565b5f612db48383612d9a565b60208301905092915050565b5f602082019050919050565b5f612dd682612d71565b612de08185612d7b565b9350612deb83612d8b565b805f5b83811015612e1b578151612e028882612da9565b9750612e0d83612dc0565b925050600181019050612dee565b5085935050505092915050565b5f60a082019050612e3b5f830188612234565b612e48602083018761271e565b8181036040830152612e5a8186612dcc565b9050612e69606083018561230b565b612e766080830184612234565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eb782612190565b9150612ec283612190565b925082612ed257612ed1612e80565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f376021836120ac565b9150612f4282612edd565b604082019050919050565b5f6020820190508181035f830152612f6481612f2b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f9f601b836120ac565b9150612faa82612f6b565b602082019050919050565b5f6020820190508181035f830152612fcc81612f93565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220172d1cc958b1706bf67a7f88c088d1e8b603080fb3ce49b254615c65826d176e64736f6c63430008190033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000004426f6f6d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004424f4f4d00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610117575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610354578063a9059cbb1461037e578063bf474bed146103ba578063c9567bf9146103e4578063dd62ed3e146103fa5761011e565b8063715018a6146102aa578063751039fc146102c05780637d1db4a5146102d65780638da5cb5b146103005780638f9a55c01461032a5761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c85146102425780636fc3eaec1461025857806370a082311461026e5761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610436565b6040516101439190612112565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906121c3565b6104c6565b60405161017f919061221b565b60405180910390f35b348015610193575f80fd5b5061019c6104e3565b6040516101a99190612243565b60405180910390f35b3480156101bd575f80fd5b506101c66104e9565b6040516101d39190612243565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd919061225c565b61050d565b60405161020f919061221b565b60405180910390f35b348015610223575f80fd5b5061022c6105e1565b60405161023991906122c7565b60405180910390f35b34801561024d575f80fd5b506102566105e9565b005b348015610263575f80fd5b5061026c610680565b005b348015610279575f80fd5b50610294600480360381019061028f91906122e0565b6106ef565b6040516102a19190612243565b60405180910390f35b3480156102b5575f80fd5b506102be610735565b005b3480156102cb575f80fd5b506102d4610883565b005b3480156102e1575f80fd5b506102ea6109b5565b6040516102f79190612243565b60405180910390f35b34801561030b575f80fd5b506103146109bb565b604051610321919061231a565b60405180910390f35b348015610335575f80fd5b5061033e6109e2565b60405161034b9190612243565b60405180910390f35b34801561035f575f80fd5b506103686109e8565b6040516103759190612112565b60405180910390f35b348015610389575f80fd5b506103a4600480360381019061039f91906121c3565b610a78565b6040516103b1919061221b565b60405180910390f35b3480156103c5575f80fd5b506103ce610a95565b6040516103db9190612243565b60405180910390f35b3480156103ef575f80fd5b506103f8610a9b565b005b348015610405575f80fd5b50610420600480360381019061041b9190612333565b610fbd565b60405161042d9190612243565b60405180910390f35b6060600f80546104459061239e565b80601f01602080910402602001604051908101604052809291908181526020018280546104719061239e565b80156104bc5780601f10610493576101008083540402835291602001916104bc565b820191905f5260205f20905b81548152906001019060200180831161049f57829003601f168201915b5050505050905090565b5f6104d96104d261103f565b8484611046565b6001905092915050565b60145481565b5f6009600a6104f8919061252a565b6461f313f8806105089190612574565b905090565b5f610519848484611209565b6105d68461052561103f565b6105d185604051806060016040528060288152602001612fd46028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61058861103f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b8e9092919063ffffffff16565b611046565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661062961103f565b73ffffffffffffffffffffffffffffffffffffffff1614610648575f80fd5b5f610652306106ef565b90505f8111156106665761066581611bf0565b5b5f4790505f81111561067c5761067b81611e5b565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c061103f565b73ffffffffffffffffffffffffffffffffffffffff16146106df575f80fd5b5f4790506106ec81611e5b565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61073d61103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c0906125ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61088b61103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090e906125ff565b60405180910390fd5b6009600a610925919061252a565b6461f313f8806109359190612574565b6011819055506009600a610949919061252a565b6461f313f8806109599190612574565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61098e919061252a565b6461f313f88061099e9190612574565b6040516109ab9190612243565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b6060601080546109f79061239e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a239061239e565b8015610a6e5780601f10610a4557610100808354040283529160200191610a6e565b820191905f5260205f20905b815481529060010190602001808311610a5157829003601f168201915b5050505050905090565b5f610a8b610a8461103f565b8484611209565b6001905092915050565b60135481565b610aa361103f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b26906125ff565b60405180910390fd5b601660149054906101000a900460ff1615610b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7690612667565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c1c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c07919061252a565b6461f313f880610c179190612574565b611046565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c86573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610caa9190612699565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d549190612699565b6040518363ffffffff1660e01b8152600401610d719291906126c4565b6020604051808303815f875af1158015610d8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db19190612699565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e38306106ef565b5f80610e426109bb565b426040518863ffffffff1660e01b8152600401610e649695949392919061272d565b60606040518083038185885af1158015610e80573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ea591906127a0565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f459291906127f0565b6020604051808303815f875af1158015610f61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f859190612841565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab906128dc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111199061296a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111fc9190612243565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611277576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126e906129f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc90612a86565b60405180910390fd5b5f8111611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e90612b14565b60405180910390fd5b5f6113306109bb565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561139e575061136e6109bb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118de5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611441575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611449575f80fd5b5f600e54036114915761148e6064611480600a54600e541161146d57600654611471565b6008545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b5f600e5411156114c6576114c360646114b5600d5485611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561156f575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115c2575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156116ba5760115482111561160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612b7c565b60405180910390fd5b60125482611619856106ef565b6116239190612b9a565b1115611664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165b90612c17565b60405180910390fd5b6116a06064611692600a54600e541161167f57600654611683565b6008545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b9050600e5f8154809291906116b490612c35565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561174257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611786576117836064611775600b54600e541161176257600754611766565b6009545b85611ec390919063ffffffff16565b611f3a90919063ffffffff16565b90505b5f611790306106ef565b9050601660159054906101000a900460ff161580156117fb575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611811575060168054906101000a900460ff165b801561181e575060135481115b801561182d5750600c54600e54115b156118dc57601854431115611844575f6017819055505b600560175410611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612cc6565b60405180910390fd5b6118a66118a18461189c84601454611f83565b611f83565b611bf0565b5f4790505f8111156118bc576118bb47611e5b565b5b60175f8154809291906118ce90612c35565b919050555043601881905550505b505b5f8111156119dd576119368160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f9b90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119d49190612243565b60405180910390a35b611a2d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ad0611a848284611ff890919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f9b90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b738486611ff890919063ffffffff16565b604051611b809190612243565b60405180910390a350505050565b5f838311158290611bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcc9190612112565b60405180910390fd5b505f8385611be39190612ce4565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611c2757611c26612d17565b5b604051908082528060200260200182016040528015611c555781602001602082028036833780820191505090505b50905030815f81518110611c6c57611c6b612d44565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d10573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d349190612699565b81600181518110611d4857611d47612d44565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dae3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611046565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e10959493929190612e28565b5f604051808303815f87803b158015611e27575f80fd5b505af1158015611e39573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ebf573d5f803e3d5ffd5b5050565b5f808303611ed3575f9050611f34565b5f8284611ee09190612574565b9050828482611eef9190612ead565b14611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690612f4d565b60405180910390fd5b809150505b92915050565b5f611f7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612041565b905092915050565b5f818311611f915782611f93565b815b905092915050565b5f808284611fa99190612b9a565b905083811015611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe590612fb5565b60405180910390fd5b8091505092915050565b5f61203983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b8e565b905092915050565b5f8083118290612087576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207e9190612112565b60405180910390fd5b505f83856120959190612ead565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120e4826120a2565b6120ee81856120ac565b93506120fe8185602086016120bc565b612107816120ca565b840191505092915050565b5f6020820190508181035f83015261212a81846120da565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61215f82612136565b9050919050565b61216f81612155565b8114612179575f80fd5b50565b5f8135905061218a81612166565b92915050565b5f819050919050565b6121a281612190565b81146121ac575f80fd5b50565b5f813590506121bd81612199565b92915050565b5f80604083850312156121d9576121d8612132565b5b5f6121e68582860161217c565b92505060206121f7858286016121af565b9150509250929050565b5f8115159050919050565b61221581612201565b82525050565b5f60208201905061222e5f83018461220c565b92915050565b61223d81612190565b82525050565b5f6020820190506122565f830184612234565b92915050565b5f805f6060848603121561227357612272612132565b5b5f6122808682870161217c565b93505060206122918682870161217c565b92505060406122a2868287016121af565b9150509250925092565b5f60ff82169050919050565b6122c1816122ac565b82525050565b5f6020820190506122da5f8301846122b8565b92915050565b5f602082840312156122f5576122f4612132565b5b5f6123028482850161217c565b91505092915050565b61231481612155565b82525050565b5f60208201905061232d5f83018461230b565b92915050565b5f806040838503121561234957612348612132565b5b5f6123568582860161217c565b92505060206123678582860161217c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806123b557607f821691505b6020821081036123c8576123c7612371565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156124505780860481111561242c5761242b6123ce565b5b600185161561243b5780820291505b8081029050612449856123fb565b9450612410565b94509492505050565b5f826124685760019050612523565b81612475575f9050612523565b816001811461248b5760028114612495576124c4565b6001915050612523565b60ff8411156124a7576124a66123ce565b5b8360020a9150848211156124be576124bd6123ce565b5b50612523565b5060208310610133831016604e8410600b84101617156124f95782820a9050838111156124f4576124f36123ce565b5b612523565b6125068484846001612407565b9250905081840481111561251d5761251c6123ce565b5b81810290505b9392505050565b5f61253482612190565b915061253f836122ac565b925061256c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612459565b905092915050565b5f61257e82612190565b915061258983612190565b925082820261259781612190565b915082820484148315176125ae576125ad6123ce565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125e96020836120ac565b91506125f4826125b5565b602082019050919050565b5f6020820190508181035f830152612616816125dd565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6126516017836120ac565b915061265c8261261d565b602082019050919050565b5f6020820190508181035f83015261267e81612645565b9050919050565b5f8151905061269381612166565b92915050565b5f602082840312156126ae576126ad612132565b5b5f6126bb84828501612685565b91505092915050565b5f6040820190506126d75f83018561230b565b6126e4602083018461230b565b9392505050565b5f819050919050565b5f819050919050565b5f61271761271261270d846126eb565b6126f4565b612190565b9050919050565b612727816126fd565b82525050565b5f60c0820190506127405f83018961230b565b61274d6020830188612234565b61275a604083018761271e565b612767606083018661271e565b612774608083018561230b565b61278160a0830184612234565b979650505050505050565b5f8151905061279a81612199565b92915050565b5f805f606084860312156127b7576127b6612132565b5b5f6127c48682870161278c565b93505060206127d58682870161278c565b92505060406127e68682870161278c565b9150509250925092565b5f6040820190506128035f83018561230b565b6128106020830184612234565b9392505050565b61282081612201565b811461282a575f80fd5b50565b5f8151905061283b81612817565b92915050565b5f6020828403121561285657612855612132565b5b5f6128638482850161282d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128c66024836120ac565b91506128d18261286c565b604082019050919050565b5f6020820190508181035f8301526128f3816128ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129546022836120ac565b915061295f826128fa565b604082019050919050565b5f6020820190508181035f83015261298181612948565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129e26025836120ac565b91506129ed82612988565b604082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a706023836120ac565b9150612a7b82612a16565b604082019050919050565b5f6020820190508181035f830152612a9d81612a64565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612afe6029836120ac565b9150612b0982612aa4565b604082019050919050565b5f6020820190508181035f830152612b2b81612af2565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b666019836120ac565b9150612b7182612b32565b602082019050919050565b5f6020820190508181035f830152612b9381612b5a565b9050919050565b5f612ba482612190565b9150612baf83612190565b9250828201905080821115612bc757612bc66123ce565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612c01601a836120ac565b9150612c0c82612bcd565b602082019050919050565b5f6020820190508181035f830152612c2e81612bf5565b9050919050565b5f612c3f82612190565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c7157612c706123ce565b5b600182019050919050565b7f4f6e6c7920352073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612cb06017836120ac565b9150612cbb82612c7c565b602082019050919050565b5f6020820190508181035f830152612cdd81612ca4565b9050919050565b5f612cee82612190565b9150612cf983612190565b9250828203905081811115612d1157612d106123ce565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612da381612155565b82525050565b5f612db48383612d9a565b60208301905092915050565b5f602082019050919050565b5f612dd682612d71565b612de08185612d7b565b9350612deb83612d8b565b805f5b83811015612e1b578151612e028882612da9565b9750612e0d83612dc0565b925050600181019050612dee565b5085935050505092915050565b5f60a082019050612e3b5f830188612234565b612e48602083018761271e565b8181036040830152612e5a8186612dcc565b9050612e69606083018561230b565b612e766080830184612234565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612eb782612190565b9150612ec283612190565b925082612ed257612ed1612e80565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f376021836120ac565b9150612f4282612edd565b604082019050919050565b5f6020820190508181035f830152612f6481612f2b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f9f601b836120ac565b9150612faa82612f6b565b602082019050919050565b5f6020820190508181035f830152612fcc81612f93565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220172d1cc958b1706bf67a7f88c088d1e8b603080fb3ce49b254615c65826d176e64736f6c63430008190033
Deployed Bytecode Sourcemap
3487:8243:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5480:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6313:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4547:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6482:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5666:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11184:348;;;;;;;;;;;;;:::i;:::-;;11540:187;;;;;;;;;;;;;:::i;:::-;;5860:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2570:148;;;;;;;;;;;;;:::i;:::-;;10201:159;;;;;;;;;;;;;:::i;:::-;;4374:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2356:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4429:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5571:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5987:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4486:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10468:671;;;;;;;;;;;;;:::i;:::-;;6162:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5480:83;5517:13;5550:5;5543:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5480:83;:::o;6313:161::-;6388:4;6405:39;6414:12;:10;:12::i;:::-;6428:7;6437:6;6405:8;:39::i;:::-;6462:4;6455:11;;6313:161;;;;:::o;4547:46::-;;;;:::o;5757:95::-;5810:7;4237:1;4298:2;:13;;;;:::i;:::-;4280:15;:31;;;;:::i;:::-;5830:14;;5757:95;:::o;6482:313::-;6580:4;6597:36;6607:6;6615:9;6626:6;6597:9;:36::i;:::-;6644:121;6653:6;6661:12;:10;:12::i;:::-;6675:89;6713:6;6675:89;;;;;;;;;;;;;;;;;:11;:19;6687:6;6675:19;;;;;;;;;;;;;;;:33;6695:12;:10;:12::i;:::-;6675:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6644:8;:121::i;:::-;6783:4;6776:11;;6482:313;;;;;:::o;5666:83::-;5707:5;4237:1;5725:16;;5666:83;:::o;11184:348::-;11248:10;;;;;;;;;;;11234:24;;:12;:10;:12::i;:::-;:24;;;11226:33;;;;;;11270:20;11291:24;11309:4;11291:9;:24::i;:::-;11270:45;;11342:1;11329:12;:14;11326:73;;;11357:30;11374:12;11357:16;:30::i;:::-;11326:73;11409:18;11428:21;11409:40;;11474:1;11463:10;:12;11460:65;;;11489:24;11502:10;11489:12;:24::i;:::-;11460:65;11215:317;;11184:348::o;11540:187::-;11604:10;;;;;;;;;;;11590:24;;:12;:10;:12::i;:::-;:24;;;11582:33;;;;;;11626:26;11655:21;11626:50;;11687:32;11700:18;11687:12;:32::i;:::-;11571:156;11540:187::o;5860:119::-;5926:7;5953:9;:18;5963:7;5953:18;;;;;;;;;;;;;;;;5946:25;;5860:119;;;:::o;2570:148::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2677:1:::1;2640:40;;2661:6;::::0;::::1;;;;;;;;2640:40;;;;;;;;;;;;2708:1;2691:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2570:148::o:0;10201:159::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4237:1:::1;4298:2;:13;;;;:::i;:::-;4280:15;:31;;;;:::i;:::-;10254:12;:22;;;;4237:1;4298:2;:13;;;;:::i;:::-;4280:15;:31;;;;:::i;:::-;10287:14;:22;;;;10325:27;4237:1;4298:2;:13;;;;:::i;:::-;4280:15;:31;;;;:::i;:::-;10325:27;;;;;;:::i;:::-;;;;;;;;10201:159::o:0;4374:48::-;;;;:::o;2356:79::-;2394:7;2421:6;;;;;;;;;;;2414:13;;2356:79;:::o;4429:50::-;;;;:::o;5571:87::-;5610:13;5643:7;5636:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5571:87;:::o;5987:167::-;6065:4;6082:42;6092:12;:10;:12::i;:::-;6106:9;6117:6;6082:9;:42::i;:::-;6142:4;6135:11;;5987:167;;;;:::o;4486:54::-;;;;:::o;10468:671::-;2493:12;:10;:12::i;:::-;2483:22;;:6;;;;;;;;;;:22;;;2475:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10532:11:::1;;;;;;;;;;;10531:12;10523:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10618:42;10581:15;;:80;;;;;;;;;;;;;;;;;;10672:58;10689:4;10704:15;;;;;;;;;;;4237:1;4298:2;:13;;;;:::i;:::-;4280:15;:31;;;;:::i;:::-;10672:8;:58::i;:::-;10775:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10757:55;;;10821:4;10828:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10757:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10741:13;;:110;;;;;;;;;;;;;;;;;;10862:15;;;;;;;;;;;:31;;;10901:21;10932:4;10938:24;10956:4;10938:9;:24::i;:::-;10963:1;10965::::0;10967:7:::1;:5;:7::i;:::-;10975:15;10862:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11009:13;;;;;;;;;;;11002:29;;;11040:15;;;;;;;;;;;11058:14;11002:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11098:4;11084:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11127:4;11113:11;;:18;;;;;;;;;;;;;;;;;;10468:671::o:0;6162:143::-;6243:7;6270:11;:18;6282:5;6270:18;;;;;;;;;;;;;;;:27;6289:7;6270:27;;;;;;;;;;;;;;;;6263:34;;6162:143;;;;:::o;111:98::-;164:7;191:10;184:17;;111:98;:::o;6803:335::-;6913:1;6896:19;;:5;:19;;;6888:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6994:1;6975:21;;:7;:21;;;6967:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7076:6;7046:11;:18;7058:5;7046:18;;;;;;;;;;;;;;;:27;7065:7;7046:27;;;;;;;;;;;;;;;:36;;;;7114:7;7098:32;;7107:5;7098:32;;;7123:6;7098:32;;;;;;:::i;:::-;;;;;;;;6803:335;;;:::o;7146:2448::-;7250:1;7234:18;;:4;:18;;;7226:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7327:1;7313:16;;:2;:16;;;7305:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7397:1;7388:6;:10;7380:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7455:17;7497:7;:5;:7::i;:::-;7489:15;;:4;:15;;;;:32;;;;;7514:7;:5;:7::i;:::-;7508:13;;:2;:13;;;;7489:32;7485:1753;;;7547:4;:10;7552:4;7547:10;;;;;;;;;;;;;;;;;;;;;;;;;7546:11;:24;;;;;7562:4;:8;7567:2;7562:8;;;;;;;;;;;;;;;;;;;;;;;;;7561:9;7546:24;7538:33;;;;;;7602:1;7591:9;;:12;7588:139;;7635:76;7707:3;7635:67;7657:15;;7647:9;;:25;7646:55;;7687:14;;7646:55;;;7674:12;;7646:55;7635:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7623:88;;7588:139;7754:1;7744:9;;:11;7741:95;;;7787:33;7816:3;7787:24;7798:12;;7787:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;7775:45;;7741:95;7864:13;;;;;;;;;;;7856:21;;:4;:21;;;:55;;;;;7895:15;;;;;;;;;;;7881:30;;:2;:30;;;;7856:55;:83;;;;;7917:18;:22;7936:2;7917:22;;;;;;;;;;;;;;;;;;;;;;;;;7915:24;7856:83;7852:420;;;7979:12;;7969:6;:22;;7961:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8074:14;;8064:6;8048:13;8058:2;8048:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8040:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8150:76;8222:3;8150:67;8172:15;;8162:9;;:25;8161:55;;8202:14;;8161:55;;;8189:12;;8161:55;8150:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8138:88;;8245:9;;:11;;;;;;;;;:::i;:::-;;;;;;7852:420;8297:13;;;;;;;;;;;8291:19;;:2;:19;;;:43;;;;;8329:4;8314:20;;:4;:20;;;;8291:43;8288:174;;;8367:79;8442:3;8367:70;8389:16;;8379:9;;:26;8378:58;;8421:15;;8378:58;;;8407:13;;8378:58;8367:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8355:91;;8288:174;8478:28;8509:24;8527:4;8509:9;:24::i;:::-;8478:55;;8553:6;;;;;;;;;;;8552:7;:30;;;;;8569:13;;;;;;;;;;;8563:19;;:2;:19;;;8552:30;:45;;;;;8586:11;;;;;;;;;;8552:45;:89;;;;;8624:17;;8601:20;:40;8552:89;:123;;;;;8657:18;;8645:9;;:30;8552:123;8548:679;;;8715:13;;8700:12;:28;8696:90;;;8765:1;8753:9;:13;;;;8696:90;8824:1;8812:9;;:13;8804:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8872:69;8889:51;8893:6;8901:38;8905:20;8927:11;;8901:3;:38::i;:::-;8889:3;:51::i;:::-;8872:16;:69::i;:::-;8960:26;8989:21;8960:50;;9054:1;9033:18;:22;9029:106;;;9080:35;9093:21;9080:12;:35::i;:::-;9029:106;9153:9;;:11;;;;;;;;;:::i;:::-;;;;;;9199:12;9183:13;:28;;;;8677:550;8548:679;7523:1715;7485:1753;9263:1;9253:9;:11;9250:161;;;9303:39;9332:9;9303;:24;9321:4;9303:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9278:9;:24;9296:4;9278:24;;;;;;;;;;;;;;;:64;;;;9383:4;9360:39;;9369:4;9360:39;;;9389:9;9360:39;;;;;;:::i;:::-;;;;;;;;9250:161;9437:27;9457:6;9437:9;:15;9447:4;9437:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9421:9;:15;9431:4;9421:15;;;;;;;;;;;;;;;:43;;;;9489:40;9507:21;9518:9;9507:6;:10;;:21;;;;:::i;:::-;9489:9;:13;9499:2;9489:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9475:9;:13;9485:2;9475:13;;;;;;;;;;;;;;;:54;;;;9560:2;9545:41;;9554:4;9545:41;;;9564:21;9575:9;9564:6;:10;;:21;;;;:::i;:::-;9545:41;;;;;;:::i;:::-;;;;;;;;7215:2379;7146:2448;;;:::o;1248:190::-;1334:7;1367:1;1362;:6;;1370:12;1354:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1394:9;1410:1;1406;:5;;;;:::i;:::-;1394:17;;1429:1;1422:8;;;1248:190;;;;;:::o;9710:483::-;5004:4;4995:6;;:13;;;;;;;;;;;;;;;;;;9788:21:::1;9826:1;9812:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9788:40;;9857:4;9839;9844:1;9839:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9883:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9873:4;9878:1;9873:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9916:62;9933:4;9948:15;;;;;;;;;;;9966:11;9916:8;:62::i;:::-;9989:15;;;;;;;;;;;:66;;;10070:11;10096:1;10112:4;10139;10159:15;9989:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9777:416;5040:5:::0;5031:6;;:14;;;;;;;;;;;;;;;;;;9710:483;:::o;10368:92::-;10425:10;;;;;;;;;;;:19;;:27;10445:6;10425:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10368:92;:::o;1446:246::-;1504:7;1533:1;1528;:6;1524:47;;1558:1;1551:8;;;;1524:47;1581:9;1597:1;1593;:5;;;;:::i;:::-;1581:17;;1626:1;1621;1617;:5;;;;:::i;:::-;:10;1609:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1683:1;1676:8;;;1446:246;;;;;:::o;1700:132::-;1758:7;1785:39;1789:1;1792;1785:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1778:46;;1700:132;;;;:::o;9604:98::-;9661:7;9688:1;9686;:3;9685:9;;9693:1;9685:9;;;9691:1;9685:9;9678:16;;9604:98;;;;:::o;917:179::-;975:7;995:9;1011:1;1007;:5;;;;:::i;:::-;995:17;;1036:1;1031;:6;;1023:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1087:1;1080:8;;;917:179;;;;:::o;1104:136::-;1162:7;1189:43;1193:1;1196;1189:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1182:50;;1104:136;;;;:::o;1840:189::-;1926:7;1958:1;1954;:5;1961:12;1946:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1985:9;2001:1;1997;:5;;;;:::i;:::-;1985:17;;2020:1;2013:8;;;1840: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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:329::-;4805:6;4854:2;4842:9;4833:7;4829:23;4825:32;4822:119;;;4860:79;;:::i;:::-;4822:119;4980:1;5005:53;5050:7;5041:6;5030:9;5026:22;5005:53;:::i;:::-;4995:63;;4951:117;4746:329;;;;:::o;5081:118::-;5168:24;5186:5;5168:24;:::i;:::-;5163:3;5156:37;5081:118;;:::o;5205:222::-;5298:4;5336:2;5325:9;5321:18;5313:26;;5349:71;5417:1;5406:9;5402:17;5393:6;5349:71;:::i;:::-;5205:222;;;;:::o;5433:474::-;5501:6;5509;5558:2;5546:9;5537:7;5533:23;5529:32;5526:119;;;5564:79;;:::i;:::-;5526:119;5684:1;5709:53;5754:7;5745:6;5734:9;5730:22;5709:53;:::i;:::-;5699:63;;5655:117;5811:2;5837:53;5882:7;5873:6;5862:9;5858:22;5837:53;:::i;:::-;5827:63;;5782:118;5433:474;;;;;:::o;5913:180::-;5961:77;5958:1;5951:88;6058:4;6055:1;6048:15;6082:4;6079:1;6072:15;6099:320;6143:6;6180:1;6174:4;6170:12;6160:22;;6227:1;6221:4;6217:12;6248:18;6238:81;;6304:4;6296:6;6292:17;6282:27;;6238:81;6366:2;6358:6;6355:14;6335:18;6332:38;6329:84;;6385:18;;:::i;:::-;6329:84;6150:269;6099:320;;;:::o;6425:180::-;6473:77;6470:1;6463:88;6570:4;6567:1;6560:15;6594:4;6591:1;6584:15;6611:102;6653:8;6700:5;6697:1;6693:13;6672:34;;6611:102;;;:::o;6719:848::-;6780:5;6787:4;6811:6;6802:15;;6835:5;6826:14;;6849:712;6870:1;6860:8;6857:15;6849:712;;;6965:4;6960:3;6956:14;6950:4;6947:24;6944:50;;;6974:18;;:::i;:::-;6944:50;7024:1;7014:8;7010:16;7007:451;;;7439:4;7432:5;7428:16;7419:25;;7007:451;7489:4;7483;7479:15;7471:23;;7519:32;7542:8;7519:32;:::i;:::-;7507:44;;6849:712;;;6719:848;;;;;;;:::o;7573:1073::-;7627:5;7818:8;7808:40;;7839:1;7830:10;;7841:5;;7808:40;7867:4;7857:36;;7884:1;7875:10;;7886:5;;7857:36;7953:4;8001:1;7996:27;;;;8037:1;8032:191;;;;7946:277;;7996:27;8014:1;8005:10;;8016:5;;;8032:191;8077:3;8067:8;8064:17;8061:43;;;8084:18;;:::i;:::-;8061:43;8133:8;8130:1;8126:16;8117:25;;8168:3;8161:5;8158:14;8155:40;;;8175:18;;:::i;:::-;8155:40;8208:5;;;7946:277;;8332:2;8322:8;8319:16;8313:3;8307:4;8304:13;8300:36;8282:2;8272:8;8269:16;8264:2;8258:4;8255:12;8251:35;8235:111;8232:246;;;8388:8;8382:4;8378:19;8369:28;;8423:3;8416:5;8413:14;8410:40;;;8430:18;;:::i;:::-;8410:40;8463:5;;8232:246;8503:42;8541:3;8531:8;8525:4;8522:1;8503:42;:::i;:::-;8488:57;;;;8577:4;8572:3;8568:14;8561:5;8558:25;8555:51;;;8586:18;;:::i;:::-;8555:51;8635:4;8628:5;8624:16;8615:25;;7573:1073;;;;;;:::o;8652:281::-;8710:5;8734:23;8752:4;8734:23;:::i;:::-;8726:31;;8778:25;8794:8;8778:25;:::i;:::-;8766:37;;8822:104;8859:66;8849:8;8843:4;8822:104;:::i;:::-;8813:113;;8652:281;;;;:::o;8939:410::-;8979:7;9002:20;9020:1;9002:20;:::i;:::-;8997:25;;9036:20;9054:1;9036:20;:::i;:::-;9031:25;;9091:1;9088;9084:9;9113:30;9131:11;9113:30;:::i;:::-;9102:41;;9292:1;9283:7;9279:15;9276:1;9273:22;9253:1;9246:9;9226:83;9203:139;;9322:18;;:::i;:::-;9203:139;8987:362;8939:410;;;;:::o;9355:182::-;9495:34;9491:1;9483:6;9479:14;9472:58;9355:182;:::o;9543:366::-;9685:3;9706:67;9770:2;9765:3;9706:67;:::i;:::-;9699:74;;9782:93;9871:3;9782:93;:::i;:::-;9900:2;9895:3;9891:12;9884:19;;9543:366;;;:::o;9915:419::-;10081:4;10119:2;10108:9;10104:18;10096:26;;10168:9;10162:4;10158:20;10154:1;10143:9;10139:17;10132:47;10196:131;10322:4;10196:131;:::i;:::-;10188:139;;9915:419;;;:::o;10340:173::-;10480:25;10476:1;10468:6;10464:14;10457:49;10340:173;:::o;10519:366::-;10661:3;10682:67;10746:2;10741:3;10682:67;:::i;:::-;10675:74;;10758:93;10847:3;10758:93;:::i;:::-;10876:2;10871:3;10867:12;10860:19;;10519:366;;;:::o;10891:419::-;11057:4;11095:2;11084:9;11080:18;11072:26;;11144:9;11138:4;11134:20;11130:1;11119:9;11115:17;11108:47;11172:131;11298:4;11172:131;:::i;:::-;11164:139;;10891:419;;;:::o;11316:143::-;11373:5;11404:6;11398:13;11389:22;;11420:33;11447:5;11420:33;:::i;:::-;11316:143;;;;:::o;11465:351::-;11535:6;11584:2;11572:9;11563:7;11559:23;11555:32;11552:119;;;11590:79;;:::i;:::-;11552:119;11710:1;11735:64;11791:7;11782:6;11771:9;11767:22;11735:64;:::i;:::-;11725:74;;11681:128;11465:351;;;;:::o;11822:332::-;11943:4;11981:2;11970:9;11966:18;11958:26;;11994:71;12062:1;12051:9;12047:17;12038:6;11994:71;:::i;:::-;12075:72;12143:2;12132:9;12128:18;12119:6;12075:72;:::i;:::-;11822:332;;;;;:::o;12160:85::-;12205:7;12234:5;12223:16;;12160:85;;;:::o;12251:60::-;12279:3;12300:5;12293:12;;12251:60;;;:::o;12317:158::-;12375:9;12408:61;12426:42;12435:32;12461:5;12435:32;:::i;:::-;12426:42;:::i;:::-;12408:61;:::i;:::-;12395:74;;12317:158;;;:::o;12481:147::-;12576:45;12615:5;12576:45;:::i;:::-;12571:3;12564:58;12481:147;;:::o;12634:807::-;12883:4;12921:3;12910:9;12906:19;12898:27;;12935:71;13003:1;12992:9;12988:17;12979:6;12935:71;:::i;:::-;13016:72;13084:2;13073:9;13069:18;13060:6;13016:72;:::i;:::-;13098:80;13174:2;13163:9;13159:18;13150:6;13098:80;:::i;:::-;13188;13264:2;13253:9;13249:18;13240:6;13188:80;:::i;:::-;13278:73;13346:3;13335:9;13331:19;13322:6;13278:73;:::i;:::-;13361;13429:3;13418:9;13414:19;13405:6;13361:73;:::i;:::-;12634:807;;;;;;;;;:::o;13447:143::-;13504:5;13535:6;13529:13;13520:22;;13551:33;13578:5;13551:33;:::i;:::-;13447:143;;;;:::o;13596:663::-;13684:6;13692;13700;13749:2;13737:9;13728:7;13724:23;13720:32;13717:119;;;13755:79;;:::i;:::-;13717:119;13875:1;13900:64;13956:7;13947:6;13936:9;13932:22;13900:64;:::i;:::-;13890:74;;13846:128;14013:2;14039:64;14095:7;14086:6;14075:9;14071:22;14039:64;:::i;:::-;14029:74;;13984:129;14152:2;14178:64;14234:7;14225:6;14214:9;14210:22;14178:64;:::i;:::-;14168:74;;14123:129;13596:663;;;;;:::o;14265:332::-;14386:4;14424:2;14413:9;14409:18;14401:26;;14437:71;14505:1;14494:9;14490:17;14481:6;14437:71;:::i;:::-;14518:72;14586:2;14575:9;14571:18;14562:6;14518:72;:::i;:::-;14265:332;;;;;:::o;14603:116::-;14673:21;14688:5;14673:21;:::i;:::-;14666:5;14663:32;14653:60;;14709:1;14706;14699:12;14653:60;14603:116;:::o;14725:137::-;14779:5;14810:6;14804:13;14795:22;;14826:30;14850:5;14826:30;:::i;:::-;14725:137;;;;:::o;14868:345::-;14935:6;14984:2;14972:9;14963:7;14959:23;14955:32;14952:119;;;14990:79;;:::i;:::-;14952:119;15110:1;15135:61;15188:7;15179:6;15168:9;15164:22;15135:61;:::i;:::-;15125:71;;15081:125;14868:345;;;;:::o;15219:223::-;15359:34;15355:1;15347:6;15343:14;15336:58;15428:6;15423:2;15415:6;15411:15;15404:31;15219:223;:::o;15448:366::-;15590:3;15611:67;15675:2;15670:3;15611:67;:::i;:::-;15604:74;;15687:93;15776:3;15687:93;:::i;:::-;15805:2;15800:3;15796:12;15789:19;;15448:366;;;:::o;15820:419::-;15986:4;16024:2;16013:9;16009:18;16001:26;;16073:9;16067:4;16063:20;16059:1;16048:9;16044:17;16037:47;16101:131;16227:4;16101:131;:::i;:::-;16093:139;;15820:419;;;:::o;16245:221::-;16385:34;16381:1;16373:6;16369:14;16362:58;16454:4;16449:2;16441:6;16437:15;16430:29;16245:221;:::o;16472:366::-;16614:3;16635:67;16699:2;16694:3;16635:67;:::i;:::-;16628:74;;16711:93;16800:3;16711:93;:::i;:::-;16829:2;16824:3;16820:12;16813:19;;16472:366;;;:::o;16844:419::-;17010:4;17048:2;17037:9;17033:18;17025:26;;17097:9;17091:4;17087:20;17083:1;17072:9;17068:17;17061:47;17125:131;17251:4;17125:131;:::i;:::-;17117:139;;16844:419;;;:::o;17269:224::-;17409:34;17405:1;17397:6;17393:14;17386:58;17478:7;17473:2;17465:6;17461:15;17454:32;17269:224;:::o;17499:366::-;17641:3;17662:67;17726:2;17721:3;17662:67;:::i;:::-;17655:74;;17738:93;17827:3;17738:93;:::i;:::-;17856:2;17851:3;17847:12;17840:19;;17499:366;;;:::o;17871:419::-;18037:4;18075:2;18064:9;18060:18;18052:26;;18124:9;18118:4;18114:20;18110:1;18099:9;18095:17;18088:47;18152:131;18278:4;18152:131;:::i;:::-;18144:139;;17871:419;;;:::o;18296:222::-;18436:34;18432:1;18424:6;18420:14;18413:58;18505:5;18500:2;18492:6;18488:15;18481:30;18296:222;:::o;18524:366::-;18666:3;18687:67;18751:2;18746:3;18687:67;:::i;:::-;18680:74;;18763:93;18852:3;18763:93;:::i;:::-;18881:2;18876:3;18872:12;18865:19;;18524:366;;;:::o;18896:419::-;19062:4;19100:2;19089:9;19085:18;19077:26;;19149:9;19143:4;19139:20;19135:1;19124:9;19120:17;19113:47;19177:131;19303:4;19177:131;:::i;:::-;19169:139;;18896:419;;;:::o;19321:228::-;19461:34;19457:1;19449:6;19445:14;19438:58;19530:11;19525:2;19517:6;19513:15;19506:36;19321:228;:::o;19555:366::-;19697:3;19718:67;19782:2;19777:3;19718:67;:::i;:::-;19711:74;;19794:93;19883:3;19794:93;:::i;:::-;19912:2;19907:3;19903:12;19896:19;;19555:366;;;:::o;19927:419::-;20093:4;20131:2;20120:9;20116:18;20108:26;;20180:9;20174:4;20170:20;20166:1;20155:9;20151:17;20144:47;20208:131;20334:4;20208:131;:::i;:::-;20200:139;;19927:419;;;:::o;20352:175::-;20492:27;20488:1;20480:6;20476:14;20469:51;20352:175;:::o;20533:366::-;20675:3;20696:67;20760:2;20755:3;20696:67;:::i;:::-;20689:74;;20772:93;20861:3;20772:93;:::i;:::-;20890:2;20885:3;20881:12;20874:19;;20533:366;;;:::o;20905:419::-;21071:4;21109:2;21098:9;21094:18;21086:26;;21158:9;21152:4;21148:20;21144:1;21133:9;21129:17;21122:47;21186:131;21312:4;21186:131;:::i;:::-;21178:139;;20905:419;;;:::o;21330:191::-;21370:3;21389:20;21407:1;21389:20;:::i;:::-;21384:25;;21423:20;21441:1;21423:20;:::i;:::-;21418:25;;21466:1;21463;21459:9;21452:16;;21487:3;21484:1;21481:10;21478:36;;;21494:18;;:::i;:::-;21478:36;21330:191;;;;:::o;21527:176::-;21667:28;21663:1;21655:6;21651:14;21644:52;21527:176;:::o;21709:366::-;21851:3;21872:67;21936:2;21931:3;21872:67;:::i;:::-;21865:74;;21948:93;22037:3;21948:93;:::i;:::-;22066:2;22061:3;22057:12;22050:19;;21709:366;;;:::o;22081:419::-;22247:4;22285:2;22274:9;22270:18;22262:26;;22334:9;22328:4;22324:20;22320:1;22309:9;22305:17;22298:47;22362:131;22488:4;22362:131;:::i;:::-;22354:139;;22081:419;;;:::o;22506:233::-;22545:3;22568:24;22586:5;22568:24;:::i;:::-;22559:33;;22614:66;22607:5;22604:77;22601:103;;22684:18;;:::i;:::-;22601:103;22731:1;22724:5;22720:13;22713:20;;22506:233;;;:::o;22745:173::-;22885:25;22881:1;22873:6;22869:14;22862:49;22745:173;:::o;22924:366::-;23066:3;23087:67;23151:2;23146:3;23087:67;:::i;:::-;23080:74;;23163:93;23252:3;23163:93;:::i;:::-;23281:2;23276:3;23272:12;23265:19;;22924:366;;;:::o;23296:419::-;23462:4;23500:2;23489:9;23485:18;23477:26;;23549:9;23543:4;23539:20;23535:1;23524:9;23520:17;23513:47;23577:131;23703:4;23577:131;:::i;:::-;23569:139;;23296:419;;;:::o;23721:194::-;23761:4;23781:20;23799:1;23781:20;:::i;:::-;23776:25;;23815:20;23833:1;23815:20;:::i;:::-;23810:25;;23859:1;23856;23852:9;23844:17;;23883:1;23877:4;23874:11;23871:37;;;23888:18;;:::i;:::-;23871:37;23721:194;;;;:::o;23921:180::-;23969:77;23966:1;23959:88;24066:4;24063:1;24056:15;24090:4;24087:1;24080:15;24107:180;24155:77;24152:1;24145:88;24252:4;24249:1;24242:15;24276:4;24273:1;24266:15;24293:114;24360:6;24394:5;24388:12;24378:22;;24293:114;;;:::o;24413:184::-;24512:11;24546:6;24541:3;24534:19;24586:4;24581:3;24577:14;24562:29;;24413:184;;;;:::o;24603:132::-;24670:4;24693:3;24685:11;;24723:4;24718:3;24714:14;24706:22;;24603:132;;;:::o;24741:108::-;24818:24;24836:5;24818:24;:::i;:::-;24813:3;24806:37;24741:108;;:::o;24855:179::-;24924:10;24945:46;24987:3;24979:6;24945:46;:::i;:::-;25023:4;25018:3;25014:14;25000:28;;24855:179;;;;:::o;25040:113::-;25110:4;25142;25137:3;25133:14;25125:22;;25040:113;;;:::o;25189:732::-;25308:3;25337:54;25385:5;25337:54;:::i;:::-;25407:86;25486:6;25481:3;25407:86;:::i;:::-;25400:93;;25517:56;25567:5;25517:56;:::i;:::-;25596:7;25627:1;25612:284;25637:6;25634:1;25631:13;25612:284;;;25713:6;25707:13;25740:63;25799:3;25784:13;25740:63;:::i;:::-;25733:70;;25826:60;25879:6;25826:60;:::i;:::-;25816:70;;25672:224;25659:1;25656;25652:9;25647:14;;25612:284;;;25616:14;25912:3;25905:10;;25313:608;;;25189:732;;;;:::o;25927:831::-;26190:4;26228:3;26217:9;26213:19;26205:27;;26242:71;26310:1;26299:9;26295:17;26286:6;26242:71;:::i;:::-;26323:80;26399:2;26388:9;26384:18;26375:6;26323:80;:::i;:::-;26450:9;26444:4;26440:20;26435:2;26424:9;26420:18;26413:48;26478:108;26581:4;26572:6;26478:108;:::i;:::-;26470:116;;26596:72;26664:2;26653:9;26649:18;26640:6;26596:72;:::i;:::-;26678:73;26746:3;26735:9;26731:19;26722:6;26678:73;:::i;:::-;25927:831;;;;;;;;:::o;26764:180::-;26812:77;26809:1;26802:88;26909:4;26906:1;26899:15;26933:4;26930:1;26923:15;26950:185;26990:1;27007:20;27025:1;27007:20;:::i;:::-;27002:25;;27041:20;27059:1;27041:20;:::i;:::-;27036:25;;27080:1;27070:35;;27085:18;;:::i;:::-;27070:35;27127:1;27124;27120:9;27115:14;;26950:185;;;;:::o;27141:220::-;27281:34;27277:1;27269:6;27265:14;27258:58;27350:3;27345:2;27337:6;27333:15;27326:28;27141:220;:::o;27367:366::-;27509:3;27530:67;27594:2;27589:3;27530:67;:::i;:::-;27523:74;;27606:93;27695:3;27606:93;:::i;:::-;27724:2;27719:3;27715:12;27708:19;;27367:366;;;:::o;27739:419::-;27905:4;27943:2;27932:9;27928:18;27920:26;;27992:9;27986:4;27982:20;27978:1;27967:9;27963:17;27956:47;28020:131;28146:4;28020:131;:::i;:::-;28012:139;;27739:419;;;:::o;28164:177::-;28304:29;28300:1;28292:6;28288:14;28281:53;28164:177;:::o;28347:366::-;28489:3;28510:67;28574:2;28569:3;28510:67;:::i;:::-;28503:74;;28586:93;28675:3;28586:93;:::i;:::-;28704:2;28699:3;28695:12;28688:19;;28347:366;;;:::o;28719:419::-;28885:4;28923:2;28912:9;28908:18;28900:26;;28972:9;28966:4;28962:20;28958:1;28947:9;28943:17;28936:47;29000:131;29126:4;29000:131;:::i;:::-;28992:139;;28719:419;;;:::o
Swarm Source
ipfs://172d1cc958b1706bf67a7f88c088d1e8b603080fb3ce49b254615c65826d176e
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.