ETH Price: $2,402.51 (-3.20%)
 

Overview

Max Total Supply

180,000,000 POLC

Holders

9,394 (0.00%)

Market

Price

$0.01 @ 0.000002 ETH (+1.43%)

Onchain Market Cap

$979,410.86

Circulating Supply Market Cap

$1,033,963.69

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,207 POLC

Value
$12.01 ( ~0.00499894167074321 Eth) [0.0012%]
0x12ea3662cc907aaa807b799828fac06a1e42e7c6
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Polka City is a new fully autonomous contract based NFT platform that allows you to invest in virtual assets in the form of a virtual city.

Market

Volume (24H):$378,498.01
Market Capitalization:$1,033,963.69
Circulating Supply:190,025,935.00 POLC
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
POLCToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-17
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

interface ItokenRecipient { 
    function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external returns (bool); 
}

interface IERC20Token {
    function totalSupply() external view returns (uint256 supply);
    function transfer(address _to, uint256 _value) external  returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
    function balanceOf(address _owner) external view returns (uint256 balance);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint256 remaining);
}

contract Ownable {

    address private owner;
    
    event OwnerSet(address indexed oldOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Caller is not owner");
        _;
    }

    constructor() {
        owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
        emit OwnerSet(address(0), owner);
    }


    function changeOwner(address newOwner) public onlyOwner {
        emit OwnerSet(owner, newOwner);
        owner = newOwner;
    }

    function getOwner() external view returns (address) {
        return owner;
    }
}

contract StandardToken is IERC20Token {
    
    using SafeMath for uint256;
    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;
    uint256 public _totalSupply;
    
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    
    function totalSupply() override public view returns (uint256 supply) {
        return _totalSupply;
    }

    function transfer(address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                              
		require(_value >= 0, "Invalid amount"); 
		require(balances[msg.sender] >= _value, "Not enough balance");
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) override virtual public returns (bool success) {
        require(_to != address(0x0), "Use burn function instead");                               
		require(_value >= 0, "Invalid amount"); 
		require(balances[_from] >= _value, "Not enough balance");
		require(allowed[_from][msg.sender] >= _value, "You need to increase allowance");
		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		emit Transfer(_from, _to, _value);
        return true;
    }

    function balanceOf(address _owner) override public view returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) override public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) override public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
}

