ETH Price: $3,712.76 (+3.37%)

Token

ERC-20: TrustStake (TRUST)
 

Overview

Max Total Supply

3,589,917,075.642758288876581195 TRUST

Holders

245

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
79,613,415.608766656062285234 TRUST

Value
$0.00
0x3a17bcdd140a63055317ab6df3eba37a3c6a87c7
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:
TrustStake

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-07-10
*/

pragma solidity ^ 0.4.26;

library SafeMath {

    function mul(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        assert(c / a == b);
        return c;
    }
    
    function div(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        return a / b;
    }
    
    function sub(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256) 
    {
        assert(b <= a);
        return a - b;
    }
    
    function add(
        uint256 a, 
        uint256 b
    ) 
        internal 
        pure 
        returns(uint256 c) 
    {
        c = a + b;
        assert(c >= a);
        return c;
    }

}


contract 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);

}


contract TrustStake {

    mapping(address => bool) internal ambassadors_;

    uint256 constant internal ambassadorMaxPurchase_ = 1000000e18;

    mapping(address => uint256) internal ambassadorAccumulatedQuota_;

    bool public onlyAmbassadors = true;

    uint256 ACTIVATION_TIME = now;

    modifier antiEarlyWhale(
        uint256 _amountOfERC20, 
        address _customerAddress
    )
    {
        if (now >= ACTIVATION_TIME) {
            onlyAmbassadors = false;
        }
        
        if (onlyAmbassadors) {
            
            require((ambassadors_[_customerAddress] == true && 
            
            (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfERC20) <= 
                ambassadorMaxPurchase_));
                
            ambassadorAccumulatedQuota_[_customerAddress] = 
                SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfERC20);
    
            _;
        
        } else {
            onlyAmbassadors = false;
            _;
        }
    }

    modifier onlyTokenHolders {
        require(myTokens() > 0);
        _;
    }

    modifier onlyDivis {
        require(myDividends(true) > 0);
        _;
    }

    event onDistribute(
        address indexed customerAddress,
        uint256 price
    );

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingERC20,
        uint256 tokensMinted,
        address indexed referredBy,
        uint timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ERC20Earned,
        uint timestamp
    );

    event onReinvestment(
        address indexed customerAddress,
        uint256 ERC20Reinvested,
        uint256 tokensMinted
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 ERC20Withdrawn
    );

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    string public name = "TrustStake";
    
    string public symbol = "TRUST";
    
    uint8 constant public decimals = 18;
    
    uint256 internal entryFee_ = 5;
    
    uint256 internal exitFee_ = 5;
    
    uint256 internal referralFee_ = 10;
    
    uint256 internal maintenanceFee_ = 10;
    
    address internal maintenanceAddress;
    
    uint256 constant internal magnitude = 2 ** 64;
    
    mapping(address => uint256) public tokenBalanceLedger_;
    
    mapping(address => uint256) public referralBalance_;
    
    mapping(address => uint256) public totalReferralEarnings_;
    
    mapping(address => int256) public payoutsTo_;
    
    mapping(address => uint256) public invested_;
    
    uint256 internal tokenSupply_;
    
    uint256 internal profitPerShare_;
    
    IERC20 erc20;

    constructor() public {
        maintenanceAddress = address(0x1682135756404355F58811F8E495D999ef3Ca0eC);
        erc20 = IERC20(address(0xCC4304A31d09258b0029eA7FE63d032f52e44EFe));
    }
    
    function checkAndTransfer(
        uint256 _amount
    ) 
        private 
    {
        require(
            erc20.transferFrom(
                msg.sender, 
                address(this), 
                _amount
            ) == true, "transfer must succeed"
        );
    }

    function buy(
        uint256 _amount, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        
        return purchaseTokens(
            _referredBy, 
            msg.sender, 
            _amount
        );
    }
    
    function buyFor(
        uint256 _amount, 
        address _customerAddress, 
        address _referredBy
    ) 
        public 
        returns(uint256) 
    {
        checkAndTransfer(_amount);
        return purchaseTokens(
            _referredBy, 
            _customerAddress,
            _amount
        );
    }
    
    function() payable public {
        revert();
    }
    
    function reinvest() 
        onlyDivis 
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        uint256 _tokens = purchaseTokens(0x0, _customerAddress, _dividends);
        
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    function exit() external {
        
        address _customerAddress = msg.sender;
        
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        
        if (_tokens > 0) sell(_tokens);
        
        withdraw();
    }
    
    function withdraw() 
        onlyDivis
        public 
    {
        address _customerAddress = msg.sender;
        
        uint256 _dividends = myDividends(false);
        
        payoutsTo_[_customerAddress] += (int256)(_dividends * magnitude);
        
        _dividends += referralBalance_[_customerAddress];
        
        referralBalance_[_customerAddress] = 0;
        
        erc20.transfer(_customerAddress, _dividends);
        
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    function sell(
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        public 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
        
        uint256 _dividends = SafeMath.div(SafeMath.mul(_amountOfERC20s, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_amountOfERC20s, _dividends);
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
        
        int256 _updatedPayouts = 
            (int256)(profitPerShare_ * _amountOfERC20s + (_taxedERC20 * magnitude));
            
        payoutsTo_[_customerAddress] -= _updatedPayouts;
        
        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(
                profitPerShare_, (_dividends * magnitude) / tokenSupply_
            );
        }
        
        emit Transfer(_customerAddress, address(0), _amountOfERC20s);
        emit onTokenSell(_customerAddress, _amountOfERC20s, _taxedERC20, now);
    }
    
    function transfer(
        address _toAddress, 
        uint256 _amountOfERC20s
    ) 
        onlyTokenHolders 
        external 
        returns(bool) 
    {
        address _customerAddress = msg.sender;
        require(_amountOfERC20s <= tokenBalanceLedger_[_customerAddress]);
    
        if (myDividends(true) > 0) {
            withdraw();
        }
        
        tokenSupply_ = SafeMath.sub(tokenSupply_, _amountOfERC20s);
        
        tokenBalanceLedger_[_customerAddress] = 
            SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
            
        tokenBalanceLedger_[_toAddress] = 
            SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfERC20s);
        
        payoutsTo_[_customerAddress] -= (int256)(profitPerShare_ * _amountOfERC20s);
        payoutsTo_[_toAddress] += (int256)(profitPerShare_ * _amountOfERC20s);
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_amountOfERC20s * magnitude) / tokenSupply_);
        
        emit Transfer(_customerAddress, _toAddress, _amountOfERC20s);
        
        return true;
    }
    
    function totalERC20Balance() 
        public 
        view 
        returns(uint256) 
    {
        return erc20.balanceOf(address(this));
    }

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

    function myTokens() 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
    
    function myDividends(
        bool _includeReferralBonus
    ) 
        public 
        view 
        returns(uint256) 
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + 
            referralBalance_[_customerAddress] : dividendsOf(_customerAddress);
    }
    
    function balanceOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    function dividendsOf(
        address _customerAddress
    ) 
        public 
        view 
        returns(uint256) 
    {
        return (uint256)((int256)(
            profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - 
            payoutsTo_[_customerAddress]) / magnitude;
    }
    
    function sellPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, exitFee_), 100);
        uint256 _taxedERC20 = SafeMath.sub(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function buyPrice() 
        public 
        view 
        returns(uint256) 
    {
        uint256 _erc20 = 1e18;
        uint256 _dividends = SafeMath.div(SafeMath.mul(_erc20, entryFee_), 100);
        uint256 _taxedERC20 = SafeMath.add(_erc20, _dividends);
        
        return _taxedERC20;
    }
    
    function getInvested() 
        public 
        view 
        returns(uint256) 
    {
        return invested_[msg.sender];
    }
    
    function totalReferralEarnings(
        address _client
    )
        public 
        view 
        returns(uint256)
    {
        return totalReferralEarnings_[_client];
    }
    
    function referralBalance(
        address _client 
    )
        public 
        view 
        returns(uint256)
    {
        return referralBalance_[_client];
    }
    
    function purchaseTokens(
        address _referredBy, 
        address _customerAddress, 
        uint256 _incomingERC20
    ) 
        internal 
        antiEarlyWhale(_incomingERC20, _customerAddress) 
        returns(uint256) 
    {
    invested_[msg.sender] += _incomingERC20;
    
    uint256 _undividedDividends = 
        SafeMath.div(
            SafeMath.mul(
                _incomingERC20, entryFee_
            ), 
        100);
    
    uint256 _maintenance = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, maintenanceFee_
            ), 
        100);
        
        
    uint256 _referralBonus = 
        SafeMath.div(
            SafeMath.mul(
                _undividedDividends, referralFee_
            ), 
        100);
    
    uint256 _dividends = 
        SafeMath.sub(
            _undividedDividends, SafeMath.add(
                _referralBonus, _maintenance
            )
        );
        
    uint256 _amountOfERC20s = 
        SafeMath.sub(_incomingERC20, _undividedDividends);
        
    uint256 _fee = _dividends * magnitude;
    
    require(
        _amountOfERC20s > 0 && 
        SafeMath.add(_amountOfERC20s, tokenSupply_) > tokenSupply_
    );
    
    referralBalance_[maintenanceAddress] = 
        SafeMath.add(referralBalance_[maintenanceAddress], _maintenance);
    
    if (_referredBy != address(0) && 
        _referredBy != _customerAddress)
    {
        referralBalance_[_referredBy] = 
            SafeMath.add(referralBalance_[_referredBy], _referralBonus);
            
        totalReferralEarnings_[_referredBy] = 
            SafeMath.add(totalReferralEarnings_[_referredBy], _referralBonus);
    } else {
        _dividends = SafeMath.add(_dividends, _referralBonus);
        _fee = _dividends * magnitude;
    }
    
    if (tokenSupply_ > 0) 
    {
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfERC20s);
        
        profitPerShare_ += ((_dividends * magnitude) / (tokenSupply_));
        _fee = _fee - (_fee - (_amountOfERC20s * ((_dividends * magnitude) / (tokenSupply_))));
        
    } else {
        tokenSupply_ = _amountOfERC20s;
    }

    tokenBalanceLedger_[_customerAddress] = 
        SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfERC20s);
    
    int256 _updatedPayouts = (int256)((profitPerShare_ * _amountOfERC20s) - _fee);
        
    payoutsTo_[_customerAddress] += _updatedPayouts;
    
    emit Transfer(
        address(0), 
        msg.sender, 
        _amountOfERC20s
    );
    
    emit onTokenPurchase(
        _customerAddress, 
        _incomingERC20, 
        _amountOfERC20s, 
        _referredBy, 
        now
    );
    
    return _amountOfERC20s;
    }

    function multiData()
    public
    view
    returns(
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256, 
        uint256,
        uint256,
        uint256
    )
    {
        return (
        
        // [0] Total ERC20 in contract 
        totalERC20Balance(),
        
        // [1] Total STAKE TOKEN supply
        totalSupply(),
        
        // [2] User STAKE TOKEN balance 
        balanceOf(msg.sender),
        
        // [3] User ERC20 balance
        erc20.balanceOf(msg.sender),
        
        // [4] User divs 
        dividendsOf(msg.sender),
        
        // [5] Buy price 
        buyPrice(),
        
        // [6] Sell price 
        sellPrice(),
        
        // [7] Total referral earnings  
        totalReferralEarnings(msg.sender),
        
        // [8] Current referral earnings 
        referralBalance(msg.sender)
        );
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"},{"name":"_referredBy","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"totalReferralEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_client","type":"address"}],"name":"referralBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalanceLedger_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"invested_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"totalReferralEarnings_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfERC20s","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getInvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralBalance_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payoutsTo_","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfERC20s","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalERC20Balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiData","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingERC20","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ERC20Earned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Reinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ERC20Withdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526001600260006101000a81548160ff021916908315150217905550426003556040805190810160405280600a81526020017f54727573745374616b6500000000000000000000000000000000000000000000815250600490805190602001906200007092919062000191565b506040805190810160405280600581526020017f545255535400000000000000000000000000000000000000000000000000000081525060059080519060200190620000be92919062000191565b5060056006556005600755600a600855600a600955348015620000e057600080fd5b50731682135756404355f58811f8e495d999ef3ca0ec600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073cc4304a31d09258b0029ea7fe63d032f52e44efe601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000240565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001d457805160ff191683800117855562000205565b8280016001018555821562000205579182015b8281111562000204578251825591602001919060010190620001e7565b5b50905062000214919062000218565b5090565b6200023d91905b80821115620002395760008160009055506001016200021f565b5090565b90565b61299380620002506000396000f300608060405260043610610169576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016e57806306fdde03146101c557806318160ddd1461025557806327defa1f14610280578063313ce567146102af57806332b74ec7146102e05780633ccfd60b1461036157806346b6ef41146103785780634b750334146103cf578063563bfecc146103fa5780635c5a0a9d14610451578063688abbf7146104a857806370a08231146104eb57806379fbd22c146105425780637deb6025146105995780638620410b146105fa578063949e8acd1461062557806395d89b4114610650578063989a9d17146106e0578063a9059cbb14610737578063befc3e2b1461079c578063c664f7f1146107c7578063e1456cb41461081e578063e4849b3214610875578063e9fad8ee146108a2578063eabd1ddb146108b9578063f2b79df9146108e4578063fdb5a03e14610947575b600080fd5b34801561017a57600080fd5b506101af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061095e565b6040518082815260200191505060405180910390f35b3480156101d157600080fd5b506101da610a00565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b5061026a610a9e565b6040518082815260200191505060405180910390f35b34801561028c57600080fd5b50610295610aa8565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b506102c4610abb565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102ec57600080fd5b5061034b60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b34801561036d57600080fd5b50610376610adf565b005b34801561038457600080fd5b506103b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3d565b6040518082815260200191505060405180910390f35b3480156103db57600080fd5b506103e4610d86565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b5061043b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b34801561045d57600080fd5b50610492600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e0d565b6040518082815260200191505060405180910390f35b3480156104b457600080fd5b506104d5600480360381019080803515159060200190929190505050610e25565b6040518082815260200191505060405180910390f35b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e91565b6040518082815260200191505060405180910390f35b34801561054e57600080fd5b50610583600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eda565b6040518082815260200191505060405180910390f35b3480156105a557600080fd5b506105e460048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561060657600080fd5b5061060f610f10565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b5061063a610f4e565b6040518082815260200191505060405180910390f35b34801561065c57600080fd5b50610665610f63565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a557808201518184015260208101905061068a565b50505050905090810190601f1680156106d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106ec57600080fd5b50610721600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611001565b6040518082815260200191505060405180910390f35b34801561074357600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611019565b604051808215151515815260200191505060405180910390f35b3480156107a857600080fd5b506107b1611304565b6040518082815260200191505060405180910390f35b3480156107d357600080fd5b50610808600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134b565b6040518082815260200191505060405180910390f35b34801561082a57600080fd5b5061085f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611363565b6040518082815260200191505060405180910390f35b34801561088157600080fd5b506108a06004803603810190808035906020019092919050505061137b565b005b3480156108ae57600080fd5b506108b761160c565b005b3480156108c557600080fd5b506108ce611673565b6040518082815260200191505060405180910390f35b3480156108f057600080fd5b506108f9611772565b604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b34801561095357600080fd5b5061095c6118d9565b005b600068010000000000000000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460115402038115156109f857fe5b049050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a965780601f10610a6b57610100808354040283529160200191610a96565b820191906000526020600020905b815481529060010190602001808311610a7957829003601f168201915b505050505081565b6000601054905090565b600260009054906101000a900460ff1681565b601281565b6000610acb84611a4e565b610ad6828486611c00565b90509392505050565b6000806000610aee6001610e25565b111515610afa57600080fd5b339150610b076000610e25565b9050680100000000000000008102600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610caf57600080fd5b505af1158015610cc3573d6000803e3d6000fd5b505050506040513d6020811015610cd957600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080670de0b6b3a76400009250610dad610da6846007546128e4565b606461291c565b9150610db98383612932565b905080935050505090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b60008033905082610e3e57610e398161095e565b610e89565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e878261095e565b015b915050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f6020528060005260406000206000915090505481565b6000610efd83611a4e565b610f08823385611c00565b905092915050565b600080600080670de0b6b3a76400009250610f37610f30846006546128e4565b606461291c565b9150610f43838361294b565b905080935050505090565b600080339050610f5d81610e91565b91505090565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ff95780601f10610fce57610100808354040283529160200191610ff9565b820191906000526020600020905b815481529060010190602001808311610fdc57829003601f168201915b505050505081565b600d6020528060005260406000206000915090505481565b6000806000611026610f4e565b11151561103257600080fd5b339050600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561108357600080fd5b600061108f6001610e25565b111561109e5761109d610adf565b5b6110aa60105484612932565b6010819055506110f9600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612932565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611185600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461294b565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260115402600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260115402600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061128e60115460105468010000000000000000860281151561128857fe5b0461294b565b6011819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600c6020528060005260406000206000915090505481565b600e6020528060005260406000206000915090505481565b600080600080600061138b610f4e565b11151561139757600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156113e857600080fd5b6113fe6113f7866007546128e4565b606461291c565b925061140a8584612932565b915061141860105486612932565b601081905550611467600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612932565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856011540201905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600060105411156115415761153a60115460105468010000000000000000860281151561153457fe5b0461294b565b6011819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611667576116668161137b565b5b61166f610adf565b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b505050506040513d602081101561175c57600080fd5b8101908080519060200190929190505050905090565b6000806000806000806000806000611788611673565b611790610a9e565b61179933610e91565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561185657600080fd5b505af115801561186a573d6000803e3d6000fd5b505050506040513d602081101561188057600080fd5b810190808051906020019092919050505061189a3361095e565b6118a2610f10565b6118aa610d86565b6118b333610d3d565b6118bc33610dc4565b985098509850985098509850985098509850909192939495969798565b6000806000806118e96001610e25565b1115156118f557600080fd5b3392506119026000610e25565b9150680100000000000000008202600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119f160008484611c00565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d6020811015611b7557600080fd5b81019080805190602001909291905050501515141515611bfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080888a60035442101515611c35576000600260006101000a81548160ff0219169083151502179055505b600260009054906101000a900460ff161561232457600115156000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611cf4575069d3c21bcecceda100000082600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515611cff57600080fd5b611d48600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361294b565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611dee611de78c6006546128e4565b606461291c565b9850611e06611dff8a6009546128e4565b606461291c565b9750611e1e611e178a6008546128e4565b606461291c565b9650611e3389611e2e898b61294b565b612932565b9550611e3f8b8a612932565b94506801000000000000000086029350600085118015611e6b5750601054611e698660105461294b565b115b1515611e7657600080fd5b611ee1600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961294b565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015611faf57508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b156120d157611ffd600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612089600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ec565b6120db868861294b565b955068010000000000000000860293505b60006010541115612157576121036010548661294b565b60108190555060105468010000000000000000870281151561212157fe5b0460116000828254019250508190555060105468010000000000000000870281151561214957fe5b04850284038403935061215f565b846010819055505b6121a8600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661294b565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499506128d4565b6000600260006101000a81548160ff0219169083151502179055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123a261239b8c6006546128e4565b606461291c565b98506123ba6123b38a6009546128e4565b606461291c565b97506123d26123cb8a6008546128e4565b606461291c565b96506123e7896123e2898b61294b565b612932565b95506123f38b8a612932565b9450680100000000000000008602935060008511801561241f575060105461241d8660105461294b565b115b151561242a57600080fd5b612495600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961294b565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff161415801561256357508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b15612685576125b1600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263d600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a0565b61268f868861294b565b955068010000000000000000860293505b6000601054111561270b576126b76010548661294b565b6010819055506010546801000000000000000087028115156126d557fe5b046011600082825401925050819055506010546801000000000000000087028115156126fd57fe5b048502840384039350612713565b846010819055505b61275c600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661294b565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b6000808314156128f75760009050612916565b818302905081838281151561290857fe5b0414151561291257fe5b8090505b92915050565b6000818381151561292957fe5b04905092915050565b600082821115151561294057fe5b818303905092915050565b6000818301905082811015151561295e57fe5b809050929150505600a165627a7a723058204545bc31107c924f42219971f6f8b2785dacc0b0fb2b65f9bea8d096c2a230f30029

