ETH Price: $2,638.68 (+0.11%)
Gas: 2 Gwei

Token

DTT Exchange (DTT)
 

Overview

Max Total Supply

0 DTT

Holders

172

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 DTT

Value
$0.00
0xd10dbce6e5cc554c738d1fd89563a797b24f1819
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:
DTT_Exchange

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv2 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-22
*/

pragma solidity ^0.4.26;

contract DTT_Exchange {
    // only people with tokens
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }

    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[_customerAddress]);
        _;
    }
   
    /*==============================
    =            EVENTS            =
    ==============================*/

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
   
    // ERC20
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
   
   
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    string public name = "DTT Exchange";
    string public symbol = "DTT";
    uint8 constant public decimals = 0;
    uint256 public totalSupply_ = 900000;
    uint256 constant internal tokenPriceInitial_ = 270000000000000;
    uint256 constant internal tokenPriceIncremental_ = 270000000;
    uint256 public percent = 75;
    uint256 public currentPrice_ = tokenPriceInitial_ + tokenPriceIncremental_;
    uint256 public grv = 1;

    address commissionHolder; // holds commissions fees
    address stakeHolder; // holds stake
    address dev2; // Growth funds
    address dev3; // Compliance funds
    address dev4; // Marketing Funds
    address dev5; // Development funds
    address dev6; // Research Funds
   
   
   
   /*================================
    =            DATASETS            =
    ================================*/
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal etherBalanceLedger_;
    address sonk;
    uint256 internal tokenSupply_ = 0;
    // uint256 internal profitPerShare_;
    mapping(address => bool) public administrators;
    uint256 commFunds=0;
   
   
    constructor() public
    {
        sonk = msg.sender;
        administrators[sonk] = true;
        commissionHolder = sonk;
        stakeHolder = sonk;
        commFunds = 0;
    }
   
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value, _referredBy);
    }
   
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
   
    function holdStake(uint256 _amount)
        onlyBagholders()
        public
        {
            tokenBalanceLedger_[msg.sender] = SafeMath.sub(tokenBalanceLedger_[msg.sender], _amount);
            tokenBalanceLedger_[stakeHolder] = SafeMath.add(tokenBalanceLedger_[stakeHolder], _amount);
        }
       
    function unstake(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenBalanceLedger_[stakeHolder] = SafeMath.sub(tokenBalanceLedger_[stakeHolder], _amount);
    }
   
    function withdrawRewards(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenSupply_ = SafeMath.add (tokenSupply_,_amount);
    }
   
    function withdrawComm(uint256 _amount, address _customerAddress)
        onlyAdministrator()
        public
    {
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress],_amount);
        tokenBalanceLedger_[commissionHolder] = SafeMath.sub(tokenBalanceLedger_[commissionHolder], _amount);
    }
   
    function withdrawEthers()
    public
    {
        msg.sender.transfer(etherBalanceLedger_[msg.sender]);
        etherBalanceLedger_[msg.sender] = 0;
    }
   
    /**
     * Alias of sell() and withdraw().
     */
    function exit()
        public
    {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
    }

    /**
     * Liquifies tokens to ethereum.
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // setup data
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens,true);
        uint256 _dividends = _ethereum * percent/1000;//SafeMath.div(_ethereum, dividendFee_); // 7.5% sell fees
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        commFunds += _dividends;
       
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        _customerAddress.transfer(_taxedEthereum);
        emit Transfer(_customerAddress, address(this), _tokens);
    }
   
    function registerDev234(address _devAddress2, address _devAddress3, address _devAddress4,address _devAddress5, address _devAddress6,address _commHolder)
    onlyAdministrator()
    public
    {
        dev2 = _devAddress2;
        dev3 = _devAddress3;
        dev4 = _devAddress4;
        dev5 = _devAddress5;
        dev6 = _devAddress6;
        commissionHolder = _commHolder;
        administrators[commissionHolder] = true;
    }
   
    function totalCommFunds()
        onlyAdministrator()
        public view
        returns(uint256)
    {
        return commFunds;    
    }
   
    function getCommFunds(uint256 _amount)
        onlyAdministrator()
        public
    {
        if(_amount <= commFunds)
        {
            etherBalanceLedger_[dev2]+=(_amount*20/100);
            etherBalanceLedger_[dev3]+=(_amount*20/100);
            etherBalanceLedger_[dev4]+=(_amount*25/100);
            etherBalanceLedger_[dev5]+=(_amount*10/100);
            etherBalanceLedger_[dev6]+=(_amount*25/100);
            commFunds = SafeMath.sub(commFunds,_amount);
        }
    }

   
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyAdministrator()
        public
        returns(bool)
    {
        // setup
        address _customerAddress = msg.sender;

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        // ERC20
        return true;
       
    }
   
    function destruct() onlyAdministrator() public{
        uint256 _amount = address(this).balance;
        dev2.transfer(_amount*20/100);
        dev3.transfer(_amount*20/100);
        dev4.transfer(_amount*25/100);
        dev5.transfer(_amount*10/100);
        dev6.transfer(_amount*25/100);
        selfdestruct(commissionHolder);
    }
   
   
    function setPercent(uint256 newPercent) onlyAdministrator() public {
        percent = newPercent * 10;
    }

   
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
   
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    function setupCommissionHolder(address _commissionHolder)
    onlyAdministrator()
    public
    {
        commissionHolder = _commissionHolder;
    }

    function totalEthereumBalance()
        public
        view
        returns(uint)
    {
        return address(this).balance;
    }
   
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return totalSupply_;
    }
   
    function tokenSupply()
    public
    view
    returns(uint256)
    {
        return tokenSupply_;
    }
   
    /**
     * Retrieve the tokens owned by the caller.
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }
   
   
    /**
     * Retrieve the token balance of any single address.
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
   

    function sellPrice()
        public
        view
        returns(uint256)
    {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(2,false);
            uint256 _dividends = _ethereum * percent/1000;
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
   
    /**
     * Return the sell price of 1 individual token.
     */
    function buyPrice()
        public
        view
        returns(uint256)
    {
        return currentPrice_;
    }
   
   
    function calculateEthereumReceived(uint256 _tokensToSell)
        public
        view
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell,false);
        uint256 _dividends = _ethereum * percent/1000;//SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
   
   
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
   
    event testLog(
        uint256 currBal
    );

    function calculateTokensReceived(uint256 _ethereumToSpend)
        public
        view
        returns(uint256)
    {
        uint256 _dividends = _ethereumToSpend * percent/1000;
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum, currentPrice_, grv, false);
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * 20/100);
        return _amountOfTokens;
    }
   
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        internal
        returns(uint256)
    {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _dividends = _incomingEthereum * percent/1000;
        commFunds += _dividends;
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum , currentPrice_, grv, true);
        tokenBalanceLedger_[commissionHolder] += _amountOfTokens * 20/100;
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
       
        tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
        require(SafeMath.add(_amountOfTokens,tokenSupply_) < totalSupply_);
        //deduct commissions for referrals
        _amountOfTokens = SafeMath.sub(_amountOfTokens, _amountOfTokens * 20/100);
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
       
        // fire event
        emit Transfer(address(this), _customerAddress, _amountOfTokens);
       
        return _amountOfTokens;
    }
   
    function ethereumToTokens_(uint256 _ethereum, uint256 _currentPrice, uint256 _grv, bool buy)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*(2**(_grv-1)));
        uint256 _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
        uint256 _tokenSupply = tokenSupply_;
        uint256 _tokensReceived = (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            _tempad**2
                            + (8*_tokenPriceIncremental*_ethereum)
                        )
                    ), _tempad
                )
            )/(2*_tokenPriceIncremental)
        );
        uint256 tempbase = upperBound_(_grv);
        if((_tokensReceived + _tokenSupply) < tempbase && _tokenSupply < tempbase){
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
        }
        if((_tokensReceived + _tokenSupply) > tempbase && _tokenSupply < tempbase){
            _tokensReceived = tempbase - _tokenSupply;
            _ethereum = SafeMath.sub(
                _ethereum,
                ((_tokensReceived)/2)*
                ((2*_currentPrice)+((_tokensReceived-1)
                *_tokenPriceIncremental))
            );
            _currentPrice = _currentPrice+((_tokensReceived-1)*_tokenPriceIncremental);
            _grv = _grv + 1;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            _tempad = SafeMath.sub((2*_currentPrice), _tokenPriceIncremental);
            uint256 _tempTokensReceived = (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                _tempad**2
                                + (8*_tokenPriceIncremental*_ethereum)
                            )
                        ), _tempad
                    )
                )/(2*_tokenPriceIncremental)
            );
            _currentPrice = _currentPrice+((_tempTokensReceived-1)*_tokenPriceIncremental);
            _tokensReceived = _tokensReceived + _tempTokensReceived;
        }
        if(buy == true)
        {
            currentPrice_ = _currentPrice;
            grv = _grv;
        }
        return _tokensReceived;
    }
   
    function upperBound_(uint256 _grv)
    internal
    view
    returns(uint256)
    {
        if(_grv <= 5)
        {
            return (60000 * _grv);
        }
        if(_grv > 5 && _grv <= 10)
        {
            return (50000 * _grv);
        }
        if(_grv > 10 && _grv <= 15)
        {
            return (40000 * _grv);
        }
        if(_grv > 15 && _grv <= 20)
        {
            return (30000 * _grv);
        }
        return 0;
    }
   
     function tokensToEthereum_(uint256 _tokens, bool sell)
        internal
        view
        returns(uint256)
    {
        uint256 _tokenSupply = tokenSupply_;
        uint256 _etherReceived = 0;
        uint256 _grv = grv;
        uint256 tempbase = upperBound_(_grv-1);
        uint256 _currentPrice = currentPrice_;
        uint256 _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
        if((_tokenSupply - _tokens) < tempbase)
        {
            uint256 tokensToSell = _tokenSupply - tempbase;
            uint256 a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _tokens = _tokens - tokensToSell;
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = _currentPrice-((tokensToSell-1)*_tokenPriceIncremental);
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv-1);
        }
        if((_tokenSupply - _tokens) < tempbase)
        {
            tokensToSell = _tokenSupply - tempbase;
            _tokens = _tokens - tokensToSell;
             a = _currentPrice - ((tokensToSell-1)*_tokenPriceIncremental);
            _etherReceived = _etherReceived + ((tokensToSell/2)*((2*a)+((tokensToSell-1)*_tokenPriceIncremental)));
            _currentPrice = a;
            _tokenSupply = _tokenSupply - tokensToSell;
            _grv = _grv-1 ;
            _tokenPriceIncremental = (tokenPriceIncremental_*((2)**(_grv-1)));
            tempbase = upperBound_(_grv);
        }
        if(_tokens > 0)
        {
             a = _currentPrice - ((_tokens-1)*_tokenPriceIncremental);
             _etherReceived = _etherReceived + ((_tokens/2)*((2*a)+((_tokens-1)*_tokenPriceIncremental)));
             _tokenSupply = _tokenSupply - _tokens;
             _currentPrice = a;
        }
        if(sell == true)
        {
            grv = _grv;
            currentPrice_ = _currentPrice;
        }
        return _etherReceived;
    }
   
   
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"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":"grv","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentPrice_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"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":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"holdStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEthers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","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":"percent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newPercent","type":"uint256"}],"name":"setPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_devAddress2","type":"address"},{"name":"_devAddress3","type":"address"},{"name":"_devAddress4","type":"address"},{"name":"_devAddress5","type":"address"},{"name":"_devAddress6","type":"address"},{"name":"_commHolder","type":"address"}],"name":"registerDev234","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"unstake","outputs":[],"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":"totalCommFunds","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":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"withdrawComm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getCommFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"withdrawRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_commissionHolder","type":"address"}],"name":"setupCommissionHolder","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":"ethereumWithdrawn","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currBal","type":"uint256"}],"name":"testLog","type":"event"}]