contract POLCToken is Ownable, StandardToken {

    using SafeMath for uint256;
    string public name = "Polka City";
    uint8 public decimals = 18;
    string public symbol = "POLC";

    // Time lock for progressive release of team, marketing and platform balances
    struct TimeLock {
        uint256 totalAmount;
        uint256 lockedBalance;
        uint128 baseDate;
        uint64 step;
        uint64 tokensStep;
    }
    mapping (address => TimeLock) public timeLocks; 

    // Prevent Bots - If true, limits transactions to 1 transfer per block (whitelisted can execute multiple transactions)
    bool public limitTransactions;
    mapping (address => bool) public contractsWhiteList;
    mapping (address => uint) public lastTXBlock;
    event Burn(address indexed from, uint256 value);

// token sale

    // Wallet for the tokens to be sold, and receive ETH
    address payable public salesWallet;
    uint256 public soldOnCSale;
    uint256 public constant CROWDSALE_START = 1613926800;
    uint256 public constant CROWDSALE_END = 1614556740;
    uint256 public constant CSALE_WEI_FACTOR = 15000;
    uint256 public constant CSALE_HARDCAP = 7500000 ether;
    
    constructor() {
        _totalSupply = 250000000 ether;
        
        // Base date to calculate team, marketing and platform tokens lock
        uint256 lockStartDate = 1613494800;
        
        // Team wallet - 10000000 tokens
        // 0 tokens free, 10000000 tokens locked - progressive release of 5% every 30 days (after 180 days of waiting period)
        address team = 0x4ef5B3d10fD217AC7ddE4DDee5bF319c5c356723;
        balances[team] = 10000000 ether;
        timeLocks[team] = TimeLock(10000000 ether, 10000000 ether, uint128(lockStartDate + (180 days)), 30 days, 500000);
        emit Transfer(address(0x0), team, balances[team]);

        // Marketing wallet - 5000000 tokens
        // 1000000 tokens free, 4000000 tokens locked - progressive release of 5% every 30 days
        address marketingWallet = 0x056F878d4Ac07E66C9a46a8db4918E827c6fD71c;
        balances[marketingWallet] = 5000000 ether;
        timeLocks[marketingWallet] = TimeLock(4000000 ether, 4000000 ether, uint128(lockStartDate), 30 days, 200000);
        emit Transfer(address(0x0), marketingWallet, balances[marketingWallet]);
        
        // Private sale wallet - 2500000 tokens
        address privateWallet = 0xED854fCF86efD8473F174d6dE60c8A5EBDdCc37A;
        balances[privateWallet] = 2500000 ether;
        emit Transfer(address(0x0), privateWallet, balances[privateWallet]);
        
        // Sales wallet, holds Pre-Sale balance - 7500000 tokens
        salesWallet = payable(0x4bb74E94c1EB133a6868C53aA4f6BD437F99c347);
        balances[salesWallet] = 7500000 ether;
        emit Transfer(address(0x0), salesWallet, balances[salesWallet]);
        
        // Exchanges - 25000000 tokens
        address exchanges = 0xE50d4358425a93702988eCd8B66c2EAD8b41CE5d;  
        balances[exchanges] = 25000000 ether;
        emit Transfer(address(0x0), exchanges, balances[exchanges]);
        
        // Platform wallet - 200000000 tokens
        // 50000000 tokens free, 150000000 tokens locked - progressive release of 25000000 every 90 days
        address platformWallet = 0xAD334543437EF71642Ee59285bAf2F4DAcBA613F;
        balances[platformWallet] = 200000000 ether;
        timeLocks[platformWallet] = TimeLock(150000000 ether, 150000000 ether, uint128(lockStartDate), 90 days, 25000000);
        emit Transfer(address(0x0), platformWallet, balances[platformWallet]);
        


    }
    
    function transfer(address _to, uint256 _value) override public returns (bool success) {
        require(checkTransferLimit(), "Transfers are limited to 1 per block");
        require(_value <= (balances[msg.sender] - timeLocks[msg.sender].lockedBalance));
        return super.transfer(_to, _value);
    }
    
    function transferFrom(address _from, address _to, uint256 _value) override public returns (bool success) {
        require(checkTransferLimit(), "Transfers are limited to 1 per block");
        require(_value <= (balances[_from] - timeLocks[_from].lockedBalance));
        return super.transferFrom(_from, _to, _value);
    }
    
    function burn(uint256 _value) public returns (bool success) {
        require(balances[msg.sender] >= _value, "Not enough balance");
		require(_value >= 0, "Invalid amount"); 
        balances[msg.sender] = balances[msg.sender].sub(_value);
        _totalSupply = _totalSupply.sub(_value);
        emit Burn(msg.sender, _value);
        return true;
    }
    
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        ItokenRecipient recipient = ItokenRecipient(_spender);
        require(recipient.receiveApproval(msg.sender, _value, address(this), _extraData));
        return true;
    }
    

    function releaseTokens(address _account) public {
        uint256 timeDiff = block.timestamp - uint256(timeLocks[_account].baseDate);
        require(timeDiff > uint256(timeLocks[_account].step), "Unlock point not reached yet");
        uint256 steps = (timeDiff / uint256(timeLocks[_account].step));
        uint256 unlockableAmount = ((uint256(timeLocks[_account].tokensStep) * 1 ether) * steps);
        if (unlockableAmount >=  timeLocks[_account].totalAmount) {
            timeLocks[_account].lockedBalance = 0;
        } else {
            timeLocks[_account].lockedBalance = timeLocks[_account].totalAmount - unlockableAmount;
        }
    }
       
    function checkTransferLimit() internal returns (bool txAllowed) {
        address _caller = msg.sender;
        if (limitTransactions == true && contractsWhiteList[_caller] != true) {
            if (lastTXBlock[_caller] == block.number) {
                return false;
            } else {
                lastTXBlock[_caller] = block.number;
                return true;
            }
        } else {
            return true;
        }
    }
    
    function enableTXLimit() public onlyOwner {
        limitTransactions = true;
    }
    
    function disableTXLimit() public onlyOwner {
        limitTransactions = false;
    }
    
    function includeWhiteList(address _contractAddress) public onlyOwner {
        contractsWhiteList[_contractAddress] = true;
    }
    
    function removeWhiteList(address _contractAddress) public onlyOwner {
        contractsWhiteList[_contractAddress] = false;
    }
    
    function getLockedBalance(address _wallet) public view returns (uint256 lockedBalance) {
        return timeLocks[_wallet].lockedBalance;
    }
    
    function buy() public payable {
        require((block.timestamp > CROWDSALE_START) && (block.timestamp < CROWDSALE_END), "Contract is not selling tokens");
        uint weiValue = msg.value;
        require(weiValue >= (5 * (10 ** 16)), "Minimum amount is 0.05 eth");
        require(weiValue <= (20 ether), "Maximum amount is 20 eth");
        uint amount = CSALE_WEI_FACTOR * weiValue;
        require((soldOnCSale) <= (CSALE_HARDCAP), "That quantity is not available");
        soldOnCSale += amount;
        balances[salesWallet] = balances[salesWallet].sub(amount);
        balances[msg.sender] = balances[msg.sender].add(amount);
        require(salesWallet.send(weiValue));
        emit Transfer(salesWallet, msg.sender, amount);

    }
    
    function burnUnsold() public onlyOwner {
        require(block.timestamp > CROWDSALE_END);
        uint currentBalance = balances[salesWallet];
        balances[salesWallet] = 0;
        _totalSupply = _totalSupply.sub(currentBalance);
        emit Burn(salesWallet, currentBalance);
    }
}

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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","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":"CROWDSALE_END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CROWDSALE_START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_WEI_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","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":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnUnsold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contractsWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTXLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTXLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"getLockedBalance","outputs":[{"internalType":"uint256","name":"lockedBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"includeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTXBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"releaseTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"removeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"salesWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"soldOnCSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeLocks","outputs":[{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"lockedBalance","type":"uint256"},{"internalType":"uint128","name":"baseDate","type":"uint128"},{"internalType":"uint64","name":"step","type":"uint64"},{"internalType":"uint64","name":"tokensStep","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60c0604052600a608081905269506f6c6b61204369747960b01b60a09081526200002d9160049190620006af565b506005805460ff1916601217905560408051808201909152600480825263504f4c4360e01b60209092019182526200006891600691620006af565b503480156200007657600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a36acecb8f27f4200f3a000000600355734ef5b3d10fd217ac7dde4ddee5bf319c5c3567236000819052600160209081526a084595161401484a0000007fe3a3b53db6946945c15787106d388def8bafaab9263a29ba26d66bd0056ae9038190556040805160a0810182528281529283019190915263602bfa1092919081016200014d8462ed4e006200075e565b6001600160801b03908116825262278d006020808401919091526207a1206040938401526001600160a01b0385166000818152600783528481208651815586840151600180830191909155878701516002909201805460608a01516080909a01516001600160801b03199091169390971692909217600160801b600160c01b031916600160801b6001600160401b03998a1602176001600160c01b0316600160c01b9890961697909702949094179093559390528181205491519091600080516020620021d38339815191529162000226919062000755565b60405180910390a36a0422ca8b0a00a4250000007fefb8b26ec39b89fca60683fbc305afb94fb89588de85774b43df604186b01aeb8190556040805160a0810182526a034f086f3b33b68400000080825260208083019182526001600160801b0387811684860190815262278d006060860190815262030d406080870190815273056f878d4ac07e66c9a46a8db4918e827c6fd71c60008181526007875297517fd11d8628b78e89bdcb005ba69e9de2c9f384aa8ef43f471981742ac626da3fd35595517fd11d8628b78e89bdcb005ba69e9de2c9f384aa8ef43f471981742ac626da3fd45591517fd11d8628b78e89bdcb005ba69e9de2c9f384aa8ef43f471981742ac626da3fd58054925193516001600160801b03199093169190941617600160801b600160c01b031916600160801b6001600160401b0393841602176001600160c01b0316600160c01b929091169190910217905560019052915191928392600080516020620021d383398151915291620003a49162000755565b60405180910390a373ed854fcf86efd8473f174d6de60c8a5ebddcc37a600081815260016020526a02116545850052128000007f5fdfe6a6977b29bcf7c766194890e2917319311f35e3af23d45e7fe2ea4c7fb5819055604051839291600080516020620021d3833981519152916200041e919062000755565b60405180910390a3600b80546001600160a01b031916734bb74e94c1eb133a6868c53aa4f6bd437f99c347178082556001600160a01b039081166000908152600160205260408082206a06342fd08f00f637800000905592549091168082528282205492519092600080516020620021d383398151915291620004a2919062000755565b60405180910390a373e50d4358425a93702988ecd8b66c2ead8b41ce5d600081815260016020526a14adf4b7320334b90000007fa75e359665b6151eb5fea21fc21b149f4b1f144988b99b9e97a6019ff27f17b2819055604051839291600080516020620021d3833981519152916200051c919062000755565b60405180910390a36aa56fa5b99019a5c80000007f88d2b281dcf096e7dcc266492b7cd0a6d78188430ca5f231b7b070aa757e8e6d8190556040805160a0810182526a7c13bc4b2c133c5600000080825260208083019182526001600160801b038a81168486019081526276a7006060860190815263017d78406080870190815273ad334543437ef71642ee59285baf2f4dacba613f60008181526007875297517f397f1f5bd559bd56797890e3be703af232831f98761a40823167c1fba9cec3855595517f397f1f5bd559bd56797890e3be703af232831f98761a40823167c1fba9cec3865591517f397f1f5bd559bd56797890e3be703af232831f98761a40823167c1fba9cec3878054925193516001600160801b03199093169190941617600160801b600160c01b031916600160801b6001600160401b0393841602176001600160c01b0316600160c01b929091169190910217905560019052915191928392600080516020620021d3833981519152916200069b9162000755565b60405180910390a3505050505050620007c0565b828054620006bd9062000783565b90600052602060002090601f016020900481019282620006e157600085556200072c565b82601f10620006fc57805160ff19168380011785556200072c565b828001600101855582156200072c579182015b828111156200072c5782518255916020019190600101906200070f565b506200073a9291506200073e565b5090565b5b808211156200073a57600081556001016200073f565b90815260200190565b600082198211156200077e57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200079857607f821691505b60208210811415620007ba57634e487b7160e01b600052602260045260246000fd5b50919050565b611a0380620007d06000396000f3fe6080604052600436106101f95760003560e01c8063893d20e81161010d578063a7411c92116100a0578063c40868931161006f578063c408689314610549578063cae9ca5114610569578063dd62ed3e14610589578063df878f0b146105a9578063edf4d847146105be576101f9565b8063a7411c92146104df578063a9059cbb146104ff578063b52a58511461051f578063bdb97e8914610534576101f9565b806395d89b41116100dc57806395d89b4114610482578063a4b99ea814610497578063a6f2ae3a146104b7578063a6f9dae1146104bf576101f9565b8063893d20e8146104215780638b811719146104435780638e762ff914610458578063930d85e31461046d576101f9565b806337150140116101905780635c6581651161015f5780635c6581651461037b57806370a082311461039b5780637f76b223146103bb57806382870e30146103ec57806387b0be4814610401576101f9565b806337150140146103115780633eaaf86b1461032657806342966c681461033b5780634412d5521461035b576101f9565b80632042e5c2116101cc5780632042e5c21461028d57806323b872dd146102af57806327e235e3146102cf578063313ce567146102ef576101f9565b806306fdde03146101fe578063095ea7b31461022957806313ddb69a1461025657806318160ddd14610278575b600080fd5b34801561020a57600080fd5b506102136105d3565b6040516102209190611640565b60405180910390f35b34801561023557600080fd5b5061024961024436600461147b565b610661565b6040516102209190611635565b34801561026257600080fd5b5061026b6106cb565b60405161022091906118a8565b34801561028457600080fd5b5061026b6106d3565b34801561029957600080fd5b506102ad6102a83660046113f4565b6106da565b005b3480156102bb57600080fd5b506102496102ca366004611440565b61072e565b3480156102db57600080fd5b5061026b6102ea3660046113f4565b6107a4565b3480156102fb57600080fd5b506103046107b6565b60405161022091906118ea565b34801561031d57600080fd5b5061026b6107bf565b34801561033257600080fd5b5061026b6107c7565b34801561034757600080fd5b50610249610356366004611581565b6107cd565b34801561036757600080fd5b506102ad6103763660046113f4565b610879565b34801561038757600080fd5b5061026b61039636600461140e565b6108c7565b3480156103a757600080fd5b5061026b6103b63660046113f4565b6108e4565b3480156103c757600080fd5b506103db6103d63660046113f4565b6108ff565b6040516102209594939291906118b1565b3480156103f857600080fd5b506102ad610946565b34801561040d57600080fd5b506102ad61041c3660046113f4565b61097c565b34801561042d57600080fd5b50610436610b09565b60405161022091906115e4565b34801561044f57600080fd5b50610249610b18565b34801561046457600080fd5b5061026b610b21565b34801561047957600080fd5b506102ad610b27565b34801561048e57600080fd5b50610213610b60565b3480156104a357600080fd5b506102496104b23660046113f4565b610b6d565b6102ad610b82565b3480156104cb57600080fd5b506102ad6104da3660046113f4565b610d3b565b3480156104eb57600080fd5b5061026b6104fa3660046113f4565b610dc0565b34801561050b57600080fd5b5061024961051a36600461147b565b610dd2565b34801561052b57600080fd5b506102ad610e3d565b34801561054057600080fd5b5061026b610ef0565b34801561055557600080fd5b5061026b6105643660046113f4565b610ef6565b34801561057557600080fd5b506102496105843660046114a4565b610f14565b34801561059557600080fd5b5061026b6105a436600461140e565b61100f565b3480156105b557600080fd5b5061026b61103a565b3480156105ca57600080fd5b50610436611049565b600480546105e090611966565b80601f016020809104026020016040519081016040528092919081815260200182805461060c90611966565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106ba9086906118a8565b60405180910390a350600192915050565b636032919081565b6003545b90565b6000546001600160a01b0316331461070d5760405162461bcd60e51b8152600401610704906116c1565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000610738611058565b6107545760405162461bcd60e51b8152600401610704906117bf565b6001600160a01b0384166000908152600760209081526040808320600190810154925290912054610785919061194f565b82111561079157600080fd5b61079c8484846110ed565b949350505050565b60016020526000908152604090205481565b60055460ff1681565b63603c2e4481565b60035481565b336000908152600160205260408120548211156107fc5760405162461bcd60e51b81526004016107049061175c565b336000908152600160205260409020546108169083611246565b336000908152600160205260409020556003546108339083611246565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906108689085906118a8565b60405180910390a25060015b919050565b6000546001600160a01b031633146108a35760405162461bcd60e51b8152600401610704906116c1565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526001602052604090205490565b6007602052600090815260409020805460018201546002909201549091906001600160801b0381169067ffffffffffffffff600160801b8204811691600160c01b90041685565b6000546001600160a01b031633146109705760405162461bcd60e51b8152600401610704906116c1565b6008805460ff19169055565b6001600160a01b0381166000908152600760205260408120600201546109ab906001600160801b03164261194f565b6001600160a01b038316600090815260076020526040902060020154909150600160801b900467ffffffffffffffff1681116109f95760405162461bcd60e51b815260040161070490611788565b6001600160a01b038216600090815260076020526040812060020154610a3090600160801b900467ffffffffffffffff1683611910565b6001600160a01b038416600090815260076020526040812060020154919250908290610a7590600160c01b900467ffffffffffffffff16670de0b6b3a7640000611930565b610a7f9190611930565b6001600160a01b0385166000908152600760205260409020549091508110610ac2576001600160a01b038416600090815260076020526040812060010155610b03565b6001600160a01b038416600090815260076020526040902054610ae690829061194f565b6001600160a01b0385166000908152600760205260409020600101555b50505050565b6000546001600160a01b031690565b60085460ff1681565b600c5481565b6000546001600160a01b03163314610b515760405162461bcd60e51b8152600401610704906116c1565b6008805460ff19166001179055565b600680546105e090611966565b60096020526000908152604090205460ff1681565b636032919042118015610b98575063603c2e4442105b610bb45760405162461bcd60e51b8152600401610704906116ee565b3466b1a2bc2ec50000811015610bdc5760405162461bcd60e51b815260040161070490611803565b6801158e460913d00000811115610c055760405162461bcd60e51b815260040161070490611653565b6000610c1382613a98611930565b90506a06342fd08f00f637800000600c541115610c425760405162461bcd60e51b815260040161070490611871565b80600c6000828254610c5491906118f8565b9091555050600b546001600160a01b0316600090815260016020526040902054610c7e9082611246565b600b546001600160a01b0316600090815260016020526040808220929092553381522054610cac9082611288565b3360009081526001602052604080822092909255600b5491516001600160a01b03909216916108fc85150291859190818181858888f19350505050610cf057600080fd5b600b5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2f9085906118a8565b60405180910390a35050565b6000546001600160a01b03163314610d655760405162461bcd60e51b8152600401610704906116c1565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a6020526000908152604090205481565b6000610ddc611058565b610df85760405162461bcd60e51b8152600401610704906117bf565b336000908152600760209081526040808320600190810154925290912054610e20919061194f565b821115610e2c57600080fd5b610e3683836112b7565b9392505050565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610704906116c1565b63603c2e444211610e7757600080fd5b600b546001600160a01b031660009081526001602052604081208054919055600354610ea39082611246565b600355600b546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590610ee59084906118a8565b60405180910390a250565b613a9881565b6001600160a01b031660009081526007602052604090206001015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f6d9087906118a8565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb190610fa99033908890309089906004016115f8565b602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611561565b61100457600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600b546001600160a01b031681565b600854600090339060ff161515600114801561109257506001600160a01b03811660009081526009602052604090205460ff161515600114155b156110e3576001600160a01b0381166000908152600a60205260409020544314156110c15760009150506106d7565b6001600160a01b03166000908152600a602052604090204390555060016106d7565b60019150506106d7565b60006001600160a01b0383166111155760405162461bcd60e51b81526004016107049061183a565b6001600160a01b03841660009081526001602052604090205482111561114d5760405162461bcd60e51b81526004016107049061175c565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156111905760405162461bcd60e51b81526004016107049061168a565b6001600160a01b0384166000908152600160205260409020546111b39083611246565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111e29083611288565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349086906118a8565b60405180910390a35060019392505050565b6000610e3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a3565b60008061129583856118f8565b905083811015610e365760405162461bcd60e51b815260040161070490611725565b60006001600160a01b0383166112df5760405162461bcd60e51b81526004016107049061183a565b3360009081526001602052604090205482111561130e5760405162461bcd60e51b81526004016107049061175c565b336000908152600160205260409020546113289083611246565b33600090815260016020526040808220929092556001600160a01b038516815220546113549083611288565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ba9086906118a8565b600081848411156113c75760405162461bcd60e51b81526004016107049190611640565b5060006113d4848661194f565b95945050505050565b80356001600160a01b038116811461087457600080fd5b600060208284031215611405578081fd5b610e36826113dd565b60008060408385031215611420578081fd5b611429836113dd565b9150611437602084016113dd565b90509250929050565b600080600060608486031215611454578081fd5b61145d846113dd565b925061146b602085016113dd565b9150604084013590509250925092565b6000806040838503121561148d578182fd5b611496836113dd565b946020939093013593505050565b6000806000606084860312156114b8578283fd5b6114c1846113dd565b92506020808501359250604085013567ffffffffffffffff808211156114e5578384fd5b818701915087601f8301126114f8578384fd5b81358181111561150a5761150a6119b7565b604051601f8201601f191681018501838111828210171561152d5761152d6119b7565b60405281815283820185018a1015611543578586fd5b81858501868301378585838301015280955050505050509250925092565b600060208284031215611572578081fd5b81518015158114610e36578182fd5b600060208284031215611592578081fd5b5035919050565b60008151808452815b818110156115be576020818501810151868301820152016115a2565b818111156115cf5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252602082018590528316604082015260806060820181905260009061162b90830184611599565b9695505050505050565b901515815260200190565b600060208252610e366020830184611599565b60208082526018908201527f4d6178696d756d20616d6f756e74206973203230206574680000000000000000604082015260600190565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601c908201527f556e6c6f636b20706f696e74206e6f7420726561636865642079657400000000604082015260600190565b60208082526024908201527f5472616e736665727320617265206c696d6974656420746f20312070657220626040820152636c6f636b60e01b606082015260800190565b6020808252601a908201527f4d696e696d756d20616d6f756e7420697320302e303520657468000000000000604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b94855260208501939093526001600160801b0391909116604084015267ffffffffffffffff908116606084015216608082015260a00190565b60ff91909116815260200190565b6000821982111561190b5761190b6119a1565b500190565b60008261192b57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561194a5761194a6119a1565b500290565b600082821015611961576119616119a1565b500390565b60028104600182168061197a57607f821691505b6020821081141561199b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dd947106799feaceea59aed3ae5ee7e8531996e244d9846141e7975a7d9bdeb564736f6c63430008000033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101f95760003560e01c8063893d20e81161010d578063a7411c92116100a0578063c40868931161006f578063c408689314610549578063cae9ca5114610569578063dd62ed3e14610589578063df878f0b146105a9578063edf4d847146105be576101f9565b8063a7411c92146104df578063a9059cbb146104ff578063b52a58511461051f578063bdb97e8914610534576101f9565b806395d89b41116100dc57806395d89b4114610482578063a4b99ea814610497578063a6f2ae3a146104b7578063a6f9dae1146104bf576101f9565b8063893d20e8146104215780638b811719146104435780638e762ff914610458578063930d85e31461046d576101f9565b806337150140116101905780635c6581651161015f5780635c6581651461037b57806370a082311461039b5780637f76b223146103bb57806382870e30146103ec57806387b0be4814610401576101f9565b806337150140146103115780633eaaf86b1461032657806342966c681461033b5780634412d5521461035b576101f9565b80632042e5c2116101cc5780632042e5c21461028d57806323b872dd146102af57806327e235e3146102cf578063313ce567146102ef576101f9565b806306fdde03146101fe578063095ea7b31461022957806313ddb69a1461025657806318160ddd14610278575b600080fd5b34801561020a57600080fd5b506102136105d3565b6040516102209190611640565b60405180910390f35b34801561023557600080fd5b5061024961024436600461147b565b610661565b6040516102209190611635565b34801561026257600080fd5b5061026b6106cb565b60405161022091906118a8565b34801561028457600080fd5b5061026b6106d3565b34801561029957600080fd5b506102ad6102a83660046113f4565b6106da565b005b3480156102bb57600080fd5b506102496102ca366004611440565b61072e565b3480156102db57600080fd5b5061026b6102ea3660046113f4565b6107a4565b3480156102fb57600080fd5b506103046107b6565b60405161022091906118ea565b34801561031d57600080fd5b5061026b6107bf565b34801561033257600080fd5b5061026b6107c7565b34801561034757600080fd5b50610249610356366004611581565b6107cd565b34801561036757600080fd5b506102ad6103763660046113f4565b610879565b34801561038757600080fd5b5061026b61039636600461140e565b6108c7565b3480156103a757600080fd5b5061026b6103b63660046113f4565b6108e4565b3480156103c757600080fd5b506103db6103d63660046113f4565b6108ff565b6040516102209594939291906118b1565b3480156103f857600080fd5b506102ad610946565b34801561040d57600080fd5b506102ad61041c3660046113f4565b61097c565b34801561042d57600080fd5b50610436610b09565b60405161022091906115e4565b34801561044f57600080fd5b50610249610b18565b34801561046457600080fd5b5061026b610b21565b34801561047957600080fd5b506102ad610b27565b34801561048e57600080fd5b50610213610b60565b3480156104a357600080fd5b506102496104b23660046113f4565b610b6d565b6102ad610b82565b3480156104cb57600080fd5b506102ad6104da3660046113f4565b610d3b565b3480156104eb57600080fd5b5061026b6104fa3660046113f4565b610dc0565b34801561050b57600080fd5b5061024961051a36600461147b565b610dd2565b34801561052b57600080fd5b506102ad610e3d565b34801561054057600080fd5b5061026b610ef0565b34801561055557600080fd5b5061026b6105643660046113f4565b610ef6565b34801561057557600080fd5b506102496105843660046114a4565b610f14565b34801561059557600080fd5b5061026b6105a436600461140e565b61100f565b3480156105b557600080fd5b5061026b61103a565b3480156105ca57600080fd5b50610436611049565b600480546105e090611966565b80601f016020809104026020016040519081016040528092919081815260200182805461060c90611966565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106ba9086906118a8565b60405180910390a350600192915050565b636032919081565b6003545b90565b6000546001600160a01b0316331461070d5760405162461bcd60e51b8152600401610704906116c1565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000610738611058565b6107545760405162461bcd60e51b8152600401610704906117bf565b6001600160a01b0384166000908152600760209081526040808320600190810154925290912054610785919061194f565b82111561079157600080fd5b61079c8484846110ed565b949350505050565b60016020526000908152604090205481565b60055460ff1681565b63603c2e4481565b60035481565b336000908152600160205260408120548211156107fc5760405162461bcd60e51b81526004016107049061175c565b336000908152600160205260409020546108169083611246565b336000908152600160205260409020556003546108339083611246565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906108689085906118a8565b60405180910390a25060015b919050565b6000546001600160a01b031633146108a35760405162461bcd60e51b8152600401610704906116c1565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526001602052604090205490565b6007602052600090815260409020805460018201546002909201549091906001600160801b0381169067ffffffffffffffff600160801b8204811691600160c01b90041685565b6000546001600160a01b031633146109705760405162461bcd60e51b8152600401610704906116c1565b6008805460ff19169055565b6001600160a01b0381166000908152600760205260408120600201546109ab906001600160801b03164261194f565b6001600160a01b038316600090815260076020526040902060020154909150600160801b900467ffffffffffffffff1681116109f95760405162461bcd60e51b815260040161070490611788565b6001600160a01b038216600090815260076020526040812060020154610a3090600160801b900467ffffffffffffffff1683611910565b6001600160a01b038416600090815260076020526040812060020154919250908290610a7590600160c01b900467ffffffffffffffff16670de0b6b3a7640000611930565b610a7f9190611930565b6001600160a01b0385166000908152600760205260409020549091508110610ac2576001600160a01b038416600090815260076020526040812060010155610b03565b6001600160a01b038416600090815260076020526040902054610ae690829061194f565b6001600160a01b0385166000908152600760205260409020600101555b50505050565b6000546001600160a01b031690565b60085460ff1681565b600c5481565b6000546001600160a01b03163314610b515760405162461bcd60e51b8152600401610704906116c1565b6008805460ff19166001179055565b600680546105e090611966565b60096020526000908152604090205460ff1681565b636032919042118015610b98575063603c2e4442105b610bb45760405162461bcd60e51b8152600401610704906116ee565b3466b1a2bc2ec50000811015610bdc5760405162461bcd60e51b815260040161070490611803565b6801158e460913d00000811115610c055760405162461bcd60e51b815260040161070490611653565b6000610c1382613a98611930565b90506a06342fd08f00f637800000600c541115610c425760405162461bcd60e51b815260040161070490611871565b80600c6000828254610c5491906118f8565b9091555050600b546001600160a01b0316600090815260016020526040902054610c7e9082611246565b600b546001600160a01b0316600090815260016020526040808220929092553381522054610cac9082611288565b3360009081526001602052604080822092909255600b5491516001600160a01b03909216916108fc85150291859190818181858888f19350505050610cf057600080fd5b600b5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2f9085906118a8565b60405180910390a35050565b6000546001600160a01b03163314610d655760405162461bcd60e51b8152600401610704906116c1565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a6020526000908152604090205481565b6000610ddc611058565b610df85760405162461bcd60e51b8152600401610704906117bf565b336000908152600760209081526040808320600190810154925290912054610e20919061194f565b821115610e2c57600080fd5b610e3683836112b7565b9392505050565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610704906116c1565b63603c2e444211610e7757600080fd5b600b546001600160a01b031660009081526001602052604081208054919055600354610ea39082611246565b600355600b546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590610ee59084906118a8565b60405180910390a250565b613a9881565b6001600160a01b031660009081526007602052604090206001015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f6d9087906118a8565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb190610fa99033908890309089906004016115f8565b602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb9190611561565b61100457600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600b546001600160a01b031681565b600854600090339060ff161515600114801561109257506001600160a01b03811660009081526009602052604090205460ff161515600114155b156110e3576001600160a01b0381166000908152600a60205260409020544314156110c15760009150506106d7565b6001600160a01b03166000908152600a602052604090204390555060016106d7565b60019150506106d7565b60006001600160a01b0383166111155760405162461bcd60e51b81526004016107049061183a565b6001600160a01b03841660009081526001602052604090205482111561114d5760405162461bcd60e51b81526004016107049061175c565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156111905760405162461bcd60e51b81526004016107049061168a565b6001600160a01b0384166000908152600160205260409020546111b39083611246565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111e29083611288565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349086906118a8565b60405180910390a35060019392505050565b6000610e3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a3565b60008061129583856118f8565b905083811015610e365760405162461bcd60e51b815260040161070490611725565b60006001600160a01b0383166112df5760405162461bcd60e51b81526004016107049061183a565b3360009081526001602052604090205482111561130e5760405162461bcd60e51b81526004016107049061175c565b336000908152600160205260409020546113289083611246565b33600090815260016020526040808220929092556001600160a01b038516815220546113549083611288565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ba9086906118a8565b600081848411156113c75760405162461bcd60e51b81526004016107049190611640565b5060006113d4848661194f565b95945050505050565b80356001600160a01b038116811461087457600080fd5b600060208284031215611405578081fd5b610e36826113dd565b60008060408385031215611420578081fd5b611429836113dd565b9150611437602084016113dd565b90509250929050565b600080600060608486031215611454578081fd5b61145d846113dd565b925061146b602085016113dd565b9150604084013590509250925092565b6000806040838503121561148d578182fd5b611496836113dd565b946020939093013593505050565b6000806000606084860312156114b8578283fd5b6114c1846113dd565b92506020808501359250604085013567ffffffffffffffff808211156114e5578384fd5b818701915087601f8301126114f8578384fd5b81358181111561150a5761150a6119b7565b604051601f8201601f191681018501838111828210171561152d5761152d6119b7565b60405281815283820185018a1015611543578586fd5b81858501868301378585838301015280955050505050509250925092565b600060208284031215611572578081fd5b81518015158114610e36578182fd5b600060208284031215611592578081fd5b5035919050565b60008151808452815b818110156115be576020818501810151868301820152016115a2565b818111156115cf5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252602082018590528316604082015260806060820181905260009061162b90830184611599565b9695505050505050565b901515815260200190565b600060208252610e366020830184611599565b60208082526018908201527f4d6178696d756d20616d6f756e74206973203230206574680000000000000000604082015260600190565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601c908201527f556e6c6f636b20706f696e74206e6f7420726561636865642079657400000000604082015260600190565b60208082526024908201527f5472616e736665727320617265206c696d6974656420746f20312070657220626040820152636c6f636b60e01b606082015260800190565b6020808252601a908201527f4d696e696d756d20616d6f756e7420697320302e303520657468000000000000604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b94855260208501939093526001600160801b0391909116604084015267ffffffffffffffff908116606084015216608082015260a00190565b60ff91909116815260200190565b6000821982111561190b5761190b6119a1565b500190565b60008261192b57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561194a5761194a6119a1565b500290565b600082821015611961576119616119a1565b500390565b60028104600182168061197a57607f821691505b6020821081141561199b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220dd947106799feaceea59aed3ae5ee7e8531996e244d9846141e7975a7d9bdeb564736f6c63430008000033

Deployed Bytecode Sourcemap

4143:7965:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4230:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3746:223;;;;;;;;;;-1:-1:-1;3746:223:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5123:52::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2437:107::-;;;;;;;;;;;;;:::i;10741:131::-;;;;;;;;;;-1:-1:-1;10741:131:0;;;;;:::i;:::-;;:::i;:::-;;8128:329;;;;;;;;;;-1:-1:-1;8128:329:0;;;;;:::i;:::-;;:::i;2101:44::-;;;;;;;;;;-1:-1:-1;2101:44:0;;;;;:::i;:::-;;:::i;4270:26::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5182:50::-;;;;;;;;;;;;;:::i;2223:27::-;;;;;;;;;;;;;:::i;8469:362::-;;;;;;;;;;-1:-1:-1;8469:362:0;;;;;:::i;:::-;;:::i;10598:131::-;;;;;;;;;;-1:-1:-1;10598:131:0;;;;;:::i;:::-;;:::i;2152:64::-;;;;;;;;;;-1:-1:-1;2152:64:0;;;;;:::i;:::-;;:::i;3614:124::-;;;;;;;;;;-1:-1:-1;3614:124:0;;;;;:::i;:::-;;:::i;4593:46::-;;;;;;;;;;-1:-1:-1;4593:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;10499:87::-;;;;;;;;;;;;;:::i;9259:660::-;;;;;;;;;;-1:-1:-1;9259:660:0;;;;;:::i;:::-;;:::i;1927:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4773:29::-;;;;;;;;;;;;;:::i;5090:26::-;;;;;;;;;;;;;:::i;10402:85::-;;;;;;;;;;;;;:::i;4303:29::-;;;;;;;;;;;;;:::i;4809:51::-;;;;;;;;;;-1:-1:-1;4809:51:0;;;;;:::i;:::-;;:::i;11041:757::-;;;:::i;1787:132::-;;;;;;;;;;-1:-1:-1;1787:132:0;;;;;:::i;:::-;;:::i;4867:44::-;;;;;;;;;;-1:-1:-1;4867:44:0;;;;;:::i;:::-;;:::i;7807:309::-;;;;;;;;;;-1:-1:-1;7807:309:0;;;;;:::i;:::-;;:::i;11810:295::-;;;;;;;;;;;;;:::i;5239:48::-;;;;;;;;;;;;;:::i;10884:145::-;;;;;;;;;;-1:-1:-1;10884:145:0;;;;;:::i;:::-;;:::i;8843:402::-;;;;;;;;;;-1:-1:-1;8843:402:0;;;;;:::i;:::-;;:::i;3977:153::-;;;;;;;;;;-1:-1:-1;3977:153:0;;;;;:::i;:::-;;:::i;5294:53::-;;;;;;;;;;;;;:::i;5049:34::-;;;;;;;;;;;;;:::i;4230:33::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3746:223::-;3855:10;3822:12;3847:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3847:29:0;;;;;;;;;;:38;;;3901;3822:12;;3847:29;;3901:38;;;;3879:6;;3901:38;:::i;:::-;;;;;;;;-1:-1:-1;3957:4:0;3746:223;;;;:::o;5123:52::-;5165:10;5123:52;:::o;2437:107::-;2524:12;;2437:107;;:::o;10741:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10820:36:0::1;10859:5;10820:36:::0;;;:18:::1;:36;::::0;;;;:44;;-1:-1:-1;;10820:44:0::1;::::0;;10741:131::o;8128:329::-;8219:12;8252:20;:18;:20::i;:::-;8244:69;;;;-1:-1:-1;;;8244:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8361:16:0;;;;;;:9;:16;;;;;;;;:30;;;;;8343:15;;;;;;:48;;8361:30;8343:48;:::i;:::-;8332:6;:60;;8324:69;;;;;;8411:38;8430:5;8437:3;8442:6;8411:18;:38::i;:::-;8404:45;8128:329;-1:-1:-1;;;;8128:329:0:o;2101:44::-;;;;;;;;;;;;;:::o;4270:26::-;;;;;;:::o;5182:50::-;5222:10;5182:50;:::o;2223:27::-;;;;:::o;8469:362::-;8557:10;8515:12;8548:20;;;:8;:20;;;;;;:30;-1:-1:-1;8548:30:0;8540:61;;;;-1:-1:-1;;;8540:61:0;;;;;;;:::i;:::-;8688:10;8679:20;;;;:8;:20;;;;;;:32;;8704:6;8679:24;:32::i;:::-;8665:10;8656:20;;;;:8;:20;;;;;:55;8737:12;;:24;;8754:6;8737:16;:24::i;:::-;8722:12;:39;8777:24;;8782:10;;8777:24;;;;8794:6;;8777:24;:::i;:::-;;;;;;;;-1:-1:-1;8819:4:0;8469:362;;;;:::o;10598:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10678:36:0::1;;::::0;;;:18:::1;:36;::::0;;;;:43;;-1:-1:-1;;10678:43:0::1;10717:4;10678:43;::::0;;10598:131::o;2152:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;3614:124::-;-1:-1:-1;;;;;3714:16:0;3679:15;3714:16;;;:8;:16;;;;;;;3614:124::o;4593:46::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4593:46:0;;;;-1:-1:-1;;;4593:46:0;;;;;-1:-1:-1;;;4593:46:0;;;;:::o;10499:87::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10553:17:::1;:25:::0;;-1:-1:-1;;10553:25:0::1;::::0;;10499:87::o;9259:660::-;-1:-1:-1;;;;;9363:19:0;;9318:16;9363:19;;;:9;:19;;;;;:28;;;9337:55;;-1:-1:-1;;;;;9363:28:0;9337:15;:55;:::i;:::-;-1:-1:-1;;;;;9430:19:0;;;;;;:9;:19;;;;;:24;;;9318:74;;-1:-1:-1;;;;9430:24:0;;;;9411:44;;9403:85;;;;-1:-1:-1;;;9403:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9535:19:0;;9499:13;9535:19;;;:9;:19;;;;;:24;;;9516:44;;-1:-1:-1;;;9535:24:0;;;;9516:8;:44;:::i;:::-;-1:-1:-1;;;;;9609:19:0;;9572:24;9609:19;;;:9;:19;;;;;:30;;;9499:62;;-1:-1:-1;9572:24:0;9499:62;;9601:49;;-1:-1:-1;;;9609:30:0;;;;9643:7;9601:49;:::i;:::-;9600:59;;;;:::i;:::-;-1:-1:-1;;;;;9696:19:0;;;;;;:9;:19;;;;;:31;9572:88;;-1:-1:-1;9675:52:0;;9671:241;;-1:-1:-1;;;;;9744:19:0;;9780:1;9744:19;;;:9;:19;;;;;:33;;:37;9671:241;;;-1:-1:-1;;;;;9850:19:0;;;;;;:9;:19;;;;;:31;:50;;9884:16;;9850:50;:::i;:::-;-1:-1:-1;;;;;9814:19:0;;;;;;:9;:19;;;;;:33;;:86;9671:241;9259:660;;;;:::o;1927:83::-;1970:7;1997:5;-1:-1:-1;;;;;1997:5:0;1927:83;:::o;4773:29::-;;;;;;:::o;5090:26::-;;;;:::o;10402:85::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10455:17:::1;:24:::0;;-1:-1:-1;;10455:24:0::1;10475:4;10455:24;::::0;;10402:85::o;4303:29::-;;;;;;;:::i;4809:51::-;;;;;;;;;;;;;;;:::o;11041:757::-;5165:10;11091:15;:33;11090:72;;;;;5222:10;11130:15;:31;11090:72;11082:115;;;;-1:-1:-1;;;11082:115:0;;;;;;;:::i;:::-;11224:9;11265:14;11252:28;;;11244:67;;;;-1:-1:-1;;;11244:67:0;;;;;;;:::i;:::-;11343:8;11330;:22;;11322:59;;;;-1:-1:-1;;;11322:59:0;;;;;;;:::i;:::-;11392:11;11406:27;11425:8;5282:5;11406:27;:::i;:::-;11392:41;;5334:13;11453:11;;11452:32;;11444:75;;;;-1:-1:-1;;;11444:75:0;;;;;;;:::i;:::-;11545:6;11530:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;11595:11:0;;-1:-1:-1;;;;;11595:11:0;11586:21;;;;:8;:21;;;;;;:33;;11612:6;11586:25;:33::i;:::-;11571:11;;-1:-1:-1;;;;;11571:11:0;11562:21;;;;:8;:21;;;;;;:57;;;;11662:10;11653:20;;;;:32;;11678:6;11653:24;:32::i;:::-;11639:10;11630:20;;;;:8;:20;;;;;;:55;;;;11704:11;;:26;;-1:-1:-1;;;;;11704:11:0;;;;:26;;;;;;;;;11630:20;11704:26;;:11;:26;;;;;;;11696:35;;;;;;11756:11;;11747:41;;11769:10;;-1:-1:-1;;;;;11756:11:0;;11747:41;;;;11781:6;;11747:41;:::i;:::-;;;;;;;;11041:757;;:::o;1787:132::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;1868:5:::1;::::0;;1859:25:::1;::::0;-1:-1:-1;;;;;1859:25:0;;::::1;::::0;1868:5;::::1;::::0;1859:25:::1;::::0;::::1;1895:5;:16:::0;;-1:-1:-1;;;;;;1895:16:0::1;-1:-1:-1::0;;;;;1895:16:0;;;::::1;::::0;;;::::1;::::0;;1787:132::o;4867:44::-;;;;;;;;;;;;;:::o;7807:309::-;7879:12;7912:20;:18;:20::i;:::-;7904:69;;;;-1:-1:-1;;;7904:69:0;;;;;;;:::i;:::-;8036:10;8026:21;;;;:9;:21;;;;;;;;:35;;;;;8003:20;;;;;;:58;;8026:35;8003:58;:::i;:::-;7992:6;:70;;7984:79;;;;;;8081:27;8096:3;8101:6;8081:14;:27::i;:::-;8074:34;7807:309;-1:-1:-1;;;7807:309:0:o;11810:295::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;5222:10:::1;11868:15;:31;11860:40;;;::::0;::::1;;11942:11;::::0;-1:-1:-1;;;;;11942:11:0::1;11911:19;11933:21:::0;;;:8:::1;:21;::::0;;;;;;11965:25;;;12016:12:::1;::::0;:32:::1;::::0;11933:21;12016:16:::1;:32::i;:::-;12001:12;:47:::0;12069:11:::1;::::0;12064:33:::1;::::0;-1:-1:-1;;;;;12069:11:0;;::::1;::::0;12064:33:::1;::::0;::::1;::::0;12082:14;;12064:33:::1;:::i;:::-;;;;;;;;1587:1;11810:295::o:0;5239:48::-;5282:5;5239:48;:::o;10884:145::-;-1:-1:-1;;;;;10989:18:0;10948:21;10989:18;;;:9;:18;;;;;:32;;;;10884:145::o;8843:402::-;8975:10;8942:12;8967:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8967:29:0;;;;;;;;;;:38;;;9021;8942:12;;8967:29;;9021:38;;;;8999:6;;9021:38;:::i;:::-;;;;;;;;9142:72;;-1:-1:-1;;;9142:72:0;;9114:8;;-1:-1:-1;;;;;9142:25:0;;;;;:72;;9168:10;;9180:6;;9196:4;;9203:10;;9142:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9134:81;;;;;;-1:-1:-1;9233:4:0;;8843:402;-1:-1:-1;;;;8843:402:0:o;3977:153::-;-1:-1:-1;;;;;4097:15:0;;;4060:17;4097:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;3977:153::o;5294:53::-;5334:13;5294:53;:::o;5049:34::-;;;-1:-1:-1;;;;;5049:34:0;;:::o;9934:456::-;10052:17;;9982:14;;10027:10;;10052:17;;:25;;:17;:25;:64;;;;-1:-1:-1;;;;;;10081:27:0;;;;;;:18;:27;;;;;;;;:35;;:27;:35;;10052:64;10048:335;;;-1:-1:-1;;;;;10137:20:0;;;;;;:11;:20;;;;;;10161:12;10137:36;10133:195;;;10201:5;10194:12;;;;;10133:195;-1:-1:-1;;;;;10247:20:0;;;;;:11;:20;;;;;10270:12;10247:35;;-1:-1:-1;10308:4:0;10301:11;;10048:335;10367:4;10360:11;;;;;3041:565;3140:12;-1:-1:-1;;;;;3173:19:0;;3165:57;;;;-1:-1:-1;;;3165:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3310:15:0;;;;;;:8;:15;;;;;;:25;-1:-1:-1;3310:25:0;3302:56;;;;-1:-1:-1;;;3302:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3371:14:0;;;;;;:7;:14;;;;;;;;3386:10;3371:26;;;;;;;;:36;-1:-1:-1;3371:36:0;3363:79;;;;-1:-1:-1;;;3363:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3465:15:0;;;;;;:8;:15;;;;;;:27;;3485:6;3465:19;:27::i;:::-;-1:-1:-1;;;;;3447:15:0;;;;;;;:8;:15;;;;;;:45;;;;3513:13;;;;;;;:25;;3531:6;3513:17;:25::i;:::-;-1:-1:-1;;;;;3497:13:0;;;;;;;:8;:13;;;;;;;:41;;;;3548:28;;;;;;;;;;3569:6;;3548:28;:::i;:::-;;;;;;;;-1:-1:-1;3594:4:0;3041:565;;;;;:::o;277:136::-;335:7;362:43;366:1;369;362:43;;;;;;;;;;;;;;;;;:3;:43::i;88:181::-;146:7;;178:5;182:1;178;:5;:::i;:::-;166:17;;207:1;202;:6;;194:46;;;;-1:-1:-1;;;194:46:0;;;;;;;:::i;2552:481::-;2632:12;-1:-1:-1;;;;;2665:19:0;;2657:57;;;;-1:-1:-1;;;2657:57:0;;;;;;;:::i;:::-;2810:10;2801:20;;;;:8;:20;;;;;;:30;-1:-1:-1;2801:30:0;2793:61;;;;-1:-1:-1;;;2793:61:0;;;;;;;:::i;:::-;2891:10;2882:20;;;;:8;:20;;;;;;:32;;2907:6;2882:24;:32::i;:::-;2868:10;2859:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;2935:13:0;;;;;;:25;;2953:6;2935:17;:25::i;:::-;-1:-1:-1;;;;;2919:13:0;;;;;;:8;:13;;;;;;;:41;;;;2970:33;;2979:10;;2970:33;;;;2996:6;;2970:33;:::i;421:192::-;507:7;543:12;535:6;;;;527:29;;;;-1:-1:-1;;;527:29:0;;;;;;;;:::i;:::-;-1:-1:-1;567:9:0;579:5;583:1;579;:5;:::i;:::-;567:17;421:192;-1:-1:-1;;;;;421:192:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:1101::-;;;;1449:2;1437:9;1428:7;1424:23;1420:32;1417:2;;;1470:6;1462;1455:22;1417:2;1498:31;1519:9;1498:31;:::i;:::-;1488:41;;1548:2;1597;1586:9;1582:18;1569:32;1559:42;;1652:2;1641:9;1637:18;1624:32;1675:18;1716:2;1708:6;1705:14;1702:2;;;1737:6;1729;1722:22;1702:2;1780:6;1769:9;1765:22;1755:32;;1825:7;1818:4;1814:2;1810:13;1806:27;1796:2;;1852:6;1844;1837:22;1796:2;1893;1880:16;1915:2;1911;1908:10;1905:2;;;1921:18;;:::i;:::-;1970:2;1964:9;2039:2;2020:13;;-1:-1:-1;;2016:27:1;2004:40;;2000:49;;2064:18;;;2084:22;;;2061:46;2058:2;;;2110:18;;:::i;:::-;2146:2;2139:22;2170:18;;;2207:11;;;2203:20;;2200:33;-1:-1:-1;2197:2:1;;;2251:6;2243;2236:22;2197:2;2312;2307;2303;2299:11;2294:2;2286:6;2282:15;2269:46;2357:6;2352:2;2347;2339:6;2335:15;2331:24;2324:40;2383:6;2373:16;;;;;;;1407:988;;;;;:::o;2400:297::-;;2520:2;2508:9;2499:7;2495:23;2491:32;2488:2;;;2541:6;2533;2526:22;2488:2;2578:9;2572:16;2631:5;2624:13;2617:21;2610:5;2607:32;2597:2;;2658:6;2650;2643:22;2702:190;;2814:2;2802:9;2793:7;2789:23;2785:32;2782:2;;;2835:6;2827;2820:22;2782:2;-1:-1:-1;2863:23:1;;2772:120;-1:-1:-1;2772:120:1:o;2897:477::-;;2978:5;2972:12;3005:6;3000:3;2993:19;3030:3;3042:162;3056:6;3053:1;3050:13;3042:162;;;3118:4;3174:13;;;3170:22;;3164:29;3146:11;;;3142:20;;3135:59;3071:12;3042:162;;;3222:6;3219:1;3216:13;3213:2;;;3288:3;3281:4;3272:6;3267:3;3263:16;3259:27;3252:40;3213:2;-1:-1:-1;3356:2:1;3335:15;-1:-1:-1;;3331:29:1;3322:39;;;;3363:4;3318:50;;2948:426;-1:-1:-1;;2948:426:1:o;3379:203::-;-1:-1:-1;;;;;3543:32:1;;;;3525:51;;3513:2;3498:18;;3480:102::o;3811:490::-;-1:-1:-1;;;;;4080:15:1;;;4062:34;;4127:2;4112:18;;4105:34;;;4175:15;;4170:2;4155:18;;4148:43;4227:3;4222:2;4207:18;;4200:31;;;3811:490;;4248:47;;4275:19;;4267:6;4248:47;:::i;:::-;4240:55;4014:287;-1:-1:-1;;;;;;4014:287:1:o;4306:187::-;4471:14;;4464:22;4446:41;;4434:2;4419:18;;4401:92::o;4498:221::-;;4647:2;4636:9;4629:21;4667:46;4709:2;4698:9;4694:18;4686:6;4667:46;:::i;4724:348::-;4926:2;4908:21;;;4965:2;4945:18;;;4938:30;5004:26;4999:2;4984:18;;4977:54;5063:2;5048:18;;4898:174::o;5077:354::-;5279:2;5261:21;;;5318:2;5298:18;;;5291:30;5357:32;5352:2;5337:18;;5330:60;5422:2;5407:18;;5251:180::o;5436:343::-;5638:2;5620:21;;;5677:2;5657:18;;;5650:30;-1:-1:-1;;;5711:2:1;5696:18;;5689:49;5770:2;5755:18;;5610:169::o;6127:354::-;6329:2;6311:21;;;6368:2;6348:18;;;6341:30;6407:32;6402:2;6387:18;;6380:60;6472:2;6457:18;;6301:180::o;6486:351::-;6688:2;6670:21;;;6727:2;6707:18;;;6700:30;6766:29;6761:2;6746:18;;6739:57;6828:2;6813:18;;6660:177::o;6842:342::-;7044:2;7026:21;;;7083:2;7063:18;;;7056:30;-1:-1:-1;;;7117:2:1;7102:18;;7095:48;7175:2;7160:18;;7016:168::o;7189:352::-;7391:2;7373:21;;;7430:2;7410:18;;;7403:30;7469;7464:2;7449:18;;7442:58;7532:2;7517:18;;7363:178::o;7546:400::-;7748:2;7730:21;;;7787:2;7767:18;;;7760:30;7826:34;7821:2;7806:18;;7799:62;-1:-1:-1;;;7892:2:1;7877:18;;7870:34;7936:3;7921:19;;7720:226::o;7951:350::-;8153:2;8135:21;;;8192:2;8172:18;;;8165:30;8231:28;8226:2;8211:18;;8204:56;8292:2;8277:18;;8125:176::o;8306:349::-;8508:2;8490:21;;;8547:2;8527:18;;;8520:30;8586:27;8581:2;8566:18;;8559:55;8646:2;8631:18;;8480:175::o;8660:354::-;8862:2;8844:21;;;8901:2;8881:18;;;8874:30;8940:32;8935:2;8920:18;;8913:60;9005:2;8990:18;;8834:180::o;9019:177::-;9165:25;;;9153:2;9138:18;;9120:76::o;9201:555::-;9456:25;;;9512:2;9497:18;;9490:34;;;;-1:-1:-1;;;;;9560:47:1;;;;9555:2;9540:18;;9533:75;9627:18;9681:15;;;9676:2;9661:18;;9654:43;9734:15;9728:3;9713:19;;9706:44;9443:3;9428:19;;9410:346::o;9761:184::-;9933:4;9921:17;;;;9903:36;;9891:2;9876:18;;9858:87::o;9950:128::-;;10021:1;10017:6;10014:1;10011:13;10008:2;;;10027:18;;:::i;:::-;-1:-1:-1;10063:9:1;;9998:80::o;10083:217::-;;10149:1;10139:2;;-1:-1:-1;;;10174:31:1;;10228:4;10225:1;10218:15;10256:4;10181:1;10246:15;10139:2;-1:-1:-1;10285:9:1;;10129:171::o;10305:168::-;;10411:1;10407;10403:6;10399:14;10396:1;10393:21;10388:1;10381:9;10374:17;10370:45;10367:2;;;10418:18;;:::i;:::-;-1:-1:-1;10458:9:1;;10357:116::o;10478:125::-;;10546:1;10543;10540:8;10537:2;;;10551:18;;:::i;:::-;-1:-1:-1;10588:9:1;;10527:76::o;10608:380::-;10693:1;10683:12;;10740:1;10730:12;;;10751:2;;10805:4;10797:6;10793:17;10783:27;;10751:2;10858;10850:6;10847:14;10827:18;10824:38;10821:2;;;10904:10;10899:3;10895:20;10892:1;10885:31;10939:4;10936:1;10929:15;10967:4;10964:1;10957:15;10821:2;;10663:325;;;:::o;10993:127::-;11054:10;11049:3;11045:20;11042:1;11035:31;11085:4;11082:1;11075:15;11109:4;11106:1;11099:15;11125:127;11186:10;11181:3;11177:20;11174:1;11167:31;11217:4;11214:1;11207:15;11241:4;11238:1;11231:15

Swarm Source

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