ETH Price: $3,391.20 (-1.22%)

Contract

0x792E6C37AE5CED8202794Af26671531195418616
 
Transaction Hash
Method
Block
From
To
Exit166942802023-02-23 23:12:47642 days ago1677193967IN
0x792E6C37...195418616
0 ETH0.0025467133.16818376
Transfer95669222020-02-27 17:07:411734 days ago1582823261IN
0x792E6C37...195418616
0 ETH0.0004419621
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.0002422410
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.0002422410
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000193798
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000193798
Withdraw87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000208719
Withdraw87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000231910
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000193798
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000096894
Withdraw87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000092764
Withdraw87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000679488.25
Sell87604612019-10-17 19:45:301867 days ago1571341530IN
0x792E6C37...195418616
0 ETH0.000083713.456
Withdraw84715672019-09-02 15:36:421912 days ago1567438602IN
0x792E6C37...195418616
0 ETH0.000247616
Transfer84358272019-08-28 1:58:001918 days ago1566957480IN
0x792E6C37...195418616
0 ETH0.00012535.1
Transfer84357992019-08-28 1:50:471918 days ago1566957047IN
0x792E6C37...195418616
0 ETH0.000245710
Withdraw83928302019-08-21 9:19:061924 days ago1566379146IN
0x792E6C37...195418616
0 ETH0.0006787912.96
Sell83928302019-08-21 9:19:061924 days ago1566379146IN
0x792E6C37...195418616
0 ETH0.0003110712.8078125
Sell83928302019-08-21 9:19:061924 days ago1566379146IN
0x792E6C37...195418616
0 ETH0.00019438
Sell83928112019-08-21 9:14:191924 days ago1566378859IN
0x792E6C37...195418616
0 ETH0.000358538
Withdraw83927112019-08-21 8:49:431924 days ago1566377383IN
0x792E6C37...195418616
0 ETH0.0005237610
Sell83927112019-08-21 8:49:431924 days ago1566377383IN
0x792E6C37...195418616
0 ETH0.0004481710
Withdraw83926852019-08-21 8:44:391924 days ago1566377079IN
0x792E6C37...195418616
0 ETH0.0008085112
Sell83926842019-08-21 8:44:311924 days ago1566377071IN
0x792E6C37...195418616
0 ETH0.000537812
Withdraw83926812019-08-21 8:43:311924 days ago1566377011IN
0x792E6C37...195418616
0 ETH0.0006604212.609375
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
166942802023-02-23 23:12:47642 days ago1677193967
0x792E6C37...195418616
0 ETH
87604612019-10-17 19:45:301867 days ago1571341530
0x792E6C37...195418616
0 ETH
84715672019-09-02 15:36:421912 days ago1567438602
0x792E6C37...195418616
0.86610572 ETH
83928302019-08-21 9:19:061924 days ago1566379146
0x792E6C37...195418616
0.27042705 ETH
83927112019-08-21 8:49:431924 days ago1566377383
0x792E6C37...195418616
0.12050488 ETH
83926852019-08-21 8:44:391924 days ago1566377079
0x792E6C37...195418616
0.18809865 ETH
83926812019-08-21 8:43:311924 days ago1566377011
0x792E6C37...195418616
0.15032961 ETH
83926702019-08-21 8:40:491924 days ago1566376849
0x792E6C37...195418616
0.47383109 ETH
83886702019-08-20 17:53:191925 days ago1566323599
0x792E6C37...195418616
2.1222355 ETH
76109192019-04-21 12:19:392046 days ago1555849179
0x792E6C37...195418616
18.00754278 ETH
74378762019-03-25 12:34:542073 days ago1553517294
0x792E6C37...195418616
5.93340401 ETH
72986182019-03-03 20:09:472095 days ago1551643787
0x792E6C37...195418616
0.00005112 ETH
72797752019-02-28 18:35:072098 days ago1551378907
0x792E6C37...195418616
0.27015445 ETH
72700182019-02-26 11:53:452100 days ago1551182025
0x792E6C37...195418616
1.73568671 ETH
72699842019-02-26 11:44:312100 days ago1551181471
0x792E6C37...195418616
0.82059006 ETH
72699672019-02-26 11:39:432100 days ago1551181183
0x792E6C37...195418616
11.89455658 ETH
72549172019-02-22 23:06:302104 days ago1550876790
0x792E6C37...195418616
0.0039989 ETH
72548892019-02-22 22:57:192104 days ago1550876239
0x792E6C37...195418616
0.03212881 ETH
72548672019-02-22 22:50:492104 days ago1550875849
0x792E6C37...195418616
0.00321373 ETH
72547962019-02-22 22:28:262104 days ago1550874506
0x792E6C37...195418616
0.0000179 ETH
72547272019-02-22 22:03:022104 days ago1550872982
0x792E6C37...195418616
0.00002888 ETH
72546102019-02-22 21:23:222104 days ago1550870602
0x792E6C37...195418616
0.00000294 ETH
72538702019-02-22 17:11:042104 days ago1550855464
0x792E6C37...195418616
0.00346437 ETH
72527352019-02-22 10:38:152104 days ago1550831895
0x792E6C37...195418616
16.38550277 ETH
72527162019-02-22 10:34:502104 days ago1550831690
0x792E6C37...195418616
11.58841887 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ECT

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-11-17
*/

pragma solidity ^0.4.25;

/*
* https://ectoken.io
*
* Ethereum Captial Token concept
*
* [✓] 6% Withdraw fee (3% to dividends, 3% to owner). First 6 days 30%, next 24 days it will decrease to 6%
* [✓] 12% Deposit fee
* [✓] 1% Token transfer
* [✓] 5 lines referral system with 5 levels of rewards
*
*/

