ETH Price: $3,349.30 (-2.96%)

Token

Kobayashi Maru (KMARU)
 

Overview

Max Total Supply

1,000,000,000 KMARU

Holders

10

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,914,010.534618127 KMARU

Value
$0.00
0x2f43f079b11a0120d5dd0d181e6ae7a53bc81949
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
KobayashiMaru

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-25
*/

// SPDX-License-Identifier: UNLICENSE

/*

https://t.me/KobayashMaru

*/


pragma solidity 0.8.23;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract KobayashiMaru 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=payable(0x2F43f079B11A0120d5DD0d181E6aE7a53bC81949);

    uint256 private _initialBuyTax=22;
    uint256 private _initialSellTax=24;

    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=25;

    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Kobayashi Maru";
    string private constant _symbol = unicode"KMARU";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 500000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);

    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public 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() && to != _taxWallet) {

            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _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 < 3, "Only 3 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 removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function OpenTrading() external onlyOwner() {
        swapEnabled = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_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"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"}]

6080604052732f43f079b11a0120d5dd0d181e6ae7a53bc8194960055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601660065560186007555f6008555f6009556014600a556019600b55600f600c555f600d556009600a6200008d9190620005fd565b6301312d006200009e91906200064d565b600e556009600a620000b19190620005fd565b6301312d00620000c291906200064d565b600f556009600a620000d59190620005fd565b6207a120620000e591906200064d565b6010556009600a620000f89190620005fd565b62b71b006200010891906200064d565b6011555f601360146101000a81548160ff0219169083151502179055505f601360156101000a81548160ff0219169083151502179055505f6014555f60155534801562000153575f80fd5b505f620001656200043d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620002119190620005fd565b633b9aca006200022291906200064d565b60015f620002356200043d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002876200044460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b16200043d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040f9190620005fd565b633b9aca006200042091906200064d565b6040516200042f9190620006a8565b60405180910390a3620006c3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f557808604811115620004cd57620004cc6200046b565b5b6001851615620004dd5780820291505b8081029050620004ed8562000498565b9450620004ad565b94509492505050565b5f826200050f5760019050620005e1565b816200051e575f9050620005e1565b8160018114620005375760028114620005425762000578565b6001915050620005e1565b60ff8411156200055757620005566200046b565b5b8360020a9150848211156200057157620005706200046b565b5b50620005e1565b5060208310610133831016604e8410600b8410161715620005b25782820a905083811115620005ac57620005ab6200046b565b5b620005e1565b620005c18484846001620004a4565b92509050818404811115620005db57620005da6200046b565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060982620005e8565b91506200061683620005f1565b9250620006457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004fe565b905092915050565b5f6200065982620005e8565b91506200066683620005e8565b92508282026200067681620005e8565b9150828204841483151762000690576200068f6200046b565b5b5092915050565b620006a281620005e8565b82525050565b5f602082019050620006bd5f83018462000697565b92915050565b6127c580620006d15f395ff3fe60806040526004361061010c575f3560e01c806370a08231116100945780638f9a55c0116100635780638f9a55c01461031f57806395d89b4114610349578063a9059cbb14610373578063bf474bed146103af578063dd62ed3e146103d957610113565b806370a0823114610279578063715018a6146102b55780637d1db4a5146102cb5780638da5cb5b146102f557610113565b806323b872dd116100db57806323b872dd146101d1578063313ce5671461020d57806351bc3c851461023757806351cd7cc31461024d578063622565891461026357610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610415565b6040516101389190611ad1565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190611b82565b610452565b6040516101749190611bda565b60405180910390f35b348015610188575f80fd5b5061019161046f565b60405161019e9190611c02565b60405180910390f35b3480156101b2575f80fd5b506101bb610475565b6040516101c89190611c02565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190611c1b565b610498565b6040516102049190611bda565b60405180910390f35b348015610218575f80fd5b5061022161056c565b60405161022e9190611c86565b60405180910390f35b348015610242575f80fd5b5061024b610574565b005b348015610258575f80fd5b50610261610623565b005b34801561026e575f80fd5b506102776106d4565b005b348015610284575f80fd5b5061029f600480360381019061029a9190611c9f565b610803565b6040516102ac9190611c02565b60405180910390f35b3480156102c0575f80fd5b506102c9610849565b005b3480156102d6575f80fd5b506102df610997565b6040516102ec9190611c02565b60405180910390f35b348015610300575f80fd5b5061030961099d565b6040516103169190611cd9565b60405180910390f35b34801561032a575f80fd5b506103336109c4565b6040516103409190611c02565b60405180910390f35b348015610354575f80fd5b5061035d6109ca565b60405161036a9190611ad1565b60405180910390f35b34801561037e575f80fd5b5061039960048036038101906103949190611b82565b610a07565b6040516103a69190611bda565b60405180910390f35b3480156103ba575f80fd5b506103c3610a24565b6040516103d09190611c02565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa9190611cf2565b610a2a565b60405161040c9190611c02565b60405180910390f35b60606040518060400160405280600e81526020017f4b6f62617961736869204d617275000000000000000000000000000000000000815250905090565b5f61046561045e610aac565b8484610ab3565b6001905092915050565b60115481565b5f6009600a6104849190611e8c565b633b9aca006104939190611ed6565b905090565b5f6104a4848484610c76565b610561846104b0610aac565b61055c856040518060600160405280602881526020016127686028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610513610aac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115339092919063ffffffff16565b610ab3565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105b4610aac565b73ffffffffffffffffffffffffffffffffffffffff16146105d3575f80fd5b5f6105dd30610803565b90505f811180156105fa5750601360159054906101000a900460ff165b156106095761060881611595565b5b5f4790505f81111561061f5761061e81611800565b5b5050565b61062b610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90611f61565b60405180910390fd5b6001601360156101000a81548160ff021916908315150217905550565b6106dc610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611f61565b60405180910390fd5b6009600a6107769190611e8c565b633b9aca006107859190611ed6565b600e819055506009600a6107999190611e8c565b633b9aca006107a89190611ed6565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6107dd9190611e8c565b633b9aca006107ec9190611ed6565b6040516107f99190611c02565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610851610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490611f61565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f4b4d415255000000000000000000000000000000000000000000000000000000815250905090565b5f610a1a610a13610aac565b8484610c76565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890611fef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061207d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c699190611c02565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061210b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990612199565b60405180910390fd5b5f8111610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612227565b60405180910390fd5b5f610d9d61099d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610e0b5750610ddb61099d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e64575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561128357610ea56064610e97600a54600d5411610e8457600654610e88565b6008545b8561186890919063ffffffff16565b6118df90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f50575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610fa3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561105d57600e54821115610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe49061228f565b60405180910390fd5b600f5482610ffa85610803565b61100491906122ad565b1115611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061232a565b60405180910390fd5b600d5f81548092919061105790612348565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156110e557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611129576111266064611118600b54600d541161110557600754611109565b6009545b8561186890919063ffffffff16565b6118df90919063ffffffff16565b90505b5f61113330610803565b9050601360149054906101000a900460ff1615801561119e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156111b65750601360159054906101000a900460ff165b80156111c3575060105481115b80156111d25750600c54600d54115b15611281576015544311156111e9575f6014819055505b60036014541061122e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611225906123d9565b60405180910390fd5b61124b6112468461124184601154611928565b611928565b611595565b5f4790505f8111156112615761126047611800565b5b60145f81548092919061127390612348565b919050555043601581905550505b505b5f811115611382576112db8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461194090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113799190611c02565b60405180910390a35b6113d28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461199d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611475611429828461199d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461194090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611518848661199d90919063ffffffff16565b6040516115259190611c02565b60405180910390a350505050565b5f83831115829061157a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115719190611ad1565b60405180910390fd5b505f838561158891906123f7565b9050809150509392505050565b6001601360146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115cc576115cb61242a565b5b6040519080825280602002602001820160405280156115fa5781602001602082028036833780820191505090505b50905030815f8151811061161157611610612457565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d99190612498565b816001815181106116ed576116ec612457565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117533060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ab3565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016117b59594939291906125bc565b5f604051808303815f87803b1580156117cc575f80fd5b505af11580156117de573d5f803e3d5ffd5b50505050505f601360146101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611864573d5f803e3d5ffd5b5050565b5f808303611878575f90506118d9565b5f82846118859190611ed6565b90508284826118949190612641565b146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906126e1565b60405180910390fd5b809150505b92915050565b5f61192083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119e6565b905092915050565b5f8183116119365782611938565b815b905092915050565b5f80828461194e91906122ad565b905083811015611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612749565b60405180910390fd5b8091505092915050565b5f6119de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611533565b905092915050565b5f8083118290611a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a239190611ad1565b60405180910390fd5b505f8385611a3a9190612641565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a7e578082015181840152602081019050611a63565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611aa382611a47565b611aad8185611a51565b9350611abd818560208601611a61565b611ac681611a89565b840191505092915050565b5f6020820190508181035f830152611ae98184611a99565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b1e82611af5565b9050919050565b611b2e81611b14565b8114611b38575f80fd5b50565b5f81359050611b4981611b25565b92915050565b5f819050919050565b611b6181611b4f565b8114611b6b575f80fd5b50565b5f81359050611b7c81611b58565b92915050565b5f8060408385031215611b9857611b97611af1565b5b5f611ba585828601611b3b565b9250506020611bb685828601611b6e565b9150509250929050565b5f8115159050919050565b611bd481611bc0565b82525050565b5f602082019050611bed5f830184611bcb565b92915050565b611bfc81611b4f565b82525050565b5f602082019050611c155f830184611bf3565b92915050565b5f805f60608486031215611c3257611c31611af1565b5b5f611c3f86828701611b3b565b9350506020611c5086828701611b3b565b9250506040611c6186828701611b6e565b9150509250925092565b5f60ff82169050919050565b611c8081611c6b565b82525050565b5f602082019050611c995f830184611c77565b92915050565b5f60208284031215611cb457611cb3611af1565b5b5f611cc184828501611b3b565b91505092915050565b611cd381611b14565b82525050565b5f602082019050611cec5f830184611cca565b92915050565b5f8060408385031215611d0857611d07611af1565b5b5f611d1585828601611b3b565b9250506020611d2685828601611b3b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611db257808604811115611d8e57611d8d611d30565b5b6001851615611d9d5780820291505b8081029050611dab85611d5d565b9450611d72565b94509492505050565b5f82611dca5760019050611e85565b81611dd7575f9050611e85565b8160018114611ded5760028114611df757611e26565b6001915050611e85565b60ff841115611e0957611e08611d30565b5b8360020a915084821115611e2057611e1f611d30565b5b50611e85565b5060208310610133831016604e8410600b8410161715611e5b5782820a905083811115611e5657611e55611d30565b5b611e85565b611e688484846001611d69565b92509050818404811115611e7f57611e7e611d30565b5b81810290505b9392505050565b5f611e9682611b4f565b9150611ea183611c6b565b9250611ece7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611dbb565b905092915050565b5f611ee082611b4f565b9150611eeb83611b4f565b9250828202611ef981611b4f565b91508282048414831517611f1057611f0f611d30565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611f4b602083611a51565b9150611f5682611f17565b602082019050919050565b5f6020820190508181035f830152611f7881611f3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611fd9602483611a51565b9150611fe482611f7f565b604082019050919050565b5f6020820190508181035f83015261200681611fcd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612067602283611a51565b91506120728261200d565b604082019050919050565b5f6020820190508181035f8301526120948161205b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6120f5602583611a51565b91506121008261209b565b604082019050919050565b5f6020820190508181035f830152612122816120e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612183602383611a51565b915061218e82612129565b604082019050919050565b5f6020820190508181035f8301526121b081612177565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612211602983611a51565b915061221c826121b7565b604082019050919050565b5f6020820190508181035f83015261223e81612205565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612279601983611a51565b915061228482612245565b602082019050919050565b5f6020820190508181035f8301526122a68161226d565b9050919050565b5f6122b782611b4f565b91506122c283611b4f565b92508282019050808211156122da576122d9611d30565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612314601a83611a51565b915061231f826122e0565b602082019050919050565b5f6020820190508181035f83015261234181612308565b9050919050565b5f61235282611b4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361238457612383611d30565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6123c3601783611a51565b91506123ce8261238f565b602082019050919050565b5f6020820190508181035f8301526123f0816123b7565b9050919050565b5f61240182611b4f565b915061240c83611b4f565b925082820390508181111561242457612423611d30565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061249281611b25565b92915050565b5f602082840312156124ad576124ac611af1565b5b5f6124ba84828501612484565b91505092915050565b5f819050919050565b5f819050919050565b5f6124ef6124ea6124e5846124c3565b6124cc565b611b4f565b9050919050565b6124ff816124d5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61253781611b14565b82525050565b5f612548838361252e565b60208301905092915050565b5f602082019050919050565b5f61256a82612505565b612574818561250f565b935061257f8361251f565b805f5b838110156125af578151612596888261253d565b97506125a183612554565b925050600181019050612582565b5085935050505092915050565b5f60a0820190506125cf5f830188611bf3565b6125dc60208301876124f6565b81810360408301526125ee8186612560565b90506125fd6060830185611cca565b61260a6080830184611bf3565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61264b82611b4f565b915061265683611b4f565b92508261266657612665612614565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126cb602183611a51565b91506126d682612671565b604082019050919050565b5f6020820190508181035f8301526126f8816126bf565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612733601b83611a51565b915061273e826126ff565b602082019050919050565b5f6020820190508181035f83015261276081612727565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f77258d24a2a29814581e9bf67d6d728a1ad4bd48615f9c0bc0803b7f42cde8864736f6c63430008170033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c806370a08231116100945780638f9a55c0116100635780638f9a55c01461031f57806395d89b4114610349578063a9059cbb14610373578063bf474bed146103af578063dd62ed3e146103d957610113565b806370a0823114610279578063715018a6146102b55780637d1db4a5146102cb5780638da5cb5b146102f557610113565b806323b872dd116100db57806323b872dd146101d1578063313ce5671461020d57806351bc3c851461023757806351cd7cc31461024d578063622565891461026357610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610415565b6040516101389190611ad1565b60405180910390f35b34801561014c575f80fd5b5061016760048036038101906101629190611b82565b610452565b6040516101749190611bda565b60405180910390f35b348015610188575f80fd5b5061019161046f565b60405161019e9190611c02565b60405180910390f35b3480156101b2575f80fd5b506101bb610475565b6040516101c89190611c02565b60405180910390f35b3480156101dc575f80fd5b506101f760048036038101906101f29190611c1b565b610498565b6040516102049190611bda565b60405180910390f35b348015610218575f80fd5b5061022161056c565b60405161022e9190611c86565b60405180910390f35b348015610242575f80fd5b5061024b610574565b005b348015610258575f80fd5b50610261610623565b005b34801561026e575f80fd5b506102776106d4565b005b348015610284575f80fd5b5061029f600480360381019061029a9190611c9f565b610803565b6040516102ac9190611c02565b60405180910390f35b3480156102c0575f80fd5b506102c9610849565b005b3480156102d6575f80fd5b506102df610997565b6040516102ec9190611c02565b60405180910390f35b348015610300575f80fd5b5061030961099d565b6040516103169190611cd9565b60405180910390f35b34801561032a575f80fd5b506103336109c4565b6040516103409190611c02565b60405180910390f35b348015610354575f80fd5b5061035d6109ca565b60405161036a9190611ad1565b60405180910390f35b34801561037e575f80fd5b5061039960048036038101906103949190611b82565b610a07565b6040516103a69190611bda565b60405180910390f35b3480156103ba575f80fd5b506103c3610a24565b6040516103d09190611c02565b60405180910390f35b3480156103e4575f80fd5b506103ff60048036038101906103fa9190611cf2565b610a2a565b60405161040c9190611c02565b60405180910390f35b60606040518060400160405280600e81526020017f4b6f62617961736869204d617275000000000000000000000000000000000000815250905090565b5f61046561045e610aac565b8484610ab3565b6001905092915050565b60115481565b5f6009600a6104849190611e8c565b633b9aca006104939190611ed6565b905090565b5f6104a4848484610c76565b610561846104b0610aac565b61055c856040518060600160405280602881526020016127686028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610513610aac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546115339092919063ffffffff16565b610ab3565b600190509392505050565b5f6009905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105b4610aac565b73ffffffffffffffffffffffffffffffffffffffff16146105d3575f80fd5b5f6105dd30610803565b90505f811180156105fa5750601360159054906101000a900460ff165b156106095761060881611595565b5b5f4790505f81111561061f5761061e81611800565b5b5050565b61062b610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ae90611f61565b60405180910390fd5b6001601360156101000a81548160ff021916908315150217905550565b6106dc610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610768576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075f90611f61565b60405180910390fd5b6009600a6107769190611e8c565b633b9aca006107859190611ed6565b600e819055506009600a6107999190611e8c565b633b9aca006107a89190611ed6565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6107dd9190611e8c565b633b9aca006107ec9190611ed6565b6040516107f99190611c02565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610851610aac565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d490611f61565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f4b4d415255000000000000000000000000000000000000000000000000000000815250905090565b5f610a1a610a13610aac565b8484610c76565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890611fef565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061207d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c699190611c02565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdb9061210b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990612199565b60405180910390fd5b5f8111610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b90612227565b60405180910390fd5b5f610d9d61099d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610e0b5750610ddb61099d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610e64575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561128357610ea56064610e97600a54600d5411610e8457600654610e88565b6008545b8561186890919063ffffffff16565b6118df90919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610f50575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015610fa3575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561105d57600e54821115610fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe49061228f565b60405180910390fd5b600f5482610ffa85610803565b61100491906122ad565b1115611045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103c9061232a565b60405180910390fd5b600d5f81548092919061105790612348565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156110e557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611129576111266064611118600b54600d541161110557600754611109565b6009545b8561186890919063ffffffff16565b6118df90919063ffffffff16565b90505b5f61113330610803565b9050601360149054906101000a900460ff1615801561119e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156111b65750601360159054906101000a900460ff165b80156111c3575060105481115b80156111d25750600c54600d54115b15611281576015544311156111e9575f6014819055505b60036014541061122e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611225906123d9565b60405180910390fd5b61124b6112468461124184601154611928565b611928565b611595565b5f4790505f8111156112615761126047611800565b5b60145f81548092919061127390612348565b919050555043601581905550505b505b5f811115611382576112db8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461194090919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516113799190611c02565b60405180910390a35b6113d28260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461199d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611475611429828461199d90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461194090919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611518848661199d90919063ffffffff16565b6040516115259190611c02565b60405180910390a350505050565b5f83831115829061157a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115719190611ad1565b60405180910390fd5b505f838561158891906123f7565b9050809150509392505050565b6001601360146101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115cc576115cb61242a565b5b6040519080825280602002602001820160405280156115fa5781602001602082028036833780820191505090505b50905030815f8151811061161157611610612457565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116d99190612498565b816001815181106116ed576116ec612457565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506117533060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610ab3565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016117b59594939291906125bc565b5f604051808303815f87803b1580156117cc575f80fd5b505af11580156117de573d5f803e3d5ffd5b50505050505f601360146101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611864573d5f803e3d5ffd5b5050565b5f808303611878575f90506118d9565b5f82846118859190611ed6565b90508284826118949190612641565b146118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb906126e1565b60405180910390fd5b809150505b92915050565b5f61192083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119e6565b905092915050565b5f8183116119365782611938565b815b905092915050565b5f80828461194e91906122ad565b905083811015611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90612749565b60405180910390fd5b8091505092915050565b5f6119de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611533565b905092915050565b5f8083118290611a2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a239190611ad1565b60405180910390fd5b505f8385611a3a9190612641565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611a7e578082015181840152602081019050611a63565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611aa382611a47565b611aad8185611a51565b9350611abd818560208601611a61565b611ac681611a89565b840191505092915050565b5f6020820190508181035f830152611ae98184611a99565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611b1e82611af5565b9050919050565b611b2e81611b14565b8114611b38575f80fd5b50565b5f81359050611b4981611b25565b92915050565b5f819050919050565b611b6181611b4f565b8114611b6b575f80fd5b50565b5f81359050611b7c81611b58565b92915050565b5f8060408385031215611b9857611b97611af1565b5b5f611ba585828601611b3b565b9250506020611bb685828601611b6e565b9150509250929050565b5f8115159050919050565b611bd481611bc0565b82525050565b5f602082019050611bed5f830184611bcb565b92915050565b611bfc81611b4f565b82525050565b5f602082019050611c155f830184611bf3565b92915050565b5f805f60608486031215611c3257611c31611af1565b5b5f611c3f86828701611b3b565b9350506020611c5086828701611b3b565b9250506040611c6186828701611b6e565b9150509250925092565b5f60ff82169050919050565b611c8081611c6b565b82525050565b5f602082019050611c995f830184611c77565b92915050565b5f60208284031215611cb457611cb3611af1565b5b5f611cc184828501611b3b565b91505092915050565b611cd381611b14565b82525050565b5f602082019050611cec5f830184611cca565b92915050565b5f8060408385031215611d0857611d07611af1565b5b5f611d1585828601611b3b565b9250506020611d2685828601611b3b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611db257808604811115611d8e57611d8d611d30565b5b6001851615611d9d5780820291505b8081029050611dab85611d5d565b9450611d72565b94509492505050565b5f82611dca5760019050611e85565b81611dd7575f9050611e85565b8160018114611ded5760028114611df757611e26565b6001915050611e85565b60ff841115611e0957611e08611d30565b5b8360020a915084821115611e2057611e1f611d30565b5b50611e85565b5060208310610133831016604e8410600b8410161715611e5b5782820a905083811115611e5657611e55611d30565b5b611e85565b611e688484846001611d69565b92509050818404811115611e7f57611e7e611d30565b5b81810290505b9392505050565b5f611e9682611b4f565b9150611ea183611c6b565b9250611ece7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611dbb565b905092915050565b5f611ee082611b4f565b9150611eeb83611b4f565b9250828202611ef981611b4f565b91508282048414831517611f1057611f0f611d30565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611f4b602083611a51565b9150611f5682611f17565b602082019050919050565b5f6020820190508181035f830152611f7881611f3f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611fd9602483611a51565b9150611fe482611f7f565b604082019050919050565b5f6020820190508181035f83015261200681611fcd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612067602283611a51565b91506120728261200d565b604082019050919050565b5f6020820190508181035f8301526120948161205b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6120f5602583611a51565b91506121008261209b565b604082019050919050565b5f6020820190508181035f830152612122816120e9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612183602383611a51565b915061218e82612129565b604082019050919050565b5f6020820190508181035f8301526121b081612177565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612211602983611a51565b915061221c826121b7565b604082019050919050565b5f6020820190508181035f83015261223e81612205565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612279601983611a51565b915061228482612245565b602082019050919050565b5f6020820190508181035f8301526122a68161226d565b9050919050565b5f6122b782611b4f565b91506122c283611b4f565b92508282019050808211156122da576122d9611d30565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612314601a83611a51565b915061231f826122e0565b602082019050919050565b5f6020820190508181035f83015261234181612308565b9050919050565b5f61235282611b4f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361238457612383611d30565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6123c3601783611a51565b91506123ce8261238f565b602082019050919050565b5f6020820190508181035f8301526123f0816123b7565b9050919050565b5f61240182611b4f565b915061240c83611b4f565b925082820390508181111561242457612423611d30565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061249281611b25565b92915050565b5f602082840312156124ad576124ac611af1565b5b5f6124ba84828501612484565b91505092915050565b5f819050919050565b5f819050919050565b5f6124ef6124ea6124e5846124c3565b6124cc565b611b4f565b9050919050565b6124ff816124d5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61253781611b14565b82525050565b5f612548838361252e565b60208301905092915050565b5f602082019050919050565b5f61256a82612505565b612574818561250f565b935061257f8361251f565b805f5b838110156125af578151612596888261253d565b97506125a183612554565b925050600181019050612582565b5085935050505092915050565b5f60a0820190506125cf5f830188611bf3565b6125dc60208301876124f6565b81810360408301526125ee8186612560565b90506125fd6060830185611cca565b61260a6080830184611bf3565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61264b82611b4f565b915061265683611b4f565b92508261266657612665612614565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126cb602183611a51565b91506126d682612671565b604082019050919050565b5f6020820190508181035f8301526126f8816126bf565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612733601b83611a51565b915061273e826126ff565b602082019050919050565b5f6020820190508181035f83015261276081612727565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f77258d24a2a29814581e9bf67d6d728a1ad4bd48615f9c0bc0803b7f42cde8864736f6c63430008170033