60806040526040805190810160405280600c81526020017f4454542045786368616e67650000000000000000000000000000000000000000815250600090805190602001906200005192919062000268565b506040805190810160405280600381526020017f4454540000000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000268565b50620dbba0600255604b600355631017df8065f5904616e00001600455600160055560006010556000601255348015620000d857600080fd5b5033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060128190555062000317565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ab57805160ff1916838001178555620002dc565b82800160010185558215620002dc579182015b82811115620002db578251825591602001919060010190620002be565b5b509050620002eb9190620002ef565b5090565b6200031491905b8082111562000310576000816000905550600101620002f6565b5090565b90565b612a8780620003276000396000f3006080604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101ba57806310d0ffdd1461024a57806318160ddd1461028b5780631dfa4da0146102b657806322609373146102e15780632b68b9c6146103225780632e926d4914610339578063313ce56714610364578063324536eb146103955780634b750334146103c05780634d71d534146103eb578063687e6f44146104185780636b2f46321461042f57806370a082311461045a57806370ba1113146104b15780637154b8b5146104dc57806376be1585146105095780637824407f14610564578063832913f71461058f5780638381e182146106725780638620410b146106bf57806387d49106146106ea578063949e8acd1461071557806395d89b4114610740578063a9059cbb146107d0578063b84c824614610835578063bf006ed31461089e578063c47f0027146108eb578063c654465d14610954578063e4849b3214610981578063e9fad8ee146109ae578063f088d547146109c5578063f3301f6b14610a0f578063f531497c14610a5c575b6101b7346000610a9f565b50005b3480156101c657600080fd5b506101cf610cd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020f5780820151818401526020810190506101f4565b50505050905090810190601f16801561023c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025657600080fd5b5061027560048036038101908080359060200190929190505050610d76565b6040518082815260200191505060405180910390f35b34801561029757600080fd5b506102a0610dd5565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610ddf565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b5061030c60048036038101908080359060200190929190505050610de5565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610337610e34565b005b34801561034557600080fd5b5061034e61113f565b6040518082815260200191505060405180910390f35b34801561037057600080fd5b50610379611145565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103a157600080fd5b506103aa61114a565b6040518082815260200191505060405180910390f35b3480156103cc57600080fd5b506103d5611150565b6040518082815260200191505060405180910390f35b3480156103f757600080fd5b50610416600480360381019080803590602001909291905050506111ad565b005b34801561042457600080fd5b5061042d611322565b005b34801561043b57600080fd5b506104446113ef565b6040518082815260200191505060405180910390f35b34801561046657600080fd5b5061049b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140e565b6040518082815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6611457565b6040518082815260200191505060405180910390f35b3480156104e857600080fd5b506105076004803603810190808035906020019092919050505061145d565b005b34801561051557600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c8565b604051808215151515815260200191505060405180910390f35b34801561057057600080fd5b506105796114e8565b6040518082815260200191505060405180910390f35b34801561059b57600080fd5b50610670600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f2565b005b34801561067e57600080fd5b506106bd60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611758565b005b3480156106cb57600080fd5b506106d4611916565b6040518082815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611920565b6040518082815260200191505060405180910390f35b34801561072157600080fd5b5061072a611987565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b5061075561199c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561079557808201518184015260208101905061077a565b50505050905090810190601f1680156107c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107dc57600080fd5b5061081b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a3a565b604051808215151515815260200191505060405180910390f35b34801561084157600080fd5b5061089c600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c26565b005b3480156108aa57600080fd5b506108e960048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c9e565b005b3480156108f757600080fd5b50610952600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611e5c565b005b34801561096057600080fd5b5061097f60048036038101908080359060200190929190505050611ed4565b005b34801561098d57600080fd5b506109ac600480360381019080803590602001909291905050506121c9565b005b3480156109ba57600080fd5b506109c36123c9565b005b6109f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612428565b6040518082815260200191505060405180910390f35b348015610a1b57600080fd5b50610a5a60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061243a565b005b348015610a6857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061253a565b005b60008060008060003393506103e86003548802811515610abb57fe5b04925082601260008282540192505081905550610ad887846125dc565b9150610aeb8260045460055460016125f5565b9050606460148202811515610afc57fe5b04600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610b875750601054610b858260105461274f565b115b1515610b9257600080fd5b610b9e6010548261274f565b601081905550600254610bb38260105461274f565b101515610bbf57600080fd5b610bd881606460148402811515610bd257fe5b046125dc565b9050610c23600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261274f565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38094505050505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d6e5780601f10610d4357610100808354040283529160200191610d6e565b820191906000526020600020905b815481529060010190602001808311610d5157829003601f168201915b505050505081565b6000806000806103e86003548602811515610d8d57fe5b049250610d9a85846125dc565b9150610dad8260045460055460006125f5565b9050610dc881606460148402811515610dc257fe5b046125dc565b9050809350505050919050565b6000600254905090565b60055481565b6000806000806010548511151515610dfc57600080fd5b610e0785600061276d565b92506103e86003548402811515610e1a57fe5b049150610e2783836125dc565b9050809350505050919050565b600080339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610e9257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460148502811515610ef757fe5b049081150290604051600060405180830381858888f19350505050158015610f23573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460148502811515610f6f57fe5b049081150290604051600060405180830381858888f19350505050158015610f9b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460198502811515610fe757fe5b049081150290604051600060405180830381858888f19350505050158015611013573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600a850281151561105f57fe5b049081150290604051600060405180830381858888f1935050505015801561108b573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601985028115156110d757fe5b049081150290604051600060405180830381858888f19350505050158015611103573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b600081565b60025481565b6000806000806000601054141561117557631017df8065f5904616e0000393506111a7565b6111816002600061276d565b92506103e8600354840281151561119457fe5b0491506111a183836125dc565b90508093505b50505090565b60006111b7611987565b1115156111c357600080fd5b61120c600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826125dc565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112ba600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261274f565b600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3373ffffffffffffffffffffffffffffffffffffffff166108fc600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113a7573d6000803e3d6000fd5b506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60035481565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114ba57600080fd5b600a82026003819055505050565b60116020528060005260406000206000915054906101000a900460ff1681565b6000601054905090565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561154f57600080fd5b86600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156117b557600080fd5b6117fe600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ac600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125dc565b600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600454905090565b600080339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561197e57600080fd5b60125491505090565b6000803390506119968161140e565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a325780601f10611a0757610100808354040283529160200191611a32565b820191906000526020600020905b815481529060010190602001808311611a1557829003601f168201915b505050505081565b6000806000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a9a57600080fd5b339150611ae6600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856125dc565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b72600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561274f565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c8357600080fd5b8160019080519060200190611c999291906129b6565b505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611cfb57600080fd5b611d44600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df2600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125dc565b600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611eb957600080fd5b8160009080519060200190611ecf9291906129b6565b505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f3157600080fd5b601254821115156121c557606460148302811515611f4b57fe5b04600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460148302811515611fc957fe5b04600e6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060646019830281151561204757fe5b04600e6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600a83028115156120c557fe5b04600e6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060646019830281151561214357fe5b04600e6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121be601254836125dc565b6012819055505b5050565b6000806000806000806121da611987565b1115156121e657600080fd5b339450600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561223757600080fd5b85935061224584600161276d565b92506103e8600354840281151561225857fe5b04915061226583836125dc565b905081601260008282540192505081905550612283601054856125dc565b6010819055506122d2600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856125dc565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561235b573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600080339150600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561242457612423816121c9565b5b5050565b60006124343483610a9f565b50919050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561249757600080fd5b6124e0600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f6010548461274f565b601081905550505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561259757600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008282111515156125ea57fe5b818303905092915050565b60008060008060008060006001890360020a631017df8002955061261c8a600202876125dc565b945060105493508560020261264361263d8d89600802026002890a016128e3565b876125dc565b81151561264c57fe5b0492506126588961292e565b91508184840110801561266a57508184105b1561267a578560018403028a0199505b8184840111801561268a57508184105b156127225783820392506126b68b8760018603028c600202016002868115156126af57fe5b04026125dc565b9a508560018403028a0199506001890198506001890360020a631017df800295506126e48a600202876125dc565b9450856002026127066127008d89600802026002890a016128e3565b876125dc565b81151561270f57fe5b0490508560018203028a01995080830192505b60011515881515141561273e5789600481905550886005819055505b829650505050505050949350505050565b600080828401905083811015151561276357fe5b8091505092915050565b600080600080600080600080600060105497506000965060055495506127956001870361292e565b945060045493506001860360020a631017df80029250848b8903101561281957848803915082600183030284039050818b039a5082600183030281600202016002838115156127e057fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df800292506128166001870361292e565b94505b848b8903101561287d578488039150818b039a5082600183030284039050826001830302816002020160028381151561284e57fe5b04028701965080935081880397506001860395506001860360020a631017df8002925061287a8661292e565b94505b60008b11156128b6578260018c0302840390508260018c0302816002020160028c8115156128a757fe5b0402870196508a880397508093505b600115158a151514156128d25785600581905550836004819055505b869850505050505050505092915050565b6000806002600184018115156128f557fe5b0490508291505b8181101561292857809150600281828581151561291557fe5b040181151561292057fe5b0490506128fc565b50919050565b6000600582111515612946578161ea600290506129b1565b6005821180156129575750600a8211155b15612968578161c3500290506129b1565b600a821180156129795750600f8211155b1561298a5781619c400290506129b1565b600f8211801561299b575060148211155b156129ac57816175300290506129b1565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129f757805160ff1916838001178555612a25565b82800160010185558215612a25579182015b82811115612a24578251825591602001919060010190612a09565b5b509050612a329190612a36565b5090565b612a5891905b80821115612a54576000816000905550600101612a3c565b5090565b905600a165627a7a723058209c71f6db194af11f577324a331e429d1e997ece98829f7b1b1f7ca73cb4ca28b0029