contract ECT {

    /**
     * Only with tokens
     */
    modifier onlyBagholders {
        require(myTokens() > 0);
        _;
    }

    /**
     * Only with dividends
     */
    modifier onlyStronghands {
        require(myDividends(true) > 0);
        _;
    }

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        uint timestamp,
        uint256 price
    );

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

    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested
    );

    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );

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

    string public name = "Ethereum Capital Token";
    string public symbol = "ECT";
    uint public createdAt;
    
    bool public started = false;
    modifier onlyStarted {
        require(started);
        _;
    }
    modifier onlyNotStarted {
        require(!started);
        _;
    }

    uint8 constant public decimals = 18;

    /**
     * fees
     */
    uint8 constant internal entryFee_ = 12;
    uint8 constant internal ownerFee_ = 4;
    uint8 constant internal transferFee_ = 1;
    uint8 constant internal exitFeeD0_ = 30;
    uint8 constant internal exitFee_ = 6;
    uint8 constant internal refferalFee_ = 33;

    address internal _ownerAddress;

    /**
     * Initial token values
     */
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;

    uint256 constant internal magnitude = 2 ** 64;


    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal summaryReferralProfit_;
    mapping(address => uint256) internal dividendsUsed_;

    uint256 internal tokenSupply_;
    uint256 internal profitPerShare_;
    
    uint public blockCreation;
    
    /**
     * Admins. Only rename tokens, change referral settings and add new admins
     */
    mapping(bytes32 => bool) public administrators;
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]);
        _;
    }

    function isAdmin() public view returns (bool) {
        return administrators[keccak256(msg.sender)];
    }

    function setAdministrator(address _id, bool _status)
        onlyAdministrator()
        public
    {
        if (_id != _ownerAddress) {
            administrators[keccak256(_id)] = _status;
        }
    } 

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

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

    constructor() public {
        _ownerAddress = msg.sender;
        administrators[keccak256(_ownerAddress)] = true;
        blockCreation = block.number;
    }
    
    function start() onlyNotStarted() onlyAdministrator() public {
        started = true;
        createdAt = block.timestamp;
    }
    
    function getLifetime() public view returns (uint8) {
        if (!started)
        {
            return 0;
        }
        return (uint8) ((now - createdAt) / 60 / 60 / 24);
    }
    
    function getExitFee() public view returns (uint8) {
        uint lifetime = getLifetime(); // Получение времени жизни контракта
        if (lifetime <= 6) { 
            return exitFeeD0_; // 30%
        } else if (lifetime < 30) {
            return (uint8) (exitFeeD0_ - lifetime + 6);
        } else {
            return exitFee_; // 6%
        }
    }

    function buy(address _r1, address _r2, address _r3, address _r4, address _r5) onlyStarted() public payable returns (uint256) {
        purchaseTokens(msg.value, _r1, _r2, _r3, _r4, _r5);
    }

    function reinvest() onlyStronghands public {
        uint256 _dividends = myDividends(false);
        address _customerAddress = msg.sender;
        dividendsUsed_[_customerAddress] += _dividends;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        purchaseTokens(_dividends, 0x0, 0x0, 0x0, 0x0, 0x0);
        emit onReinvestment(_customerAddress, _dividends);
    }

    function exit() public {
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if (_tokens > 0) sell(_tokens);
        withdraw();
    }

    function withdraw() onlyStronghands public {
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false);
        dividendsUsed_[_customerAddress] += _dividends;
        payoutsTo_[_customerAddress] += (int256) (_dividends * magnitude);
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        uint256 _fee = SafeMath.div(SafeMath.mul(_dividends, getExitFee() - 3), 100);
        
        uint256 _ownerFee = SafeMath.div(SafeMath.mul(_dividends, 3), 100);
        
        uint256 _dividendsTaxed = SafeMath.sub(_dividends, _fee + _ownerFee);
        
        if (_customerAddress != _ownerAddress) {
            referralBalance_[_ownerAddress] += _ownerFee;
            summaryReferralProfit_[_ownerAddress] += _ownerFee;
        } else {
            _dividendsTaxed += _ownerFee;
        }
        
        profitPerShare_ = SafeMath.add(profitPerShare_, (_fee * magnitude) / tokenSupply_);
    
        _customerAddress.transfer(_dividendsTaxed);
        emit onWithdraw(_customerAddress, _dividends);
    }

    function sell(uint256 _amountOfTokens) onlyBagholders public {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);

        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_ethereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;

        emit onTokenSell(_customerAddress, _tokens, _ethereum, now, buyPrice());
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) onlyBagholders public returns (bool) {
        address _customerAddress = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        if (myDividends(true) > 0) {
            withdraw();
        }

        uint256 _tokenFee = SafeMath.div(SafeMath.mul(_amountOfTokens, transferFee_), 100);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);

        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }


    function totalEthereumBalance() public view returns (uint256) {
        return address(this).balance;
    }

    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 dividendsFull(address _customerAddress) public view returns (uint256) {
        return dividendsOf(_customerAddress) + dividendsUsed_[_customerAddress] + summaryReferralProfit_[_customerAddress];
    }

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

    function buyPrice() public view returns (uint256) {
        if (tokenSupply_ == 0) {
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, entryFee_), 100);
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);

            return _taxedEthereum;
        }
    }

    function calculateTokensReceived(uint256 _incomingEthereum) public view returns (uint256) {
        uint256 _dividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);

        return _amountOfTokens;
    }

    function calculateEthereumReceived(uint256 _tokensToSell) public view returns (uint256) {
        require(_tokensToSell <= tokenSupply_);
        return tokensToEthereum_(_tokensToSell);
    }
    
    uint256 public I_S = 0.25 ether;
    uint256 public I_R1 = 30;

    function setI_S(uint256 _v)
        onlyAdministrator()
        public
    {
        I_S = _v;
    }

    function setI_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        I_R1 = _v;
    }

    
    uint256 public II_S = 5 ether;
    uint256 public II_R1 = 30;
    uint256 public II_R2 = 10;

    function setII_S(uint256 _v)
        onlyAdministrator()
        public
    {
        II_S = _v;
    }

    function setII_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        II_R1 = _v;
    }

    function setII_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        II_R2 = _v;
    }
    
    uint256 public III_S = 10 ether;
    uint256 public III_R1 = 30;
    uint256 public III_R2 = 10;
    uint256 public III_R3 = 10;

    function setIII_S(uint256 _v)
        onlyAdministrator()
        public
    {
        III_S = _v;
    }

    function setIII_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R1 = _v;
    }

    function setIII_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R2 = _v;
    }

    function setIII_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        III_R3 = _v;
    }
    
    uint256 public IV_S = 20 ether;
    uint256 public IV_R1 = 30;
    uint256 public IV_R2 = 20;
    uint256 public IV_R3 = 10;
    uint256 public IV_R4 = 10;

    function setIV_S(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_S = _v;
    }

    function setIV_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R1 = _v;
    }

    function setIV_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R2 = _v;
    }

    function setIV_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R3 = _v;
    }

    function setIV_R4(uint256 _v)
        onlyAdministrator()
        public
    {
        IV_R4 = _v;
    }
    
    uint256 public V_S = 100 ether;
    uint256 public V_R1 = 40;
    uint256 public V_R2 = 20;
    uint256 public V_R3 = 10;
    uint256 public V_R4 = 10;
    uint256 public V_R5 = 10;

    function setV_S(uint256 _v)
        onlyAdministrator()
        public
    {
        V_S = _v;
    }

    function setV_R1(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R1 = _v;
    }

    function setV_R2(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R2 = _v;
    }

    function setV_R3(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R3 = _v;
    }

    function setV_R4(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R4 = _v;
    }

    function setV_R5(uint256 _v)
        onlyAdministrator()
        public
    {
        V_R5 = _v;
    }
    
    function canRef(address _r, address _c, uint256 _m) internal returns (bool) {
        return _r != 0x0000000000000000000000000000000000000000 && _r != _c && tokenBalanceLedger_[_r] >= _m;
    }
    
    function etherBalance(address r) internal returns (uint256) {
        uint _v = tokenBalanceLedger_[r];
        if (_v < 0.00000001 ether) {
            return 0;
        } else {
            return tokensToEthereum_(_v);
        }
    }
    
    function getLevel(address _cb) public view returns (uint256) {
        uint256 _b = etherBalance(_cb);
        uint256 _o = 0;
        
        if (_b >= V_S) {
            _o = 5;
        } else if (_b >= IV_S) {
            _o = 4;
        } else if (_b >= III_S) {
            _o = 3;
        } else if (_b >= II_S) {
            _o = 2;
        } else if (_b >= I_S) {
            _o = 1;
        }
        
        return _o;
    }

    function purchaseTokens(uint256 _incomingEthereum, address _r1, address _r2, address _r3, address _r4, address _r5) internal {
        uint256 _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum, entryFee_), 100);
        uint256 _dividends = _undividedDividends;

        uint256 __bC = 0;
        uint256 _b = 0;
        
        if (canRef(_r1, msg.sender, I_S)) {
            __bC = I_R1;

            if (etherBalance(_r1) >= V_S) {
                __bC = V_R1;
            } else if (etherBalance(_r1) >= IV_S) {
                __bC = IV_R1;
            } else if (etherBalance(_r1) >= III_S) {
                __bC = III_R1;
            } else if (etherBalance(_r1) >= II_S) {
                __bC = II_R1;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r1] = SafeMath.add(referralBalance_[_r1], _b);
            addReferralProfit(_r1, msg.sender, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r2, msg.sender, II_S)) {
            __bC = II_R2;

            if (etherBalance(_r2) >= V_S) {
                __bC = V_R2;
            } else if (etherBalance(_r2) >= IV_S) {
                __bC = IV_R2;
            } else if (etherBalance(_r2) >= III_S) {
                __bC = III_R2;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r2] = SafeMath.add(referralBalance_[_r2], _b);
            addReferralProfit(_r2, _r1, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r3, msg.sender, III_S)) {
            __bC = III_R3;

            if (etherBalance(_r3) >= V_S) {
                __bC = V_R3;
            } else if (etherBalance(_r3) >= IV_S) {
                __bC = IV_R3;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r3] = SafeMath.add(referralBalance_[_r3], _b);
            addReferralProfit(_r3, _r2, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r4, msg.sender, IV_S)) {
            __bC = IV_R4;

            if (etherBalance(_r4) >= V_S) {
                __bC = V_R4;
            }
            
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, __bC), 1000);
            referralBalance_[_r4] = SafeMath.add(referralBalance_[_r4], _b);
            addReferralProfit(_r4, _r3, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }
        
        if (canRef(_r5, msg.sender, V_S)) {
            _b = SafeMath.div(SafeMath.mul(_incomingEthereum, V_R5), 1000);
            referralBalance_[_r5] = SafeMath.add(referralBalance_[_r5], _b);
            addReferralProfit(_r5, _r4, _b);
            _dividends = SafeMath.sub(_dividends, _b);
        }

        uint256 _amountOfTokens = ethereumToTokens_(SafeMath.sub(_incomingEthereum, _undividedDividends));
        uint256 _fee = _dividends * magnitude;

        require(_amountOfTokens > 0 && SafeMath.add(_amountOfTokens, tokenSupply_) > tokenSupply_);

        if (tokenSupply_ > 0) {
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
            profitPerShare_ += (_dividends * magnitude / tokenSupply_);
            _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / tokenSupply_)));
        } else {
            tokenSupply_ = _amountOfTokens;
        }

        tokenBalanceLedger_[msg.sender] = SafeMath.add(tokenBalanceLedger_[msg.sender], _amountOfTokens);
        payoutsTo_[msg.sender] += (int256) (profitPerShare_ * _amountOfTokens - _fee);
        emit onTokenPurchase(msg.sender, _incomingEthereum, _amountOfTokens, now, buyPrice());
    }

    function ethereumToTokens_(uint256 _ethereum) internal view returns (uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived =
            (
                (
                    SafeMath.sub(
                        (sqrt
                            (
                                (_tokenPriceInitial ** 2)
                                +
                                (2 * (tokenPriceIncremental_ * 1e18) * (_ethereum * 1e18))
                                +
                                ((tokenPriceIncremental_ ** 2) * (tokenSupply_ ** 2))
                                +
                                (2 * tokenPriceIncremental_ * _tokenPriceInitial*tokenSupply_)
                            )
                        ), _tokenPriceInitial
                    )
                ) / (tokenPriceIncremental_)
            ) - (tokenSupply_);

        return _tokensReceived;
    }

    function sellPriceAt(uint256 _atSupply) public view returns (uint256) {
        if (_atSupply == 0) {
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereumAtSupply_(1e18, _atSupply);
            uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, exitFee_), 100);
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
 
            return _taxedEthereum;
        }
    }
   
    function tokensToEthereum_(uint256 _tokens) internal view returns (uint256) {
        return tokensToEthereumAtSupply_(_tokens, tokenSupply_);
    }
 
    function tokensToEthereumAtSupply_(uint256 _tokens, uint256 _atSupply) public view returns (uint256) {
        if (_tokens < 0.00000001 ether) {
            return 0;
        }
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (_atSupply + 1e18);
        uint256 _etherReceived =
            (
                SafeMath.sub(
                    (
                        (
                            (
                                tokenPriceInitial_ + (tokenPriceIncremental_ * (_tokenSupply / 1e18))
                            ) - tokenPriceIncremental_
                        ) * (tokens_ - 1e18)
                    ), (tokenPriceIncremental_ * ((tokens_ ** 2 - tokens_) / 1e18)) / 2
                )
                / 1e18);
 
        return _etherReceived;
    }

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = (x + 1) / 2;
        y = x;

        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
    
    mapping(address => mapping(address => uint256)) internal referralProfit_;
    
    function addReferralProfit(address _referredBy, address _referral, uint256 _profit) internal {
        referralProfit_[_referredBy][_referral] += _profit;
        summaryReferralProfit_[_referredBy] += _profit;
    }
    
    function getReferralProfit(address _referredBy, address _referral) public view returns (uint256) {
        return referralProfit_[_referredBy][_referral];
    }
    
    function getSummaryReferralProfit(address _referredBy) public view returns (uint256) {
        if (_ownerAddress == _referredBy) {
            return 0;
        } else {
            return summaryReferralProfit_[_referredBy];
        }
    }

}

