ETH Price: $3,230.79 (-3.11%)

Token

kaito (KAITO)
 

Overview

Max Total Supply

420,000,000 KAITO

Holders

193

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 KAITO

Value
$0.00
0x3fde2d64e500cc61a4927a41098bc71dde0bd1b1
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:
FatherOfNeiro

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
shanghai EvmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*


    ░█░▄░█▀▀▄░░▀░░▀█▀░▄▀▀▄
    ░█▀▄░█▄▄█░░█▀░░█░░█░░█
    ░▀░▀░▀░░▀░▀▀▀░░▀░░░▀▀░
    
    A Shiba Inu from a traditional Japanese village, Father of Neiro.

    Twitter: https://x.com/Kaitothefather
    Website: https://www.kaitocoin.vip
    Telegram: https://t.me/KaitoCoin_Entry

*/

pragma solidity 0.8.26;

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 FatherOfNeiro 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;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=20; 
    uint256 private _transferTax=80;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420000000 * 10**_decimals;
    string private constant _name = unicode"kaito";
    string private constant _symbol = unicode"KAITO";
    uint256 public _maxTxAmount = 8400000 * 10**_decimals;
    uint256 public _maxWalletSize = 8400000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 8400000 * 10**_decimals;
    uint256 public _maxTaxSwap= 8400000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

    function totalSupply() public 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()) {
            if(_buyCount==0){
                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.");
                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 < 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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addLiquidityEth() external payable onlyOwner {
        require(!tradingOpen, "Trading is already open.");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        IUniswapV2Factory uniswapV2Factory = IUniswapV2Factory(uniswapV2Router.factory());
        uniswapV2Pair = uniswapV2Factory.createPair(address(this), uniswapV2Router.WETH());
        _isExcludedFromFee[address(uniswapV2Pair)] = true;
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{ value: msg.value }(
            address(this),
            totalSupply(),
            0,
            0,
            owner(),
            block.timestamp
        );
        tradingOpen = true;
        swapEnabled = 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

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"},{"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":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","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":"pure","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":"removeTransferTax","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"}]

6080604052601460055560146006555f6007555f60085560146009556014600a556014600b556050600c555f600d556009600a61003c919061059a565b62802c8061004a91906105e4565b600e556009600a61005b919061059a565b62802c8061006991906105e4565b600f556009600a61007a919061059a565b62802c8061008891906105e4565b6010556009600a610099919061059a565b62802c806100a791906105e4565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015553480156100f1575f80fd5b505f6101016103fb60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101ab6103fb60201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f8919061059a565b631908b10061020791906105e4565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025b61040260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d2919061059a565b631908b1006103e191906105e4565b6040516103ee9190610634565b60405180910390a361064d565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104ab5780860481111561048757610486610429565b5b60018516156104965780820291505b80810290506104a485610456565b945061046b565b94509492505050565b5f826104c3576001905061057e565b816104d0575f905061057e565b81600181146104e657600281146104f05761051f565b600191505061057e565b60ff84111561050257610501610429565b5b8360020a91508482111561051957610518610429565b5b5061057e565b5060208310610133831016604e8410600b84101617156105545782820a90508381111561054f5761054e610429565b5b61057e565b6105618484846001610462565b9250905081840481111561057857610577610429565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105a482610585565b91506105af8361058e565b92506105dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104b4565b905092915050565b5f6105ee82610585565b91506105f983610585565b925082820261060781610585565b9150828204841483151761061e5761061d610429565b5b5092915050565b61062e81610585565b82525050565b5f6020820190506106475f830184610625565b92915050565b612e788061065a5f395ff3fe608060405260043610610122575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035557806395d89b411461037f578063a9059cbb146103a9578063bf474bed146103e5578063dd62ed3e1461040f57610129565b806370a0823114610299578063715018a6146102d5578063751039fc146102eb5780637d1db4a5146103015780638da5cb5b1461032b57610129565b806323b872dd116100e657806323b872dd146101fd57806324e3444314610239578063313ce5671461024357806351bc3c851461026d5780636fc3eaec1461028357610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161044b565b60405161014e9190612019565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120ca565b610488565b60405161018a9190612122565b60405180910390f35b34801561019e575f80fd5b506101a76104a5565b6040516101b4919061214a565b60405180910390f35b3480156101c8575f80fd5b506101d16104ab565b005b3480156101de575f80fd5b506101e761057f565b6040516101f4919061214a565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612163565b6105a2565b6040516102309190612122565b60405180910390f35b610241610676565b005b34801561024e575f80fd5b50610257610b1f565b60405161026491906121ce565b60405180910390f35b348015610278575f80fd5b50610281610b27565b005b34801561028e575f80fd5b50610297610bbe565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba91906121e7565b610c2d565b6040516102cc919061214a565b60405180910390f35b3480156102e0575f80fd5b506102e9610c73565b005b3480156102f6575f80fd5b506102ff610dc1565b005b34801561030c575f80fd5b50610315610ef0565b604051610322919061214a565b60405180910390f35b348015610336575f80fd5b5061033f610ef6565b60405161034c9190612221565b60405180910390f35b348015610360575f80fd5b50610369610f1d565b604051610376919061214a565b60405180910390f35b34801561038a575f80fd5b50610393610f23565b6040516103a09190612019565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca91906120ca565b610f60565b6040516103dc9190612122565b60405180910390f35b3480156103f0575f80fd5b506103f9610f7d565b604051610406919061214a565b60405180910390f35b34801561041a575f80fd5b506104356004803603810190610430919061223a565b610f83565b604051610442919061214a565b60405180910390f35b60606040518060400160405280600581526020017f6b6169746f000000000000000000000000000000000000000000000000000000815250905090565b5f61049b610494611005565b848461100c565b6001905092915050565b60115481565b6104b3611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610536906122c2565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105759190612322565b60405180910390a1565b5f6009600a61058e9190612497565b631908b10061059d91906124e1565b905090565b5f6105ae8484846111cf565b61066b846105ba611005565b61066685604051806060016040528060288152602001612e1b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061d611005565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a7b9092919063ffffffff16565b61100c565b600190509392505050565b61067e611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610701906122c2565b60405180910390fd5b601360149054906101000a900460ff161561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107519061256c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d919061259e565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ea919061259e565b6040518363ffffffff1660e01b81526004016109079291906125c9565b6020604051808303815f875af1158015610923573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610947919061259e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610a2f3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a2a61057f565b61100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a7661057f565b5f80610a80610ef6565b426040518863ffffffff1660e01b8152600401610aa2969594939291906125f0565b60606040518083038185885af1158015610abe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ae39190612663565b5050506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611005565b73ffffffffffffffffffffffffffffffffffffffff1614610b86575f80fd5b5f610b9030610c2d565b90505f811115610ba457610ba381611add565b5b5f4790505f811115610bba57610bb981611d48565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfe611005565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d575f80fd5b5f479050610c2a81611d48565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7b611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906122c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc9611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906122c2565b60405180910390fd5b6009600a610e639190612497565b631908b100610e7291906124e1565b600e819055506009600a610e869190612497565b631908b100610e9591906124e1565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610eca9190612497565b631908b100610ed991906124e1565b604051610ee6919061214a565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f4b4149544f000000000000000000000000000000000000000000000000000000815250905090565b5f610f73610f6c611005565b84846111cf565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906127b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c2919061214a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061283f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906128cd565b60405180910390fd5b5f81116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061295b565b60405180910390fd5b5f6112f6610ef6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113645750611334610ef6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117cb575f600d54036113b1576113ae60646113a0600954600d541161138d57600554611391565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ad575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115a557600e548211156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee906129c3565b60405180910390fd5b600f548261150485610c2d565b61150e91906129e1565b111561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612a5e565b60405180910390fd5b61158b606461157d600954600d541161156a5760055461156e565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b9050600d5f81548092919061159f90612a7c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116715761166e6064611660600a54600d541161164d57600654611651565b6008545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b5f61167b30610c2d565b9050601360159054906101000a900460ff161580156116e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116fe5750601360169054906101000a900460ff165b801561170b575060105481115b801561171a5750600b54600d54115b156117c957601554431115611731575f6014819055505b600360145410611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90612b0d565b60405180910390fd5b61179361178e8461178984601154611e70565b611e70565b611add565b5f4790505f8111156117a9576117a847611d48565b5b60145f8154809291906117bb90612a7c565b919050555043601581905550505b505b5f8111156118ca576118238160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c1919061214a565b60405180910390a35b61191a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bd6119718284611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a608486611ee590919063ffffffff16565b604051611a6d919061214a565b60405180910390a350505050565b5f838311158290611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99190612019565b60405180910390fd5b505f8385611ad09190612b2b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b1457611b13612b5e565b5b604051908082528060200260200182016040528015611b425781602001602082028036833780820191505090505b50905030815f81518110611b5957611b58612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c21919061259e565b81600181518110611c3557611c34612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cfd959493929190612c6f565b5f604051808303815f87803b158015611d14575f80fd5b505af1158015611d26573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dac573d5f803e3d5ffd5b5050565b5f808303611dc0575f9050611e21565b5f8284611dcd91906124e1565b9050828482611ddc9190612cf4565b14611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390612d94565b60405180910390fd5b809150505b92915050565b5f611e6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2e565b905092915050565b5f818311611e7e5782611e80565b815b905092915050565b5f808284611e9691906129e1565b905083811015611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290612dfc565b60405180910390fd5b8091505092915050565b5f611f2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7b565b905092915050565b5f8083118290611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b9190612019565b60405180910390fd5b505f8385611f829190612cf4565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fc6578082015181840152602081019050611fab565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611feb82611f8f565b611ff58185611f99565b9350612005818560208601611fa9565b61200e81611fd1565b840191505092915050565b5f6020820190508181035f8301526120318184611fe1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120668261203d565b9050919050565b6120768161205c565b8114612080575f80fd5b50565b5f813590506120918161206d565b92915050565b5f819050919050565b6120a981612097565b81146120b3575f80fd5b50565b5f813590506120c4816120a0565b92915050565b5f80604083850312156120e0576120df612039565b5b5f6120ed85828601612083565b92505060206120fe858286016120b6565b9150509250929050565b5f8115159050919050565b61211c81612108565b82525050565b5f6020820190506121355f830184612113565b92915050565b61214481612097565b82525050565b5f60208201905061215d5f83018461213b565b92915050565b5f805f6060848603121561217a57612179612039565b5b5f61218786828701612083565b935050602061219886828701612083565b92505060406121a9868287016120b6565b9150509250925092565b5f60ff82169050919050565b6121c8816121b3565b82525050565b5f6020820190506121e15f8301846121bf565b92915050565b5f602082840312156121fc576121fb612039565b5b5f61220984828501612083565b91505092915050565b61221b8161205c565b82525050565b5f6020820190506122345f830184612212565b92915050565b5f80604083850312156122505761224f612039565b5b5f61225d85828601612083565b925050602061226e85828601612083565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6122ac602083611f99565b91506122b782612278565b602082019050919050565b5f6020820190508181035f8301526122d9816122a0565b9050919050565b5f819050919050565b5f819050919050565b5f61230c612307612302846122e0565b6122e9565b612097565b9050919050565b61231c816122f2565b82525050565b5f6020820190506123355f830184612313565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123bd578086048111156123995761239861233b565b5b60018516156123a85780820291505b80810290506123b685612368565b945061237d565b94509492505050565b5f826123d55760019050612490565b816123e2575f9050612490565b81600181146123f8576002811461240257612431565b6001915050612490565b60ff8411156124145761241361233b565b5b8360020a91508482111561242b5761242a61233b565b5b50612490565b5060208310610133831016604e8410600b84101617156124665782820a9050838111156124615761246061233b565b5b612490565b6124738484846001612374565b9250905081840481111561248a5761248961233b565b5b81810290505b9392505050565b5f6124a182612097565b91506124ac836121b3565b92506124d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123c6565b905092915050565b5f6124eb82612097565b91506124f683612097565b925082820261250481612097565b9150828204841483151761251b5761251a61233b565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f612556601883611f99565b915061256182612522565b602082019050919050565b5f6020820190508181035f8301526125838161254a565b9050919050565b5f815190506125988161206d565b92915050565b5f602082840312156125b3576125b2612039565b5b5f6125c08482850161258a565b91505092915050565b5f6040820190506125dc5f830185612212565b6125e96020830184612212565b9392505050565b5f60c0820190506126035f830189612212565b612610602083018861213b565b61261d6040830187612313565b61262a6060830186612313565b6126376080830185612212565b61264460a083018461213b565b979650505050505050565b5f8151905061265d816120a0565b92915050565b5f805f6060848603121561267a57612679612039565b5b5f6126878682870161264f565b93505060206126988682870161264f565b92505060406126a98682870161264f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270d602483611f99565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611f99565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612829602583611f99565b9150612834826127cf565b604082019050919050565b5f6020820190508181035f8301526128568161281d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128b7602383611f99565b91506128c28261285d565b604082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612945602983611f99565b9150612950826128eb565b604082019050919050565b5f6020820190508181035f83015261297281612939565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6129ad601983611f99565b91506129b882612979565b602082019050919050565b5f6020820190508181035f8301526129da816129a1565b9050919050565b5f6129eb82612097565b91506129f683612097565b9250828201905080821115612a0e57612a0d61233b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a48601a83611f99565b9150612a5382612a14565b602082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b5f612a8682612097565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab857612ab761233b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612af7601783611f99565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f612b3582612097565b9150612b4083612097565b9250828203905081811115612b5857612b5761233b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bea8161205c565b82525050565b5f612bfb8383612be1565b60208301905092915050565b5f602082019050919050565b5f612c1d82612bb8565b612c278185612bc2565b9350612c3283612bd2565b805f5b83811015612c62578151612c498882612bf0565b9750612c5483612c07565b925050600181019050612c35565b5085935050505092915050565b5f60a082019050612c825f83018861213b565b612c8f6020830187612313565b8181036040830152612ca18186612c13565b9050612cb06060830185612212565b612cbd608083018461213b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cfe82612097565b9150612d0983612097565b925082612d1957612d18612cc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602183611f99565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de6601b83611f99565b9150612df182612db2565b602082019050919050565b5f6020820190508181035f830152612e1381612dda565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220180d5adf15a5f3670a3e1a7cabb6af93ef27c2e463220052d843d74af651d1a864736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610122575f3560e01c806370a082311161009f5780638f9a55c0116100635780638f9a55c01461035557806395d89b411461037f578063a9059cbb146103a9578063bf474bed146103e5578063dd62ed3e1461040f57610129565b806370a0823114610299578063715018a6146102d5578063751039fc146102eb5780637d1db4a5146103015780638da5cb5b1461032b57610129565b806323b872dd116100e657806323b872dd146101fd57806324e3444314610239578063313ce5671461024357806351bc3c851461026d5780636fc3eaec1461028357610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f14610193578063109daa99146101bd57806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b5061014161044b565b60405161014e9190612019565b60405180910390f35b348015610162575f80fd5b5061017d600480360381019061017891906120ca565b610488565b60405161018a9190612122565b60405180910390f35b34801561019e575f80fd5b506101a76104a5565b6040516101b4919061214a565b60405180910390f35b3480156101c8575f80fd5b506101d16104ab565b005b3480156101de575f80fd5b506101e761057f565b6040516101f4919061214a565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e9190612163565b6105a2565b6040516102309190612122565b60405180910390f35b610241610676565b005b34801561024e575f80fd5b50610257610b1f565b60405161026491906121ce565b60405180910390f35b348015610278575f80fd5b50610281610b27565b005b34801561028e575f80fd5b50610297610bbe565b005b3480156102a4575f80fd5b506102bf60048036038101906102ba91906121e7565b610c2d565b6040516102cc919061214a565b60405180910390f35b3480156102e0575f80fd5b506102e9610c73565b005b3480156102f6575f80fd5b506102ff610dc1565b005b34801561030c575f80fd5b50610315610ef0565b604051610322919061214a565b60405180910390f35b348015610336575f80fd5b5061033f610ef6565b60405161034c9190612221565b60405180910390f35b348015610360575f80fd5b50610369610f1d565b604051610376919061214a565b60405180910390f35b34801561038a575f80fd5b50610393610f23565b6040516103a09190612019565b60405180910390f35b3480156103b4575f80fd5b506103cf60048036038101906103ca91906120ca565b610f60565b6040516103dc9190612122565b60405180910390f35b3480156103f0575f80fd5b506103f9610f7d565b604051610406919061214a565b60405180910390f35b34801561041a575f80fd5b506104356004803603810190610430919061223a565b610f83565b604051610442919061214a565b60405180910390f35b60606040518060400160405280600581526020017f6b6169746f000000000000000000000000000000000000000000000000000000815250905090565b5f61049b610494611005565b848461100c565b6001905092915050565b60115481565b6104b3611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610536906122c2565b60405180910390fd5b5f600c819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516105759190612322565b60405180910390a1565b5f6009600a61058e9190612497565b631908b10061059d91906124e1565b905090565b5f6105ae8484846111cf565b61066b846105ba611005565b61066685604051806060016040528060288152602001612e1b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061d611005565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611a7b9092919063ffffffff16565b61100c565b600190509392505050565b61067e611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610701906122c2565b60405180910390fd5b601360149054906101000a900460ff161561075a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107519061256c565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610819573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061083d919061259e565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ea919061259e565b6040518363ffffffff1660e01b81526004016109079291906125c9565b6020604051808303815f875af1158015610923573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610947919061259e565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610a2f3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610a2a61057f565b61100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610a7661057f565b5f80610a80610ef6565b426040518863ffffffff1660e01b8152600401610aa2969594939291906125f0565b60606040518083038185885af1158015610abe573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ae39190612663565b5050506001601360146101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b67611005565b73ffffffffffffffffffffffffffffffffffffffff1614610b86575f80fd5b5f610b9030610c2d565b90505f811115610ba457610ba381611add565b5b5f4790505f811115610bba57610bb981611d48565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bfe611005565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d575f80fd5b5f479050610c2a81611d48565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c7b611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe906122c2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dc9611005565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c906122c2565b60405180910390fd5b6009600a610e639190612497565b631908b100610e7291906124e1565b600e819055506009600a610e869190612497565b631908b100610e9591906124e1565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610eca9190612497565b631908b100610ed991906124e1565b604051610ee6919061214a565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f4b4149544f000000000000000000000000000000000000000000000000000000815250905090565b5f610f73610f6c611005565b84846111cf565b6001905092915050565b60105481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107190612723565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110df906127b1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c2919061214a565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112349061283f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a2906128cd565b60405180910390fd5b5f81116112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061295b565b60405180910390fd5b5f6112f6610ef6565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113645750611334610ef6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117cb575f600d54036113b1576113ae60646113a0600954600d541161138d57600554611391565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561145a575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ad575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115a557600e548211156114f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ee906129c3565b60405180910390fd5b600f548261150485610c2d565b61150e91906129e1565b111561154f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154690612a5e565b60405180910390fd5b61158b606461157d600954600d541161156a5760055461156e565b6007545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b9050600d5f81548092919061159f90612a7c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116715761166e6064611660600a54600d541161164d57600654611651565b6008545b85611db090919063ffffffff16565b611e2790919063ffffffff16565b90505b5f61167b30610c2d565b9050601360159054906101000a900460ff161580156116e6575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156116fe5750601360169054906101000a900460ff165b801561170b575060105481115b801561171a5750600b54600d54115b156117c957601554431115611731575f6014819055505b600360145410611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90612b0d565b60405180910390fd5b61179361178e8461178984601154611e70565b611e70565b611add565b5f4790505f8111156117a9576117a847611d48565b5b60145f8154809291906117bb90612a7c565b919050555043601581905550505b505b5f8111156118ca576118238160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c1919061214a565b60405180910390a35b61191a8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119bd6119718284611ee590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e8890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a608486611ee590919063ffffffff16565b604051611a6d919061214a565b60405180910390a350505050565b5f838311158290611ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab99190612019565b60405180910390fd5b505f8385611ad09190612b2b565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b1457611b13612b5e565b5b604051908082528060200260200182016040528015611b425781602001602082028036833780820191505090505b50905030815f81518110611b5957611b58612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c21919061259e565b81600181518110611c3557611c34612b8b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c9b3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461100c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611cfd959493929190612c6f565b5f604051808303815f87803b158015611d14575f80fd5b505af1158015611d26573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611dac573d5f803e3d5ffd5b5050565b5f808303611dc0575f9050611e21565b5f8284611dcd91906124e1565b9050828482611ddc9190612cf4565b14611e1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1390612d94565b60405180910390fd5b809150505b92915050565b5f611e6883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f2e565b905092915050565b5f818311611e7e5782611e80565b815b905092915050565b5f808284611e9691906129e1565b905083811015611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290612dfc565b60405180910390fd5b8091505092915050565b5f611f2683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a7b565b905092915050565b5f8083118290611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b9190612019565b60405180910390fd5b505f8385611f829190612cf4565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611fc6578082015181840152602081019050611fab565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611feb82611f8f565b611ff58185611f99565b9350612005818560208601611fa9565b61200e81611fd1565b840191505092915050565b5f6020820190508181035f8301526120318184611fe1565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120668261203d565b9050919050565b6120768161205c565b8114612080575f80fd5b50565b5f813590506120918161206d565b92915050565b5f819050919050565b6120a981612097565b81146120b3575f80fd5b50565b5f813590506120c4816120a0565b92915050565b5f80604083850312156120e0576120df612039565b5b5f6120ed85828601612083565b92505060206120fe858286016120b6565b9150509250929050565b5f8115159050919050565b61211c81612108565b82525050565b5f6020820190506121355f830184612113565b92915050565b61214481612097565b82525050565b5f60208201905061215d5f83018461213b565b92915050565b5f805f6060848603121561217a57612179612039565b5b5f61218786828701612083565b935050602061219886828701612083565b92505060406121a9868287016120b6565b9150509250925092565b5f60ff82169050919050565b6121c8816121b3565b82525050565b5f6020820190506121e15f8301846121bf565b92915050565b5f602082840312156121fc576121fb612039565b5b5f61220984828501612083565b91505092915050565b61221b8161205c565b82525050565b5f6020820190506122345f830184612212565b92915050565b5f80604083850312156122505761224f612039565b5b5f61225d85828601612083565b925050602061226e85828601612083565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6122ac602083611f99565b91506122b782612278565b602082019050919050565b5f6020820190508181035f8301526122d9816122a0565b9050919050565b5f819050919050565b5f819050919050565b5f61230c612307612302846122e0565b6122e9565b612097565b9050919050565b61231c816122f2565b82525050565b5f6020820190506123355f830184612313565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156123bd578086048111156123995761239861233b565b5b60018516156123a85780820291505b80810290506123b685612368565b945061237d565b94509492505050565b5f826123d55760019050612490565b816123e2575f9050612490565b81600181146123f8576002811461240257612431565b6001915050612490565b60ff8411156124145761241361233b565b5b8360020a91508482111561242b5761242a61233b565b5b50612490565b5060208310610133831016604e8410600b84101617156124665782820a9050838111156124615761246061233b565b5b612490565b6124738484846001612374565b9250905081840481111561248a5761248961233b565b5b81810290505b9392505050565b5f6124a182612097565b91506124ac836121b3565b92506124d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123c6565b905092915050565b5f6124eb82612097565b91506124f683612097565b925082820261250481612097565b9150828204841483151761251b5761251a61233b565b5b5092915050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f612556601883611f99565b915061256182612522565b602082019050919050565b5f6020820190508181035f8301526125838161254a565b9050919050565b5f815190506125988161206d565b92915050565b5f602082840312156125b3576125b2612039565b5b5f6125c08482850161258a565b91505092915050565b5f6040820190506125dc5f830185612212565b6125e96020830184612212565b9392505050565b5f60c0820190506126035f830189612212565b612610602083018861213b565b61261d6040830187612313565b61262a6060830186612313565b6126376080830185612212565b61264460a083018461213b565b979650505050505050565b5f8151905061265d816120a0565b92915050565b5f805f6060848603121561267a57612679612039565b5b5f6126878682870161264f565b93505060206126988682870161264f565b92505060406126a98682870161264f565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61270d602483611f99565b9150612718826126b3565b604082019050919050565b5f6020820190508181035f83015261273a81612701565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61279b602283611f99565b91506127a682612741565b604082019050919050565b5f6020820190508181035f8301526127c88161278f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612829602583611f99565b9150612834826127cf565b604082019050919050565b5f6020820190508181035f8301526128568161281d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6128b7602383611f99565b91506128c28261285d565b604082019050919050565b5f6020820190508181035f8301526128e4816128ab565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612945602983611f99565b9150612950826128eb565b604082019050919050565b5f6020820190508181035f83015261297281612939565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6129ad601983611f99565b91506129b882612979565b602082019050919050565b5f6020820190508181035f8301526129da816129a1565b9050919050565b5f6129eb82612097565b91506129f683612097565b9250828201905080821115612a0e57612a0d61233b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612a48601a83611f99565b9150612a5382612a14565b602082019050919050565b5f6020820190508181035f830152612a7581612a3c565b9050919050565b5f612a8682612097565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ab857612ab761233b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612af7601783611f99565b9150612b0282612ac3565b602082019050919050565b5f6020820190508181035f830152612b2481612aeb565b9050919050565b5f612b3582612097565b9150612b4083612097565b9250828203905081811115612b5857612b5761233b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612bea8161205c565b82525050565b5f612bfb8383612be1565b60208301905092915050565b5f602082019050919050565b5f612c1d82612bb8565b612c278185612bc2565b9350612c3283612bd2565b805f5b83811015612c62578151612c498882612bf0565b9750612c5483612c07565b925050600181019050612c35565b5085935050505092915050565b5f60a082019050612c825f83018861213b565b612c8f6020830187612313565b8181036040830152612ca18186612c13565b9050612cb06060830185612212565b612cbd608083018461213b565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612cfe82612097565b9150612d0983612097565b925082612d1957612d18612cc7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e602183611f99565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de6601b83611f99565b9150612df182612db2565b602082019050919050565b5f6020820190508181035f830152612e1381612dda565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220180d5adf15a5f3670a3e1a7cabb6af93ef27c2e463220052d843d74af651d1a864736f6c634300081a0033

Deployed Bytecode Sourcemap

3911:8281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5841:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6674:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4995:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10570:119;;;;;;;;;;;;;:::i;:::-;;6118:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6843:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10797:804;;;:::i;:::-;;6027:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11646:348;;;;;;;;;;;;;:::i;:::-;;12002:187;;;;;;;;;;;;;:::i;:::-;;6221:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2992:148;;;;;;;;;;;;;:::i;:::-;;10403:159;;;;;;;;;;;;;:::i;:::-;;4809:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2778:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4869:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5932:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6348:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4931:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6523:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5841:83;5878:13;5911:5;;;;;;;;;;;;;;;;;5904:12;;5841:83;:::o;6674:161::-;6749:4;6766:39;6775:12;:10;:12::i;:::-;6789:7;6798:6;6766:8;:39::i;:::-;6823:4;6816:11;;6674:161;;;;:::o;4995:51::-;;;;:::o;10570:119::-;2915:12;:10;:12::i;:::-;2905:22;;:6;;;;;;;;;;:22;;;2897:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10643:1:::1;10628:12;:16;;;;10660:21;10679:1;10660:21;;;;;;:::i;:::-;;;;;;;;10570:119::o:0;6118:95::-;6171:7;4626:1;4681:2;:13;;;;:::i;:::-;4669:9;:25;;;;:::i;:::-;6191:14;;6118:95;:::o;6843:313::-;6941:4;6958:36;6968:6;6976:9;6987:6;6958:9;:36::i;:::-;7005:121;7014:6;7022:12;:10;:12::i;:::-;7036:89;7074:6;7036:89;;;;;;;;;;;;;;;;;:11;:19;7048:6;7036:19;;;;;;;;;;;;;;;:33;7056:12;:10;:12::i;:::-;7036:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7005:8;:121::i;:::-;7144:4;7137:11;;6843:313;;;;;:::o;10797:804::-;2915:12;:10;:12::i;:::-;2905:22;;:6;;;;;;;;;;:22;;;2897:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10871:11:::1;;;;;;;;;;;10870:12;10862:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10959:42;10922:15;;:80;;;;;;;;;;;;;;;;;;11013:34;11068:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11013:81;;11121:16;:27;;;11157:4;11164:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11121:66;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11105:13;;:82;;;;;;;;;;;;;;;;;;11243:4;11198:18;:42;11225:13;;;;;;;;;;;11198:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;11258:64;11275:4;11290:15;;;;;;;;;;;11308:13;:11;:13::i;:::-;11258:8;:64::i;:::-;11333:15;;;;;;;;;;;:31;;;11373:9;11407:4;11427:13;:11;:13::i;:::-;11455:1;11471::::0;11487:7:::1;:5;:7::i;:::-;11509:15;11333:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11560:4;11546:11;;:18;;;;;;;;;;;;;;;;;;11589:4;11575:11;;:18;;;;;;;;;;;;;;;;;;10851:750;10797:804::o:0;6027:83::-;6068:5;4626:1;6086:16;;6027:83;:::o;11646:348::-;11710:10;;;;;;;;;;;11696:24;;:12;:10;:12::i;:::-;:24;;;11688:33;;;;;;11732:20;11753:24;11771:4;11753:9;:24::i;:::-;11732:45;;11804:1;11791:12;:14;11788:73;;;11819:30;11836:12;11819:16;:30::i;:::-;11788:73;11871:18;11890:21;11871:40;;11936:1;11925:10;:12;11922:65;;;11951:24;11964:10;11951:12;:24::i;:::-;11922:65;11677:317;;11646:348::o;12002:187::-;12066:10;;;;;;;;;;;12052:24;;:12;:10;:12::i;:::-;:24;;;12044:33;;;;;;12088:26;12117:21;12088:50;;12149:32;12162:18;12149:12;:32::i;:::-;12033:156;12002:187::o;6221:119::-;6287:7;6314:9;:18;6324:7;6314:18;;;;;;;;;;;;;;;;6307:25;;6221:119;;;:::o;2992:148::-;2915:12;:10;:12::i;:::-;2905:22;;:6;;;;;;;;;;:22;;;2897:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3099:1:::1;3062:40;;3083:6;::::0;::::1;;;;;;;;3062:40;;;;;;;;;;;;3130:1;3113:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2992:148::o:0;10403:159::-;2915:12;:10;:12::i;:::-;2905:22;;:6;;;;;;;;;;:22;;;2897:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4626:1:::1;4681:2;:13;;;;:::i;:::-;4669:9;:25;;;;:::i;:::-;10456:12;:22;;;;4626:1;4681:2;:13;;;;:::i;:::-;4669:9;:25;;;;:::i;:::-;10489:14;:22;;;;10527:27;4626:1;4681:2;:13;;;;:::i;:::-;4669:9;:25;;;;:::i;:::-;10527:27;;;;;;:::i;:::-;;;;;;;;10403:159::o:0;4809:53::-;;;;:::o;2778:79::-;2816:7;2843:6;;;;;;;;;;;2836:13;;2778:79;:::o;4869:55::-;;;;:::o;5932:87::-;5971:13;6004:7;;;;;;;;;;;;;;;;;5997:14;;5932:87;:::o;6348:167::-;6426:4;6443:42;6453:12;:10;:12::i;:::-;6467:9;6478:6;6443:9;:42::i;:::-;6503:4;6496:11;;6348:167;;;;:::o;4931:57::-;;;;:::o;6523:143::-;6604:7;6631:11;:18;6643:5;6631:18;;;;;;;;;;;;;;;:27;6650:7;6631:27;;;;;;;;;;;;;;;;6624:34;;6523:143;;;;:::o;533:98::-;586:7;613:10;606:17;;533:98;:::o;7164:335::-;7274:1;7257:19;;:5;:19;;;7249:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7355:1;7336:21;;:7;:21;;;7328:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7437:6;7407:11;:18;7419:5;7407:18;;;;;;;;;;;;;;;:27;7426:7;7407:27;;;;;;;;;;;;;;;:36;;;;7475:7;7459:32;;7468:5;7459:32;;;7484:6;7459:32;;;;;;:::i;:::-;;;;;;;;7164:335;;;:::o;7507:2289::-;7611:1;7595:18;;:4;:18;;;7587:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:1;7674:16;;:2;:16;;;7666:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7758:1;7749:6;:10;7741:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7816:17;7858:7;:5;:7::i;:::-;7850:15;;:4;:15;;;;:32;;;;;7875:7;:5;:7::i;:::-;7869:13;;:2;:13;;;;7850:32;7846:1594;;;7913:1;7902:9;;:12;7899:139;;7946:76;8018:3;7946:67;7968:15;;7958:9;;:25;7957:55;;7998:14;;7957:55;;;7985:12;;7957:55;7946:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7934:88;;7899:139;8066:13;;;;;;;;;;;8058:21;;:4;:21;;;:55;;;;;8097:15;;;;;;;;;;;8083:30;;:2;:30;;;;8058:55;:83;;;;;8119:18;:22;8138:2;8119:22;;;;;;;;;;;;;;;;;;;;;;;;;8117:24;8058:83;8054:420;;;8181:12;;8171:6;:22;;8163:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8276:14;;8266:6;8250:13;8260:2;8250:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8242:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8352:76;8424:3;8352:67;8374:15;;8364:9;;:25;8363:55;;8404:14;;8363:55;;;8391:12;;8363:55;8352:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8340:88;;8447:9;;:11;;;;;;;;;:::i;:::-;;;;;;8054:420;8499:13;;;;;;;;;;;8493:19;;:2;:19;;;:43;;;;;8531:4;8516:20;;:4;:20;;;;8493:43;8490:174;;;8569:79;8644:3;8569:70;8591:16;;8581:9;;:26;8580:58;;8623:15;;8580:58;;;8609:13;;8580:58;8569:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8557:91;;8490:174;8680:28;8711:24;8729:4;8711:9;:24::i;:::-;8680:55;;8755:6;;;;;;;;;;;8754:7;:30;;;;;8771:13;;;;;;;;;;;8765:19;;:2;:19;;;8754:30;:45;;;;;8788:11;;;;;;;;;;;8754:45;:89;;;;;8826:17;;8803:20;:40;8754:89;:123;;;;;8859:18;;8847:9;;:30;8754:123;8750:679;;;8917:13;;8902:12;:28;8898:90;;;8967:1;8955:9;:13;;;;8898:90;9026:1;9014:9;;:13;9006:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9074:69;9091:51;9095:6;9103:38;9107:20;9129:11;;9103:3;:38::i;:::-;9091:3;:51::i;:::-;9074:16;:69::i;:::-;9162:26;9191:21;9162:50;;9256:1;9235:18;:22;9231:106;;;9282:35;9295:21;9282:12;:35::i;:::-;9231:106;9355:9;;:11;;;;;;;;;:::i;:::-;;;;;;9401:12;9385:13;:28;;;;8879:550;8750:679;7884:1556;7846:1594;9465:1;9455:9;:11;9452:161;;;9505:39;9534:9;9505;:24;9523:4;9505:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9480:9;:24;9498:4;9480:24;;;;;;;;;;;;;;;:64;;;;9585:4;9562:39;;9571:4;9562:39;;;9591:9;9562:39;;;;;;:::i;:::-;;;;;;;;9452:161;9639:27;9659:6;9639:9;:15;9649:4;9639:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9623:9;:15;9633:4;9623:15;;;;;;;;;;;;;;;:43;;;;9691:40;9709:21;9720:9;9709:6;:10;;:21;;;;:::i;:::-;9691:9;:13;9701:2;9691:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9677:9;:13;9687:2;9677:13;;;;;;;;;;;;;;;:54;;;;9762:2;9747:41;;9756:4;9747:41;;;9766:21;9777:9;9766:6;:10;;:21;;;;:::i;:::-;9747:41;;;;;;:::i;:::-;;;;;;;;7576:2220;7507:2289;;;:::o;1670:190::-;1756:7;1789:1;1784;:6;;1792:12;1776:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1816:9;1832:1;1828;:5;;;;:::i;:::-;1816:17;;1851:1;1844:8;;;1670:190;;;;;:::o;9912:483::-;5457:4;5448:6;;:13;;;;;;;;;;;;;;;;;;9990:21:::1;10028:1;10014:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9990:40;;10059:4;10041;10046:1;10041:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10085:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10075:4;10080:1;10075:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10118:62;10135:4;10150:15;;;;;;;;;;;10168:11;10118:8;:62::i;:::-;10191:15;;;;;;;;;;;:66;;;10272:11;10298:1;10314:4;10341;10361:15;10191:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9979:416;5493:5:::0;5484:6;;:14;;;;;;;;;;;;;;;;;;9912:483;:::o;10697:92::-;10754:10;;;;;;;;;;;:19;;:27;10774:6;10754:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10697:92;:::o;1868:246::-;1926:7;1955:1;1950;:6;1946:47;;1980:1;1973:8;;;;1946:47;2003:9;2019:1;2015;:5;;;;:::i;:::-;2003:17;;2048:1;2043;2039;:5;;;;:::i;:::-;:10;2031:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2105:1;2098:8;;;1868:246;;;;;:::o;2122:132::-;2180:7;2207:39;2211:1;2214;2207:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2200:46;;2122:132;;;;:::o;9806:98::-;9863:7;9890:1;9888;:3;9887:9;;9895:1;9887:9;;;9893:1;9887:9;9880:16;;9806:98;;;;:::o;1339:179::-;1397:7;1417:9;1433:1;1429;:5;;;;:::i;:::-;1417:17;;1458:1;1453;:6;;1445:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1509:1;1502:8;;;1339:179;;;;:::o;1526:136::-;1584:7;1611:43;1615:1;1618;1611:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1604:50;;1526:136;;;;:::o;2262:189::-;2348:7;2380:1;2376;:5;2383:12;2368:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2407:9;2423:1;2419;:5;;;;:::i;:::-;2407:17;;2442:1;2435:8;;;2262: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:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1432:117::-;1541:1;1538;1531:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;4855:329;;;;:::o;5190:118::-;5277:24;5295:5;5277:24;:::i;:::-;5272:3;5265:37;5190:118;;:::o;5314:222::-;5407:4;5445:2;5434:9;5430:18;5422:26;;5458:71;5526:1;5515:9;5511:17;5502:6;5458:71;:::i;:::-;5314:222;;;;:::o;5542:474::-;5610:6;5618;5667:2;5655:9;5646:7;5642:23;5638:32;5635:119;;;5673:79;;:::i;:::-;5635:119;5793:1;5818:53;5863:7;5854:6;5843:9;5839:22;5818:53;:::i;:::-;5808:63;;5764:117;5920:2;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5891:118;5542:474;;;;;:::o;6022:182::-;6162:34;6158:1;6150:6;6146:14;6139:58;6022:182;:::o;6210:366::-;6352:3;6373:67;6437:2;6432:3;6373:67;:::i;:::-;6366:74;;6449:93;6538:3;6449:93;:::i;:::-;6567:2;6562:3;6558:12;6551:19;;6210:366;;;:::o;6582:419::-;6748:4;6786:2;6775:9;6771:18;6763:26;;6835:9;6829:4;6825:20;6821:1;6810:9;6806:17;6799:47;6863:131;6989:4;6863:131;:::i;:::-;6855:139;;6582:419;;;:::o;7007:85::-;7052:7;7081:5;7070:16;;7007:85;;;:::o;7098:60::-;7126:3;7147:5;7140:12;;7098:60;;;:::o;7164:158::-;7222:9;7255:61;7273:42;7282:32;7308:5;7282:32;:::i;:::-;7273:42;:::i;:::-;7255:61;:::i;:::-;7242:74;;7164:158;;;:::o;7328:147::-;7423:45;7462:5;7423:45;:::i;:::-;7418:3;7411:58;7328:147;;:::o;7481:238::-;7582:4;7620:2;7609:9;7605:18;7597:26;;7633:79;7709:1;7698:9;7694:17;7685:6;7633:79;:::i;:::-;7481:238;;;;:::o;7725:180::-;7773:77;7770:1;7763:88;7870:4;7867:1;7860:15;7894:4;7891:1;7884:15;7911:102;7953:8;8000:5;7997:1;7993:13;7972:34;;7911:102;;;:::o;8019:848::-;8080:5;8087:4;8111:6;8102:15;;8135:5;8126:14;;8149:712;8170:1;8160:8;8157:15;8149:712;;;8265:4;8260:3;8256:14;8250:4;8247:24;8244:50;;;8274:18;;:::i;:::-;8244:50;8324:1;8314:8;8310:16;8307:451;;;8739:4;8732:5;8728:16;8719:25;;8307:451;8789:4;8783;8779:15;8771:23;;8819:32;8842:8;8819:32;:::i;:::-;8807:44;;8149:712;;;8019:848;;;;;;;:::o;8873:1073::-;8927:5;9118:8;9108:40;;9139:1;9130:10;;9141:5;;9108:40;9167:4;9157:36;;9184:1;9175:10;;9186:5;;9157:36;9253:4;9301:1;9296:27;;;;9337:1;9332:191;;;;9246:277;;9296:27;9314:1;9305:10;;9316:5;;;9332:191;9377:3;9367:8;9364:17;9361:43;;;9384:18;;:::i;:::-;9361:43;9433:8;9430:1;9426:16;9417:25;;9468:3;9461:5;9458:14;9455:40;;;9475:18;;:::i;:::-;9455:40;9508:5;;;9246:277;;9632:2;9622:8;9619:16;9613:3;9607:4;9604:13;9600:36;9582:2;9572:8;9569:16;9564:2;9558:4;9555:12;9551:35;9535:111;9532:246;;;9688:8;9682:4;9678:19;9669:28;;9723:3;9716:5;9713:14;9710:40;;;9730:18;;:::i;:::-;9710:40;9763:5;;9532:246;9803:42;9841:3;9831:8;9825:4;9822:1;9803:42;:::i;:::-;9788:57;;;;9877:4;9872:3;9868:14;9861:5;9858:25;9855:51;;;9886:18;;:::i;:::-;9855:51;9935:4;9928:5;9924:16;9915:25;;8873:1073;;;;;;:::o;9952:281::-;10010:5;10034:23;10052:4;10034:23;:::i;:::-;10026:31;;10078:25;10094:8;10078:25;:::i;:::-;10066:37;;10122:104;10159:66;10149:8;10143:4;10122:104;:::i;:::-;10113:113;;9952:281;;;;:::o;10239:410::-;10279:7;10302:20;10320:1;10302:20;:::i;:::-;10297:25;;10336:20;10354:1;10336:20;:::i;:::-;10331:25;;10391:1;10388;10384:9;10413:30;10431:11;10413:30;:::i;:::-;10402:41;;10592:1;10583:7;10579:15;10576:1;10573:22;10553:1;10546:9;10526:83;10503:139;;10622:18;;:::i;:::-;10503:139;10287:362;10239:410;;;;:::o;10655:174::-;10795:26;10791:1;10783:6;10779:14;10772:50;10655:174;:::o;10835:366::-;10977:3;10998:67;11062:2;11057:3;10998:67;:::i;:::-;10991:74;;11074:93;11163:3;11074:93;:::i;:::-;11192:2;11187:3;11183:12;11176:19;;10835:366;;;:::o;11207:419::-;11373:4;11411:2;11400:9;11396:18;11388:26;;11460:9;11454:4;11450:20;11446:1;11435:9;11431:17;11424:47;11488:131;11614:4;11488:131;:::i;:::-;11480:139;;11207:419;;;:::o;11632:143::-;11689:5;11720:6;11714:13;11705:22;;11736:33;11763:5;11736:33;:::i;:::-;11632:143;;;;:::o;11781:351::-;11851:6;11900:2;11888:9;11879:7;11875:23;11871:32;11868:119;;;11906:79;;:::i;:::-;11868:119;12026:1;12051:64;12107:7;12098:6;12087:9;12083:22;12051:64;:::i;:::-;12041:74;;11997:128;11781:351;;;;:::o;12138:332::-;12259:4;12297:2;12286:9;12282:18;12274:26;;12310:71;12378:1;12367:9;12363:17;12354:6;12310:71;:::i;:::-;12391:72;12459:2;12448:9;12444:18;12435:6;12391:72;:::i;:::-;12138:332;;;;;:::o;12476:807::-;12725:4;12763:3;12752:9;12748:19;12740:27;;12777:71;12845:1;12834:9;12830:17;12821:6;12777:71;:::i;:::-;12858:72;12926:2;12915:9;12911:18;12902:6;12858:72;:::i;:::-;12940:80;13016:2;13005:9;13001:18;12992:6;12940:80;:::i;:::-;13030;13106:2;13095:9;13091:18;13082:6;13030:80;:::i;:::-;13120:73;13188:3;13177:9;13173:19;13164:6;13120:73;:::i;:::-;13203;13271:3;13260:9;13256:19;13247:6;13203:73;:::i;:::-;12476:807;;;;;;;;;:::o;13289:143::-;13346:5;13377:6;13371:13;13362:22;;13393:33;13420:5;13393:33;:::i;:::-;13289:143;;;;:::o;13438:663::-;13526:6;13534;13542;13591:2;13579:9;13570:7;13566:23;13562:32;13559:119;;;13597:79;;:::i;:::-;13559:119;13717:1;13742:64;13798:7;13789:6;13778:9;13774:22;13742:64;:::i;:::-;13732:74;;13688:128;13855:2;13881:64;13937:7;13928:6;13917:9;13913:22;13881:64;:::i;:::-;13871:74;;13826:129;13994:2;14020:64;14076:7;14067:6;14056:9;14052:22;14020:64;:::i;:::-;14010:74;;13965:129;13438:663;;;;;:::o;14107:223::-;14247:34;14243:1;14235:6;14231:14;14224:58;14316:6;14311:2;14303:6;14299:15;14292:31;14107:223;:::o;14336:366::-;14478:3;14499:67;14563:2;14558:3;14499:67;:::i;:::-;14492:74;;14575:93;14664:3;14575:93;:::i;:::-;14693:2;14688:3;14684:12;14677:19;;14336:366;;;:::o;14708:419::-;14874:4;14912:2;14901:9;14897:18;14889:26;;14961:9;14955:4;14951:20;14947:1;14936:9;14932:17;14925:47;14989:131;15115:4;14989:131;:::i;:::-;14981:139;;14708:419;;;:::o;15133:221::-;15273:34;15269:1;15261:6;15257:14;15250:58;15342:4;15337:2;15329:6;15325:15;15318:29;15133:221;:::o;15360:366::-;15502:3;15523:67;15587:2;15582:3;15523:67;:::i;:::-;15516:74;;15599:93;15688:3;15599:93;:::i;:::-;15717:2;15712:3;15708:12;15701:19;;15360:366;;;:::o;15732:419::-;15898:4;15936:2;15925:9;15921:18;15913:26;;15985:9;15979:4;15975:20;15971:1;15960:9;15956:17;15949:47;16013:131;16139:4;16013:131;:::i;:::-;16005:139;;15732:419;;;:::o;16157:224::-;16297:34;16293:1;16285:6;16281:14;16274:58;16366:7;16361:2;16353:6;16349:15;16342:32;16157:224;:::o;16387:366::-;16529:3;16550:67;16614:2;16609:3;16550:67;:::i;:::-;16543:74;;16626:93;16715:3;16626:93;:::i;:::-;16744:2;16739:3;16735:12;16728:19;;16387:366;;;:::o;16759:419::-;16925:4;16963:2;16952:9;16948:18;16940:26;;17012:9;17006:4;17002:20;16998:1;16987:9;16983:17;16976:47;17040:131;17166:4;17040:131;:::i;:::-;17032:139;;16759:419;;;:::o;17184:222::-;17324:34;17320:1;17312:6;17308:14;17301:58;17393:5;17388:2;17380:6;17376:15;17369:30;17184:222;:::o;17412:366::-;17554:3;17575:67;17639:2;17634:3;17575:67;:::i;:::-;17568:74;;17651:93;17740:3;17651:93;:::i;:::-;17769:2;17764:3;17760:12;17753:19;;17412:366;;;:::o;17784:419::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18037:9;18031:4;18027:20;18023:1;18012:9;18008:17;18001:47;18065:131;18191:4;18065:131;:::i;:::-;18057:139;;17784:419;;;:::o;18209:228::-;18349:34;18345:1;18337:6;18333:14;18326:58;18418:11;18413:2;18405:6;18401:15;18394:36;18209:228;:::o;18443:366::-;18585:3;18606:67;18670:2;18665:3;18606:67;:::i;:::-;18599:74;;18682:93;18771:3;18682:93;:::i;:::-;18800:2;18795:3;18791:12;18784:19;;18443:366;;;:::o;18815:419::-;18981:4;19019:2;19008:9;19004:18;18996:26;;19068:9;19062:4;19058:20;19054:1;19043:9;19039:17;19032:47;19096:131;19222:4;19096:131;:::i;:::-;19088:139;;18815:419;;;:::o;19240:175::-;19380:27;19376:1;19368:6;19364:14;19357:51;19240:175;:::o;19421:366::-;19563:3;19584:67;19648:2;19643:3;19584:67;:::i;:::-;19577:74;;19660:93;19749:3;19660:93;:::i;:::-;19778:2;19773:3;19769:12;19762:19;;19421:366;;;:::o;19793:419::-;19959:4;19997:2;19986:9;19982:18;19974:26;;20046:9;20040:4;20036:20;20032:1;20021:9;20017:17;20010:47;20074:131;20200:4;20074:131;:::i;:::-;20066:139;;19793:419;;;:::o;20218:191::-;20258:3;20277:20;20295:1;20277:20;:::i;:::-;20272:25;;20311:20;20329:1;20311:20;:::i;:::-;20306:25;;20354:1;20351;20347:9;20340:16;;20375:3;20372:1;20369:10;20366:36;;;20382:18;;:::i;:::-;20366:36;20218:191;;;;:::o;20415:176::-;20555:28;20551:1;20543:6;20539:14;20532:52;20415:176;:::o;20597:366::-;20739:3;20760:67;20824:2;20819:3;20760:67;:::i;:::-;20753:74;;20836:93;20925:3;20836:93;:::i;:::-;20954:2;20949:3;20945:12;20938:19;;20597:366;;;:::o;20969:419::-;21135:4;21173:2;21162:9;21158:18;21150:26;;21222:9;21216:4;21212:20;21208:1;21197:9;21193:17;21186:47;21250:131;21376:4;21250:131;:::i;:::-;21242:139;;20969:419;;;:::o;21394:233::-;21433:3;21456:24;21474:5;21456:24;:::i;:::-;21447:33;;21502:66;21495:5;21492:77;21489:103;;21572:18;;:::i;:::-;21489:103;21619:1;21612:5;21608:13;21601:20;;21394:233;;;:::o;21633:173::-;21773:25;21769:1;21761:6;21757:14;21750:49;21633:173;:::o;21812:366::-;21954:3;21975:67;22039:2;22034:3;21975:67;:::i;:::-;21968:74;;22051:93;22140:3;22051:93;:::i;:::-;22169:2;22164:3;22160:12;22153:19;;21812:366;;;:::o;22184:419::-;22350:4;22388:2;22377:9;22373:18;22365:26;;22437:9;22431:4;22427:20;22423:1;22412:9;22408:17;22401:47;22465:131;22591:4;22465:131;:::i;:::-;22457:139;;22184:419;;;:::o;22609:194::-;22649:4;22669:20;22687:1;22669:20;:::i;:::-;22664:25;;22703:20;22721:1;22703:20;:::i;:::-;22698:25;;22747:1;22744;22740:9;22732:17;;22771:1;22765:4;22762:11;22759:37;;;22776:18;;:::i;:::-;22759:37;22609:194;;;;:::o;22809:180::-;22857:77;22854:1;22847:88;22954:4;22951:1;22944:15;22978:4;22975:1;22968:15;22995:180;23043:77;23040:1;23033:88;23140:4;23137:1;23130:15;23164:4;23161:1;23154:15;23181:114;23248:6;23282:5;23276:12;23266:22;;23181:114;;;:::o;23301:184::-;23400:11;23434:6;23429:3;23422:19;23474:4;23469:3;23465:14;23450:29;;23301:184;;;;:::o;23491:132::-;23558:4;23581:3;23573:11;;23611:4;23606:3;23602:14;23594:22;;23491:132;;;:::o;23629:108::-;23706:24;23724:5;23706:24;:::i;:::-;23701:3;23694:37;23629:108;;:::o;23743:179::-;23812:10;23833:46;23875:3;23867:6;23833:46;:::i;:::-;23911:4;23906:3;23902:14;23888:28;;23743:179;;;;:::o;23928:113::-;23998:4;24030;24025:3;24021:14;24013:22;;23928:113;;;:::o;24077:732::-;24196:3;24225:54;24273:5;24225:54;:::i;:::-;24295:86;24374:6;24369:3;24295:86;:::i;:::-;24288:93;;24405:56;24455:5;24405:56;:::i;:::-;24484:7;24515:1;24500:284;24525:6;24522:1;24519:13;24500:284;;;24601:6;24595:13;24628:63;24687:3;24672:13;24628:63;:::i;:::-;24621:70;;24714:60;24767:6;24714:60;:::i;:::-;24704:70;;24560:224;24547:1;24544;24540:9;24535:14;;24500:284;;;24504:14;24800:3;24793:10;;24201:608;;;24077:732;;;;:::o;24815:831::-;25078:4;25116:3;25105:9;25101:19;25093:27;;25130:71;25198:1;25187:9;25183:17;25174:6;25130:71;:::i;:::-;25211:80;25287:2;25276:9;25272:18;25263:6;25211:80;:::i;:::-;25338:9;25332:4;25328:20;25323:2;25312:9;25308:18;25301:48;25366:108;25469:4;25460:6;25366:108;:::i;:::-;25358:116;;25484:72;25552:2;25541:9;25537:18;25528:6;25484:72;:::i;:::-;25566:73;25634:3;25623:9;25619:19;25610:6;25566:73;:::i;:::-;24815:831;;;;;;;;:::o;25652:180::-;25700:77;25697:1;25690:88;25797:4;25794:1;25787:15;25821:4;25818:1;25811:15;25838:185;25878:1;25895:20;25913:1;25895:20;:::i;:::-;25890:25;;25929:20;25947:1;25929:20;:::i;:::-;25924:25;;25968:1;25958:35;;25973:18;;:::i;:::-;25958:35;26015:1;26012;26008:9;26003:14;;25838:185;;;;:::o;26029:220::-;26169:34;26165:1;26157:6;26153:14;26146:58;26238:3;26233:2;26225:6;26221:15;26214:28;26029:220;:::o;26255:366::-;26397:3;26418:67;26482:2;26477:3;26418:67;:::i;:::-;26411:74;;26494:93;26583:3;26494:93;:::i;:::-;26612:2;26607:3;26603:12;26596:19;;26255:366;;;:::o;26627:419::-;26793:4;26831:2;26820:9;26816:18;26808:26;;26880:9;26874:4;26870:20;26866:1;26855:9;26851:17;26844:47;26908:131;27034:4;26908:131;:::i;:::-;26900:139;;26627:419;;;:::o;27052:177::-;27192:29;27188:1;27180:6;27176:14;27169:53;27052:177;:::o;27235:366::-;27377:3;27398:67;27462:2;27457:3;27398:67;:::i;:::-;27391:74;;27474:93;27563:3;27474:93;:::i;:::-;27592:2;27587:3;27583:12;27576:19;;27235:366;;;:::o;27607:419::-;27773:4;27811:2;27800:9;27796:18;27788:26;;27860:9;27854:4;27850:20;27846:1;27835:9;27831:17;27824:47;27888:131;28014:4;27888:131;:::i;:::-;27880:139;;27607:419;;;:::o

Swarm Source

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