Deployed Bytecode

0x6080604052600436106101ac576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101ba57806310d0ffdd1461024a57806318160ddd1461028b5780631dfa4da0146102b657806322609373146102e15780632b68b9c6146103225780632e926d4914610339578063313ce56714610364578063324536eb146103955780634b750334146103c05780634d71d534146103eb578063687e6f44146104185780636b2f46321461042f57806370a082311461045a57806370ba1113146104b15780637154b8b5146104dc57806376be1585146105095780637824407f14610564578063832913f71461058f5780638381e182146106725780638620410b146106bf57806387d49106146106ea578063949e8acd1461071557806395d89b4114610740578063a9059cbb146107d0578063b84c824614610835578063bf006ed31461089e578063c47f0027146108eb578063c654465d14610954578063e4849b3214610981578063e9fad8ee146109ae578063f088d547146109c5578063f3301f6b14610a0f578063f531497c14610a5c575b6101b7346000610a9f565b50005b3480156101c657600080fd5b506101cf610cd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020f5780820151818401526020810190506101f4565b50505050905090810190601f16801561023c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025657600080fd5b5061027560048036038101908080359060200190929190505050610d76565b6040518082815260200191505060405180910390f35b34801561029757600080fd5b506102a0610dd5565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102cb610ddf565b6040518082815260200191505060405180910390f35b3480156102ed57600080fd5b5061030c60048036038101908080359060200190929190505050610de5565b6040518082815260200191505060405180910390f35b34801561032e57600080fd5b50610337610e34565b005b34801561034557600080fd5b5061034e61113f565b6040518082815260200191505060405180910390f35b34801561037057600080fd5b50610379611145565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103a157600080fd5b506103aa61114a565b6040518082815260200191505060405180910390f35b3480156103cc57600080fd5b506103d5611150565b6040518082815260200191505060405180910390f35b3480156103f757600080fd5b50610416600480360381019080803590602001909291905050506111ad565b005b34801561042457600080fd5b5061042d611322565b005b34801561043b57600080fd5b506104446113ef565b6040518082815260200191505060405180910390f35b34801561046657600080fd5b5061049b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140e565b6040518082815260200191505060405180910390f35b3480156104bd57600080fd5b506104c6611457565b6040518082815260200191505060405180910390f35b3480156104e857600080fd5b506105076004803603810190808035906020019092919050505061145d565b005b34801561051557600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c8565b604051808215151515815260200191505060405180910390f35b34801561057057600080fd5b506105796114e8565b6040518082815260200191505060405180910390f35b34801561059b57600080fd5b50610670600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114f2565b005b34801561067e57600080fd5b506106bd60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611758565b005b3480156106cb57600080fd5b506106d4611916565b6040518082815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611920565b6040518082815260200191505060405180910390f35b34801561072157600080fd5b5061072a611987565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b5061075561199c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561079557808201518184015260208101905061077a565b50505050905090810190601f1680156107c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107dc57600080fd5b5061081b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a3a565b604051808215151515815260200191505060405180910390f35b34801561084157600080fd5b5061089c600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611c26565b005b3480156108aa57600080fd5b506108e960048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c9e565b005b3480156108f757600080fd5b50610952600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611e5c565b005b34801561096057600080fd5b5061097f60048036038101908080359060200190929190505050611ed4565b005b34801561098d57600080fd5b506109ac600480360381019080803590602001909291905050506121c9565b005b3480156109ba57600080fd5b506109c36123c9565b005b6109f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612428565b6040518082815260200191505060405180910390f35b348015610a1b57600080fd5b50610a5a60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061243a565b005b348015610a6857600080fd5b50610a9d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061253a565b005b60008060008060003393506103e86003548802811515610abb57fe5b04925082601260008282540192505081905550610ad887846125dc565b9150610aeb8260045460055460016125f5565b9050606460148202811515610afc57fe5b04600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600081118015610b875750601054610b858260105461274f565b115b1515610b9257600080fd5b610b9e6010548261274f565b601081905550600254610bb38260105461274f565b101515610bbf57600080fd5b610bd881606460148402811515610bd257fe5b046125dc565b9050610c23600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261274f565b600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38094505050505092915050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d6e5780601f10610d4357610100808354040283529160200191610d6e565b820191906000526020600020905b815481529060010190602001808311610d5157829003601f168201915b505050505081565b6000806000806103e86003548602811515610d8d57fe5b049250610d9a85846125dc565b9150610dad8260045460055460006125f5565b9050610dc881606460148402811515610dc257fe5b046125dc565b9050809350505050919050565b6000600254905090565b60055481565b6000806000806010548511151515610dfc57600080fd5b610e0785600061276d565b92506103e86003548402811515610e1a57fe5b049150610e2783836125dc565b9050809350505050919050565b600080339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610e9257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16319150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460148502811515610ef757fe5b049081150290604051600060405180830381858888f19350505050158015610f23573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460148502811515610f6f57fe5b049081150290604051600060405180830381858888f19350505050158015610f9b573d6000803e3d6000fd5b50600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606460198502811515610fe757fe5b049081150290604051600060405180830381858888f19350505050158015611013573d6000803e3d6000fd5b50600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600a850281151561105f57fe5b049081150290604051600060405180830381858888f1935050505015801561108b573d6000803e3d6000fd5b50600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064601985028115156110d757fe5b049081150290604051600060405180830381858888f19350505050158015611103573d6000803e3d6000fd5b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b600081565b60025481565b6000806000806000601054141561117557631017df8065f5904616e0000393506111a7565b6111816002600061276d565b92506103e8600354840281151561119457fe5b0491506111a183836125dc565b90508093505b50505090565b60006111b7611987565b1115156111c357600080fd5b61120c600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826125dc565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112ba600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261274f565b600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b3373ffffffffffffffffffffffffffffffffffffffff166108fc600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f193505050501580156113a7573d6000803e3d6000fd5b506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60035481565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156114ba57600080fd5b600a82026003819055505050565b60116020528060005260406000206000915054906101000a900460ff1681565b6000601054905090565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561154f57600080fd5b86600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160116000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156117b557600080fd5b6117fe600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ac600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125dc565b600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000600454905090565b600080339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561197e57600080fd5b60125491505090565b6000803390506119968161140e565b91505090565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a325780601f10611a0757610100808354040283529160200191611a32565b820191906000526020600020905b815481529060010190602001808311611a1557829003601f168201915b505050505081565b6000806000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611a9a57600080fd5b339150611ae6600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856125dc565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b72600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561274f565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c8357600080fd5b8160019080519060200190611c999291906129b6565b505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611cfb57600080fd5b611d44600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df2600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125dc565b600d6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611eb957600080fd5b8160009080519060200190611ecf9291906129b6565b505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f3157600080fd5b601254821115156121c557606460148302811515611f4b57fe5b04600e6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550606460148302811515611fc957fe5b04600e6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060646019830281151561204757fe5b04600e6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506064600a83028115156120c557fe5b04600e6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060646019830281151561214357fe5b04600e6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506121be601254836125dc565b6012819055505b5050565b6000806000806000806121da611987565b1115156121e657600080fd5b339450600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054861115151561223757600080fd5b85935061224584600161276d565b92506103e8600354840281151561225857fe5b04915061226583836125dc565b905081601260008282540192505081905550612283601054856125dc565b6010819055506122d2600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856125dc565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561235b573d6000803e3d6000fd5b503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3505050505050565b600080339150600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081111561242457612423816121c9565b5b5050565b60006124343483610a9f565b50919050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561249757600080fd5b6124e0600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461274f565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f6010548461274f565b601081905550505050565b6000339050601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561259757600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008282111515156125ea57fe5b818303905092915050565b60008060008060008060006001890360020a631017df8002955061261c8a600202876125dc565b945060105493508560020261264361263d8d89600802026002890a016128e3565b876125dc565b81151561264c57fe5b0492506126588961292e565b91508184840110801561266a57508184105b1561267a578560018403028a0199505b8184840111801561268a57508184105b156127225783820392506126b68b8760018603028c600202016002868115156126af57fe5b04026125dc565b9a508560018403028a0199506001890198506001890360020a631017df800295506126e48a600202876125dc565b9450856002026127066127008d89600802026002890a016128e3565b876125dc565b81151561270f57fe5b0490508560018203028a01995080830192505b60011515881515141561273e5789600481905550886005819055505b829650505050505050949350505050565b600080828401905083811015151561276357fe5b8091505092915050565b600080600080600080600080600060105497506000965060055495506127956001870361292e565b945060045493506001860360020a631017df80029250848b8903101561281957848803915082600183030284039050818b039a5082600183030281600202016002838115156127e057fe5b0402870196508260018303028403935081880397506001860395506001860360020a631017df800292506128166001870361292e565b94505b848b8903101561287d578488039150818b039a5082600183030284039050826001830302816002020160028381151561284e57fe5b04028701965080935081880397506001860395506001860360020a631017df8002925061287a8661292e565b94505b60008b11156128b6578260018c0302840390508260018c0302816002020160028c8115156128a757fe5b0402870196508a880397508093505b600115158a151514156128d25785600581905550836004819055505b869850505050505050505092915050565b6000806002600184018115156128f557fe5b0490508291505b8181101561292857809150600281828581151561291557fe5b040181151561292057fe5b0490506128fc565b50919050565b6000600582111515612946578161ea600290506129b1565b6005821180156129575750600a8211155b15612968578161c3500290506129b1565b600a821180156129795750600f8211155b1561298a5781619c400290506129b1565b600f8211801561299b575060148211155b156129ac57816175300290506129b1565b600090505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106129f757805160ff1916838001178555612a25565b82800160010185558215612a25579182015b82811115612a24578251825591602001919060010190612a09565b5b509050612a329190612a36565b5090565b612a5891905b80821115612a54576000816000905550600101612a3c565b5090565b905600a165627a7a723058209c71f6db194af11f577324a331e429d1e997ece98829f7b1b1f7ca73cb4ca28b0029