library SafeMath {
    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;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    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) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

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":"_tokens","type":"uint256"},{"name":"_atSupply","type":"uint256"}],"name":"tokensToEthereumAtSupply_","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":"IV_R4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_referredBy","type":"address"}],"name":"getSummaryReferralProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_incomingEthereum","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setII_S","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IV_R3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_R3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"started","outputs":[{"name":"","type":"bool"}],"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":"_v","type":"uint256"}],"name":"setIV_R1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"III_R1","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":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIII_R3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"IV_R2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"V_R3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"III_R2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IV_S","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIV_R2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIV_S","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"V_R2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setII_R2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"V_R5","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"I_S","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIII_S","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"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":"_referredBy","type":"address"},{"name":"_referral","type":"address"}],"name":"getReferralProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"II_R2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"V_R4","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"V_S","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIII_R2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_R1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cb","type":"address"}],"name":"getLevel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLifetime","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"address"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"blockCreation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setI_R1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"IV_R1","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":"_customerAddress","type":"address"}],"name":"dividendsFull","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"I_R1","outputs":[{"name":"","type":"uint256"}],"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":true,"inputs":[],"name":"II_R1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_R2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"III_S","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_atSupply","type":"uint256"}],"name":"sellPriceAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIV_R4","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"createdAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setI_S","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"V_R1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_S","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_r1","type":"address"},{"name":"_r2","type":"address"},{"name":"_r3","type":"address"},{"name":"_r4","type":"address"},{"name":"_r5","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_R4","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setIII_R1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setII_R1","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":"_v","type":"uint256"}],"name":"setIV_R3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"II_S","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExitFee","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"III_R3","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_v","type":"uint256"}],"name":"setV_R5","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"}],"name":"onReinvestment","type":"event"},{"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"}]