Deployed Bytecode Sourcemap

3522:7077:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5412:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6245:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4681:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5689:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6414:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5598:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10233:363;;;;;;;;;;;;;:::i;:::-;;10107:81;;;;;;;;;;;;;:::i;:::-;;9841:158;;;;;;;;;;;;;:::i;:::-;;5792:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2603:148;;;;;;;;;;;;;:::i;:::-;;4494:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2389:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4555:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5503:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5919:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4618:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6094:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5412:83;5449:13;5482:5;;;;;;;;;;;;;;;;;5475:12;;5412:83;:::o;6245:161::-;6320:4;6337:39;6346:12;:10;:12::i;:::-;6360:7;6369:6;6337:8;:39::i;:::-;6394:4;6387:11;;6245:161;;;;:::o;4681:52::-;;;;:::o;5689:95::-;5742:7;4301:1;4357:2;:13;;;;:::i;:::-;4344:10;:26;;;;:::i;:::-;5762:14;;5689:95;:::o;6414:313::-;6512:4;6529:36;6539:6;6547:9;6558:6;6529:9;:36::i;:::-;6576:121;6585:6;6593:12;:10;:12::i;:::-;6607:89;6645:6;6607:89;;;;;;;;;;;;;;;;;:11;:19;6619:6;6607:19;;;;;;;;;;;;;;;:33;6627:12;:10;:12::i;:::-;6607:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6576:8;:121::i;:::-;6715:4;6708:11;;6414:313;;;;;:::o;5598:83::-;5639:5;4301:1;5657:16;;5598:83;:::o;10233:363::-;10297:10;;;;;;;;;;;10283:24;;:12;:10;:12::i;:::-;:24;;;10275:33;;;;;;10319:20;10340:24;10358:4;10340:9;:24::i;:::-;10319:45;;10391:1;10378:12;:14;:29;;;;;10396:11;;;;;;;;;;;10378:29;10375:88;;;10421:30;10438:12;10421:16;:30::i;:::-;10375:88;10473:18;10492:21;10473:40;;10538:1;10527:10;:12;10524:65;;;10553:24;10566:10;10553:12;:24::i;:::-;10524:65;10264:332;;10233:363::o;10107:81::-;2526:12;:10;:12::i;:::-;2516:22;;:6;;;;;;;;;;:22;;;2508:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10176:4:::1;10162:11;;:18;;;;;;;;;;;;;;;;;;10107:81::o:0;9841:158::-;2526:12;:10;:12::i;:::-;2516:22;;:6;;;;;;;;;;:22;;;2508:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4301:1:::1;4357:2;:13;;;;:::i;:::-;4344:10;:26;;;;:::i;:::-;9893:12;:22;;;;4301:1;4357:2;:13;;;;:::i;:::-;4344:10;:26;;;;:::i;:::-;9926:14;:22;;;;9964:27;4301:1;4357:2;:13;;;;:::i;:::-;4344:10;:26;;;;:::i;:::-;9964:27;;;;;;:::i;:::-;;;;;;;;9841:158::o:0;5792:119::-;5858:7;5885:9;:18;5895:7;5885:18;;;;;;;;;;;;;;;;5878:25;;5792:119;;;:::o;2603:148::-;2526:12;:10;:12::i;:::-;2516:22;;:6;;;;;;;;;;:22;;;2508:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2710:1:::1;2673:40;;2694:6;::::0;::::1;;;;;;;;2673:40;;;;;;;;;;;;2741:1;2724:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2603:148::o:0;4494:54::-;;;;:::o;2389:79::-;2427:7;2454:6;;;;;;;;;;;2447:13;;2389:79;:::o;4555:56::-;;;;:::o;5503:87::-;5542:13;5575:7;;;;;;;;;;;;;;;;;5568:14;;5503:87;:::o;5919:167::-;5997:4;6014:42;6024:12;:10;:12::i;:::-;6038:9;6049:6;6014:9;:42::i;:::-;6074:4;6067:11;;5919:167;;;;:::o;4618:56::-;;;;:::o;6094:143::-;6175:7;6202:11;:18;6214:5;6202:18;;;;;;;;;;;;;;;:27;6221:7;6202:27;;;;;;;;;;;;;;;;6195:34;;6094:143;;;;:::o;144:98::-;197:7;224:10;217:17;;144:98;:::o;6735:335::-;6845:1;6828:19;;:5;:19;;;6820:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6926:1;6907:21;;:7;:21;;;6899:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7008:6;6978:11;:18;6990:5;6978:18;;;;;;;;;;;;;;;:27;6997:7;6978:27;;;;;;;;;;;;;;;:36;;;;7046:7;7030:32;;7039:5;7030:32;;;7055:6;7030:32;;;;;;:::i;:::-;;;;;;;;6735:335;;;:::o;7078:2156::-;7182:1;7166:18;;:4;:18;;;7158:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7259:1;7245:16;;:2;:16;;;7237:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7329:1;7320:6;:10;7312:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7387:17;7431:7;:5;:7::i;:::-;7423:15;;:4;:15;;;;:32;;;;;7448:7;:5;:7::i;:::-;7442:13;;:2;:13;;;;7423:32;:52;;;;;7465:10;;;;;;;;;;;7459:16;;:2;:16;;;;7423:52;7419:1459;;;7506:76;7578:3;7506:67;7528:15;;7518:9;;:25;7517:55;;7558:14;;7517:55;;;7545:12;;7517:55;7506:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7494:88;;7611:13;;;;;;;;;;;7603:21;;:4;:21;;;:55;;;;;7642:15;;;;;;;;;;;7628:30;;:2;:30;;;;7603:55;:83;;;;;7664:18;:22;7683:2;7664:22;;;;;;;;;;;;;;;;;;;;;;;;;7662:24;7603:83;7599:313;;;7726:12;;7716:6;:22;;7708:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7821:14;;7811:6;7795:13;7805:2;7795:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7787:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7885:9;;:11;;;;;;;;;:::i;:::-;;;;;;7599:313;7937:13;;;;;;;;;;;7931:19;;:2;:19;;;:43;;;;;7969:4;7954:20;;:4;:20;;;;7931:43;7928:174;;;8007:79;8082:3;8007:70;8029:16;;8019:9;;:26;8018:58;;8061:15;;8018:58;;;8047:13;;8018:58;8007:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;7995:91;;7928:174;8118:28;8149:24;8167:4;8149:9;:24::i;:::-;8118:55;;8193:6;;;;;;;;;;;8192:7;:30;;;;;8209:13;;;;;;;;;;;8203:19;;:2;:19;;;8192:30;:45;;;;;8226:11;;;;;;;;;;;8192:45;:89;;;;;8264:17;;8241:20;:40;8192:89;:123;;;;;8297:18;;8285:9;;:30;8192:123;8188:679;;;8355:13;;8340:12;:28;8336:90;;;8405:1;8393:9;:13;;;;8336:90;8464:1;8452:9;;:13;8444:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8512:69;8529:51;8533:6;8541:38;8545:20;8567:11;;8541:3;:38::i;:::-;8529:3;:51::i;:::-;8512:16;:69::i;:::-;8600:26;8629:21;8600:50;;8694:1;8673:18;:22;8669:106;;;8720:35;8733:21;8720:12;:35::i;:::-;8669:106;8793:9;;:11;;;;;;;;;:::i;:::-;;;;;;8839:12;8823:13;:28;;;;8317:550;8188:679;7477:1401;7419:1459;8903:1;8893:9;:11;8890:161;;;8943:39;8972:9;8943;:24;8961:4;8943:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8918:9;:24;8936:4;8918:24;;;;;;;;;;;;;;;:64;;;;9023:4;9000:39;;9009:4;9000:39;;;9029:9;9000:39;;;;;;:::i;:::-;;;;;;;;8890:161;9077:27;9097:6;9077:9;:15;9087:4;9077:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9061:9;:15;9071:4;9061:15;;;;;;;;;;;;;;;:43;;;;9129:40;9147:21;9158:9;9147:6;:10;;:21;;;;:::i;:::-;9129:9;:13;9139:2;9129:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9115:9;:13;9125:2;9115:13;;;;;;;;;;;;;;;:54;;;;9200:2;9185:41;;9194:4;9185:41;;;9204:21;9215:9;9204:6;:10;;:21;;;;:::i;:::-;9185:41;;;;;;:::i;:::-;;;;;;;;7147:2087;7078:2156;;;:::o;1281:190::-;1367:7;1400:1;1395;:6;;1403:12;1387:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1427:9;1443:1;1439;:5;;;;:::i;:::-;1427:17;;1462:1;1455:8;;;1281:190;;;;;:::o;9350:483::-;5073:4;5064:6;;:13;;;;;;;;;;;;;;;;;;9428:21:::1;9466:1;9452:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9428:40;;9497:4;9479;9484:1;9479:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9523:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9513:4;9518:1;9513:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9556:62;9573:4;9588:15;;;;;;;;;;;9606:11;9556:8;:62::i;:::-;9629:15;;;;;;;;;;;:66;;;9710:11;9736:1;9752:4;9779;9799:15;9629:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9417:416;5109:5:::0;5100:6;;:14;;;;;;;;;;;;;;;;;;9350:483;:::o;10007:92::-;10064:10;;;;;;;;;;;:19;;:27;10084:6;10064:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10007:92;:::o;1479:246::-;1537:7;1566:1;1561;:6;1557:47;;1591:1;1584:8;;;;1557:47;1614:9;1630:1;1626;:5;;;;:::i;:::-;1614:17;;1659:1;1654;1650;:5;;;;:::i;:::-;:10;1642:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1716:1;1709:8;;;1479:246;;;;;:::o;1733:132::-;1791:7;1818:39;1822:1;1825;1818:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1811:46;;1733:132;;;;:::o;9244:98::-;9301:7;9328:1;9326;:3;9325:9;;9333:1;9325:9;;;9331:1;9325:9;9318:16;;9244:98;;;;:::o;950:179::-;1008:7;1028:9;1044:1;1040;:5;;;;:::i;:::-;1028:17;;1069:1;1064;:6;;1056:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1120:1;1113:8;;;950:179;;;;:::o;1137:136::-;1195:7;1222:43;1226:1;1229;1222:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1215:50;;1137:136;;;;:::o;1873:189::-;1959:7;1991:1;1987;:5;1994:12;1979:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2018:9;2034:1;2030;:5;;;;:::i;:::-;2018:17;;2053:1;2046:8;;;1873:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:223::-;10075:34;10071:1;10063:6;10059:14;10052:58;10144:6;10139:2;10131:6;10127:15;10120:31;9935:223;:::o;10164:366::-;10306:3;10327:67;10391:2;10386:3;10327:67;:::i;:::-;10320:74;;10403:93;10492:3;10403:93;:::i;:::-;10521:2;10516:3;10512:12;10505:19;;10164:366;;;:::o;10536:419::-;10702:4;10740:2;10729:9;10725:18;10717:26;;10789:9;10783:4;10779:20;10775:1;10764:9;10760:17;10753:47;10817:131;10943:4;10817:131;:::i;:::-;10809:139;;10536:419;;;:::o;10961:221::-;11101:34;11097:1;11089:6;11085:14;11078:58;11170:4;11165:2;11157:6;11153:15;11146:29;10961:221;:::o;11188:366::-;11330:3;11351:67;11415:2;11410:3;11351:67;:::i;:::-;11344:74;;11427:93;11516:3;11427:93;:::i;:::-;11545:2;11540:3;11536:12;11529:19;;11188:366;;;:::o;11560:419::-;11726:4;11764:2;11753:9;11749:18;11741:26;;11813:9;11807:4;11803:20;11799:1;11788:9;11784:17;11777:47;11841:131;11967:4;11841:131;:::i;:::-;11833:139;;11560:419;;;:::o;11985:224::-;12125:34;12121:1;12113:6;12109:14;12102:58;12194:7;12189:2;12181:6;12177:15;12170:32;11985:224;:::o;12215:366::-;12357:3;12378:67;12442:2;12437:3;12378:67;:::i;:::-;12371:74;;12454:93;12543:3;12454:93;:::i;:::-;12572:2;12567:3;12563:12;12556:19;;12215:366;;;:::o;12587:419::-;12753:4;12791:2;12780:9;12776:18;12768:26;;12840:9;12834:4;12830:20;12826:1;12815:9;12811:17;12804:47;12868:131;12994:4;12868:131;:::i;:::-;12860:139;;12587:419;;;:::o;13012:222::-;13152:34;13148:1;13140:6;13136:14;13129:58;13221:5;13216:2;13208:6;13204:15;13197:30;13012:222;:::o;13240:366::-;13382:3;13403:67;13467:2;13462:3;13403:67;:::i;:::-;13396:74;;13479:93;13568:3;13479:93;:::i;:::-;13597:2;13592:3;13588:12;13581:19;;13240:366;;;:::o;13612:419::-;13778:4;13816:2;13805:9;13801:18;13793:26;;13865:9;13859:4;13855:20;13851:1;13840:9;13836:17;13829:47;13893:131;14019:4;13893:131;:::i;:::-;13885:139;;13612:419;;;:::o;14037:228::-;14177:34;14173:1;14165:6;14161:14;14154:58;14246:11;14241:2;14233:6;14229:15;14222:36;14037:228;:::o;14271:366::-;14413:3;14434:67;14498:2;14493:3;14434:67;:::i;:::-;14427:74;;14510:93;14599:3;14510:93;:::i;:::-;14628:2;14623:3;14619:12;14612:19;;14271:366;;;:::o;14643:419::-;14809:4;14847:2;14836:9;14832:18;14824:26;;14896:9;14890:4;14886:20;14882:1;14871:9;14867:17;14860:47;14924:131;15050:4;14924:131;:::i;:::-;14916:139;;14643:419;;;:::o;15068:175::-;15208:27;15204:1;15196:6;15192:14;15185:51;15068:175;:::o;15249:366::-;15391:3;15412:67;15476:2;15471:3;15412:67;:::i;:::-;15405:74;;15488:93;15577:3;15488:93;:::i;:::-;15606:2;15601:3;15597:12;15590:19;;15249:366;;;:::o;15621:419::-;15787:4;15825:2;15814:9;15810:18;15802:26;;15874:9;15868:4;15864:20;15860:1;15849:9;15845:17;15838:47;15902:131;16028:4;15902:131;:::i;:::-;15894:139;;15621:419;;;:::o;16046:191::-;16086:3;16105:20;16123:1;16105:20;:::i;:::-;16100:25;;16139:20;16157:1;16139:20;:::i;:::-;16134:25;;16182:1;16179;16175:9;16168:16;;16203:3;16200:1;16197:10;16194:36;;;16210:18;;:::i;:::-;16194:36;16046:191;;;;:::o;16243:176::-;16383:28;16379:1;16371:6;16367:14;16360:52;16243:176;:::o;16425:366::-;16567:3;16588:67;16652:2;16647:3;16588:67;:::i;:::-;16581:74;;16664:93;16753:3;16664:93;:::i;:::-;16782:2;16777:3;16773:12;16766:19;;16425:366;;;:::o;16797:419::-;16963:4;17001:2;16990:9;16986:18;16978:26;;17050:9;17044:4;17040:20;17036:1;17025:9;17021:17;17014:47;17078:131;17204:4;17078:131;:::i;:::-;17070:139;;16797:419;;;:::o;17222:233::-;17261:3;17284:24;17302:5;17284:24;:::i;:::-;17275:33;;17330:66;17323:5;17320:77;17317:103;;17400:18;;:::i;:::-;17317:103;17447:1;17440:5;17436:13;17429:20;;17222:233;;;:::o;17461:173::-;17601:25;17597:1;17589:6;17585:14;17578:49;17461:173;:::o;17640:366::-;17782:3;17803:67;17867:2;17862:3;17803:67;:::i;:::-;17796:74;;17879:93;17968:3;17879:93;:::i;:::-;17997:2;17992:3;17988:12;17981:19;;17640:366;;;:::o;18012:419::-;18178:4;18216:2;18205:9;18201:18;18193:26;;18265:9;18259:4;18255:20;18251:1;18240:9;18236:17;18229:47;18293:131;18419:4;18293:131;:::i;:::-;18285:139;;18012:419;;;:::o;18437:194::-;18477:4;18497:20;18515:1;18497:20;:::i;:::-;18492:25;;18531:20;18549:1;18531:20;:::i;:::-;18526:25;;18575:1;18572;18568:9;18560:17;;18599:1;18593:4;18590:11;18587:37;;;18604:18;;:::i;:::-;18587:37;18437:194;;;;:::o;18637:180::-;18685:77;18682:1;18675:88;18782:4;18779:1;18772:15;18806:4;18803:1;18796:15;18823:180;18871:77;18868:1;18861:88;18968:4;18965:1;18958:15;18992:4;18989:1;18982:15;19009:143;19066:5;19097:6;19091:13;19082:22;;19113:33;19140:5;19113:33;:::i;:::-;19009:143;;;;:::o;19158:351::-;19228:6;19277:2;19265:9;19256:7;19252:23;19248:32;19245:119;;;19283:79;;:::i;:::-;19245:119;19403:1;19428:64;19484:7;19475:6;19464:9;19460:22;19428:64;:::i;:::-;19418:74;;19374:128;19158:351;;;;:::o;19515:85::-;19560:7;19589:5;19578:16;;19515:85;;;:::o;19606:60::-;19634:3;19655:5;19648:12;;19606:60;;;:::o;19672:158::-;19730:9;19763:61;19781:42;19790:32;19816:5;19790:32;:::i;:::-;19781:42;:::i;:::-;19763:61;:::i;:::-;19750:74;;19672:158;;;:::o;19836:147::-;19931:45;19970:5;19931:45;:::i;:::-;19926:3;19919:58;19836:147;;:::o;19989:114::-;20056:6;20090:5;20084:12;20074:22;;19989:114;;;:::o;20109:184::-;20208:11;20242:6;20237:3;20230:19;20282:4;20277:3;20273:14;20258:29;;20109:184;;;;:::o;20299:132::-;20366:4;20389:3;20381:11;;20419:4;20414:3;20410:14;20402:22;;20299:132;;;:::o;20437:108::-;20514:24;20532:5;20514:24;:::i;:::-;20509:3;20502:37;20437:108;;:::o;20551:179::-;20620:10;20641:46;20683:3;20675:6;20641:46;:::i;:::-;20719:4;20714:3;20710:14;20696:28;;20551:179;;;;:::o;20736:113::-;20806:4;20838;20833:3;20829:14;20821:22;;20736:113;;;:::o;20885:732::-;21004:3;21033:54;21081:5;21033:54;:::i;:::-;21103:86;21182:6;21177:3;21103:86;:::i;:::-;21096:93;;21213:56;21263:5;21213:56;:::i;:::-;21292:7;21323:1;21308:284;21333:6;21330:1;21327:13;21308:284;;;21409:6;21403:13;21436:63;21495:3;21480:13;21436:63;:::i;:::-;21429:70;;21522:60;21575:6;21522:60;:::i;:::-;21512:70;;21368:224;21355:1;21352;21348:9;21343:14;;21308:284;;;21312:14;21608:3;21601:10;;21009:608;;;20885:732;;;;:::o;21623:831::-;21886:4;21924:3;21913:9;21909:19;21901:27;;21938:71;22006:1;21995:9;21991:17;21982:6;21938:71;:::i;:::-;22019:80;22095:2;22084:9;22080:18;22071:6;22019:80;:::i;:::-;22146:9;22140:4;22136:20;22131:2;22120:9;22116:18;22109:48;22174:108;22277:4;22268:6;22174:108;:::i;:::-;22166:116;;22292:72;22360:2;22349:9;22345:18;22336:6;22292:72;:::i;:::-;22374:73;22442:3;22431:9;22427:19;22418:6;22374:73;:::i;:::-;21623:831;;;;;;;;:::o;22460:180::-;22508:77;22505:1;22498:88;22605:4;22602:1;22595:15;22629:4;22626:1;22619:15;22646:185;22686:1;22703:20;22721:1;22703:20;:::i;:::-;22698:25;;22737:20;22755:1;22737:20;:::i;:::-;22732:25;;22776:1;22766:35;;22781:18;;:::i;:::-;22766:35;22823:1;22820;22816:9;22811:14;;22646:185;;;;:::o;22837:220::-;22977:34;22973:1;22965:6;22961:14;22954:58;23046:3;23041:2;23033:6;23029:15;23022:28;22837:220;:::o;23063:366::-;23205:3;23226:67;23290:2;23285:3;23226:67;:::i;:::-;23219:74;;23302:93;23391:3;23302:93;:::i;:::-;23420:2;23415:3;23411:12;23404:19;;23063:366;;;:::o;23435:419::-;23601:4;23639:2;23628:9;23624:18;23616:26;;23688:9;23682:4;23678:20;23674:1;23663:9;23659:17;23652:47;23716:131;23842:4;23716:131;:::i;:::-;23708:139;;23435:419;;;:::o;23860:177::-;24000:29;23996:1;23988:6;23984:14;23977:53;23860:177;:::o;24043:366::-;24185:3;24206:67;24270:2;24265:3;24206:67;:::i;:::-;24199:74;;24282:93;24371:3;24282:93;:::i;:::-;24400:2;24395:3;24391:12;24384:19;;24043:366;;;:::o;24415:419::-;24581:4;24619:2;24608:9;24604:18;24596:26;;24668:9;24662:4;24658:20;24654:1;24643:9;24639:17;24632:47;24696:131;24822:4;24696:131;:::i;:::-;24688:139;;24415:419;;;:::o

Swarm Source

ipfs://f77258d24a2a29814581e9bf67d6d728a1ad4bd48615f9c0bc0803b7f42cde88
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.