Deployed Bytecode

0x608060405260043610610169576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016e57806306fdde03146101c557806318160ddd1461025557806327defa1f14610280578063313ce567146102af57806332b74ec7146102e05780633ccfd60b1461036157806346b6ef41146103785780634b750334146103cf578063563bfecc146103fa5780635c5a0a9d14610451578063688abbf7146104a857806370a08231146104eb57806379fbd22c146105425780637deb6025146105995780638620410b146105fa578063949e8acd1461062557806395d89b4114610650578063989a9d17146106e0578063a9059cbb14610737578063befc3e2b1461079c578063c664f7f1146107c7578063e1456cb41461081e578063e4849b3214610875578063e9fad8ee146108a2578063eabd1ddb146108b9578063f2b79df9146108e4578063fdb5a03e14610947575b600080fd5b34801561017a57600080fd5b506101af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061095e565b6040518082815260200191505060405180910390f35b3480156101d157600080fd5b506101da610a00565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026157600080fd5b5061026a610a9e565b6040518082815260200191505060405180910390f35b34801561028c57600080fd5b50610295610aa8565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b506102c4610abb565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102ec57600080fd5b5061034b60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ac0565b6040518082815260200191505060405180910390f35b34801561036d57600080fd5b50610376610adf565b005b34801561038457600080fd5b506103b9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d3d565b6040518082815260200191505060405180910390f35b3480156103db57600080fd5b506103e4610d86565b6040518082815260200191505060405180910390f35b34801561040657600080fd5b5061043b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc4565b6040518082815260200191505060405180910390f35b34801561045d57600080fd5b50610492600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e0d565b6040518082815260200191505060405180910390f35b3480156104b457600080fd5b506104d5600480360381019080803515159060200190929190505050610e25565b6040518082815260200191505060405180910390f35b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e91565b6040518082815260200191505060405180910390f35b34801561054e57600080fd5b50610583600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eda565b6040518082815260200191505060405180910390f35b3480156105a557600080fd5b506105e460048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b6040518082815260200191505060405180910390f35b34801561060657600080fd5b5061060f610f10565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b5061063a610f4e565b6040518082815260200191505060405180910390f35b34801561065c57600080fd5b50610665610f63565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a557808201518184015260208101905061068a565b50505050905090810190601f1680156106d25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106ec57600080fd5b50610721600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611001565b6040518082815260200191505060405180910390f35b34801561074357600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611019565b604051808215151515815260200191505060405180910390f35b3480156107a857600080fd5b506107b1611304565b6040518082815260200191505060405180910390f35b3480156107d357600080fd5b50610808600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061134b565b6040518082815260200191505060405180910390f35b34801561082a57600080fd5b5061085f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611363565b6040518082815260200191505060405180910390f35b34801561088157600080fd5b506108a06004803603810190808035906020019092919050505061137b565b005b3480156108ae57600080fd5b506108b761160c565b005b3480156108c557600080fd5b506108ce611673565b6040518082815260200191505060405180910390f35b3480156108f057600080fd5b506108f9611772565b604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b34801561095357600080fd5b5061095c6118d9565b005b600068010000000000000000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460115402038115156109f857fe5b049050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a965780601f10610a6b57610100808354040283529160200191610a96565b820191906000526020600020905b815481529060010190602001808311610a7957829003601f168201915b505050505081565b6000601054905090565b600260009054906101000a900460ff1681565b601281565b6000610acb84611a4e565b610ad6828486611c00565b90509392505050565b6000806000610aee6001610e25565b111515610afa57600080fd5b339150610b076000610e25565b9050680100000000000000008102600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610caf57600080fd5b505af1158015610cc3573d6000803e3d6000fd5b505050506040513d6020811015610cd957600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600080670de0b6b3a76400009250610dad610da6846007546128e4565b606461291c565b9150610db98383612932565b905080935050505090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b6020528060005260406000206000915090505481565b60008033905082610e3e57610e398161095e565b610e89565b600c60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e878261095e565b015b915050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600f6020528060005260406000206000915090505481565b6000610efd83611a4e565b610f08823385611c00565b905092915050565b600080600080670de0b6b3a76400009250610f37610f30846006546128e4565b606461291c565b9150610f43838361294b565b905080935050505090565b600080339050610f5d81610e91565b91505090565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ff95780601f10610fce57610100808354040283529160200191610ff9565b820191906000526020600020905b815481529060010190602001808311610fdc57829003601f168201915b505050505081565b600d6020528060005260406000206000915090505481565b6000806000611026610f4e565b11151561103257600080fd5b339050600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054831115151561108357600080fd5b600061108f6001610e25565b111561109e5761109d610adf565b5b6110aa60105484612932565b6010819055506110f9600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612932565b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611185600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461294b565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260115402600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508260115402600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555061128e60115460105468010000000000000000860281151561128857fe5b0461294b565b6011819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b600c6020528060005260406000206000915090505481565b600e6020528060005260406000206000915090505481565b600080600080600061138b610f4e565b11151561139757600080fd5b339350600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156113e857600080fd5b6113fe6113f7866007546128e4565b606461291c565b925061140a8584612932565b915061141860105486612932565b601081905550611467600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612932565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856011540201905080600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600060105411156115415761153a60115460105468010000000000000000860281151561153457fe5b0461294b565b6011819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff167f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e586844260405180848152602001838152602001828152602001935050505060405180910390a25050505050565b600080339150600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611667576116668161137b565b5b61166f610adf565b5050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b505050506040513d602081101561175c57600080fd5b8101908080519060200190929190505050905090565b6000806000806000806000806000611788611673565b611790610a9e565b61179933610e91565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561185657600080fd5b505af115801561186a573d6000803e3d6000fd5b505050506040513d602081101561188057600080fd5b810190808051906020019092919050505061189a3361095e565b6118a2610f10565b6118aa610d86565b6118b333610d3d565b6118bc33610dc4565b985098509850985098509850985098509850909192939495969798565b6000806000806118e96001610e25565b1115156118f557600080fd5b3392506119026000610e25565b9150680100000000000000008202600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119f160008484611c00565b90508273ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588383604051808381526020018281526020019250505060405180910390a2505050565b60011515601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611b4b57600080fd5b505af1158015611b5f573d6000803e3d6000fd5b505050506040513d6020811015611b7557600080fd5b81019080805190602001909291905050501515141515611bfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f7472616e73666572206d7573742073756363656564000000000000000000000081525060200191505060405180910390fd5b50565b600080600080600080600080888a60035442101515611c35576000600260006101000a81548160ff0219169083151502179055505b600260009054906101000a900460ff161561232457600115156000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611cf4575069d3c21bcecceda100000082600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b1515611cff57600080fd5b611d48600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361294b565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611dee611de78c6006546128e4565b606461291c565b9850611e06611dff8a6009546128e4565b606461291c565b9750611e1e611e178a6008546128e4565b606461291c565b9650611e3389611e2e898b61294b565b612932565b9550611e3f8b8a612932565b94506801000000000000000086029350600085118015611e6b5750601054611e698660105461294b565b115b1515611e7657600080fd5b611ee1600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961294b565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614158015611faf57508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b156120d157611ffd600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612089600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120ec565b6120db868861294b565b955068010000000000000000860293505b60006010541115612157576121036010548661294b565b60108190555060105468010000000000000000870281151561212157fe5b0460116000828254019250508190555060105468010000000000000000870281151561214957fe5b04850284038403935061215f565b846010819055505b6121a8600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661294b565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499506128d4565b6000600260006101000a81548160ff0219169083151502179055508a600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506123a261239b8c6006546128e4565b606461291c565b98506123ba6123b38a6009546128e4565b606461291c565b97506123d26123cb8a6008546128e4565b606461291c565b96506123e7896123e2898b61294b565b612932565b95506123f38b8a612932565b9450680100000000000000008602935060008511801561241f575060105461241d8660105461294b565b115b151561242a57600080fd5b612495600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548961294b565b600c6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff161415801561256357508b73ffffffffffffffffffffffffffffffffffffffff168d73ffffffffffffffffffffffffffffffffffffffff1614155b15612685576125b1600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600c60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061263d600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548861294b565b600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a0565b61268f868861294b565b955068010000000000000000860293505b6000601054111561270b576126b76010548661294b565b6010819055506010546801000000000000000087028115156126d557fe5b046011600082825401925050819055506010546801000000000000000087028115156126fd57fe5b048502840384039350612713565b846010819055505b61275c600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661294b565b600b60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856011540203925082600e60008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a38c73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff167fff69b2ba8f4ef8248f8c375ba3916c770604b215557acdd4e8387a4dd5e7de868d884260405180848152602001838152602001828152602001935050505060405180910390a38499505b5050505050505050509392505050565b6000808314156128f75760009050612916565b818302905081838281151561290857fe5b0414151561291257fe5b8090505b92915050565b6000818381151561292957fe5b04905092915050565b600082821115151561294057fe5b818303905092915050565b6000818301905082811015151561295e57fe5b809050929150505600a165627a7a723058204545bc31107c924f42219971f6f8b2785dacc0b0fb2b65f9bea8d096c2a230f30029