60c0604052601660808190527f457468657265756d204361706974616c20546f6b656e0000000000000000000060a090815262000040916000919062000198565b506040805180820190915260038082527f45435400000000000000000000000000000000000000000000000000000000006020909201918252620000879160019162000198565b506003805460ff191690556703782dace9d90000600d55601e600e819055674563918244f40000600f556010819055600a6011819055678ac7230489e800006012556013829055601481815560158290556801158e460913d00000601655601783905560188190556019829055601a82905568056bc75e2d63100000601b556028601c55601d5590819055601f8190556020553480156200012757600080fd5b506003805461010033810261010060a860020a03199092169190911791829055604080516c0100000000000000000000000092909304600160a060020a03169190910282528051918290036014019091206000908152600c60205220805460ff1916600117905543600b556200023d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001db57805160ff19168380011785556200020b565b828001600101855582156200020b579182015b828111156200020b578251825591602001919060010190620001ee565b50620002199291506200021d565b5090565b6200023a91905b8082111562000219576000815560010162000224565b90565b612512806200024d6000396000f3006080604052600436106103785763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461037d57806304729a8d146103b057806306fdde03146103cb57806308ff90e0146104555780630ebb0d301461046a57806310d0ffdd1461048b578063117a4425146104a357806318160ddd146104bd578063181f4180146104d25780631ddd303d146104e75780631f2698ab146104ff578063226093731461052857806322dc8e7114610540578063289fa84414610558578063313ce5671461056d578063327683bb1461059857806334fa2d43146105b057806336684752146105c5578063392efb52146105da5780633a7d773b146105f25780633c4ae1ee146106075780633ccfd60b1461061c5780634a208c38146106315780634b75033414610649578063527ba1e11461065e5780635b6a7ec814610676578063614a31bf1461068b57806361677d4d146106a357806363f82d61146106b85780636537e401146106cd578063688abbf7146106e55780636b2f4632146106ff57806370a082311461071457806372cee8ea146107355780637367352d1461075c578063759de3981461077157806378c7db00146107865780637a1c39cb1461079b5780637c6b2d6a146107b3578063817c8966146107cb57806381e6e083146107ec5780638620410b1461080157806387c95058146108165780638b349c351461083c5780638f16eb1a1461085157806392162de714610869578063949e8acd1461087e57806395d89b41146108935780639d6d2321146108a8578063a6b57b6d146108c9578063a9059cbb146108de578063afa2a83f14610902578063b263c00c14610917578063b530700d1461092f578063b6db75a014610944578063b84c824614610959578063be9a6555146109b2578063c47f0027146109c7578063c549e4e914610a20578063c646162514610a38578063cf09e0d014610a50578063d0a05fea14610a65578063d3ee99cf14610a7d578063d46d0a2214610a92578063dbbb206f14610aaa578063dca27d5e14610ad6578063ddf1be5f14610aee578063e3489a4f14610b06578063e4849b3214610b1e578063e70f5d9514610b36578063e9fad8ee14610b4e578063ec01438e14610b63578063ecb0116a14610b78578063f3b3982514610b8d578063f6f3664114610ba2578063fdb5a03e14610bba575b600080fd5b34801561038957600080fd5b5061039e600160a060020a0360043516610bcf565b60408051918252519081900360200190f35b3480156103bc57600080fd5b5061039e600435602435610c0d565b3480156103d757600080fd5b506103e0610c96565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561041a578181015183820152602001610402565b50505050905090810190601f1680156104475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046157600080fd5b5061039e610d24565b34801561047657600080fd5b5061039e600160a060020a0360043516610d2a565b34801561049757600080fd5b5061039e600435610d6f565b3480156104af57600080fd5b506104bb600435610dae565b005b3480156104c957600080fd5b5061039e610dec565b3480156104de57600080fd5b5061039e610df3565b3480156104f357600080fd5b506104bb600435610df9565b34801561050b57600080fd5b50610514610e37565b604080519115158252519081900360200190f35b34801561053457600080fd5b5061039e600435610e40565b34801561054c57600080fd5b506104bb600435610e61565b34801561056457600080fd5b5061039e610e9f565b34801561057957600080fd5b50610582610ea5565b6040805160ff9092168252519081900360200190f35b3480156105a457600080fd5b506104bb600435610eaa565b3480156105bc57600080fd5b5061039e610ee8565b3480156105d157600080fd5b5061039e610eee565b3480156105e657600080fd5b50610514600435610ef4565b3480156105fe57600080fd5b5061039e610f09565b34801561061357600080fd5b5061039e610f0f565b34801561062857600080fd5b506104bb610f15565b34801561063d57600080fd5b506104bb6004356110cb565b34801561065557600080fd5b5061039e611109565b34801561066a57600080fd5b506104bb60043561111b565b34801561068257600080fd5b5061039e611159565b34801561069757600080fd5b506104bb60043561115f565b3480156106af57600080fd5b5061039e61119d565b3480156106c457600080fd5b5061039e6111a3565b3480156106d957600080fd5b506104bb6004356111a9565b3480156106f157600080fd5b5061039e60043515156111e7565b34801561070b57600080fd5b5061039e61122a565b34801561072057600080fd5b5061039e600160a060020a036004351661122f565b34801561074157600080fd5b5061039e600160a060020a036004358116906024351661124a565b34801561076857600080fd5b5061039e611275565b34801561077d57600080fd5b5061039e61127b565b34801561079257600080fd5b5061039e611281565b3480156107a757600080fd5b506104bb600435611287565b3480156107bf57600080fd5b506104bb6004356112c5565b3480156107d757600080fd5b5061039e600160a060020a0360043516611303565b3480156107f857600080fd5b50610582611370565b34801561080d57600080fd5b5061039e6113b4565b34801561082257600080fd5b506104bb600160a060020a0360043516602435151561140b565b34801561084857600080fd5b5061039e61149d565b34801561085d57600080fd5b506104bb6004356114a3565b34801561087557600080fd5b5061039e6114e1565b34801561088a57600080fd5b5061039e6114e7565b34801561089f57600080fd5b506103e06114fa565b3480156108b457600080fd5b5061039e600160a060020a0360043516611554565b3480156108d557600080fd5b5061039e611589565b3480156108ea57600080fd5b50610514600160a060020a036004351660243561158f565b34801561090e57600080fd5b5061039e61172c565b34801561092357600080fd5b506104bb600435611732565b34801561093b57600080fd5b5061039e611770565b34801561095057600080fd5b50610514611776565b34801561096557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104bb9436949293602493928401919081908401838280828437509497506117a09650505050505050565b3480156109be57600080fd5b506104bb6117eb565b3480156109d357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104bb9436949293602493928401919081908401838280828437509497506118479650505050505050565b348015610a2c57600080fd5b5061039e600435611892565b348015610a4457600080fd5b506104bb6004356118e3565b348015610a5c57600080fd5b5061039e611921565b348015610a7157600080fd5b506104bb600435611927565b348015610a8957600080fd5b5061039e611965565b348015610a9e57600080fd5b506104bb60043561196b565b61039e600160a060020a03600435811690602435811690604435811690606435811690608435166119a9565b348015610ae257600080fd5b506104bb6004356119d4565b348015610afa57600080fd5b506104bb600435611a12565b348015610b1257600080fd5b506104bb600435611a50565b348015610b2a57600080fd5b506104bb600435611a8e565b348015610b4257600080fd5b506104bb600435611ba4565b348015610b5a57600080fd5b506104bb611be2565b348015610b6f57600080fd5b5061039e611c0f565b348015610b8457600080fd5b50610582611c15565b348015610b9957600080fd5b5061039e611c57565b348015610bae57600080fd5b506104bb600435611c5d565b348015610bc657600080fd5b506104bb611c9b565b600160a060020a0381166000908152600660209081526040808320546004909252822054600a5468010000000000000000929102030490505b919050565b6000806000806402540be400861015610c295760009350610c8d565b670de0b6b3a764000086810193508581019250610c7d6414f46b04008285046402540be40002018802600283670de0b6b3a763ffff1982890a8c900301046402540be40002811515610c7757fe5b04611d54565b811515610c8657fe5b0490508093505b50505092915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b505050505081565b601a5481565b600354600090600160a060020a03838116610100909204161415610d5057506000610c08565b50600160a060020a038116600090815260076020526040902054610c08565b6000808080610d89610d8286600c611d66565b6064611d9c565b9250610d958584611d54565b9150610da082611db3565b90508093505b505050919050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610de657600080fd5b50600f55565b6009545b90565b60195481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610e3157600080fd5b50601e55565b60035460ff1681565b600954600090821115610e5257600080fd5b610e5b82611e4b565b92915050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610e9957600080fd5b50601755565b60135481565b601281565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610ee257600080fd5b50601555565b60185481565b601e5481565b600c6020526000908152604090205460ff1681565b60145481565b60165481565b600080600080600080610f2860016111e7565b11610f3257600080fd5b339450610f3f60006111e7565b600160a060020a0386166000908152600860209081526040808320805485019055600682528083208054680100000000000000008602019055600590915281208054919055019350610fa1610d82856003610f98611c15565b0360ff16611d66565b9250610fb1610d82856003611d66565b9150610fbf84838501611d54565b600354909150600160a060020a0386811661010090920416146110245760038054600160a060020a0361010091829004811660009081526005602090815260408083208054890190559454939093049091168152600790915220805483019055611027565b81015b61104b600a5460095468010000000000000000860281151561104557fe5b04611e59565b600a55604051600160a060020a0386169082156108fc029083906000818181858888f19350505050158015611084573d6000803e3d6000fd5b50604080518581529051600160a060020a038716917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561110357600080fd5b50601855565b6000611116600954611892565b905090565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561115357600080fd5b50601655565b601d5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561119757600080fd5b50601155565b60205481565b600d5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156111e157600080fd5b50601255565b600033826111fd576111f881610bcf565b611221565b600160a060020a03811660009081526005602052604090205461121f82610bcf565b015b91505b50919050565b303190565b600160a060020a031660009081526004602052604090205490565b600160a060020a03918216600090815260216020908152604080832093909416825291909152205490565b60115481565b601f5481565b601b5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156112bf57600080fd5b50601455565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156112fd57600080fd5b50601c55565b600080600061131184611e68565b601b5490925060009150821061132957506005611369565b601654821061133a57506004611369565b601254821061134b57506003611369565b600f54821061135c57506002611369565b600d548210611369575060015b9392505050565b60035460009060ff16151561138757506000610df0565b6018603c80600254420381151561139a57fe5b048115156113a457fe5b048115156113ae57fe5b04905090565b600080600080600954600014156113d25764199c82cc009350611405565b6113e3670de0b6b3a7640000611e4b565b92506113f3610d8284600c611d66565b91506113ff8383611e59565b90508093505b50505090565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561144357600080fd5b600354600160a060020a0384811661010090920416146114985760408051606060020a600160a060020a03861602815281519081900360140190206000908152600c60205220805483151560ff199091161790555b505050565b600b5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156114db57600080fd5b50600e55565b60175481565b6000336114f38161122f565b91505b5090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b600160a060020a038116600090815260076020908152604080832054600890925282205461158184610bcf565b010192915050565b600e5481565b6000806000806000806115a06114e7565b116115aa57600080fd5b336000818152600460205260409020549094508611156115c957600080fd5b60006115d560016111e7565b11156115e3576115e3610f15565b6115f1610d82876001611d66565b92506115fd8684611d54565b915061160883611e4b565b905061161660095484611d54565b600955600160a060020a03841660009081526004602052604090205461163c9087611d54565b600160a060020a03808616600090815260046020526040808220939093559089168152205461166b9083611e59565b600160a060020a03888116600081815260046020908152604080832095909555600a8054948a16835260069091528482208054948c029094039093558254918152929092208054928502909201909155546009546116d9919068010000000000000000840281151561104557fe5b600a55604080518381529051600160a060020a03808a1692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b60105481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561176a57600080fd5b50601d55565b60125481565b60408051606060020a3302815281519081900360140190206000908152600c602052205460ff1690565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156117d857600080fd5b8151611498906001906020850190612458565b60035460ff16156117fb57600080fd5b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561183357600080fd5b506003805460ff1916600117905542600255565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561187f57600080fd5b8151611498906000906020850190612458565b60008080808415156118ab576414f46b04009350610da6565b6118bd670de0b6b3a764000086610c0d565b92506118cd610d82846006611d66565b91506118d98383611d54565b9050809350610da6565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561191b57600080fd5b50601a55565b60025481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561195f57600080fd5b50600d55565b601c5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156119a357600080fd5b50601b55565b60035460009060ff1615156119bd57600080fd5b6119cb348787878787611ea7565b95945050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a0c57600080fd5b50601f55565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a4a57600080fd5b50601355565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a8857600080fd5b50601055565b6000806000806000611a9e6114e7565b11611aa857600080fd5b33600081815260046020526040902054909450851115611ac757600080fd5b849250611ad383611e4b565b9150611ae160095484611d54565b600955600160a060020a038416600090815260046020526040902054611b079084611d54565b600160a060020a038516600081815260046020908152604080832094909455600a5460069091529290208054928602680100000000000000008602019283900390559091507f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e848442611b786113b4565b604080519485526020850193909352838301919091526060830152519081900360800190a25050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611bdc57600080fd5b50601955565b3360008181526004602052604081205490811115611c0357611c0381611a8e565b611c0b610f15565b5050565b600f5481565b600080611c20611370565b60ff16905060068111611c3657601e91506114f6565b601e811015611c4e576006601e8290030191506114f6565b600691506114f6565b60155481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611c9557600080fd5b50602055565b6000806000611caa60016111e7565b11611cb457600080fd5b611cbe60006111e7565b3360008181526008602090815260408083208054860190556006825280832080546801000000000000000087020190556005909152812080549082905590920193509150611d1190839080808080611ea7565b604080518381529051600160a060020a038316917f5d511c2070e5a2dbcc6fbfbb3fd6704a11ab5fa74b793b81aacece2c7cc29405919081900360200190a25050565b600082821115611d6057fe5b50900390565b600080831515611d795760009150611d95565b50828202828482811515611d8957fe5b0414611d9157fe5b8091505b5092915050565b6000808284811515611daa57fe5b04949350505050565b6009546000906c01431e0fae6d7217caa00000009082906402540be400611e38611e32730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001612389565b85611d54565b811515611e4157fe5b0403949350505050565b6000610e5b82600954610c0d565b600082820183811015611d9157fe5b600160a060020a0381166000908152600460205260408120546402540be400811015611e975760009150611224565b611ea081611e4b565b9150611224565b60008080808080611ebc610d828d600c611d66565b95508594506000935060009250611ed68b33600d546123be565b15611fb457600e549350601b54611eec8c611e68565b10611efb57601c549350611f48565b601654611f078c611e68565b10611f16576017549350611f48565b601254611f228c611e68565b10611f31576013549350611f48565b600f54611f3d8c611e68565b10611f485760105493505b611f5d611f558d86611d66565b6103e8611d9c565b600160a060020a038c16600090815260056020526040902054909350611f839084611e59565b600160a060020a038c16600090815260056020526040902055611fa78b3385612416565b611fb18584611d54565b94505b611fc18a33600f546123be565b1561207c576011549350601b54611fd78b611e68565b10611fe657601d549350612018565b601654611ff28b611e68565b10612001576018549350612018565b60125461200d8b611e68565b106120185760145493505b612025611f558d86611d66565b600160a060020a038b1660009081526005602052604090205490935061204b9084611e59565b600160a060020a038b1660009081526005602052604090205561206f8a8c85612416565b6120798584611d54565b94505b61208989336012546123be565b15612129576015549350601b5461209f8a611e68565b106120ae57601e5493506120c5565b6016546120ba8a611e68565b106120c55760195493505b6120d2611f558d86611d66565b600160a060020a038a166000908152600560205260409020549093506120f89084611e59565b600160a060020a038a1660009081526005602052604090205561211c898b85612416565b6121268584611d54565b94505b61213688336016546123be565b156121bb57601a549350601b5461214c89611e68565b1061215757601f5493505b612164611f558d86611d66565b600160a060020a03891660009081526005602052604090205490935061218a9084611e59565b600160a060020a0389166000908152600560205260409020556121ae888a85612416565b6121b88584611d54565b94505b6121c88733601b546123be565b15612233576121dc611f558d602054611d66565b600160a060020a0388166000908152600560205260409020549093506122029084611e59565b600160a060020a038816600090815260056020526040902055612226878985612416565b6122308584611d54565b94505b6122456122408d88611d54565b611db3565b91505068010000000000000000840260008211801561226e575060095461226c8382611e59565b115b151561227957600080fd5b600060095411156122db5761229060095483611e59565b60098190556801000000000000000086028115156122aa57fe5b600a80549290910490910190556009546801000000000000000086028115156122cf57fe5b048202810390036122e1565b60098290555b336000908152600460205260409020546122fb9083611e59565b33600081815260046020908152604080832094909455600a54600690915292902080549285028490039092019091557fdab8e4b48a2786a8cf2824525000c609475a787fdec377949a4b2ad2cf2be3948d84426123566113b4565b604080519485526020850193909352838301919091526060830152519081900360800190a2505050505050505050505050565b80600260018201045b818110156112245780915060028182858115156123ab57fe5b04018115156123b657fe5b049050612392565b6000600160a060020a038416158015906123ea575082600160a060020a031684600160a060020a031614155b801561240e5750600160a060020a0384166000908152600460205260409020548211155b949350505050565b600160a060020a039283166000818152602160209081526040808320959096168252938452848120805484019055908152600790925291902080549091019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061249957805160ff19168380011785556124c6565b828001600101855582156124c6579182015b828111156124c65782518255916020019190600101906124ab565b506114f692610df09250905b808211156114f657600081556001016124d25600a165627a7a723058209291e719ff7f710feb322b65b93742a7b590b4cc48c9d6110af85a7897e2d9850029

