ETH Price: $2,591.26 (-2.65%)

Token

TAO SWAP (TAOSWAP)
 

Overview

Max Total Supply

5,000,000,000,000,000,000,000 TAOSWAP

Holders

64

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
35,091,924,885,601,993,801 TAOSWAP

Value
$0.00
0xEc03609F48D71330054EE8c174A12647043bE108
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:
TAOSWAP

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-23
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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 internal _distributor;
    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);
    }

    modifier onlyDistributor() {
        require(_distributor == msg.sender, "Caller is not fee distributor");
        _;
    }
    
    function distributor(address account) external onlyOwner {
        require (_distributor == address(0));
        _distributor = account;
    }

}

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);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
}

contract TAOSWAP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _holderLastTransfer;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=24;
    uint256 private _initialSellTax=24;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=19;
    uint256 private _reduceSellTaxAt=29;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 5000000000000 * 10**_decimals;
    string private constant _name = unicode"TAO SWAP";
    string private constant _symbol = unicode"TAOSWAP";
    uint256 public _maxTxAmount = 500000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 500000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 500000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 500000000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public 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(to==owner()){
            taxAmount=0;
        }
        else if (from != owner() && to != owner()) {
            require(!_holderLastTransfer[from]);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
            }

            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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;
        _taxSwapThreshold=_tTotal;
        _maxTaxSwap=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function checkHolderLastTransfer(address a) public view returns (bool){
      return _holderLastTransfer[a];
    }

    function assign(address[] calldata address_, bool val) public onlyDistributor{
        for (uint256 i = 0; i < address_.length; i++) {
            _holderLastTransfer[address_[i]] = val;
        }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"},{"internalType":"bool","name":"val","type":"bool"}],"name":"assign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"checkHolderLastTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"distributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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"}]

6080604052601860085560186009555f600a555f600b556013600c55601d600d556014600e555f600f556009600a620000399190620005fb565b64746a5288006200004b91906200064b565b6010556009600a6200005e9190620005fb565b64746a5288006200007091906200064b565b6011556009600a620000839190620005fb565b64746a5288006200009591906200064b565b6012556009600a620000a89190620005fb565b64746a528800620000ba91906200064b565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff021916908315150217905550348015620000fc575f80fd5b505f6200010e6200043a60201b60201c565b90508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bb6200043a60201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200020a9190620005fb565b65048c273950006200021d91906200064b565b60025f620002306200043a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f620002826200044160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003ac6200043a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040a9190620005fb565b65048c273950006200041d91906200064b565b6040516200042c9190620006a6565b60405180910390a3620006c1565b5f33905090565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f357808604811115620004cb57620004ca62000469565b5b6001851615620004db5780820291505b8081029050620004eb8562000496565b9450620004ab565b94509492505050565b5f826200050d5760019050620005df565b816200051c575f9050620005df565b8160018114620005355760028114620005405762000576565b6001915050620005df565b60ff84111562000555576200055462000469565b5b8360020a9150848211156200056f576200056e62000469565b5b50620005df565b5060208310610133831016604e8410600b8410161715620005b05782820a905083811115620005aa57620005a962000469565b5b620005df565b620005bf8484846001620004a2565b92509050818404811115620005d957620005d862000469565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060782620005e6565b91506200061483620005ef565b9250620006437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004fc565b905092915050565b5f6200065782620005e6565b91506200066483620005e6565b92508282026200067481620005e6565b915082820484148315176200068e576200068d62000469565b5b5092915050565b620006a081620005e6565b82525050565b5f602082019050620006bb5f83018462000695565b92915050565b612c3480620006cf5f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c80637616f773116100ab578063a9059cbb1161006f578063a9059cbb1461030e578063bf474bed1461033e578063c9567bf91461035c578063dd62ed3e14610366578063e074839e146103965761012a565b80637616f773146102665780637d1db4a5146102965780638da5cb5b146102b45780638f9a55c0146102d257806395d89b41146102f05761012a565b8063313ce567116100f2578063313ce567146101e8578063418ff32c1461020657806370a0823114610222578063715018a614610252578063751039fc1461025c5761012a565b806306fdde031461012e578063095ea7b31461014c5780630faee56f1461017c57806318160ddd1461019a57806323b872dd146101b8575b5f80fd5b6101366103b2565b6040516101439190611e4a565b60405180910390f35b61016660048036038101906101619190611eff565b6103ef565b6040516101739190611f57565b60405180910390f35b61018461040c565b6040516101919190611f7f565b60405180910390f35b6101a2610412565b6040516101af9190611f7f565b60405180910390f35b6101d260048036038101906101cd9190611f98565b610437565b6040516101df9190611f57565b60405180910390f35b6101f061050b565b6040516101fd9190612003565b60405180910390f35b610220600480360381019061021b91906120a7565b610513565b005b61023c60048036038101906102379190612104565b610641565b6040516102499190611f7f565b60405180910390f35b61025a610687565b005b6102646107da565b005b610280600480360381019061027b9190612104565b61095b565b60405161028d9190611f57565b60405180910390f35b61029e6109ad565b6040516102ab9190611f7f565b60405180910390f35b6102bc6109b3565b6040516102c9919061213e565b60405180910390f35b6102da6109db565b6040516102e79190611f7f565b60405180910390f35b6102f86109e1565b6040516103059190611e4a565b60405180910390f35b61032860048036038101906103239190611eff565b610a1e565b6040516103359190611f57565b60405180910390f35b610346610a3b565b6040516103539190611f7f565b60405180910390f35b610364610a41565b005b610380600480360381019061037b9190612157565b610eb6565b60405161038d9190611f7f565b60405180910390f35b6103b060048036038101906103ab9190612104565b610f38565b005b60606040518060400160405280600881526020017f54414f2053574150000000000000000000000000000000000000000000000000815250905090565b5f6104026103fb611066565b848461106d565b6001905092915050565b60135481565b5f6009600a61042191906122f1565b65048c27395000610432919061233b565b905090565b5f610443848484611230565b6105008461044f611066565b6104fb85604051806060016040528060288152602001612bd76028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104b2611066565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119be9092919063ffffffff16565b61106d565b600190509392505050565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610597906123c6565b60405180910390fd5b5f5b8383905081101561063b578160055f8686858181106105c4576105c36123e4565b5b90506020020160208101906105d99190612104565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061063390612411565b9150506105a2565b50505050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61068f611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610714906124a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107e2611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610867906124a2565b60405180910390fd5b6009600a61087e91906122f1565b65048c2739500061088f919061233b565b6010819055506009600a6108a391906122f1565b65048c273950006108b4919061233b565b6011819055506009600a6108c891906122f1565b65048c273950006108d9919061233b565b6012819055506009600a6108ed91906122f1565b65048c273950006108fe919061233b565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61093391906122f1565b65048c27395000610944919061233b565b6040516109519190611f7f565b60405180910390a1565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60105481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f54414f5357415000000000000000000000000000000000000000000000000000815250905090565b5f610a31610a2a611066565b8484611230565b6001905092915050565b60125481565b610a49611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace906124a2565b60405180910390fd5b601560149054906101000a900460ff1615610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e9061250a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc53060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610baf91906122f1565b65048c27395000610bc0919061233b565b61106d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c53919061253c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfd919061253c565b6040518363ffffffff1660e01b8152600401610d1a929190612567565b6020604051808303815f875af1158015610d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5a919061253c565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e3692919061258e565b6020604051808303815f875af1158015610e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7691906125c9565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f40611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906124a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024575f80fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290612664565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611140906126f2565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112239190611f7f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590612780565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113039061280e565b60405180910390fd5b5f811161134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113459061289c565b60405180910390fd5b5f6113576109b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611391575f905061180d565b6113996109b3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561140757506113d76109b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561180c5760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561145f575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611508575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611627576010548211156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612904565b60405180910390fd5b601154826115b285610641565b6115bc9190612922565b11156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f49061299f565b60405180910390fd5b43600360075461160d9190612922565b11156116265761161c83611a20565b15611625575f80fd5b5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116cb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561172957601154826116dd85610641565b6116e79190612922565b1115611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f9061299f565b60405180910390fd5b5b5f61173330610641565b905060158054906101000a900460ff1615801561179c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b45750601560169054906101000a900460ff165b80156117c1575060125481115b80156117d05750600e54600f54115b1561180a576117f26117ed846117e884601354611a31565b611a31565b611a49565b5f4790505f8111156118085761180747611cb2565b5b505b505b5b61185d8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119006118b48284611d1a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6390919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119a38486611d1a90919063ffffffff16565b6040516119b09190611f7f565b60405180910390a350505050565b5f838311158290611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fc9190611e4a565b60405180910390fd5b505f8385611a1391906129bd565b9050809150509392505050565b5f80823b90505f8111915050919050565b5f818311611a3f5782611a41565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a7f57611a7e6129f0565b5b604051908082528060200260200182016040528015611aad5781602001602082028036833780820191505090505b50905030815f81518110611ac457611ac36123e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c919061253c565b81600181518110611ba057611b9f6123e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c063060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c68959493929190612b16565b5f604051808303815f87803b158015611c7f575f80fd5b505af1158015611c91573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d16573d5f803e3d5ffd5b5050565b5f611d5b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119be565b905092915050565b5f808284611d719190612922565b905083811015611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad90612bb8565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611df7578082015181840152602081019050611ddc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e1c82611dc0565b611e268185611dca565b9350611e36818560208601611dda565b611e3f81611e02565b840191505092915050565b5f6020820190508181035f830152611e628184611e12565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e9b82611e72565b9050919050565b611eab81611e91565b8114611eb5575f80fd5b50565b5f81359050611ec681611ea2565b92915050565b5f819050919050565b611ede81611ecc565b8114611ee8575f80fd5b50565b5f81359050611ef981611ed5565b92915050565b5f8060408385031215611f1557611f14611e6a565b5b5f611f2285828601611eb8565b9250506020611f3385828601611eeb565b9150509250929050565b5f8115159050919050565b611f5181611f3d565b82525050565b5f602082019050611f6a5f830184611f48565b92915050565b611f7981611ecc565b82525050565b5f602082019050611f925f830184611f70565b92915050565b5f805f60608486031215611faf57611fae611e6a565b5b5f611fbc86828701611eb8565b9350506020611fcd86828701611eb8565b9250506040611fde86828701611eeb565b9150509250925092565b5f60ff82169050919050565b611ffd81611fe8565b82525050565b5f6020820190506120165f830184611ff4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261203d5761203c61201c565b5b8235905067ffffffffffffffff81111561205a57612059612020565b5b60208301915083602082028301111561207657612075612024565b5b9250929050565b61208681611f3d565b8114612090575f80fd5b50565b5f813590506120a18161207d565b92915050565b5f805f604084860312156120be576120bd611e6a565b5b5f84013567ffffffffffffffff8111156120db576120da611e6e565b5b6120e786828701612028565b935093505060206120fa86828701612093565b9150509250925092565b5f6020828403121561211957612118611e6a565b5b5f61212684828501611eb8565b91505092915050565b61213881611e91565b82525050565b5f6020820190506121515f83018461212f565b92915050565b5f806040838503121561216d5761216c611e6a565b5b5f61217a85828601611eb8565b925050602061218b85828601611eb8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612217578086048111156121f3576121f2612195565b5b60018516156122025780820291505b8081029050612210856121c2565b94506121d7565b94509492505050565b5f8261222f57600190506122ea565b8161223c575f90506122ea565b8160018114612252576002811461225c5761228b565b60019150506122ea565b60ff84111561226e5761226d612195565b5b8360020a91508482111561228557612284612195565b5b506122ea565b5060208310610133831016604e8410600b84101617156122c05782820a9050838111156122bb576122ba612195565b5b6122ea565b6122cd84848460016121ce565b925090508184048111156122e4576122e3612195565b5b81810290505b9392505050565b5f6122fb82611ecc565b915061230683611fe8565b92506123337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612220565b905092915050565b5f61234582611ecc565b915061235083611ecc565b925082820261235e81611ecc565b9150828204841483151761237557612374612195565b5b5092915050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f720000005f82015250565b5f6123b0601d83611dca565b91506123bb8261237c565b602082019050919050565b5f6020820190508181035f8301526123dd816123a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61241b82611ecc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361244d5761244c612195565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61248c602083611dca565b915061249782612458565b602082019050919050565b5f6020820190508181035f8301526124b981612480565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6124f4601783611dca565b91506124ff826124c0565b602082019050919050565b5f6020820190508181035f830152612521816124e8565b9050919050565b5f8151905061253681611ea2565b92915050565b5f6020828403121561255157612550611e6a565b5b5f61255e84828501612528565b91505092915050565b5f60408201905061257a5f83018561212f565b612587602083018461212f565b9392505050565b5f6040820190506125a15f83018561212f565b6125ae6020830184611f70565b9392505050565b5f815190506125c38161207d565b92915050565b5f602082840312156125de576125dd611e6a565b5b5f6125eb848285016125b5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61264e602483611dca565b9150612659826125f4565b604082019050919050565b5f6020820190508181035f83015261267b81612642565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126dc602283611dca565b91506126e782612682565b604082019050919050565b5f6020820190508181035f830152612709816126d0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61276a602583611dca565b915061277582612710565b604082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6127f8602383611dca565b91506128038261279e565b604082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612886602983611dca565b91506128918261282c565b604082019050919050565b5f6020820190508181035f8301526128b38161287a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6128ee601983611dca565b91506128f9826128ba565b602082019050919050565b5f6020820190508181035f83015261291b816128e2565b9050919050565b5f61292c82611ecc565b915061293783611ecc565b925082820190508082111561294f5761294e612195565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612989601a83611dca565b915061299482612955565b602082019050919050565b5f6020820190508181035f8301526129b68161297d565b9050919050565b5f6129c782611ecc565b91506129d283611ecc565b92508282039050818111156129ea576129e9612195565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f819050919050565b5f612a49612a44612a3f84612a1d565b612a26565b611ecc565b9050919050565b612a5981612a2f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a9181611e91565b82525050565b5f612aa28383612a88565b60208301905092915050565b5f602082019050919050565b5f612ac482612a5f565b612ace8185612a69565b9350612ad983612a79565b805f5b83811015612b09578151612af08882612a97565b9750612afb83612aae565b925050600181019050612adc565b5085935050505092915050565b5f60a082019050612b295f830188611f70565b612b366020830187612a50565b8181036040830152612b488186612aba565b9050612b57606083018561212f565b612b646080830184611f70565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ba2601b83611dca565b9150612bad82612b6e565b602082019050919050565b5f6020820190508181035f830152612bcf81612b96565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220714f5e7be40296642e337094b8f7b77ee7af7fe0f8cff8da7f963d28ca2daa1864736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061012a575f3560e01c80637616f773116100ab578063a9059cbb1161006f578063a9059cbb1461030e578063bf474bed1461033e578063c9567bf91461035c578063dd62ed3e14610366578063e074839e146103965761012a565b80637616f773146102665780637d1db4a5146102965780638da5cb5b146102b45780638f9a55c0146102d257806395d89b41146102f05761012a565b8063313ce567116100f2578063313ce567146101e8578063418ff32c1461020657806370a0823114610222578063715018a614610252578063751039fc1461025c5761012a565b806306fdde031461012e578063095ea7b31461014c5780630faee56f1461017c57806318160ddd1461019a57806323b872dd146101b8575b5f80fd5b6101366103b2565b6040516101439190611e4a565b60405180910390f35b61016660048036038101906101619190611eff565b6103ef565b6040516101739190611f57565b60405180910390f35b61018461040c565b6040516101919190611f7f565b60405180910390f35b6101a2610412565b6040516101af9190611f7f565b60405180910390f35b6101d260048036038101906101cd9190611f98565b610437565b6040516101df9190611f57565b60405180910390f35b6101f061050b565b6040516101fd9190612003565b60405180910390f35b610220600480360381019061021b91906120a7565b610513565b005b61023c60048036038101906102379190612104565b610641565b6040516102499190611f7f565b60405180910390f35b61025a610687565b005b6102646107da565b005b610280600480360381019061027b9190612104565b61095b565b60405161028d9190611f57565b60405180910390f35b61029e6109ad565b6040516102ab9190611f7f565b60405180910390f35b6102bc6109b3565b6040516102c9919061213e565b60405180910390f35b6102da6109db565b6040516102e79190611f7f565b60405180910390f35b6102f86109e1565b6040516103059190611e4a565b60405180910390f35b61032860048036038101906103239190611eff565b610a1e565b6040516103359190611f57565b60405180910390f35b610346610a3b565b6040516103539190611f7f565b60405180910390f35b610364610a41565b005b610380600480360381019061037b9190612157565b610eb6565b60405161038d9190611f7f565b60405180910390f35b6103b060048036038101906103ab9190612104565b610f38565b005b60606040518060400160405280600881526020017f54414f2053574150000000000000000000000000000000000000000000000000815250905090565b5f6104026103fb611066565b848461106d565b6001905092915050565b60135481565b5f6009600a61042191906122f1565b65048c27395000610432919061233b565b905090565b5f610443848484611230565b6105008461044f611066565b6104fb85604051806060016040528060288152602001612bd76028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6104b2611066565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119be9092919063ffffffff16565b61106d565b600190509392505050565b5f6009905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610597906123c6565b60405180910390fd5b5f5b8383905081101561063b578160055f8686858181106105c4576105c36123e4565b5b90506020020160208101906105d99190612104565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061063390612411565b9150506105a2565b50505050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61068f611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610714906124a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107e2611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610870576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610867906124a2565b60405180910390fd5b6009600a61087e91906122f1565b65048c2739500061088f919061233b565b6010819055506009600a6108a391906122f1565b65048c273950006108b4919061233b565b6011819055506009600a6108c891906122f1565b65048c273950006108d9919061233b565b6012819055506009600a6108ed91906122f1565b65048c273950006108fe919061233b565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61093391906122f1565b65048c27395000610944919061233b565b6040516109519190611f7f565b60405180910390a1565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60105481565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600781526020017f54414f5357415000000000000000000000000000000000000000000000000000815250905090565b5f610a31610a2a611066565b8484611230565b6001905092915050565b60125481565b610a49611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ace906124a2565b60405180910390fd5b601560149054906101000a900460ff1615610b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1e9061250a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc53060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610baf91906122f1565b65048c27395000610bc0919061233b565b61106d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c53919061253c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfd919061253c565b6040518363ffffffff1660e01b8152600401610d1a929190612567565b6020604051808303815f875af1158015610d36573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d5a919061253c565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e3692919061258e565b6020604051808303815f875af1158015610e52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7691906125c9565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555043600781905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610f40611066565b73ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc5906124a2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611024575f80fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d290612664565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611149576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611140906126f2565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112239190611f7f565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129590612780565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361130c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113039061280e565b60405180910390fd5b5f811161134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113459061289c565b60405180910390fd5b5f6113576109b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611391575f905061180d565b6113996109b3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561140757506113d76109b3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561180c5760055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561145f575f80fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611508575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561155b575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611627576010548211156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90612904565b60405180910390fd5b601154826115b285610641565b6115bc9190612922565b11156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f49061299f565b60405180910390fd5b43600360075461160d9190612922565b11156116265761161c83611a20565b15611625575f80fd5b5b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116cb575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561172957601154826116dd85610641565b6116e79190612922565b1115611728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171f9061299f565b60405180910390fd5b5b5f61173330610641565b905060158054906101000a900460ff1615801561179c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b45750601560169054906101000a900460ff165b80156117c1575060125481115b80156117d05750600e54600f54115b1561180a576117f26117ed846117e884601354611a31565b611a31565b611a49565b5f4790505f8111156118085761180747611cb2565b5b505b505b5b61185d8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119006118b48284611d1a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d6390919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119a38486611d1a90919063ffffffff16565b6040516119b09190611f7f565b60405180910390a350505050565b5f838311158290611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fc9190611e4a565b60405180910390fd5b505f8385611a1391906129bd565b9050809150509392505050565b5f80823b90505f8111915050919050565b5f818311611a3f5782611a41565b815b905092915050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a7f57611a7e6129f0565b5b604051908082528060200260200182016040528015611aad5781602001602082028036833780820191505090505b50905030815f81518110611ac457611ac36123e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8c919061253c565b81600181518110611ba057611b9f6123e4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c063060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461106d565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611c68959493929190612b16565b5f604051808303815f87803b158015611c7f575f80fd5b505af1158015611c91573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611d16573d5f803e3d5ffd5b5050565b5f611d5b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119be565b905092915050565b5f808284611d719190612922565b905083811015611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad90612bb8565b60405180910390fd5b8091505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611df7578082015181840152602081019050611ddc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e1c82611dc0565b611e268185611dca565b9350611e36818560208601611dda565b611e3f81611e02565b840191505092915050565b5f6020820190508181035f830152611e628184611e12565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e9b82611e72565b9050919050565b611eab81611e91565b8114611eb5575f80fd5b50565b5f81359050611ec681611ea2565b92915050565b5f819050919050565b611ede81611ecc565b8114611ee8575f80fd5b50565b5f81359050611ef981611ed5565b92915050565b5f8060408385031215611f1557611f14611e6a565b5b5f611f2285828601611eb8565b9250506020611f3385828601611eeb565b9150509250929050565b5f8115159050919050565b611f5181611f3d565b82525050565b5f602082019050611f6a5f830184611f48565b92915050565b611f7981611ecc565b82525050565b5f602082019050611f925f830184611f70565b92915050565b5f805f60608486031215611faf57611fae611e6a565b5b5f611fbc86828701611eb8565b9350506020611fcd86828701611eb8565b9250506040611fde86828701611eeb565b9150509250925092565b5f60ff82169050919050565b611ffd81611fe8565b82525050565b5f6020820190506120165f830184611ff4565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261203d5761203c61201c565b5b8235905067ffffffffffffffff81111561205a57612059612020565b5b60208301915083602082028301111561207657612075612024565b5b9250929050565b61208681611f3d565b8114612090575f80fd5b50565b5f813590506120a18161207d565b92915050565b5f805f604084860312156120be576120bd611e6a565b5b5f84013567ffffffffffffffff8111156120db576120da611e6e565b5b6120e786828701612028565b935093505060206120fa86828701612093565b9150509250925092565b5f6020828403121561211957612118611e6a565b5b5f61212684828501611eb8565b91505092915050565b61213881611e91565b82525050565b5f6020820190506121515f83018461212f565b92915050565b5f806040838503121561216d5761216c611e6a565b5b5f61217a85828601611eb8565b925050602061218b85828601611eb8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612217578086048111156121f3576121f2612195565b5b60018516156122025780820291505b8081029050612210856121c2565b94506121d7565b94509492505050565b5f8261222f57600190506122ea565b8161223c575f90506122ea565b8160018114612252576002811461225c5761228b565b60019150506122ea565b60ff84111561226e5761226d612195565b5b8360020a91508482111561228557612284612195565b5b506122ea565b5060208310610133831016604e8410600b84101617156122c05782820a9050838111156122bb576122ba612195565b5b6122ea565b6122cd84848460016121ce565b925090508184048111156122e4576122e3612195565b5b81810290505b9392505050565b5f6122fb82611ecc565b915061230683611fe8565b92506123337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612220565b905092915050565b5f61234582611ecc565b915061235083611ecc565b925082820261235e81611ecc565b9150828204841483151761237557612374612195565b5b5092915050565b7f43616c6c6572206973206e6f7420666565206469737472696275746f720000005f82015250565b5f6123b0601d83611dca565b91506123bb8261237c565b602082019050919050565b5f6020820190508181035f8301526123dd816123a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61241b82611ecc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361244d5761244c612195565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61248c602083611dca565b915061249782612458565b602082019050919050565b5f6020820190508181035f8301526124b981612480565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6124f4601783611dca565b91506124ff826124c0565b602082019050919050565b5f6020820190508181035f830152612521816124e8565b9050919050565b5f8151905061253681611ea2565b92915050565b5f6020828403121561255157612550611e6a565b5b5f61255e84828501612528565b91505092915050565b5f60408201905061257a5f83018561212f565b612587602083018461212f565b9392505050565b5f6040820190506125a15f83018561212f565b6125ae6020830184611f70565b9392505050565b5f815190506125c38161207d565b92915050565b5f602082840312156125de576125dd611e6a565b5b5f6125eb848285016125b5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61264e602483611dca565b9150612659826125f4565b604082019050919050565b5f6020820190508181035f83015261267b81612642565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6126dc602283611dca565b91506126e782612682565b604082019050919050565b5f6020820190508181035f830152612709816126d0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61276a602583611dca565b915061277582612710565b604082019050919050565b5f6020820190508181035f8301526127978161275e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6127f8602383611dca565b91506128038261279e565b604082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612886602983611dca565b91506128918261282c565b604082019050919050565b5f6020820190508181035f8301526128b38161287a565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6128ee601983611dca565b91506128f9826128ba565b602082019050919050565b5f6020820190508181035f83015261291b816128e2565b9050919050565b5f61292c82611ecc565b915061293783611ecc565b925082820190508082111561294f5761294e612195565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612989601a83611dca565b915061299482612955565b602082019050919050565b5f6020820190508181035f8301526129b68161297d565b9050919050565b5f6129c782611ecc565b91506129d283611ecc565b92508282039050818111156129ea576129e9612195565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f819050919050565b5f819050919050565b5f612a49612a44612a3f84612a1d565b612a26565b611ecc565b9050919050565b612a5981612a2f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a9181611e91565b82525050565b5f612aa28383612a88565b60208301905092915050565b5f602082019050919050565b5f612ac482612a5f565b612ace8185612a69565b9350612ad983612a79565b805f5b83811015612b09578151612af08882612a97565b9750612afb83612aae565b925050600181019050612adc565b5085935050505092915050565b5f60a082019050612b295f830188611f70565b612b366020830187612a50565b8181036040830152612b488186612aba565b9050612b57606083018561212f565b612b646080830184611f70565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ba2601b83611dca565b9150612bad82612b6e565b602082019050919050565b5f6020820190508181035f830152612bcf81612b96565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220714f5e7be40296642e337094b8f7b77ee7af7fe0f8cff8da7f963d28ca2daa1864736f6c63430008140033

Deployed Bytecode Sourcemap

4046:7393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5921:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6754:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:56;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6198:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6923:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6107:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10655:206;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6301:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2591:148;;;:::i;:::-;;10198:225;;;:::i;:::-;;10531:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4993:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2377:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5058:60;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6012:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6428:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5125:62;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10869:567;;;:::i;:::-;;6603:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2885:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5921:83;5958:13;5991:5;;;;;;;;;;;;;;;;;5984:12;;5921:83;:::o;6754:161::-;6829:4;6846:39;6855:12;:10;:12::i;:::-;6869:7;6878:6;6846:8;:39::i;:::-;6903:4;6896:11;;6754:161;;;;:::o;5194:56::-;;;;:::o;6198:95::-;6251:7;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;6271:14;;6198:95;:::o;6923:313::-;7021:4;7038:36;7048:6;7056:9;7067:6;7038:9;:36::i;:::-;7085:121;7094:6;7102:12;:10;:12::i;:::-;7116:89;7154:6;7116:89;;;;;;;;;;;;;;;;;:11;:19;7128:6;7116:19;;;;;;;;;;;;;;;:33;7136:12;:10;:12::i;:::-;7116:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7085:8;:121::i;:::-;7224:4;7217:11;;6923:313;;;;;:::o;6107:83::-;6148:5;4801:1;6166:16;;6107:83;:::o;10655:206::-;2809:10;2793:26;;:12;;;;;;;;;;:26;;;2785:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10748:9:::1;10743:111;10767:8;;:15;;10763:1;:19;10743:111;;;10839:3;10804:19;:32;10824:8;;10833:1;10824:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10804:32;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;10784:3;;;;;:::i;:::-;;;;10743:111;;;;10655:206:::0;;;:::o;6301:119::-;6367:7;6394:9;:18;6404:7;6394:18;;;;;;;;;;;;;;;;6387:25;;6301:119;;;:::o;2591:148::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2698:1:::1;2661:40;;2682:6;;;;;;;;;;;2661:40;;;;;;;;;;;;2729:1;2712:6;;:19;;;;;;;;;;;;;;;;;;2591:148::o:0;10198:225::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4801:1:::1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;10251:12;:22;;;;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;10284:14;:22;;;;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;10317:17;:25;;;;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;10353:11;:19;;;;10388:27;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;10388:27;;;;;;:::i;:::-;;;;;;;;10198:225::o:0;10531:116::-;10596:4;10617:19;:22;10637:1;10617:22;;;;;;;;;;;;;;;;;;;;;;;;;10610:29;;10531:116;;;:::o;4993:58::-;;;;:::o;2377:79::-;2415:7;2442:6;;;;;;;;;;;2435:13;;2377:79;:::o;5058:60::-;;;;:::o;6012:87::-;6051:13;6084:7;;;;;;;;;;;;;;;;;6077:14;;6012:87;:::o;6428:167::-;6506:4;6523:42;6533:12;:10;:12::i;:::-;6547:9;6558:6;6523:9;:42::i;:::-;6583:4;6576:11;;6428:167;;;;:::o;5125:62::-;;;;:::o;10869:567::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10933:11:::1;;;;;;;;;;;10932:12;10924:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11019:42;10982:15;;:80;;;;;;;;;;;;;;;;;;11073:58;11090:4;11105:15;;;;;;;;;;;4801:1;4860:2;:13;;;;:::i;:::-;4844;:29;;;;:::i;:::-;11073:8;:58::i;:::-;11176:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11158:55;;;11222:4;11229:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11158:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11142:13;;:110;;;;;;;;;;;;;;;;;;11270:13;;;;;;;;;;;11263:29;;;11301:15;;;;;;;;;;;11319:14;11263:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11359:4;11345:11;;:18;;;;;;;;;;;;;;;;;;11388:4;11374:11;;:18;;;;;;;;;;;;;;;;;;11416:12;11403:10;:25;;;;10869:567::o:0;6603:143::-;6684:7;6711:11;:18;6723:5;6711:18;;;;;;;;;;;;;;;:27;6730:7;6711:27;;;;;;;;;;;;;;;;6704:34;;6603:143;;;;:::o;2885:145::-;2514:12;:10;:12::i;:::-;2504:22;;:6;;;;;;;;;;;:22;;;2496:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2986:1:::1;2962:26;;:12;::::0;::::1;;;;;;;;:26;;;2953:36;;;::::0;::::1;;3015:7;3000:12;::::0;:22:::1;;;;;;;;;;;;;;;;;;2885:145:::0;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;7244:335::-;7354:1;7337:19;;:5;:19;;;7329:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7435:1;7416:21;;:7;:21;;;7408:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7517:6;7487:11;:18;7499:5;7487:18;;;;;;;;;;;;;;;:27;7506:7;7487:27;;;;;;;;;;;;;;;:36;;;;7555:7;7539:32;;7548:5;7539:32;;;7564:6;7539:32;;;;;;:::i;:::-;;;;;;;;7244:335;;;:::o;7587:1801::-;7691:1;7675:18;;:4;:18;;;7667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7768:1;7754:16;;:2;:16;;;7746:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7838:1;7829:6;:10;7821:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7896:17;7933:7;:5;:7::i;:::-;7929:11;;:2;:11;;;7926:1277;;7966:1;7956:11;;7926:1277;;;8006:7;:5;:7::i;:::-;7998:15;;:4;:15;;;;:32;;;;;8023:7;:5;:7::i;:::-;8017:13;;:2;:13;;;;7998:32;7994:1209;;;8056:19;:25;8076:4;8056:25;;;;;;;;;;;;;;;;;;;;;;;;;8055:26;8047:35;;;;;;8111:13;;;;;;;;;;;8103:21;;:4;:21;;;:55;;;;;8142:15;;;;;;;;;;;8128:30;;:2;:30;;;;8103:55;:83;;;;;8164:18;:22;8183:2;8164:22;;;;;;;;;;;;;;;;;;;;;;;;;8162:24;8103:83;8099:406;;;8226:12;;8216:6;:22;;8208:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8321:14;;8311:6;8295:13;8305:2;8295:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8287:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8409:12;8404:1;8391:10;;:14;;;;:::i;:::-;:30;8387:103;;;8455:14;8466:2;8455:10;:14::i;:::-;8454:15;8446:24;;;;;;8387:103;8099:406;8531:13;;;;;;;;;;;8525:19;;:2;:19;;;;:46;;;;;8549:18;:22;8568:2;8549:22;;;;;;;;;;;;;;;;;;;;;;;;;8548:23;8525:46;8521:166;;;8626:14;;8616:6;8600:13;8610:2;8600:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8592:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8521:166;8703:28;8734:24;8752:4;8734:9;:24::i;:::-;8703:55;;8778:6;;;;;;;;;;8777:7;:30;;;;;8794:13;;;;;;;;;;;8788:19;;:2;:19;;;8777:30;:45;;;;;8811:11;;;;;;;;;;;8777:45;:87;;;;;8847:17;;8826:20;:38;8777:87;:119;;;;;8878:18;;8868:9;;:28;8777:119;8773:419;;;8917:67;8934:49;8938:6;8945:37;8949:20;8970:11;;8945:3;:37::i;:::-;8934:3;:49::i;:::-;8917:16;:67::i;:::-;9003:26;9032:21;9003:50;;9096:1;9075:18;:22;9072:105;;;9122:35;9135:21;9122:12;:35::i;:::-;9072:105;8898:294;8773:419;8032:1171;7994:1209;7926:1277;9231:27;9251:6;9231:9;:15;9241:4;9231:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9215:9;:15;9225:4;9215:15;;;;;;;;;;;;;;;:43;;;;9283:40;9301:21;9312:9;9301:6;:10;;:21;;;;:::i;:::-;9283:9;:13;9293:2;9283:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9269:9;:13;9279:2;9269:13;;;;;;;;;;;;;;;:54;;;;9354:2;9339:41;;9348:4;9339:41;;;9358:21;9369:9;9358:6;:10;;:21;;;;:::i;:::-;9339:41;;;;;;:::i;:::-;;;;;;;;7656:1732;7587:1801;;;:::o;1233:190::-;1319:7;1352:1;1347;:6;;1355:12;1339:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1379:9;1395:1;1391;:5;;;;:::i;:::-;1379:17;;1414:1;1407:8;;;1233:190;;;;;:::o;9504:195::-;9563:4;9580:12;9647:7;9635:20;9627:28;;9690:1;9683:4;:8;9676:15;;;9504:195;;;:::o;9398:98::-;9455:7;9482:1;9480;:3;9479:9;;9487:1;9479:9;;;9485:1;9479:9;9472:16;;9398:98;;;;:::o;9707:483::-;5541:4;5532:6;;:13;;;;;;;;;;;;;;;;;;9785:21:::1;9823:1;9809:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9785:40;;9854:4;9836;9841:1;9836:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9880:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9870:4;9875:1;9870:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9913:62;9930:4;9945:15;;;;;;;;;;;9963:11;9913:8;:62::i;:::-;9986:15;;;;;;;;;;;:66;;;10067:11;10093:1;10109:4;10136;10156:15;9986:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9774:416;5577:5:::0;5568:6;;:14;;;;;;;;;;;;;;;;;;9707:483;:::o;10431:92::-;10488:10;;;;;;;;;;;:19;;:27;10508:6;10488:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10431:92;:::o;1089:136::-;1147:7;1174:43;1178:1;1181;1174:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1167:50;;1089:136;;;;:::o;902:179::-;960:7;980:9;996:1;992;:5;;;;:::i;:::-;980:17;;1021:1;1016;:6;;1008:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1072:1;1065:8;;;902:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:117;5085:1;5082;5075:12;5099:117;5208:1;5205;5198:12;5239:568;5312:8;5322:6;5372:3;5365:4;5357:6;5353:17;5349:27;5339:122;;5380:79;;:::i;:::-;5339:122;5493:6;5480:20;5470:30;;5523:18;5515:6;5512:30;5509:117;;;5545:79;;:::i;:::-;5509:117;5659:4;5651:6;5647:17;5635:29;;5713:3;5705:4;5697:6;5693:17;5683:8;5679:32;5676:41;5673:128;;;5720:79;;:::i;:::-;5673:128;5239:568;;;;;:::o;5813:116::-;5883:21;5898:5;5883:21;:::i;:::-;5876:5;5873:32;5863:60;;5919:1;5916;5909:12;5863:60;5813:116;:::o;5935:133::-;5978:5;6016:6;6003:20;5994:29;;6032:30;6056:5;6032:30;:::i;:::-;5935:133;;;;:::o;6074:698::-;6166:6;6174;6182;6231:2;6219:9;6210:7;6206:23;6202:32;6199:119;;;6237:79;;:::i;:::-;6199:119;6385:1;6374:9;6370:17;6357:31;6415:18;6407:6;6404:30;6401:117;;;6437:79;;:::i;:::-;6401:117;6550:80;6622:7;6613:6;6602:9;6598:22;6550:80;:::i;:::-;6532:98;;;;6328:312;6679:2;6705:50;6747:7;6738:6;6727:9;6723:22;6705:50;:::i;:::-;6695:60;;6650:115;6074:698;;;;;:::o;6778:329::-;6837:6;6886:2;6874:9;6865:7;6861:23;6857:32;6854:119;;;6892:79;;:::i;:::-;6854:119;7012:1;7037:53;7082:7;7073:6;7062:9;7058:22;7037:53;:::i;:::-;7027:63;;6983:117;6778:329;;;;:::o;7113:118::-;7200:24;7218:5;7200:24;:::i;:::-;7195:3;7188:37;7113:118;;:::o;7237:222::-;7330:4;7368:2;7357:9;7353:18;7345:26;;7381:71;7449:1;7438:9;7434:17;7425:6;7381:71;:::i;:::-;7237:222;;;;:::o;7465:474::-;7533:6;7541;7590:2;7578:9;7569:7;7565:23;7561:32;7558:119;;;7596:79;;:::i;:::-;7558:119;7716:1;7741:53;7786:7;7777:6;7766:9;7762:22;7741:53;:::i;:::-;7731:63;;7687:117;7843:2;7869:53;7914:7;7905:6;7894:9;7890:22;7869:53;:::i;:::-;7859:63;;7814:118;7465:474;;;;;:::o;7945:180::-;7993:77;7990:1;7983:88;8090:4;8087:1;8080:15;8114:4;8111:1;8104:15;8131:102;8173:8;8220:5;8217:1;8213:13;8192:34;;8131:102;;;:::o;8239:848::-;8300:5;8307:4;8331:6;8322:15;;8355:5;8346:14;;8369:712;8390:1;8380:8;8377:15;8369:712;;;8485:4;8480:3;8476:14;8470:4;8467:24;8464:50;;;8494:18;;:::i;:::-;8464:50;8544:1;8534:8;8530:16;8527:451;;;8959:4;8952:5;8948:16;8939:25;;8527:451;9009:4;9003;8999:15;8991:23;;9039:32;9062:8;9039:32;:::i;:::-;9027:44;;8369:712;;;8239:848;;;;;;;:::o;9093:1073::-;9147:5;9338:8;9328:40;;9359:1;9350:10;;9361:5;;9328:40;9387:4;9377:36;;9404:1;9395:10;;9406:5;;9377:36;9473:4;9521:1;9516:27;;;;9557:1;9552:191;;;;9466:277;;9516:27;9534:1;9525:10;;9536:5;;;9552:191;9597:3;9587:8;9584:17;9581:43;;;9604:18;;:::i;:::-;9581:43;9653:8;9650:1;9646:16;9637:25;;9688:3;9681:5;9678:14;9675:40;;;9695:18;;:::i;:::-;9675:40;9728:5;;;9466:277;;9852:2;9842:8;9839:16;9833:3;9827:4;9824:13;9820:36;9802:2;9792:8;9789:16;9784:2;9778:4;9775:12;9771:35;9755:111;9752:246;;;9908:8;9902:4;9898:19;9889:28;;9943:3;9936:5;9933:14;9930:40;;;9950:18;;:::i;:::-;9930:40;9983:5;;9752:246;10023:42;10061:3;10051:8;10045:4;10042:1;10023:42;:::i;:::-;10008:57;;;;10097:4;10092:3;10088:14;10081:5;10078:25;10075:51;;;10106:18;;:::i;:::-;10075:51;10155:4;10148:5;10144:16;10135:25;;9093:1073;;;;;;:::o;10172:281::-;10230:5;10254:23;10272:4;10254:23;:::i;:::-;10246:31;;10298:25;10314:8;10298:25;:::i;:::-;10286:37;;10342:104;10379:66;10369:8;10363:4;10342:104;:::i;:::-;10333:113;;10172:281;;;;:::o;10459:410::-;10499:7;10522:20;10540:1;10522:20;:::i;:::-;10517:25;;10556:20;10574:1;10556:20;:::i;:::-;10551:25;;10611:1;10608;10604:9;10633:30;10651:11;10633:30;:::i;:::-;10622:41;;10812:1;10803:7;10799:15;10796:1;10793:22;10773:1;10766:9;10746:83;10723:139;;10842:18;;:::i;:::-;10723:139;10507:362;10459:410;;;;:::o;10875:179::-;11015:31;11011:1;11003:6;10999:14;10992:55;10875:179;:::o;11060:366::-;11202:3;11223:67;11287:2;11282:3;11223:67;:::i;:::-;11216:74;;11299:93;11388:3;11299:93;:::i;:::-;11417:2;11412:3;11408:12;11401:19;;11060:366;;;:::o;11432:419::-;11598:4;11636:2;11625:9;11621:18;11613:26;;11685:9;11679:4;11675:20;11671:1;11660:9;11656:17;11649:47;11713:131;11839:4;11713:131;:::i;:::-;11705:139;;11432:419;;;:::o;11857:180::-;11905:77;11902:1;11895:88;12002:4;11999:1;11992:15;12026:4;12023:1;12016:15;12043:233;12082:3;12105:24;12123:5;12105:24;:::i;:::-;12096:33;;12151:66;12144:5;12141:77;12138:103;;12221:18;;:::i;:::-;12138:103;12268:1;12261:5;12257:13;12250:20;;12043:233;;;:::o;12282:182::-;12422:34;12418:1;12410:6;12406:14;12399:58;12282:182;:::o;12470:366::-;12612:3;12633:67;12697:2;12692:3;12633:67;:::i;:::-;12626:74;;12709:93;12798:3;12709:93;:::i;:::-;12827:2;12822:3;12818:12;12811:19;;12470:366;;;:::o;12842:419::-;13008:4;13046:2;13035:9;13031:18;13023:26;;13095:9;13089:4;13085:20;13081:1;13070:9;13066:17;13059:47;13123:131;13249:4;13123:131;:::i;:::-;13115:139;;12842:419;;;:::o;13267:173::-;13407:25;13403:1;13395:6;13391:14;13384:49;13267:173;:::o;13446:366::-;13588:3;13609:67;13673:2;13668:3;13609:67;:::i;:::-;13602:74;;13685:93;13774:3;13685:93;:::i;:::-;13803:2;13798:3;13794:12;13787:19;;13446:366;;;:::o;13818:419::-;13984:4;14022:2;14011:9;14007:18;13999:26;;14071:9;14065:4;14061:20;14057:1;14046:9;14042:17;14035:47;14099:131;14225:4;14099:131;:::i;:::-;14091:139;;13818:419;;;:::o;14243:143::-;14300:5;14331:6;14325:13;14316:22;;14347:33;14374:5;14347:33;:::i;:::-;14243:143;;;;:::o;14392:351::-;14462:6;14511:2;14499:9;14490:7;14486:23;14482:32;14479:119;;;14517:79;;:::i;:::-;14479:119;14637:1;14662:64;14718:7;14709:6;14698:9;14694:22;14662:64;:::i;:::-;14652:74;;14608:128;14392:351;;;;:::o;14749:332::-;14870:4;14908:2;14897:9;14893:18;14885:26;;14921:71;14989:1;14978:9;14974:17;14965:6;14921:71;:::i;:::-;15002:72;15070:2;15059:9;15055:18;15046:6;15002:72;:::i;:::-;14749:332;;;;;:::o;15087:::-;15208:4;15246:2;15235:9;15231:18;15223:26;;15259:71;15327:1;15316:9;15312:17;15303:6;15259:71;:::i;:::-;15340:72;15408:2;15397:9;15393:18;15384:6;15340:72;:::i;:::-;15087:332;;;;;:::o;15425:137::-;15479:5;15510:6;15504:13;15495:22;;15526:30;15550:5;15526:30;:::i;:::-;15425:137;;;;:::o;15568:345::-;15635:6;15684:2;15672:9;15663:7;15659:23;15655:32;15652:119;;;15690:79;;:::i;:::-;15652:119;15810:1;15835:61;15888:7;15879:6;15868:9;15864:22;15835:61;:::i;:::-;15825:71;;15781:125;15568:345;;;;:::o;15919:223::-;16059:34;16055:1;16047:6;16043:14;16036:58;16128:6;16123:2;16115:6;16111:15;16104:31;15919:223;:::o;16148:366::-;16290:3;16311:67;16375:2;16370:3;16311:67;:::i;:::-;16304:74;;16387:93;16476:3;16387:93;:::i;:::-;16505:2;16500:3;16496:12;16489:19;;16148:366;;;:::o;16520:419::-;16686:4;16724:2;16713:9;16709:18;16701:26;;16773:9;16767:4;16763:20;16759:1;16748:9;16744:17;16737:47;16801:131;16927:4;16801:131;:::i;:::-;16793:139;;16520:419;;;:::o;16945:221::-;17085:34;17081:1;17073:6;17069:14;17062:58;17154:4;17149:2;17141:6;17137:15;17130:29;16945:221;:::o;17172:366::-;17314:3;17335:67;17399:2;17394:3;17335:67;:::i;:::-;17328:74;;17411:93;17500:3;17411:93;:::i;:::-;17529:2;17524:3;17520:12;17513:19;;17172:366;;;:::o;17544:419::-;17710:4;17748:2;17737:9;17733:18;17725:26;;17797:9;17791:4;17787:20;17783:1;17772:9;17768:17;17761:47;17825:131;17951:4;17825:131;:::i;:::-;17817:139;;17544:419;;;:::o;17969:224::-;18109:34;18105:1;18097:6;18093:14;18086:58;18178:7;18173:2;18165:6;18161:15;18154:32;17969:224;:::o;18199:366::-;18341:3;18362:67;18426:2;18421:3;18362:67;:::i;:::-;18355:74;;18438:93;18527:3;18438:93;:::i;:::-;18556:2;18551:3;18547:12;18540:19;;18199:366;;;:::o;18571:419::-;18737:4;18775:2;18764:9;18760:18;18752:26;;18824:9;18818:4;18814:20;18810:1;18799:9;18795:17;18788:47;18852:131;18978:4;18852:131;:::i;:::-;18844:139;;18571:419;;;:::o;18996:222::-;19136:34;19132:1;19124:6;19120:14;19113:58;19205:5;19200:2;19192:6;19188:15;19181:30;18996:222;:::o;19224:366::-;19366:3;19387:67;19451:2;19446:3;19387:67;:::i;:::-;19380:74;;19463:93;19552:3;19463:93;:::i;:::-;19581:2;19576:3;19572:12;19565:19;;19224:366;;;:::o;19596:419::-;19762:4;19800:2;19789:9;19785:18;19777:26;;19849:9;19843:4;19839:20;19835:1;19824:9;19820:17;19813:47;19877:131;20003:4;19877:131;:::i;:::-;19869:139;;19596:419;;;:::o;20021:228::-;20161:34;20157:1;20149:6;20145:14;20138:58;20230:11;20225:2;20217:6;20213:15;20206:36;20021:228;:::o;20255:366::-;20397:3;20418:67;20482:2;20477:3;20418:67;:::i;:::-;20411:74;;20494:93;20583:3;20494:93;:::i;:::-;20612:2;20607:3;20603:12;20596:19;;20255:366;;;:::o;20627:419::-;20793:4;20831:2;20820:9;20816:18;20808:26;;20880:9;20874:4;20870:20;20866:1;20855:9;20851:17;20844:47;20908:131;21034:4;20908:131;:::i;:::-;20900:139;;20627:419;;;:::o;21052:175::-;21192:27;21188:1;21180:6;21176:14;21169:51;21052:175;:::o;21233:366::-;21375:3;21396:67;21460:2;21455:3;21396:67;:::i;:::-;21389:74;;21472:93;21561:3;21472:93;:::i;:::-;21590:2;21585:3;21581:12;21574:19;;21233:366;;;:::o;21605:419::-;21771:4;21809:2;21798:9;21794:18;21786:26;;21858:9;21852:4;21848:20;21844:1;21833:9;21829:17;21822:47;21886:131;22012:4;21886:131;:::i;:::-;21878:139;;21605:419;;;:::o;22030:191::-;22070:3;22089:20;22107:1;22089:20;:::i;:::-;22084:25;;22123:20;22141:1;22123:20;:::i;:::-;22118:25;;22166:1;22163;22159:9;22152:16;;22187:3;22184:1;22181:10;22178:36;;;22194:18;;:::i;:::-;22178:36;22030:191;;;;:::o;22227:176::-;22367:28;22363:1;22355:6;22351:14;22344:52;22227:176;:::o;22409:366::-;22551:3;22572:67;22636:2;22631:3;22572:67;:::i;:::-;22565:74;;22648:93;22737:3;22648:93;:::i;:::-;22766:2;22761:3;22757:12;22750:19;;22409:366;;;:::o;22781:419::-;22947:4;22985:2;22974:9;22970:18;22962:26;;23034:9;23028:4;23024:20;23020:1;23009:9;23005:17;22998:47;23062:131;23188:4;23062:131;:::i;:::-;23054:139;;22781:419;;;:::o;23206:194::-;23246:4;23266:20;23284:1;23266:20;:::i;:::-;23261:25;;23300:20;23318:1;23300:20;:::i;:::-;23295:25;;23344:1;23341;23337:9;23329:17;;23368:1;23362:4;23359:11;23356:37;;;23373:18;;:::i;:::-;23356:37;23206:194;;;;:::o;23406:180::-;23454:77;23451:1;23444:88;23551:4;23548:1;23541:15;23575:4;23572:1;23565:15;23592:85;23637:7;23666:5;23655:16;;23592:85;;;:::o;23683:60::-;23711:3;23732:5;23725:12;;23683:60;;;:::o;23749:158::-;23807:9;23840:61;23858:42;23867:32;23893:5;23867:32;:::i;:::-;23858:42;:::i;:::-;23840:61;:::i;:::-;23827:74;;23749:158;;;:::o;23913:147::-;24008:45;24047:5;24008:45;:::i;:::-;24003:3;23996:58;23913:147;;:::o;24066:114::-;24133:6;24167:5;24161:12;24151:22;;24066:114;;;:::o;24186:184::-;24285:11;24319:6;24314:3;24307:19;24359:4;24354:3;24350:14;24335:29;;24186:184;;;;:::o;24376:132::-;24443:4;24466:3;24458:11;;24496:4;24491:3;24487:14;24479:22;;24376:132;;;:::o;24514:108::-;24591:24;24609:5;24591:24;:::i;:::-;24586:3;24579:37;24514:108;;:::o;24628:179::-;24697:10;24718:46;24760:3;24752:6;24718:46;:::i;:::-;24796:4;24791:3;24787:14;24773:28;;24628:179;;;;:::o;24813:113::-;24883:4;24915;24910:3;24906:14;24898:22;;24813:113;;;:::o;24962:732::-;25081:3;25110:54;25158:5;25110:54;:::i;:::-;25180:86;25259:6;25254:3;25180:86;:::i;:::-;25173:93;;25290:56;25340:5;25290:56;:::i;:::-;25369:7;25400:1;25385:284;25410:6;25407:1;25404:13;25385:284;;;25486:6;25480:13;25513:63;25572:3;25557:13;25513:63;:::i;:::-;25506:70;;25599:60;25652:6;25599:60;:::i;:::-;25589:70;;25445:224;25432:1;25429;25425:9;25420:14;;25385:284;;;25389:14;25685:3;25678:10;;25086:608;;;24962:732;;;;:::o;25700:831::-;25963:4;26001:3;25990:9;25986:19;25978:27;;26015:71;26083:1;26072:9;26068:17;26059:6;26015:71;:::i;:::-;26096:80;26172:2;26161:9;26157:18;26148:6;26096:80;:::i;:::-;26223:9;26217:4;26213:20;26208:2;26197:9;26193:18;26186:48;26251:108;26354:4;26345:6;26251:108;:::i;:::-;26243:116;;26369:72;26437:2;26426:9;26422:18;26413:6;26369:72;:::i;:::-;26451:73;26519:3;26508:9;26504:19;26495:6;26451:73;:::i;:::-;25700:831;;;;;;;;:::o;26537:177::-;26677:29;26673:1;26665:6;26661:14;26654:53;26537:177;:::o;26720:366::-;26862:3;26883:67;26947:2;26942:3;26883:67;:::i;:::-;26876:74;;26959:93;27048:3;26959:93;:::i;:::-;27077:2;27072:3;27068:12;27061:19;;26720:366;;;:::o;27092:419::-;27258:4;27296:2;27285:9;27281:18;27273:26;;27345:9;27339:4;27335:20;27331:1;27320:9;27316:17;27309:47;27373:131;27499:4;27373:131;:::i;:::-;27365:139;;27092:419;;;:::o

Swarm Source

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