Deployed Bytecode Sourcemap

28:17120:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2441:30;2456:9;2467:3;2441:14;:30::i;:::-;;28:17120;837:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;837:35: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;837:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10179:483;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10179:483:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7986:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7986:122:0;;;;;;;;;;;;;;;;;;;;;;;1249:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1249:22:0;;;;;;;;;;;;;;;;;;;;;;;9509:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9509:444:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6939:345;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6939:345:0;;;;;;1168:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:74:0;;;;;;;;;;;;;;;;;;;;;;;914:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;914:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;955:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;955:36:0;;;;;;;;;;;;;;;;;;;;;;;8763:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8763:528:0;;;;;;;;;;;;;;;;;;;;;;;2490:307;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2490:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;3815:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3815:160:0;;;;;;7838:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7838:137:0;;;;;;;;;;;;;;;;;;;;;;;8581:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8581:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1134:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1134:27:0;;;;;;;;;;;;;;;;;;;;;;;7300:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7300:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;1928:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1928:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8119:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8119:110:0;;;;;;;;;;;;;;;;;;;;;;;5216:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5216:444:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2812:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9373:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9373:120:0;;;;;;;;;;;;;;;;;;;;;;;5671:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5671:146:0;;;;;;;;;;;;;;;;;;;;;;;8307:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8307:182:0;;;;;;;;;;;;;;;;;;;;;;;879:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;879:28: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;879:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6342:586;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6342:586:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7547:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7547:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3460:344;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3460:344:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7424:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7424:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5828:501;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5828:501:0;;;;;;;;;;;;;;;;;;;;;;;;;;4307:898;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4307:898:0;;;;;;;;;;;;;;;;;;;;;;;;;;4044:199;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4044:199:0;;;;;;2215:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3152:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3152:297:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7675:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7675:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10673:1202;10780:7;10828:24;10876:18;10974:22;11053:23;10855:10;10828:37;;10925:4;10917:7;;10897:17;:27;:32;;;;;;;;10876:53;;10953:10;10940:9;;:23;;;;;;;;;;;10999:43;11012:17;11031:10;10999:12;:43::i;:::-;10974:68;;11079:60;11097:14;11114:13;;11129:3;;11134:4;11079:17;:60::i;:::-;11053:86;;11212:3;11209:2;11191:15;:20;:24;;;;;;;;11150:19;:37;11170:16;;;;;;;;;;;11150:37;;;;;;;;;;;;;;;;:65;;;;;;;;;;;11252:1;11234:15;:19;:82;;;;;11303:12;;11258:42;11271:15;11287:12;;11258;:42::i;:::-;:57;11234:82;11226:91;;;;;;;;11352:43;11365:12;;11379:15;11352:12;:43::i;:::-;11337:12;:58;;;;11459:12;;11414:42;11427:15;11443:12;;11414;:42::i;:::-;:57;11406:66;;;;;;;;11545:55;11558:15;11596:3;11593:2;11575:15;:20;:24;;;;;;;;11545:12;:55::i;:::-;11527:73;;11651:68;11664:19;:37;11684:16;11664:37;;;;;;;;;;;;;;;;11703:15;11651:12;:68::i;:::-;11611:19;:37;11631:16;11611:37;;;;;;;;;;;;;;;:108;;;;11791:16;11767:58;;11784:4;11767:58;;;11809:15;11767:58;;;;;;;;;;;;;;;;;;11852:15;11845:22;;10673:1202;;;;;;;;:::o;837:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10179:483::-;10285:7;10310:18;10373:22;10451:23;10358:4;10350:7;;10331:16;:26;:31;;;;;;;;10310:52;;10398:42;10411:16;10429:10;10398:12;:42::i;:::-;10373:67;;10477:60;10495:14;10511:13;;10526:3;;10531:5;10477:17;:60::i;:::-;10451:86;;10566:55;10579:15;10617:3;10614:2;10596:15;:20;:24;;;;;;;;10566:12;:55::i;:::-;10548:73;;10639:15;10632:22;;10179:483;;;;;;:::o;7986:122::-;8056:7;8088:12;;8081:19;;7986:122;:::o;1249:22::-;;;;:::o;9509:444::-;9614:7;9688:17;9757:18;9853:22;9664:12;;9647:13;:29;;9639:38;;;;;;;;9708;9726:13;9740:5;9708:17;:38::i;:::-;9688:58;;9798:4;9790:7;;9778:9;:19;:24;;;;;;;;9757:45;;9878:35;9891:9;9902:10;9878:12;:35::i;:::-;9853:60;;9931:14;9924:21;;9509:444;;;;;;:::o;6939:345::-;6996:15;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7022:4;7014:21;;;6996:39;;7046:4;;;;;;;;;;;:13;;:29;7071:3;7068:2;7060:7;:10;:14;;;;;;;;7046:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7046:29:0;7086:4;;;;;;;;;;;:13;;:29;7111:3;7108:2;7100:7;:10;:14;;;;;;;;7086:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7086:29:0;7126:4;;;;;;;;;;;:13;;:29;7151:3;7148:2;7140:7;:10;:14;;;;;;;;7126:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7126:29:0;7166:4;;;;;;;;;;;:13;;:29;7191:3;7188:2;7180:7;:10;:14;;;;;;;;7166:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7166:29:0;7206:4;;;;;;;;;;;:13;;:29;7231:3;7228:2;7220:7;:10;:14;;;;;;;;7206:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7206:29:0;7259:16;;;;;;;;;;;7246:30;;;1168:74;;;;:::o;914:34::-;947:1;914:34;:::o;955:36::-;;;;:::o;8763:528::-;8831:7;9055:17;9116:18;9176:22;8955:1;8939:12;;:17;8936:348;;;1118:9;1045:15;8979:43;8972:50;;;;8936:348;9075:26;9093:1;9095:5;9075:17;:26::i;:::-;9055:46;;9157:4;9149:7;;9137:9;:19;:24;;;;;;;;9116:45;;9201:35;9214:9;9225:10;9201:12;:35::i;:::-;9176:60;;9258:14;9251:21;;8763:528;;;;;:::o;2490:307::-;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;2626:54;2639:19;:31;2659:10;2639:31;;;;;;;;;;;;;;;;2672:7;2626:12;:54::i;:::-;2592:19;:31;2612:10;2592:31;;;;;;;;;;;;;;;:88;;;;2730:55;2743:19;:32;2763:11;;;;;;;;;;;2743:32;;;;;;;;;;;;;;;;2777:7;2730:12;:55::i;:::-;2695:19;:32;2715:11;;;;;;;;;;;2695:32;;;;;;;;;;;;;;;:90;;;;2490:307;:::o;3815:160::-;3869:10;:19;;:52;3889:19;:31;3909:10;3889:31;;;;;;;;;;;;;;;;3869:52;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3869:52:0;3966:1;3932:19;:31;3952:10;3932:31;;;;;;;;;;;;;;;:35;;;;3815:160::o;7838:137::-;7917:4;7954;7946:21;;;7939:28;;7838:137;:::o;8581:169::-;8673:7;8705:19;:37;8725:16;8705:37;;;;;;;;;;;;;;;;8698:44;;8581:169;;;:::o;1134:27::-;;;;:::o;7300:111::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7401:2;7388:10;:15;7378:7;:25;;;;7300:111;;:::o;1928:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;8119:110::-;8177:7;8209:12;;8202:19;;8119:110;:::o;5216:444::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;5429:12;5422:4;;:19;;;;;;;;;;;;;;;;;;5459:12;5452:4;;:19;;;;;;;;;;;;;;;;;;5489:12;5482:4;;:19;;;;;;;;;;;;;;;;;;5519:12;5512:4;;:19;;;;;;;;;;;;;;;;;;5549:12;5542:4;;:19;;;;;;;;;;;;;;;;;;5591:11;5572:16;;:30;;;;;;;;;;;;;;;;;;5648:4;5613:14;:32;5628:16;;;;;;;;;;;5613:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;5216:444;;;;;;;:::o;2812:329::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;2973:59;2986:19;:37;3006:16;2986:37;;;;;;;;;;;;;;;;3024:7;2973:12;:59::i;:::-;2933:19;:37;2953:16;2933:37;;;;;;;;;;;;;;;:99;;;;3078:55;3091:19;:32;3111:11;;;;;;;;;;;3091:32;;;;;;;;;;;;;;;;3125:7;3078:12;:55::i;:::-;3043:19;:32;3063:11;;;;;;;;;;;3043:32;;;;;;;;;;;;;;;:90;;;;2812:329;;;:::o;9373:120::-;9440:7;9472:13;;9465:20;;9373:120;:::o;5671:146::-;5764:7;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;5796:9;;5789:16;;5671:146;;:::o;8307:182::-;8374:7;8399:24;8426:10;8399:37;;8454:27;8464:16;8454:9;:27::i;:::-;8447:34;;8307:182;;:::o;879:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6342:586::-;6467:4;6507:24;216;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;6534:10;6507:37;;6625:68;6638:19;:37;6658:16;6638:37;;;;;;;;;;;;;;;;6677:15;6625:12;:68::i;:::-;6585:19;:37;6605:16;6585:37;;;;;;;;;;;;;;;:108;;;;6738:62;6751:19;:31;6771:10;6751:31;;;;;;;;;;;;;;;;6784:15;6738:12;:62::i;:::-;6704:19;:31;6724:10;6704:31;;;;;;;;;;;;;;;:96;;;;6843:10;6816:55;;6825:16;6816:55;;;6855:15;6816:55;;;;;;;;;;;;;;;;;;6907:4;6900:11;;6342:586;;;;;;:::o;7547:120::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7652:7;7643:6;:16;;;;;;;;;;;;:::i;:::-;;7547:120;;:::o;3460:344::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;3626:59;3639:19;:37;3659:16;3639:37;;;;;;;;;;;;;;;;3677:7;3626:12;:59::i;:::-;3586:19;:37;3606:16;3586:37;;;;;;;;;;;;;;;:99;;;;3736:60;3749:19;:37;3769:16;;;;;;;;;;;3749:37;;;;;;;;;;;;;;;;3788:7;3736:12;:60::i;:::-;3696:19;:37;3716:16;;;;;;;;;;;3696:37;;;;;;;;;;;;;;;:100;;;;3460:344;;;:::o;7424:112::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7523:5;7516:4;:12;;;;;;;;;;;;:::i;:::-;;7424:112;;:::o;5828:501::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;5942:9;;5931:7;:20;;5928:394;;;6016:3;6013:2;6005:7;:10;:14;;;;;;;;5977:19;:25;5997:4;;;;;;;;;;;5977:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;6074:3;6071:2;6063:7;:10;:14;;;;;;;;6035:19;:25;6055:4;;;;;;;;;;;6035:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;6132:3;6129:2;6121:7;:10;:14;;;;;;;;6093:19;:25;6113:4;;;;;;;;;;;6093:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;6190:3;6187:2;6179:7;:10;:14;;;;;;;;6151:19;:25;6171:4;;;;;;;;;;;6151:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;6248:3;6245:2;6237:7;:10;:14;;;;;;;;6209:19;:25;6229:4;;;;;;;;;;;6209:25;;;;;;;;;;;;;;;;:43;;;;;;;;;;;6279:31;6292:9;;6302:7;6279:12;:31::i;:::-;6267:9;:43;;;;5928:394;5828:501;;:::o;4307:898::-;4427:24;4551:15;4595:17;4657:18;4771:22;147:1;134:10;:8;:10::i;:::-;:14;126:23;;;;;;;;4454:10;4427:37;;4502:19;:37;4522:16;4502:37;;;;;;;;;;;;;;;;4483:15;:56;;4475:65;;;;;;;;4569:15;4551:33;;4615:31;4633:7;4641:4;4615:17;:31::i;:::-;4595:51;;4698:4;4690:7;;4678:9;:19;:24;;;;;;;;4657:45;;4796:35;4809:9;4820:10;4796:12;:35::i;:::-;4771:60;;4855:10;4842:9;;:23;;;;;;;;;;;4933:35;4946:12;;4960:7;4933:12;:35::i;:::-;4918:12;:50;;;;5019:60;5032:19;:37;5052:16;5032:37;;;;;;;;;;;;;;;;5071:7;5019:12;:60::i;:::-;4979:19;:37;4999:16;4979:37;;;;;;;;;;;;;;;:100;;;;5090:16;:25;;:41;5116:14;5090:41;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5090:41:0;5182:4;5147:50;;5156:16;5147:50;;;5189:7;5147:50;;;;;;;;;;;;;;;;;;4307:898;;;;;;:::o;4044:199::-;4092:24;4140:15;4119:10;4092:37;;4158:19;:37;4178:16;4158:37;;;;;;;;;;;;;;;;4140:55;;4219:1;4209:7;:11;4206:29;;;4222:13;4227:7;4222:4;:13::i;:::-;4206:29;4044:199;;:::o;2215:155::-;2299:7;2324:38;2339:9;2350:11;2324:14;:38::i;:::-;;2215:155;;;:::o;3152:297::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;3321:59;3334:19;:37;3354:16;3334:37;;;;;;;;;;;;;;;;3372:7;3321:12;:59::i;:::-;3281:19;:37;3301:16;3281:37;;;;;;;;;;;;;;;:99;;;;3406:35;3420:12;;3433:7;3406:12;:35::i;:::-;3391:12;:50;;;;3152:297;;;:::o;7675:155::-;216:24;243:10;216:37;;272:14;:32;287:16;272:32;;;;;;;;;;;;;;;;;;;;;;;;;264:41;;;;;;;;7805:17;7786:16;;:36;;;;;;;;;;;;;;;;;;7675:155;;:::o;18062:123::-;18120:7;18152:1;18147;:6;;18140:14;;;;;;18176:1;18172;:5;18165:12;;18062:123;;;;:::o;11886:2380::-;12028:7;12053:30;12135:15;12219:20;12265:23;12642:16;13521:27;12120:1;12115:4;:6;12111:1;:11;1118:9;12087:36;12053:71;;12153:55;12169:13;12167:1;:15;12185:22;12153:12;:55::i;:::-;12135:73;;12242:12;;12219:35;;12597:22;12595:1;:24;12325:253;12361:166;12490:9;12467:22;12465:1;:24;:34;12431:1;12422:7;:10;:78;12361:4;:166::i;:::-;12552:7;12325:12;:253::i;:::-;12306:314;;;;;;;;12265:366;;12661:17;12673:4;12661:11;:17::i;:::-;12642:36;;12727:8;12711:12;12693:15;:30;12692:43;:70;;;;;12754:8;12739:12;:23;12692:70;12689:175;;;12829:22;12826:1;12810:15;:17;12809:42;12794:13;:58;12778:74;;12689:175;12912:8;12896:12;12878:15;:30;12877:43;:70;;;;;12939:8;12924:12;:23;12877:70;12874:1236;;;12992:12;12981:8;:23;12963:41;;13031:196;13062:9;13188:22;13167:1;13151:15;:17;13150:60;13134:13;13132:1;:15;13131:80;13109:1;13092:15;13091:19;;;;;;;;13090:122;13031:12;:196::i;:::-;13019:208;;13293:22;13290:1;13274:15;:17;13273:42;13258:13;:58;13242:74;;13345:1;13338:4;:8;13331:15;;13422:1;13417:4;:6;13412:1;13411:13;1118:9;13387:38;13361:65;;13451:55;13467:13;13465:1;:15;13483:22;13451:12;:55::i;:::-;13441:65;;13897:22;13895:1;:24;13593:281;13633:182;13774:9;13751:22;13749:1;:24;:34;13711:1;13702:7;:10;:82;13633:4;:182::i;:::-;13844:7;13593:12;:281::i;:::-;13570:350;;;;;;;;13521:414;;14005:22;14002:1;13982:19;:21;13981:46;13966:13;:62;13950:78;;14079:19;14061:15;:37;14043:55;;12874:1236;14130:4;14123:11;;:3;:11;;;14120:106;;;14176:13;14160;:29;;;;14210:4;14204:3;:10;;;;14120:106;14243:15;14236:22;;11886:2380;;;;;;;;;;;;:::o;18260:147::-;18318:7;18338:9;18354:1;18350;:5;18338:17;;18378:1;18373;:6;;18366:14;;;;;;18398:1;18391:8;;18260:147;;;;;:::o;14767:2164::-;14871:7;14896:20;14942:22;14979:12;15008:16;15057:21;15105:30;15253:20;15314:9;14919:12;;14896:35;;14967:1;14942:26;;14994:3;;14979:18;;15027:19;15044:1;15039:4;:6;15027:11;:19::i;:::-;15008:38;;15081:13;;15057:37;;15174:1;15169:4;:6;15164:1;15163:13;1118:9;15139:38;15105:73;;15219:8;15208:7;15193:12;:22;15192:35;15189:667;;;15291:8;15276:12;:23;15253:46;;15360:22;15357:1;15344:12;:14;15343:39;15326:13;:57;15314:69;;15418:12;15408:7;:22;15398:32;;15522:22;15519:1;15506:12;:14;15505:39;15501:1;15499;:3;15498:47;15494:1;15481:12;:14;;;;;;;;15480:66;15462:14;:85;15445:102;;15610:22;15607:1;15594:12;:14;15593:39;15578:13;:55;15562:71;;15678:12;15663;:27;15648:42;;15717:1;15712:4;:6;15705:13;;15795:1;15790:4;:6;15785:1;15784:13;1118:9;15760:38;15734:65;;15825:19;15842:1;15837:4;:6;15825:11;:19::i;:::-;15814:30;;15189:667;15896:8;15885:7;15870:12;:22;15869:35;15866:596;;;15960:8;15945:12;:23;15930:38;;16003:12;15993:7;:22;15983:32;;16069:22;16066:1;16053:12;:14;16052:39;16035:13;:57;16031:61;;16184:22;16181:1;16168:12;:14;16167:39;16163:1;16161;:3;16160:47;16156:1;16143:12;:14;;;;;;;;16142:66;16124:14;:85;16107:102;;16240:1;16224:17;;16286:12;16271;:27;16256:42;;16325:1;16320:4;:6;16313:13;;16403:1;16398:4;:6;16393:1;16392:13;1118:9;16368:38;16342:65;;16433:17;16445:4;16433:11;:17::i;:::-;16422:28;;15866:596;16485:1;16475:7;:11;16472:303;;;16546:22;16543:1;16535:7;:9;16534:34;16517:13;:52;16513:56;;16652:22;16649:1;16641:7;:9;16640:34;16636:1;16634;:3;16633:42;16629:1;16621:7;:9;;;;;;;;16620:56;16602:14;:75;16585:92;;16723:7;16708:12;:22;16693:37;;16762:1;16746:17;;16472:303;16796:4;16788:12;;:4;:12;;;16785:107;;;16832:4;16826:3;:10;;;;16867:13;16851;:29;;;;16785:107;16909:14;16902:21;;14767:2164;;;;;;;;;;;;:::o;16947:198::-;16992:6;17011;17030:1;17025;17021;:5;17020:11;;;;;;;;17011:20;;17046:1;17042:5;;17058:80;17069:1;17065;:5;17058:80;;;17091:1;17087:5;;17125:1;17120;17116;17112;:5;;;;;;;;:9;17111:15;;;;;;;;17107:19;;17058:80;;;16947:198;;;;:::o;14277:478::-;14349:7;14385:1;14377:4;:9;;14374:71;;;14428:4;14420:5;:12;14412:21;;;;14374:71;14465:1;14458:4;:8;:22;;;;;14478:2;14470:4;:10;;14458:22;14455:84;;;14522:4;14514:5;:12;14506:21;;;;14455:84;14559:2;14552:4;:9;:23;;;;;14573:2;14565:4;:10;;14552:23;14549:85;;;14617:4;14609:5;:12;14601:21;;;;14549:85;14654:2;14647:4;:9;:23;;;;;14668:2;14660:4;:10;;14647:23;14644:85;;;14712:4;14704:5;:12;14696:21;;;;14644:85;14746:1;14739:8;;14277:478;;;;:::o;28:17120::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://9c71f6db194af11f577324a331e429d1e997ece98829f7b1b1f7ca73cb4ca28b
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.