Deployed Bytecode

0x6080604052600436106103785763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b811461037d57806304729a8d146103b057806306fdde03146103cb57806308ff90e0146104555780630ebb0d301461046a57806310d0ffdd1461048b578063117a4425146104a357806318160ddd146104bd578063181f4180146104d25780631ddd303d146104e75780631f2698ab146104ff578063226093731461052857806322dc8e7114610540578063289fa84414610558578063313ce5671461056d578063327683bb1461059857806334fa2d43146105b057806336684752146105c5578063392efb52146105da5780633a7d773b146105f25780633c4ae1ee146106075780633ccfd60b1461061c5780634a208c38146106315780634b75033414610649578063527ba1e11461065e5780635b6a7ec814610676578063614a31bf1461068b57806361677d4d146106a357806363f82d61146106b85780636537e401146106cd578063688abbf7146106e55780636b2f4632146106ff57806370a082311461071457806372cee8ea146107355780637367352d1461075c578063759de3981461077157806378c7db00146107865780637a1c39cb1461079b5780637c6b2d6a146107b3578063817c8966146107cb57806381e6e083146107ec5780638620410b1461080157806387c95058146108165780638b349c351461083c5780638f16eb1a1461085157806392162de714610869578063949e8acd1461087e57806395d89b41146108935780639d6d2321146108a8578063a6b57b6d146108c9578063a9059cbb146108de578063afa2a83f14610902578063b263c00c14610917578063b530700d1461092f578063b6db75a014610944578063b84c824614610959578063be9a6555146109b2578063c47f0027146109c7578063c549e4e914610a20578063c646162514610a38578063cf09e0d014610a50578063d0a05fea14610a65578063d3ee99cf14610a7d578063d46d0a2214610a92578063dbbb206f14610aaa578063dca27d5e14610ad6578063ddf1be5f14610aee578063e3489a4f14610b06578063e4849b3214610b1e578063e70f5d9514610b36578063e9fad8ee14610b4e578063ec01438e14610b63578063ecb0116a14610b78578063f3b3982514610b8d578063f6f3664114610ba2578063fdb5a03e14610bba575b600080fd5b34801561038957600080fd5b5061039e600160a060020a0360043516610bcf565b60408051918252519081900360200190f35b3480156103bc57600080fd5b5061039e600435602435610c0d565b3480156103d757600080fd5b506103e0610c96565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561041a578181015183820152602001610402565b50505050905090810190601f1680156104475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046157600080fd5b5061039e610d24565b34801561047657600080fd5b5061039e600160a060020a0360043516610d2a565b34801561049757600080fd5b5061039e600435610d6f565b3480156104af57600080fd5b506104bb600435610dae565b005b3480156104c957600080fd5b5061039e610dec565b3480156104de57600080fd5b5061039e610df3565b3480156104f357600080fd5b506104bb600435610df9565b34801561050b57600080fd5b50610514610e37565b604080519115158252519081900360200190f35b34801561053457600080fd5b5061039e600435610e40565b34801561054c57600080fd5b506104bb600435610e61565b34801561056457600080fd5b5061039e610e9f565b34801561057957600080fd5b50610582610ea5565b6040805160ff9092168252519081900360200190f35b3480156105a457600080fd5b506104bb600435610eaa565b3480156105bc57600080fd5b5061039e610ee8565b3480156105d157600080fd5b5061039e610eee565b3480156105e657600080fd5b50610514600435610ef4565b3480156105fe57600080fd5b5061039e610f09565b34801561061357600080fd5b5061039e610f0f565b34801561062857600080fd5b506104bb610f15565b34801561063d57600080fd5b506104bb6004356110cb565b34801561065557600080fd5b5061039e611109565b34801561066a57600080fd5b506104bb60043561111b565b34801561068257600080fd5b5061039e611159565b34801561069757600080fd5b506104bb60043561115f565b3480156106af57600080fd5b5061039e61119d565b3480156106c457600080fd5b5061039e6111a3565b3480156106d957600080fd5b506104bb6004356111a9565b3480156106f157600080fd5b5061039e60043515156111e7565b34801561070b57600080fd5b5061039e61122a565b34801561072057600080fd5b5061039e600160a060020a036004351661122f565b34801561074157600080fd5b5061039e600160a060020a036004358116906024351661124a565b34801561076857600080fd5b5061039e611275565b34801561077d57600080fd5b5061039e61127b565b34801561079257600080fd5b5061039e611281565b3480156107a757600080fd5b506104bb600435611287565b3480156107bf57600080fd5b506104bb6004356112c5565b3480156107d757600080fd5b5061039e600160a060020a0360043516611303565b3480156107f857600080fd5b50610582611370565b34801561080d57600080fd5b5061039e6113b4565b34801561082257600080fd5b506104bb600160a060020a0360043516602435151561140b565b34801561084857600080fd5b5061039e61149d565b34801561085d57600080fd5b506104bb6004356114a3565b34801561087557600080fd5b5061039e6114e1565b34801561088a57600080fd5b5061039e6114e7565b34801561089f57600080fd5b506103e06114fa565b3480156108b457600080fd5b5061039e600160a060020a0360043516611554565b3480156108d557600080fd5b5061039e611589565b3480156108ea57600080fd5b50610514600160a060020a036004351660243561158f565b34801561090e57600080fd5b5061039e61172c565b34801561092357600080fd5b506104bb600435611732565b34801561093b57600080fd5b5061039e611770565b34801561095057600080fd5b50610514611776565b34801561096557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104bb9436949293602493928401919081908401838280828437509497506117a09650505050505050565b3480156109be57600080fd5b506104bb6117eb565b3480156109d357600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526104bb9436949293602493928401919081908401838280828437509497506118479650505050505050565b348015610a2c57600080fd5b5061039e600435611892565b348015610a4457600080fd5b506104bb6004356118e3565b348015610a5c57600080fd5b5061039e611921565b348015610a7157600080fd5b506104bb600435611927565b348015610a8957600080fd5b5061039e611965565b348015610a9e57600080fd5b506104bb60043561196b565b61039e600160a060020a03600435811690602435811690604435811690606435811690608435166119a9565b348015610ae257600080fd5b506104bb6004356119d4565b348015610afa57600080fd5b506104bb600435611a12565b348015610b1257600080fd5b506104bb600435611a50565b348015610b2a57600080fd5b506104bb600435611a8e565b348015610b4257600080fd5b506104bb600435611ba4565b348015610b5a57600080fd5b506104bb611be2565b348015610b6f57600080fd5b5061039e611c0f565b348015610b8457600080fd5b50610582611c15565b348015610b9957600080fd5b5061039e611c57565b348015610bae57600080fd5b506104bb600435611c5d565b348015610bc657600080fd5b506104bb611c9b565b600160a060020a0381166000908152600660209081526040808320546004909252822054600a5468010000000000000000929102030490505b919050565b6000806000806402540be400861015610c295760009350610c8d565b670de0b6b3a764000086810193508581019250610c7d6414f46b04008285046402540be40002018802600283670de0b6b3a763ffff1982890a8c900301046402540be40002811515610c7757fe5b04611d54565b811515610c8657fe5b0490508093505b50505092915050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b505050505081565b601a5481565b600354600090600160a060020a03838116610100909204161415610d5057506000610c08565b50600160a060020a038116600090815260076020526040902054610c08565b6000808080610d89610d8286600c611d66565b6064611d9c565b9250610d958584611d54565b9150610da082611db3565b90508093505b505050919050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610de657600080fd5b50600f55565b6009545b90565b60195481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610e3157600080fd5b50601e55565b60035460ff1681565b600954600090821115610e5257600080fd5b610e5b82611e4b565b92915050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610e9957600080fd5b50601755565b60135481565b601281565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515610ee257600080fd5b50601555565b60185481565b601e5481565b600c6020526000908152604090205460ff1681565b60145481565b60165481565b600080600080600080610f2860016111e7565b11610f3257600080fd5b339450610f3f60006111e7565b600160a060020a0386166000908152600860209081526040808320805485019055600682528083208054680100000000000000008602019055600590915281208054919055019350610fa1610d82856003610f98611c15565b0360ff16611d66565b9250610fb1610d82856003611d66565b9150610fbf84838501611d54565b600354909150600160a060020a0386811661010090920416146110245760038054600160a060020a0361010091829004811660009081526005602090815260408083208054890190559454939093049091168152600790915220805483019055611027565b81015b61104b600a5460095468010000000000000000860281151561104557fe5b04611e59565b600a55604051600160a060020a0386169082156108fc029083906000818181858888f19350505050158015611084573d6000803e3d6000fd5b50604080518581529051600160a060020a038716917fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc919081900360200190a25050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561110357600080fd5b50601855565b6000611116600954611892565b905090565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561115357600080fd5b50601655565b601d5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561119757600080fd5b50601155565b60205481565b600d5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156111e157600080fd5b50601255565b600033826111fd576111f881610bcf565b611221565b600160a060020a03811660009081526005602052604090205461121f82610bcf565b015b91505b50919050565b303190565b600160a060020a031660009081526004602052604090205490565b600160a060020a03918216600090815260216020908152604080832093909416825291909152205490565b60115481565b601f5481565b601b5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156112bf57600080fd5b50601455565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156112fd57600080fd5b50601c55565b600080600061131184611e68565b601b5490925060009150821061132957506005611369565b601654821061133a57506004611369565b601254821061134b57506003611369565b600f54821061135c57506002611369565b600d548210611369575060015b9392505050565b60035460009060ff16151561138757506000610df0565b6018603c80600254420381151561139a57fe5b048115156113a457fe5b048115156113ae57fe5b04905090565b600080600080600954600014156113d25764199c82cc009350611405565b6113e3670de0b6b3a7640000611e4b565b92506113f3610d8284600c611d66565b91506113ff8383611e59565b90508093505b50505090565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561144357600080fd5b600354600160a060020a0384811661010090920416146114985760408051606060020a600160a060020a03861602815281519081900360140190206000908152600c60205220805483151560ff199091161790555b505050565b600b5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156114db57600080fd5b50600e55565b60175481565b6000336114f38161122f565b91505b5090565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b600160a060020a038116600090815260076020908152604080832054600890925282205461158184610bcf565b010192915050565b600e5481565b6000806000806000806115a06114e7565b116115aa57600080fd5b336000818152600460205260409020549094508611156115c957600080fd5b60006115d560016111e7565b11156115e3576115e3610f15565b6115f1610d82876001611d66565b92506115fd8684611d54565b915061160883611e4b565b905061161660095484611d54565b600955600160a060020a03841660009081526004602052604090205461163c9087611d54565b600160a060020a03808616600090815260046020526040808220939093559089168152205461166b9083611e59565b600160a060020a03888116600081815260046020908152604080832095909555600a8054948a16835260069091528482208054948c029094039093558254918152929092208054928502909201909155546009546116d9919068010000000000000000840281151561104557fe5b600a55604080518381529051600160a060020a03808a1692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019695505050505050565b60105481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561176a57600080fd5b50601d55565b60125481565b60408051606060020a3302815281519081900360140190206000908152600c602052205460ff1690565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156117d857600080fd5b8151611498906001906020850190612458565b60035460ff16156117fb57600080fd5b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561183357600080fd5b506003805460ff1916600117905542600255565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561187f57600080fd5b8151611498906000906020850190612458565b60008080808415156118ab576414f46b04009350610da6565b6118bd670de0b6b3a764000086610c0d565b92506118cd610d82846006611d66565b91506118d98383611d54565b9050809350610da6565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561191b57600080fd5b50601a55565b60025481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff16151561195f57600080fd5b50600d55565b601c5481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff1615156119a357600080fd5b50601b55565b60035460009060ff1615156119bd57600080fd5b6119cb348787878787611ea7565b95945050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a0c57600080fd5b50601f55565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a4a57600080fd5b50601355565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611a8857600080fd5b50601055565b6000806000806000611a9e6114e7565b11611aa857600080fd5b33600081815260046020526040902054909450851115611ac757600080fd5b849250611ad383611e4b565b9150611ae160095484611d54565b600955600160a060020a038416600090815260046020526040902054611b079084611d54565b600160a060020a038516600081815260046020908152604080832094909455600a5460069091529290208054928602680100000000000000008602019283900390559091507f8d3a0130073dbd54ab6ac632c05946df540553d3b514c9f8165b4ab7f2b1805e848442611b786113b4565b604080519485526020850193909352838301919091526060830152519081900360800190a25050505050565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611bdc57600080fd5b50601955565b3360008181526004602052604081205490811115611c0357611c0381611a8e565b611c0b610f15565b5050565b600f5481565b600080611c20611370565b60ff16905060068111611c3657601e91506114f6565b601e811015611c4e576006601e8290030191506114f6565b600691506114f6565b60155481565b60408051606060020a3390810282528251918290036014019091206000908152600c602052919091205460ff161515611c9557600080fd5b50602055565b6000806000611caa60016111e7565b11611cb457600080fd5b611cbe60006111e7565b3360008181526008602090815260408083208054860190556006825280832080546801000000000000000087020190556005909152812080549082905590920193509150611d1190839080808080611ea7565b604080518381529051600160a060020a038316917f5d511c2070e5a2dbcc6fbfbb3fd6704a11ab5fa74b793b81aacece2c7cc29405919081900360200190a25050565b600082821115611d6057fe5b50900390565b600080831515611d795760009150611d95565b50828202828482811515611d8957fe5b0414611d9157fe5b8091505b5092915050565b6000808284811515611daa57fe5b04949350505050565b6009546000906c01431e0fae6d7217caa00000009082906402540be400611e38611e32730380d4bd8a8678c1bb542c80deb4800000000000880268056bc75e2d631000006002860a02017005e0a1fd2712875988becaad0000000000850201780197d4df19d605767337e9f14d3eec8920e40000000000000001612389565b85611d54565b811515611e4157fe5b0403949350505050565b6000610e5b82600954610c0d565b600082820183811015611d9157fe5b600160a060020a0381166000908152600460205260408120546402540be400811015611e975760009150611224565b611ea081611e4b565b9150611224565b60008080808080611ebc610d828d600c611d66565b95508594506000935060009250611ed68b33600d546123be565b15611fb457600e549350601b54611eec8c611e68565b10611efb57601c549350611f48565b601654611f078c611e68565b10611f16576017549350611f48565b601254611f228c611e68565b10611f31576013549350611f48565b600f54611f3d8c611e68565b10611f485760105493505b611f5d611f558d86611d66565b6103e8611d9c565b600160a060020a038c16600090815260056020526040902054909350611f839084611e59565b600160a060020a038c16600090815260056020526040902055611fa78b3385612416565b611fb18584611d54565b94505b611fc18a33600f546123be565b1561207c576011549350601b54611fd78b611e68565b10611fe657601d549350612018565b601654611ff28b611e68565b10612001576018549350612018565b60125461200d8b611e68565b106120185760145493505b612025611f558d86611d66565b600160a060020a038b1660009081526005602052604090205490935061204b9084611e59565b600160a060020a038b1660009081526005602052604090205561206f8a8c85612416565b6120798584611d54565b94505b61208989336012546123be565b15612129576015549350601b5461209f8a611e68565b106120ae57601e5493506120c5565b6016546120ba8a611e68565b106120c55760195493505b6120d2611f558d86611d66565b600160a060020a038a166000908152600560205260409020549093506120f89084611e59565b600160a060020a038a1660009081526005602052604090205561211c898b85612416565b6121268584611d54565b94505b61213688336016546123be565b156121bb57601a549350601b5461214c89611e68565b1061215757601f5493505b612164611f558d86611d66565b600160a060020a03891660009081526005602052604090205490935061218a9084611e59565b600160a060020a0389166000908152600560205260409020556121ae888a85612416565b6121b88584611d54565b94505b6121c88733601b546123be565b15612233576121dc611f558d602054611d66565b600160a060020a0388166000908152600560205260409020549093506122029084611e59565b600160a060020a038816600090815260056020526040902055612226878985612416565b6122308584611d54565b94505b6122456122408d88611d54565b611db3565b91505068010000000000000000840260008211801561226e575060095461226c8382611e59565b115b151561227957600080fd5b600060095411156122db5761229060095483611e59565b60098190556801000000000000000086028115156122aa57fe5b600a80549290910490910190556009546801000000000000000086028115156122cf57fe5b048202810390036122e1565b60098290555b336000908152600460205260409020546122fb9083611e59565b33600081815260046020908152604080832094909455600a54600690915292902080549285028490039092019091557fdab8e4b48a2786a8cf2824525000c609475a787fdec377949a4b2ad2cf2be3948d84426123566113b4565b604080519485526020850193909352838301919091526060830152519081900360800190a2505050505050505050505050565b80600260018201045b818110156112245780915060028182858115156123ab57fe5b04018115156123b657fe5b049050612392565b6000600160a060020a038416158015906123ea575082600160a060020a031684600160a060020a031614155b801561240e5750600160a060020a0384166000908152600460205260409020548211155b949350505050565b600160a060020a039283166000818152602160209081526040808320959096168252938452848120805484019055908152600790925291902080549091019055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061249957805160ff19168380011785556124c6565b828001600101855582156124c6579182015b828111156124c65782518255916020019190600101906124ab565b506114f692610df09250905b808211156114f657600081556001016124d25600a165627a7a723058209291e719ff7f710feb322b65b93742a7b590b4cc48c9d6110af85a7897e2d9850029

Swarm Source

bzzr://9291e719ff7f710feb322b65b93742a7b590b4cc48c9d6110af85a7897e2d985

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.