Deployed Bytecode Sourcemap

1714:14189:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5827:8;;;10611:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10611:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3786:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3786:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3786:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9726:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9726:126:0;;;;;;;;;;;;;;;;;;;;;;;1941:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1941:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3875:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3875:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5445:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6687:522;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6687:522:0;;;;;;11717:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11717:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10924:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10924:311:0;;;;;;;;;;;;;;;;;;;;;;;11913:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11913:173:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4211:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4211:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10058:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10058:340:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10410:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10410:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4469:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5134:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5134:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11247:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11247:311:0;;;;;;;;;;;;;;;;;;;;;;;9860:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9860:186:0;;;;;;;;;;;;;;;;;;;;;;;3832:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3832:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3832:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4342:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4342:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8419:1137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8419:1137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11570:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11570:135:0;;;;;;;;;;;;;;;;;;;;;;;4278:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4278:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4412:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4412:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7221:1186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7221:1186:0;;;;;;;;;;;;;;;;;;;;;;;;;;6426:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6426:249:0;;;;;;9568:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9568:150:0;;;;;;;;;;;;;;;;;;;;;;;14928:972;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14928:972:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:559;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5855:559:0;;;;;;10611:301;10724:7;4191;10863:10;:28;10874:16;10863:28;;;;;;;;;;;;;;;;10808:19;:37;10828:16;10808:37;;;;;;;;;;;;;;;;10790:15;;:55;10767:124;10757:147;;;;;;;;10750:154;;10611:301;;;:::o;3786:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9726:126::-;9799:7;9832:12;;9825:19;;9726:126;:::o;1941:34::-;;;;;;;;;;;;;:::o;3875:35::-;3908:2;3875:35;:::o;5445:333::-;5596:7;5622:25;5639:7;5622:16;:25::i;:::-;5665:105;5694:11;5721:16;5752:7;5665:14;:105::i;:::-;5658:112;;5445:333;;;;;:::o;6687:522::-;6760:24;6818:18;2926:1;2906:17;2918:4;2906:11;:17::i;:::-;:21;2898:30;;;;;;;;6787:10;6760:37;;6839:18;6851:5;6839:11;:18::i;:::-;6818:39;;4191:7;6919:10;:22;6878:10;:28;6889:16;6878:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;6977:16;:34;6994:16;6977:34;;;;;;;;;;;;;;;;6963:48;;;;7069:1;7032:16;:34;7049:16;7032:34;;;;;;;;;;;;;;;:38;;;;7091:5;;;;;;;;;;;:14;;;7106:16;7124:10;7091:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7091:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7091:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7091:44:0;;;;;;;;;;;;;;;;;7172:16;7161:40;;;7190:10;7161:40;;;;;;;;;;;;;;;;;;6687:522;;:::o;11717:184::-;11830:7;11862:22;:31;11885:7;11862:31;;;;;;;;;;;;;;;;11855:38;;11717:184;;;:::o;10924:311::-;10995:7;11021:14;11053:18;11134:19;11038:4;11021:21;;11074:49;11087:30;11100:6;11108:8;;11087:12;:30::i;:::-;11119:3;11074:12;:49::i;:::-;11053:70;;11156:32;11169:6;11177:10;11156:12;:32::i;:::-;11134:54;;11216:11;11209:18;;10924:311;;;;:::o;11913:173::-;12021:7;12053:16;:25;12070:7;12053:25;;;;;;;;;;;;;;;;12046:32;;11913:173;;;:::o;4211:54::-;;;;;;;;;;;;;;;;;:::o;10058:340::-;10173:7;10199:24;10226:10;10199:37;;10254:21;:136;;10361:29;10373:16;10361:11;:29::i;:::-;10254:136;;;10324:16;:34;10341:16;10324:34;;;;;;;;;;;;;;;;10278:29;10290:16;10278:11;:29::i;:::-;:80;10254:136;10247:143;;10058:340;;;;:::o;10410:189::-;10521:7;10554:19;:37;10574:16;10554:37;;;;;;;;;;;;;;;;10547:44;;10410:189;;;:::o;4469:44::-;;;;;;;;;;;;;;;;;:::o;5134:299::-;5246:7;5272:25;5289:7;5272:16;:25::i;:::-;5325:100;5354:11;5381:10;5407:7;5325:14;:100::i;:::-;5318:107;;5134:299;;;;:::o;11247:311::-;11317:7;11343:14;11375:18;11457:19;11360:4;11343:21;;11396:50;11409:31;11422:6;11430:9;;11409:12;:31::i;:::-;11442:3;11396:12;:50::i;:::-;11375:71;;11479:32;11492:6;11500:10;11479:12;:32::i;:::-;11457:54;;11539:11;11532:18;;11247:311;;;;:::o;9860:186::-;9930:7;9956:24;9983:10;9956:37;;10011:27;10021:16;10011:9;:27::i;:::-;10004:34;;9860:186;;:::o;3832:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4342:57::-;;;;;;;;;;;;;;;;;:::o;8419:1137::-;8572:4;8595:24;2838:1;2825:10;:8;:10::i;:::-;:14;2817:23;;;;;;;;8622:10;8595:37;;8670:19;:37;8690:16;8670:37;;;;;;;;;;;;;;;;8651:15;:56;;8643:65;;;;;;;;8749:1;8729:17;8741:4;8729:11;:17::i;:::-;:21;8725:64;;;8767:10;:8;:10::i;:::-;8725:64;8824:43;8837:12;;8851:15;8824:12;:43::i;:::-;8809:12;:58;;;;8942:68;8955:19;:37;8975:16;8955:37;;;;;;;;;;;;;;;;8994:15;8942:12;:68::i;:::-;8888:19;:37;8908:16;8888:37;;;;;;;;;;;;;;;:122;;;;9083:62;9096:19;:31;9116:10;9096:31;;;;;;;;;;;;;;;;9129:15;9083:12;:62::i;:::-;9035:19;:31;9055:10;9035:31;;;;;;;;;;;;;;;:110;;;;9225:15;9207;;:33;9166:10;:28;9177:16;9166:28;;;;;;;;;;;;;;;;:75;;;;;;;;;;;9305:15;9287;;:33;9252:10;:22;9263:10;9252:22;;;;;;;;;;;;;;;;:69;;;;;;;;;;;9360:75;9373:15;;9422:12;;4191:7;9391:15;:27;9390:44;;;;;;;;9360:12;:75::i;:::-;9342:15;:93;;;;9488:10;9461:55;;9470:16;9461:55;;;9500:15;9461:55;;;;;;;;;;;;;;;;;;9544:4;9537:11;;8419:1137;;;;;:::o;11570:135::-;11643:7;11676:9;:21;11686:10;11676:21;;;;;;;;;;;;;;;;11669:28;;11570:135;:::o;4278:51::-;;;;;;;;;;;;;;;;;:::o;4412:44::-;;;;;;;;;;;;;;;;;:::o;7221:1186::-;7337:24;7471:18;7561:19;7867:22;2838:1;2825:10;:8;:10::i;:::-;:14;2817:23;;;;;;;;7364:10;7337:37;;7412:19;:37;7432:16;7412:37;;;;;;;;;;;;;;;;7393:15;:56;;7385:65;;;;;;;;7492:58;7505:39;7518:15;7535:8;;7505:12;:39::i;:::-;7546:3;7492:12;:58::i;:::-;7471:79;;7583:41;7596:15;7613:10;7583:12;:41::i;:::-;7561:63;;7660:43;7673:12;;7687:15;7660:12;:43::i;:::-;7645:12;:58;;;;7778:68;7791:19;:37;7811:16;7791:37;;;;;;;;;;;;;;;;7830:15;7778:12;:68::i;:::-;7724:19;:37;7744:16;7724:37;;;;;;;;;;;;;;;:122;;;;4191:7;7952:11;:23;7933:15;7915;;:33;:61;7867:110;;8034:15;8002:10;:28;8013:16;8002:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;8089:1;8074:12;;:16;8070:169;;;8125:102;8156:15;;8200:12;;4191:7;8174:10;:22;8173:39;;;;;;;;8125:12;:102::i;:::-;8107:15;:120;;;;8070:169;8299:1;8264:55;;8273:16;8264:55;;;8303:15;8264:55;;;;;;;;;;;;;;;;;;8347:16;8335:64;;;8365:15;8382:11;8395:3;8335:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7221:1186;;;;;:::o;6426:249::-;6472:24;6530:15;6499:10;6472:37;;6548:19;:37;6568:16;6548:37;;;;;;;;;;;;;;;;6530:55;;6620:1;6610:7;:11;6606:30;;;6623:13;6628:7;6623:4;:13::i;:::-;6606:30;6657:10;:8;:10::i;:::-;6426:249;;:::o;9568:150::-;9647:7;9680:5;;;;;;;;;;;:15;;;9704:4;9680:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9680:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9680:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9680:30:0;;;;;;;;;;;;;;;;9673:37;;9568:150;:::o;14928:972::-;14994:7;15013;15032;15051;15070;15089;15108;15126;15144;15244:19;:17;:19::i;:::-;15325:13;:11;:13::i;:::-;15401:21;15411:10;15401:9;:21::i;:::-;15478:5;;;;;;;;;;;:15;;;15494:10;15478:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15478:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15478:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15478:27:0;;;;;;;;;;;;;;;;15553:23;15565:10;15553:11;:23::i;:::-;15624:10;:8;:10::i;:::-;15683:11;:9;:11::i;:::-;15757:33;15779:10;15757:21;:33::i;:::-;15854:27;15870:10;15854:15;:27::i;:::-;15175:717;;;;;;;;;;;;;;;;;;14928:972;;;;;;;;;:::o;5855:559::-;5929:24;5987:18;6260:15;2926:1;2906:17;2918:4;2906:11;:17::i;:::-;:21;2898:30;;;;;;;;5956:10;5929:37;;6008:18;6020:5;6008:11;:18::i;:::-;5987:39;;4191:7;6088:10;:22;6047:10;:28;6058:16;6047:28;;;;;;;;;;;;;;;;:64;;;;;;;;;;;6146:16;:34;6163:16;6146:34;;;;;;;;;;;;;;;;6132:48;;;;6238:1;6201:16;:34;6218:16;6201:34;;;;;;;;;;;;;;;:38;;;;6278:49;6293:3;6298:16;6316:10;6278:14;:49::i;:::-;6260:67;;6368:16;6353:53;;;6386:10;6398:7;6353:53;;;;;;;;;;;;;;;;;;;;;;;;5855:559;;;:::o;4836:290::-;5078:4;4952:130;;:5;;;;;;;;;;;:18;;;4989:10;5027:4;5052:7;4952:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4952:122:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4952:122:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4952:122:0;;;;;;;;;;;;;;;;:130;;;4930:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4836:290;:::o;12098:2822::-;12325:7;12399:27;12566:20;12751:22;12921:18;13102:23;13204:12;14475:22;12273:14;12289:16;2149:15;;2142:3;:22;;2138:78;;;2199:5;2181:15;;:23;;;;;;;;;;;;;;;;;;2138:78;2240:15;;;;;;;;;;;2236:529;;;2329:4;2295:38;;:12;:30;2308:16;2295:30;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;:178;;;;;1849:10;2414:14;2366:27;:45;2394:16;2366:45;;;;;;;;;;;;;;;;:62;2365:108;;2295:178;2286:189;;;;;;;;2574:75;2587:27;:45;2615:16;2587:45;;;;;;;;;;;;;;;;2634:14;2574:12;:75::i;:::-;2508:27;:45;2536:16;2508:45;;;;;;;;;;;;;;;:141;;;;12372:14;12347:9;:21;12357:10;12347:21;;;;;;;;;;;;;;;;:39;;;;;;;;;;;12439:114;12466:71;12497:14;12513:9;;12466:12;:71::i;:::-;12549:3;12439:12;:114::i;:::-;12399:154;;12599:125;12626:82;12657:19;12678:15;;12626:12;:82::i;:::-;12720:3;12599:12;:125::i;:::-;12566:158;;12786:122;12813:79;12844:19;12865:12;;12813;:79::i;:::-;12904:3;12786:12;:122::i;:::-;12751:157;;12952:133;12979:19;13000:74;13031:14;13047:12;13000;:74::i;:::-;12952:12;:133::i;:::-;12921:164;;13138:49;13151:14;13167:19;13138:12;:49::i;:::-;13102:85;;4191:7;13219:10;:22;13204:37;;13290:1;13272:15;:19;:91;;;;;13351:12;;13305:43;13318:15;13335:12;;13305;:43::i;:::-;:58;13272:91;13254:116;;;;;;;;13432:64;13445:16;:36;13462:18;;;;;;;;;;;13445:36;;;;;;;;;;;;;;;;13483:12;13432;:64::i;:::-;13383:16;:36;13400:18;;;;;;;;;;;13383:36;;;;;;;;;;;;;;;:113;;;;13536:1;13513:25;;:11;:25;;;;:70;;;;;13567:16;13552:31;;:11;:31;;;;13513:70;13509:465;;;13647:59;13660:16;:29;13677:11;13660:29;;;;;;;;;;;;;;;;13691:14;13647:12;:59::i;:::-;13601:16;:29;13618:11;13601:29;;;;;;;;;;;;;;;:105;;;;13783:65;13796:22;:35;13819:11;13796:35;;;;;;;;;;;;;;;;13833:14;13783:12;:65::i;:::-;13731:22;:35;13754:11;13731:35;;;;;;;;;;;;;;;:117;;;;13509:465;;;13886:40;13899:10;13911:14;13886:12;:40::i;:::-;13873:53;;4191:7;13944:10;:22;13937:29;;13509:465;14005:1;13990:12;;:16;13986:350;;;14040:43;14053:12;;14067:15;14040:12;:43::i;:::-;14025:12;:58;;;;14152:12;;4191:7;14125:10;:22;14124:41;;;;;;;;14104:15;;:62;;;;;;;;;;;14247:12;;4191:7;14220:10;:22;14219:41;;;;;;;;14200:15;:61;14192:4;:70;14184:4;:79;14177:86;;13986:350;;;14313:15;14298:12;:30;;;;13986:350;14394:68;14407:19;:37;14427:16;14407:37;;;;;;;;;;;;;;;;14446:15;14394:12;:68::i;:::-;14344:19;:37;14364:16;14344:37;;;;;;;;;;;;;;;:118;;;;14547:4;14528:15;14510;;:33;14509:42;14475:77;;14601:15;14569:10;:28;14580:16;14569:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;14675:10;14634:85;;14661:1;14634:85;;;14697:15;14634:85;;;;;;;;;;;;;;;;;;14844:11;14737:140;;14763:16;14737:140;;;14791:14;14817:15;14867:3;14737:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14897:15;14890:22;;2236:529;;;2732:5;2714:15;;:23;;;;;;;;;;;;;;;;;;12372:14;12347:9;:21;12357:10;12347:21;;;;;;;;;;;;;;;;:39;;;;;;;;;;;12439:114;12466:71;12497:14;12513:9;;12466:12;:71::i;:::-;12549:3;12439:12;:114::i;:::-;12399:154;;12599:125;12626:82;12657:19;12678:15;;12626:12;:82::i;:::-;12720:3;12599:12;:125::i;:::-;12566:158;;12786:122;12813:79;12844:19;12865:12;;12813;:79::i;:::-;12904:3;12786:12;:122::i;:::-;12751:157;;12952:133;12979:19;13000:74;13031:14;13047:12;13000;:74::i;:::-;12952:12;:133::i;:::-;12921:164;;13138:49;13151:14;13167:19;13138:12;:49::i;:::-;13102:85;;4191:7;13219:10;:22;13204:37;;13290:1;13272:15;:19;:91;;;;;13351:12;;13305:43;13318:15;13335:12;;13305;:43::i;:::-;:58;13272:91;13254:116;;;;;;;;13432:64;13445:16;:36;13462:18;;;;;;;;;;;13445:36;;;;;;;;;;;;;;;;13483:12;13432;:64::i;:::-;13383:16;:36;13400:18;;;;;;;;;;;13383:36;;;;;;;;;;;;;;;:113;;;;13536:1;13513:25;;:11;:25;;;;:70;;;;;13567:16;13552:31;;:11;:31;;;;13513:70;13509:465;;;13647:59;13660:16;:29;13677:11;13660:29;;;;;;;;;;;;;;;;13691:14;13647:12;:59::i;:::-;13601:16;:29;13618:11;13601:29;;;;;;;;;;;;;;;:105;;;;13783:65;13796:22;:35;13819:11;13796:35;;;;;;;;;;;;;;;;13833:14;13783:12;:65::i;:::-;13731:22;:35;13754:11;13731:35;;;;;;;;;;;;;;;:117;;;;13509:465;;;13886:40;13899:10;13911:14;13886:12;:40::i;:::-;13873:53;;4191:7;13944:10;:22;13937:29;;13509:465;14005:1;13990:12;;:16;13986:350;;;14040:43;14053:12;;14067:15;14040:12;:43::i;:::-;14025:12;:58;;;;14152:12;;4191:7;14125:10;:22;14124:41;;;;;;;;14104:15;;:62;;;;;;;;;;;14247:12;;4191:7;14220:10;:22;14219:41;;;;;;;;14200:15;:61;14192:4;:70;14184:4;:79;14177:86;;13986:350;;;14313:15;14298:12;:30;;;;13986:350;14394:68;14407:19;:37;14427:16;14407:37;;;;;;;;;;;;;;;;14446:15;14394:12;:68::i;:::-;14344:19;:37;14364:16;14344:37;;;;;;;;;;;;;;;:118;;;;14547:4;14528:15;14510;;:33;14509:42;14475:77;;14601:15;14569:10;:28;14580:16;14569:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;14675:10;14634:85;;14661:1;14634:85;;;14697:15;14634:85;;;;;;;;;;;;;;;;;;14844:11;14737:140;;14763:16;14737:140;;;14791:14;14817:15;14867:3;14737:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14897:15;14890:22;;2236:529;12098:2822;;;;;;;;;;;;;;:::o;55:263::-;168:9;205:1;200;:6;196:47;;;230:1;223:8;;;;196:47;261:1;257;:5;253:9;;289:1;284;280;:5;;;;;;;;:10;273:18;;;;;;309:1;302:8;;55:263;;;;;:::o;330:159::-;443:7;480:1;476;:5;;;;;;;;469:12;;330:159;;;;:::o;501:184::-;614:7;652:1;647;:6;;640:14;;;;;;676:1;672;:5;665:12;;501:184;;;;:::o;697:202::-;810:9;846:1;842;:5;838:9;;870:1;865;:6;;858:14;;;;;;890:1;883:8;;697:202;;;;:::o

Swarm Source

bzzr://4545bc31107c924f42219971f6f8b2785dacc0b0fb2b65f9bea8d096c2a230f3
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.