Contract 0xbbbecd6ee8d2972b4905634177c56ad73f226276

 

Contract Overview

Balance:
5.80381360422 Ether

EtherValue:
$804.58 (@ $138.63/ETH)
TxHash Block Age From To Value [TxFee]
0x05fbedefd8ee3e22bcd5d4c9cd496d9458e25a5033f6d847dd92be4ef558d2d9740019910 hrs 54 mins ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.00010821592
0x5bbb33123c92ae5aa6f3aa29c5f1887513ef93fec8471e2ed46a7bc92a2b4546740019410 hrs 55 mins ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.00010821592
0x34cb28f274780d3f75e4ea2b6e6be90cfade9f038f69cdd87760a9e62c625332740019110 hrs 56 mins ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000320188
0x30088189403ed6448341e738d4b5c59d25539d945178c26271823caa85513ebc739715922 hrs 19 mins ago0xb07ed6ed9292502deac98ed61733df6f6b518b5b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000026266
0x9ce2abe6bf1175eb1559c6664009060e9d72db8c7a2628bee5f1b38e2289cf0a739715622 hrs 20 mins ago0xb07ed6ed9292502deac98ed61733df6f6b518b5b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000026266
0x753cfc9593ba33a622651161a86027b1f9d52575e78c78adaf7029403a6613e4739715222 hrs 21 mins ago0xb07ed6ed9292502deac98ed61733df6f6b518b5b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000026266
0xc80b5e83758b38a446472068e8849abbe4c17a4cadfb645f235eeb88a384be59739715122 hrs 21 mins ago0xb07ed6ed9292502deac98ed61733df6f6b518b5b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000026202
0xce29d714acc4909f1f4136e15debb2d29115bf8464c1a490c70bc79b680fecfb739710522 hrs 31 mins ago0xb07ed6ed9292502deac98ed61733df6f6b518b5b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000145386
0xf044531a740328dc9c00861040c66ddd4db71b8f4888217cef2983c444c7a06073876412 days 10 hrs ago0x206064163366c400a18f32d1d0cad97053367a48 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052404
0x5ee5f2c4b78d2831203c34db54b9b40cc5713e215bd982cb9f3cd3aa6823f99873876412 days 10 hrs ago0x206064163366c400a18f32d1d0cad97053367a48 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0xc693f24a81380c18895b704a0c7ef2dc7cdcd26064ede6de6c1b1d19e432dd3073876392 days 10 hrs ago0x206064163366c400a18f32d1d0cad97053367a48 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000069132
0x05986feead3f3b2ff6e6f2fafb061dbceaf946c89bce207d9de2ba3af546300273876382 days 10 hrs ago0x206064163366c400a18f32d1d0cad97053367a48 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0x7b45a3841da0280f0b9d2a4f2c7d5590a799c5d363b300bb8d1cccd9b8a9e75873876282 days 10 hrs ago0x206064163366c400a18f32d1d0cad97053367a48 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000130386
0x1359f34936c7d7c00bb32113532781ecfe4d9986d7c03894243773cd5a48846373876082 days 10 hrs ago0xa36baee01088db46a0315e30d2705c694045983d IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000026202
0x23f2a1c800bb212a69385dd15beb3978319741bf5060dc9cb8392446ff84a55273876032 days 10 hrs ago0xa36baee01088db46a0315e30d2705c694045983d IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000053697
0x5e36ea20becc7709fa4d16a027f1be39733b9575f21279623466865400a7644873868272 days 13 hrs ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0x14dd63a56802273969eb803d07f932470f942f2dd2ba820acb9066585464a03c73868262 days 13 hrs ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0xab70469d4cde368d9fd1a41f7b9364ae6e2400965ef9f3b97cc4e86f2e60831d73868212 days 13 hrs ago0x0581cf34d90e63fa939dc5a79bf11cd265990e6c IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.00016852
0xa316b5ea526d7ef6ffaa2691f26ad6af2e49b981935fd80e064869e6593bfc7873860182 days 16 hrs ago0x15517214b2ee748b001be7d3a12ca13e7c19682b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0x7ad774a42262014a4a395b983c8af693913920ec014945685b1d29023853b1d573860172 days 16 hrs ago0x15517214b2ee748b001be7d3a12ca13e7c19682b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0x3dadb98ff431cf3ffb464d0eb845a5a91437b622451a4f05355cf3ff272e5d9073860152 days 16 hrs ago0x15517214b2ee748b001be7d3a12ca13e7c19682b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052532
0xa1b36eb33f945e0d93653d64fcb939f7beba5b60d1cec2495abc71aa72b5794d73860112 days 16 hrs ago0x15517214b2ee748b001be7d3a12ca13e7c19682b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000052404
0xafd10483c0ca8c50de042eb9e454af694be3ab3be065797dd3212dda1926e08c73860072 days 16 hrs ago0x15517214b2ee748b001be7d3a12ca13e7c19682b IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000290772
0xe3df4afcbcaff72d535698cdc62e9a947b755e91bc3eaff30d3cf11eb5eacc1a73847502 days 20 hrs ago0x97e6855a0be320698f20d013ff20f270ff9f2fd8 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000039399
0x7918f0f5258842dff6ee68af9c828906a2fa138561c40aefbb560eb54fc983ab73847502 days 20 hrs ago0x97e6855a0be320698f20d013ff20f270ff9f2fd8 IN  0xbbbecd6ee8d2972b4905634177c56ad73f2262760 Ether0.000051849
[ Download CSV Export 

Latest 25 internal transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x05fbedefd8ee3e22bcd5d4c9cd496d9458e25a5033f6d847dd92be4ef558d2d9740019910 hrs 54 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.00666149722 Ether
0x5bbb33123c92ae5aa6f3aa29c5f1887513ef93fec8471e2ed46a7bc92a2b4546740019410 hrs 55 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.0290048858 Ether
0x30088189403ed6448341e738d4b5c59d25539d945178c26271823caa85513ebc739715922 hrs 19 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760xb07ed6ed9292502deac98ed61733df6f6b518b5b0.009021518 Ether
0x9ce2abe6bf1175eb1559c6664009060e9d72db8c7a2628bee5f1b38e2289cf0a739715622 hrs 20 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760xb07ed6ed9292502deac98ed61733df6f6b518b5b0.01843886436 Ether
0x753cfc9593ba33a622651161a86027b1f9d52575e78c78adaf7029403a6613e4739715222 hrs 21 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760xb07ed6ed9292502deac98ed61733df6f6b518b5b0.03747661418 Ether
0xc80b5e83758b38a446472068e8849abbe4c17a4cadfb645f235eeb88a384be59739715122 hrs 21 mins ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760xb07ed6ed9292502deac98ed61733df6f6b518b5b0.01624025745 Ether
0xf044531a740328dc9c00861040c66ddd4db71b8f4888217cef2983c444c7a06073876412 days 10 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x206064163366c400a18f32d1d0cad97053367a480.0057011505 Ether
0x5ee5f2c4b78d2831203c34db54b9b40cc5713e215bd982cb9f3cd3aa6823f99873876412 days 10 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x206064163366c400a18f32d1d0cad97053367a480.00236289968 Ether
0x05986feead3f3b2ff6e6f2fafb061dbceaf946c89bce207d9de2ba3af546300273876382 days 10 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x206064163366c400a18f32d1d0cad97053367a480.01763038236 Ether
0x1359f34936c7d7c00bb32113532781ecfe4d9986d7c03894243773cd5a48846373876082 days 10 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760xa36baee01088db46a0315e30d2705c694045983d0.02821059 Ether
0x5e36ea20becc7709fa4d16a027f1be39733b9575f21279623466865400a7644873868272 days 13 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.00574146558 Ether
0x14dd63a56802273969eb803d07f932470f942f2dd2ba820acb9066585464a03c73868262 days 13 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.02499890855 Ether
0xa316b5ea526d7ef6ffaa2691f26ad6af2e49b981935fd80e064869e6593bfc7873860182 days 16 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x15517214b2ee748b001be7d3a12ca13e7c19682b0.0051099752 Ether
0x7ad774a42262014a4a395b983c8af693913920ec014945685b1d29023853b1d573860172 days 16 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x15517214b2ee748b001be7d3a12ca13e7c19682b0.00244403472 Ether
0x3dadb98ff431cf3ffb464d0eb845a5a91437b622451a4f05355cf3ff272e5d9073860152 days 16 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x15517214b2ee748b001be7d3a12ca13e7c19682b0.00139977232 Ether
0xa1b36eb33f945e0d93653d64fcb939f7beba5b60d1cec2495abc71aa72b5794d73860112 days 16 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x15517214b2ee748b001be7d3a12ca13e7c19682b0.0004443874 Ether
0xe3df4afcbcaff72d535698cdc62e9a947b755e91bc3eaff30d3cf11eb5eacc1a73847502 days 20 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x97e6855a0be320698f20d013ff20f270ff9f2fd80.0053394396 Ether
0x5d9778f4a11a172200560a55e27414879c585bd2a380ffbb3a43993b22617e5573847462 days 20 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x97e6855a0be320698f20d013ff20f270ff9f2fd80.00292525872 Ether
0xf92fb492ffc2d7e68e0ab3a4c5b2b19cb54bba0888d1a532091a508fe85a606c73847412 days 20 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x97e6855a0be320698f20d013ff20f270ff9f2fd80.0009286854 Ether
0xa0c324ad7630397b263a445a27a85f8cdea6338bc184a6246e1c273bfd560a7773835033 days 1 hr ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x835640f908cdcffb09dc16b01cf8cf9aa3010e240.0003709556 Ether
0x1b1a47cf9ca34984854acaeb54d44a64dba8542a02225cb9e102e967c7d6e1c273785753 days 19 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x332a97d6df06079ad5e6261e26ef674ab74835ed0.0120981572 Ether
0xecdb2b43115b134aa11d272b216892a703033f56208b2f5341ec91e68edf02c373785663 days 19 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x332a97d6df06079ad5e6261e26ef674ab74835ed0.0196240235 Ether
0xe2c5210df4c9acb4d1b9b1c1aeb0d6c21a9817f0cd557dbd09ccf2d874a9eae873785553 days 19 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x332a97d6df06079ad5e6261e26ef674ab74835ed0.16031928275 Ether
0xab2c50006f3cd6470cb312351d945f1f3880eb4dd199635c83b0d3cc5a335d9873752504 days 8 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.0010571577 Ether
0x8c656ec9c8b60e900a678c16dfdc8b8615dda3a7b39c8960c160704ad8276f7573752494 days 8 hrs ago0xbbbecd6ee8d2972b4905634177c56ad73f2262760x0581cf34d90e63fa939dc5a79bf11cd265990e6c0.0046029973 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)

Contract Name:
MyMillions

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.24;

/*
*__/\\\\____________/\\\\________________/\\\\____________/\\\\________/\\\\\\_____/\\\\\\___________________________________________________
* _\/\\\\\\________/\\\\\\_______________\/\\\\\\________/\\\\\\_______\////\\\____\////\\\___________________________________________________
*  _\/\\\//\\\____/\\\//\\\____/\\\__/\\\_\/\\\//\\\____/\\\//\\\__/\\\____\/\\\_______\/\\\_____/\\\__________________________________________
*   _\/\\\\///\\\/\\\/_\/\\\___\//\\\/\\\__\/\\\\///\\\/\\\/_\/\\\_\///_____\/\\\_______\/\\\____\///______/\\\\\_____/\\/\\\\\\____/\\\\\\\\\\_
*    _\/\\\__\///\\\/___\/\\\____\//\\\\\___\/\\\__\///\\\/___\/\\\__/\\\____\/\\\_______\/\\\_____/\\\___/\\\///\\\__\/\\\////\\\__\/\\\//////__
*     _\/\\\____\///_____\/\\\_____\//\\\____\/\\\____\///_____\/\\\_\/\\\____\/\\\_______\/\\\____\/\\\__/\\\__\//\\\_\/\\\__\//\\\_\/\\\\\\\\\\_
*      _\/\\\_____________\/\\\__/\\_/\\\_____\/\\\_____________\/\\\_\/\\\____\/\\\_______\/\\\____\/\\\_\//\\\__/\\\__\/\\\___\/\\\_\////////\\\_
*       _\/\\\_____________\/\\\_\//\\\\/______\/\\\_____________\/\\\_\/\\\__/\\\\\\\\\__/\\\\\\\\\_\/\\\__\///\\\\\/___\/\\\___\/\\\__/\\\\\\\\\\_
*        _\///______________\///___\////________\///______________\///__\///__\/////////__\/////////__\///_____\/////_____\///____\///__\//////////__
*/

contract Ownable {
    address public owner;
    address public developers = 0x0c05aE835f26a8d4a89Ae80c7A0e5495e5361ca1;
    address public marketers = 0xE222Dd2DD012FCAC0256B1f3830cc033418B6889;
    uint256 public constant developersPercent = 1;
    uint256 public constant marketersPercent = 14;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event DevelopersChanged(address indexed previousDevelopers, address indexed newDevelopers);
    event MarketersChanged(address indexed previousMarketers, address indexed newMarketers);

    function Ownable() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    modifier onlyThisOwner(address _owner) {
        require(owner == _owner);
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    function setDevelopers(address newDevelopers) public onlyOwner {
        require(newDevelopers != address(0));
        emit DevelopersChanged(developers, newDevelopers);
        developers = newDevelopers;
    }

    function setMarketers(address newMarketers) public onlyOwner {
        require(newMarketers != address(0));
        emit MarketersChanged(marketers, newMarketers);
        marketers = newMarketers;
    }

}

library SafeMath {
    function mul(uint256 _a, uint256 _b) internal pure returns(uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (_a == 0) {
            return 0;
        }

        uint256 c = _a * _b;
        require(c / _a == _b);

        return c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns(uint256) {
        require(_b > 0); // Solidity only automatically asserts 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;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns(uint256) {
        require(_b <= _a);
        uint256 c = _a - _b;

        return c;
    }

    function add(uint256 _a, uint256 _b) internal pure returns(uint256) {
        uint256 c = _a + _b;
        require(c >= _a);

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns(uint256) {
        require(b != 0);
        return a % b;
    }
}

library Math {
    function max(uint a, uint b) returns (uint) {
        if (a > b) return a;
        else return b;
    }
    function min(uint a, uint b) returns (uint) {
        if (a < b) return a;
        else return b;
    }
}

contract LeaderSystem {
    using SafeMath for uint256;

    event NewLeader(uint256 _indexTable, address _addr, uint256 _index, uint256 _sum);
    event LeadersClear(uint256 _indexTable);

    uint8 public constant leadersCount = 7;
    mapping (uint8 => uint256) public leaderBonuses;

    struct LeadersTable {
        uint256 timestampEnd;              // timestamp of closing table
        uint256 duration;                   // duration compute
        uint256 minSum;                     // min sum of leaders
        address[] leaders;                  // leaders array
        mapping (address => uint256) users; // sum all users
    }

    LeadersTable[] public leaders;

    function setupLeaderSystemModule() internal {
        leaderBonuses[0] = 10;  // 10%
        leaderBonuses[1] = 7;   // 7%
        leaderBonuses[2] = 5;   // 5%
        leaderBonuses[3] = 3;   // 3%
        leaderBonuses[4] = 1;   // 1%
        leaderBonuses[5] = 0;   // 0%
        leaderBonuses[6] = 0;   // 0%

        leaders.push(LeadersTable(now + 86400, 86400, 0, new address[](0)));
        leaders.push(LeadersTable(now + 604800, 604800, 0, new address[](0)));
        leaders.push(LeadersTable(now + 77760000, 77760000, 0, new address[](0)));
        leaders.push(LeadersTable(now + 31536000, 31536000, 0, new address[](0)));
    }

    function _clearLeadersTable(uint256 _indexTable) internal {
        LeadersTable storage _leader = leaders[_indexTable];
        leaders[_indexTable] = LeadersTable(_leader.timestampEnd + _leader.duration, _leader.duration, 0, new address[](0));

        emit LeadersClear(_indexTable);
    }

    function quickSort(LeadersTable storage leader, int left, int right) internal {
        int i = left;
        int j = right;
        if (i == j) return;
        uint pivot = leader.users[leader.leaders[uint(left + (right - left) / 2)]];
        while (i <= j) {
            while (leader.users[leader.leaders[uint(i)]] > pivot) i++;
            while (pivot > leader.users[leader.leaders[uint(j)]]) j--;
            if (i <= j) {
                (leader.leaders[uint(i)], leader.leaders[uint(j)]) = (leader.leaders[uint(j)], leader.leaders[uint(i)]);
                i++;
                j--;
            }
        }
        if (left < j)
            quickSort(leader, left, j);
        if (i < right)
            quickSort(leader, i, right);
    }

    function _updateLeadersTable(uint256 i, address _addr, uint256 _value) internal {
        if (now > leaders[i].timestampEnd) _clearLeadersTable(i);

        LeadersTable storage leader = leaders[i];
        bool isExist = leader.users[_addr] >= leader.minSum;

        uint256 oldSum = leader.users[_addr];
        uint256 newSum = oldSum.add(_value);
        leader.users[_addr] = newSum;

        if (newSum < leader.minSum && leader.leaders.length == leadersCount) return;

        if (!isExist || leader.leaders.length == 0) leader.leaders.push(_addr);

        if (leader.leaders.length > 1) quickSort(leader, 0, int256(leader.leaders.length - 1));
        if (leader.leaders.length > leadersCount) {
            delete leader.leaders[leadersCount - 1];
        }

        leader.minSum = leader.users[leader.leaders[leader.leaders.length - 1]];
    }

    function _updateLeaders(address _addr, uint256 _value) internal {
        for (uint i = 0; i < leaders.length; i++) {
            _updateLeadersTable(i, _addr, _value);
        }
    }

    function getLeadersTableInfo(uint256 _indexTable) public view returns(uint256, uint256, uint256) {
        return (leaders[_indexTable].timestampEnd, leaders[_indexTable].duration, leaders[_indexTable].minSum);
    }

    function getLeaders(uint256 _indexTable) public view returns(address[], uint256[]) {
        LeadersTable storage leader = leaders[_indexTable];
        uint256[] memory balances = new uint256[](leader.leaders.length);

        for (uint i = 0; i < leader.leaders.length; i++) {
            balances[i] = leader.users[leader.leaders[i]];
        }

        return (leader.leaders, balances);
    }

}

contract Factoring {

    enum FactoryType { Wood, Metal, Oil, PreciousMetal }

    mapping (uint8 => uint256) public resourcePrices;

    function setupFactoringModule() internal {
        resourcePrices[uint8(FactoryType.Wood)]         = 0.02315 szabo;
        resourcePrices[uint8(FactoryType.Metal)]        = 0.03646 szabo;
        resourcePrices[uint8(FactoryType.Oil)]          = 0.04244 szabo;
        resourcePrices[uint8(FactoryType.PreciousMetal)]= 0.06655 szabo;
    }

    function getResourcePrice(uint8 _type) public view returns(uint256) {
        return resourcePrices[_type];
    }

}

contract Improvements is Factoring {

    mapping (uint8 => mapping (uint8 => Params)) public levelStack;
    uint8 public constant levelsCount = 7;

    struct Params {
        uint256 price;      // improvements cost
        uint256 ppm;        // products per minute
        uint256 ppmBonus;   // bonus per minute
    }

    function setupImprovementsModule() internal {
        // initial pricess
        levelStack[uint8(FactoryType.Wood)][0]          = Params(0.01 ether, 200, 0);
        levelStack[uint8(FactoryType.Metal)][0]         = Params(0.03 ether, 400, 0);
        levelStack[uint8(FactoryType.Oil)][0]           = Params(0.05 ether, 600, 0);
        levelStack[uint8(FactoryType.PreciousMetal)][0] = Params(0.10 ether, 800, 0);

        // level 1
        levelStack[uint8(FactoryType.Wood)][1]          = Params(0.05 ether, 1200, 120);
        levelStack[uint8(FactoryType.Metal)][1]         = Params(0.09 ether, 1600, 138);
        levelStack[uint8(FactoryType.Oil)][1]           = Params(0.15 ether, 2400, 164);
        levelStack[uint8(FactoryType.PreciousMetal)][1] = Params(0.50 ether, 4800, 418);

        // level 2
        levelStack[uint8(FactoryType.Wood)][2]          = Params(0.12 ether, 3600, 540);
        levelStack[uint8(FactoryType.Metal)][2]         = Params(0.27 ether, 5200, 866);
        levelStack[uint8(FactoryType.Oil)][2]           = Params(0.35 ether, 6600, 1050);
        levelStack[uint8(FactoryType.PreciousMetal)][2] = Params(1.00 ether, 12800, 1670);

        // level 3
        levelStack[uint8(FactoryType.Wood)][3]          = Params(0.30 ether, 9600, 2400);
        levelStack[uint8(FactoryType.Metal)][3]         = Params(0.75 ether, 15200, 3980);
        levelStack[uint8(FactoryType.Oil)][3]           = Params(1.15 ether, 20400, 5099);
        levelStack[uint8(FactoryType.PreciousMetal)][3] = Params(3.50 ether, 40800, 11531);

        // level 4
        levelStack[uint8(FactoryType.Wood)][4]          = Params(0.90 ether, 27600, 9660);
        levelStack[uint8(FactoryType.Metal)][4]         = Params(2.13 ether, 43600, 15568);
        levelStack[uint8(FactoryType.Oil)][4]           = Params(3.00 ether, 56400, 17943);
        levelStack[uint8(FactoryType.PreciousMetal)][4] = Params(7.00 ether, 96800, 31567);

        // level 5
        levelStack[uint8(FactoryType.Wood)][5]          = Params(1.80 ether, 63600, 25440);
        levelStack[uint8(FactoryType.Metal)][5]         = Params(5.31 ether, 114400, 49022);
        levelStack[uint8(FactoryType.Oil)][5]           = Params(7.30 ether, 144000, 55629);
        levelStack[uint8(FactoryType.PreciousMetal)][5] = Params(17.10 ether, 233600, 96492);

        // level 6
        levelStack[uint8(FactoryType.Wood)][6]          = Params(5.40 ether, 171600, 85800);
        levelStack[uint8(FactoryType.Metal)][6]         = Params(13.89 ether, 298400, 158120);
        levelStack[uint8(FactoryType.Oil)][6]           = Params(24.45 ether, 437400, 218674);
        levelStack[uint8(FactoryType.PreciousMetal)][6] = Params(55.50 ether, 677600, 353545);
    }

    function getPrice(FactoryType _type, uint8 _level) public view returns(uint256) {
        return levelStack[uint8(_type)][_level].price;
    }

    function getProductsPerMinute(FactoryType _type, uint8 _level) public view returns(uint256) {
        return levelStack[uint8(_type)][_level].ppm;
    }

    function getBonusPerMinute(FactoryType _type, uint8 _level) public view returns(uint256) {
        return levelStack[uint8(_type)][_level].ppmBonus;
    }
}

contract ReferralsSystem {

    struct ReferralGroup {
        uint256 minSum;
        uint256 maxSum;
        uint16[] percents;
    }

    uint256 public constant minSumReferral = 0.01 ether;
    uint256 public constant referralLevelsGroups = 3;
    uint256 public constant referralLevelsCount = 5;
    ReferralGroup[] public referralGroups;

    function setupReferralsSystemModule() internal {
        ReferralGroup memory refGroupFirsty = ReferralGroup(minSumReferral, 10 ether - 1 wei, new uint16[](referralLevelsCount));
        refGroupFirsty.percents[0] = 300;   // 3%
        refGroupFirsty.percents[1] = 75;    // 0.75%
        refGroupFirsty.percents[2] = 60;    // 0.6%
        refGroupFirsty.percents[3] = 40;    // 0.4%
        refGroupFirsty.percents[4] = 25;    // 0.25%
        referralGroups.push(refGroupFirsty);

        ReferralGroup memory refGroupLoyalty = ReferralGroup(10 ether, 50 ether - 1 wei, new uint16[](referralLevelsCount));
        refGroupLoyalty.percents[0] = 500;  // 5%
        refGroupLoyalty.percents[1] = 200;  // 2%
        refGroupLoyalty.percents[2] = 150;  // 1.5%
        refGroupLoyalty.percents[3] = 100;  // 1%
        refGroupLoyalty.percents[4] = 50;   // 0.5%
        referralGroups.push(refGroupLoyalty);

        ReferralGroup memory refGroupUltraPremium = ReferralGroup(50 ether, 2**256 - 1, new uint16[](referralLevelsCount));
        refGroupUltraPremium.percents[0] = 700; // 7%
        refGroupUltraPremium.percents[1] = 300; // 3%
        refGroupUltraPremium.percents[2] = 250; // 2.5%
        refGroupUltraPremium.percents[3] = 150; // 1.5%
        refGroupUltraPremium.percents[4] = 100; // 1%
        referralGroups.push(refGroupUltraPremium);
    }

    function getReferralPercents(uint256 _sum) public view returns(uint16[]) {
        for (uint i = 0; i < referralLevelsGroups; i++) {
            ReferralGroup memory group = referralGroups[i];
            if (_sum >= group.minSum && _sum <= group.maxSum) return group.percents;
        }
    }

    function getReferralPercentsByIndex(uint256 _index) public view returns(uint16[]) {
        return referralGroups[_index].percents;
    }

}

/// @title Smart-contract of MyMillions ecosystem
/// @author Shagaleev Alexey
contract MyMillions is Ownable, Improvements, ReferralsSystem, LeaderSystem {
    using SafeMath for uint256;

    event CreateUser(uint256 _index, address _address, uint256 _balance);
    event ReferralRegister(uint256 _refferalId, uint256 _userId);
    event ReferrerDistribute(uint256 _userId, uint256 _referrerId, uint256 _sum);
    event Deposit(uint256 _userId, uint256 _value);
    event PaymentProceed(uint256 _userId, uint256 _factoryId, FactoryType _factoryType, uint256 _price);
    event CollectResources(FactoryType _type, uint256 _resources);
    event LevelUp(uint256 _factoryId, uint8 _newLevel, uint256 _userId, uint256 _price);
    event Sell(uint256 _userId, uint8 _type, uint256 _sum);

    bool isSetted = false;
    uint256 public minSumDeposit = 0.01 ether;

    struct User {
        address addr;                                   // user address
        uint256 balance;                                // balance of account
        uint256 totalPay;                               // sum of all input pay
        uint256 referrersReceived;                      // total deposit from referrals
        uint256[] resources;                            // collected resources
        uint256[] referrersByLevel;                     // referrers user ids
        mapping (uint8 => uint256[]) referralsByLevel;  // all referrals user ids
    }

    User[] public users;
    mapping (address => uint256) public addressToUser;
    uint256 public totalUsers = 0;
    uint256 public totalDeposit = 0;

    struct Factory {
        FactoryType ftype;      // factory type
        uint8 level;            // factory level
        uint256 collected_at;   // timestamp updated
    }

    Factory[] public factories;
    mapping (uint256 => uint256) public factoryToUser;
    mapping (uint256 => uint256[]) public userToFactories;

    modifier onlyExistingUser() {
        require(addressToUser[msg.sender] != 0);
        _;
    }
    modifier onlyNotExistingUser() {
        require(addressToUser[msg.sender] == 0);
        _;
    }

    constructor() public payable {
        users.push(User(0x0, 0, 0, 0, new uint256[](4), new uint256[](referralLevelsCount)));  // for find by addressToUser map
    }

    function setup() public onlyOwner {
        require(isSetted == false);
        isSetted = true;

        setupFactoringModule();
        setupImprovementsModule();
        setupReferralsSystemModule();
        setupLeaderSystemModule();
    }

    // @dev register for only new users with min pay
    /// @return id of new user
    function register() public payable onlyNotExistingUser returns(uint256) {
        require(addressToUser[msg.sender] == 0);

        uint256 index = users.push(User(msg.sender, msg.value, 0, 0, new uint256[](4), new uint256[](referralLevelsCount))) - 1;
        addressToUser[msg.sender] = index;
        totalUsers++;

        emit CreateUser(index, msg.sender, msg.value);
        return index;
    }


    /// @notice just registry by referral link
    /// @param _refId the ID of the user who gets the affiliate fee
    /// @return id of new user
    function registerWithRefID(uint256 _refId) public payable onlyNotExistingUser returns(uint256) {
        require(_refId < users.length);

        uint256 index = register();
        _updateReferrals(index, _refId);

        emit ReferralRegister(_refId, index);
        return index;
    }

    /// @notice update referrersByLevel and referralsByLevel of new user
    /// @param _newUserId the ID of the new user
    /// @param _refUserId the ID of the user who gets the affiliate fee
    function _updateReferrals(uint256 _newUserId, uint256 _refUserId) private {
        if (_newUserId == _refUserId) return;
        users[_newUserId].referrersByLevel[0] = _refUserId;

        for (uint i = 1; i < referralLevelsCount; i++) {
            uint256 _refId = users[_refUserId].referrersByLevel[i - 1];
            users[_newUserId].referrersByLevel[i] = _refId;
            users[_refId].referralsByLevel[uint8(i)].push(_newUserId);
        }

        users[_refUserId].referralsByLevel[0].push(_newUserId);
    }

    /// @notice distribute value of tx to referrers of user
    /// @param _userId the ID of the user who gets the affiliate fee
    /// @param _sum value of ethereum for distribute to referrers of user
    function _distributeReferrers(uint256 _userId, uint256 _sum) private {
        uint256[] memory referrers = users[_userId].referrersByLevel;

        for (uint i = 0; i < referralLevelsCount; i++) {
            uint256 referrerId = referrers[i];

            if (referrers[i] == 0) break;
            if (users[referrerId].totalPay < minSumReferral) continue;

            uint16[] memory percents = getReferralPercents(users[referrerId].totalPay);
            uint256 value = _sum * percents[i] / 10000;
            users[referrerId].balance = users[referrerId].balance.add(value);
            users[referrerId].referrersReceived = users[referrerId].referrersReceived.add(value);

            emit ReferrerDistribute(_userId, referrerId, value);
        }
    }

    /// @notice deposit ethereum for user
    /// @return balance value of user
    function deposit() public payable onlyExistingUser returns(uint256) {
        require(msg.value > minSumDeposit, "Deposit does not enough");
        uint256 userId = addressToUser[msg.sender];
        users[userId].balance = users[userId].balance.add(msg.value);
        totalDeposit += msg.value;

        // distribute
        _distributeInvestment(msg.value);
        _updateLeaders(msg.sender, msg.value);

        emit Deposit(userId, msg.value);
        return users[userId].balance;
    }

    /// @notice getter for balance of user
    /// @return balance value of user
    function balanceOf() public view returns (uint256) {
        return users[addressToUser[msg.sender]].balance;
    }

    /// @notice getter for resources of user
    /// @return resources value of user
    function resoucesOf() public view returns (uint256[]) {
        return users[addressToUser[msg.sender]].resources;
    }

    /// @notice getter for referrers of user
    /// @return array of referrers id
    function referrersOf() public view returns (uint256[]) {
        return users[addressToUser[msg.sender]].referrersByLevel;
    }

    /// @notice getter for referrals of user by level
    /// @param _level level of referrals user needed
    /// @return array of referrals id
    function referralsOf(uint8 _level) public view returns (uint256[]) {
        return users[addressToUser[msg.sender]].referralsByLevel[uint8(_level)];
    }

    /// @notice getter for extended information of user
    /// @param _userId id of user needed
    /// @return address of user
    /// @return balance of user
    /// @return totalPay of user
    /// @return array of resources user
    /// @return array of referrers id user
    function userInfo(uint256 _userId) public view returns(address, uint256, uint256, uint256, uint256[], uint256[]) {
        User memory user = users[_userId];
        return (user.addr, user.balance, user.totalPay, user.referrersReceived, user.resources, user.referrersByLevel);
    }

    /// @notice mechanics of buying any factory
    /// @param _type type of factory needed
    /// @return id of new factory
    function buyFactory(FactoryType _type) public payable onlyExistingUser returns (uint256) {
        uint256 userId = addressToUser[msg.sender];

        // if user not registered
        if (addressToUser[msg.sender] == 0)
            userId = register();

        return _paymentProceed(userId, Factory(_type, 0, now));
    }

    /// @notice get factories of user
    /// @param _user_id id of user
    /// @return array of id factory
    function getFactories(uint256 _user_id) public view returns (uint256[]) {
        return userToFactories[_user_id];
    }

    /// @notice buy wood factory
    /// @dev wrapper over buyFactory for FactoryType.Wood
    /// @return id of new factory
    function buyWoodFactory() public payable returns (uint256) {
        return buyFactory(FactoryType.Wood);
    }

    /// @notice buy wood factory
    /// @dev wrapper over buyFactory for FactoryType.Metal
    /// @return id of new factory
    function buyMetalFactory() public payable returns (uint256) {
        return buyFactory(FactoryType.Metal);
    }

    /// @notice buy wood factory
    /// @dev wrapper over buyFactory for FactoryType.Oil
    /// @return id of new factory
    function buyOilFactory() public payable returns (uint256) {
        return buyFactory(FactoryType.Oil);
    }

    /// @notice buy wood factory
    /// @dev wrapper over buyFactory for FactoryType.PreciousMetal
    /// @return id of new factory
    function buyPreciousMetal() public payable returns (uint256) {
        return buyFactory(FactoryType.PreciousMetal);
    }

    /// @notice distribute investment when user buy anything
    /// @param _value value of investment
    function _distributeInvestment(uint256 _value) private {
        developers.transfer(msg.value * developersPercent / 100);
        marketers.transfer(msg.value * marketersPercent / 100);
    }

    /// @notice function of proceed payment
    /// @dev for only buy new factory
    /// @return id of new factory
    function _paymentProceed(uint256 _userId, Factory _factory) private returns(uint256) {
        User storage user = users[_userId];

        require(_checkPayment(user, _factory.ftype, _factory.level));

        uint256 price = getPrice(_factory.ftype, 0);
        user.balance = user.balance.add(msg.value);
        user.balance = user.balance.sub(price);
        user.totalPay = user.totalPay.add(price);
        totalDeposit += msg.value;

        uint256 index = factories.push(_factory) - 1;
        factoryToUser[index] = _userId;
        userToFactories[_userId].push(index);

        // distribute
        _distributeInvestment(msg.value);
        _distributeReferrers(_userId, price);
        _updateLeaders(msg.sender, msg.value);

        emit PaymentProceed(_userId, index, _factory.ftype, price);
        return index;
    }

    /// @notice check available investment
    /// @return true if user does enough balance for investment
    function _checkPayment(User _user, FactoryType _type, uint8 _level) private view returns(bool) {
        uint256 totalBalance = _user.balance.add(msg.value);

        if (totalBalance < getPrice(_type, _level)) return false;

        return true;
    }

    /// @notice level up for factory
    /// @param _factoryId id of factory
    function levelUp(uint256 _factoryId) public payable onlyExistingUser {
        Factory storage factory = factories[_factoryId];
        uint256 price = getPrice(factory.ftype, factory.level + 1);

        uint256 userId = addressToUser[msg.sender];
        User storage user = users[userId];

        require(_checkPayment(user, factory.ftype, factory.level + 1));

        // payment
        user.balance = user.balance.add(msg.value);
        user.balance = user.balance.sub(price);
        user.totalPay = user.totalPay.add(price);
        totalDeposit += msg.value;

        _distributeInvestment(msg.value);
        _distributeReferrers(userId, price);

        // collect
        _collectResource(factory, user);
        factory.level++;

        _updateLeaders(msg.sender, msg.value);

        emit LevelUp(_factoryId, factory.level, userId, price);
    }

    /// @notice sell resources of user with type
    /// @param _type type of resources
    /// @return sum of sell
    function sellResources(uint8 _type) public onlyExistingUser returns(uint256) {
        uint256 userId = addressToUser[msg.sender];
        uint256 sum = Math.min(users[userId].resources[_type] * getResourcePrice(_type), address(this).balance);
        users[userId].resources[_type] = 0;

        msg.sender.transfer(sum);

        emit Sell(userId, _type, sum);
        return sum;
    }

    /// @notice function for compute worktime factory
    /// @param _collected_at timestamp of start
    /// @return duration minutes
    function worktimeAtDate(uint256 _collected_at) public view returns(uint256) {
        return (now - _collected_at) / 60;
    }

    /// @notice function for compute duration work factory
    /// @param _factoryId id of factory
    /// @return timestamp of duration
    function worktime(uint256 _factoryId) public view returns(uint256) {
        return worktimeAtDate(factories[_factoryId].collected_at);
    }

    /// @notice function for compute resource factory at time
    /// @param _type type of factory
    /// @param _level level of factory
    /// @param _collected_at timestamp for collect
    /// @return count of resources
    function _resourcesAtTime(FactoryType _type, uint8 _level, uint256 _collected_at) public view returns(uint256) {
        return worktimeAtDate(_collected_at) * (getProductsPerMinute(_type, _level) + getBonusPerMinute(_type, _level)) / 100;
    }

    /// @notice function for compute resource factory at time
    /// @dev wrapper over _resourcesAtTime
    /// @param _factoryId id of factory
    /// @return count of resources
    function resourcesAtTime(uint256 _factoryId) public view returns(uint256) {
        Factory storage factory = factories[_factoryId];
        return _resourcesAtTime(factory.ftype, factory.level, factory.collected_at);
    }

    /// @notice function for collect resource
    /// @param _factory factory object
    /// @param _user user object
    /// @return count of resources
    function _collectResource(Factory storage _factory, User storage _user) internal returns(uint256) {
        uint256 resources = _resourcesAtTime(_factory.ftype, _factory.level, _factory.collected_at);
        _user.resources[uint8(_factory.ftype)] = _user.resources[uint8(_factory.ftype)].add(resources);
        _factory.collected_at = now;

        emit CollectResources(_factory.ftype, resources);
        return resources;
    }

    /// @notice function for collect all resources from all factories
    /// @dev wrapper over _collectResource
    function collectResources() public onlyExistingUser {
        uint256 index = addressToUser[msg.sender];
        User storage user = users[index];
        uint256[] storage factoriesIds = userToFactories[addressToUser[msg.sender]];

        for (uint256 i = 0; i < factoriesIds.length; i++) {
            _collectResource(factories[factoriesIds[i]], user);
        }
    }

}

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"leaderBonuses","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_factoryId","type":"uint256"}],"name":"levelUp","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"marketersPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"register","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_collected_at","type":"uint256"}],"name":"worktimeAtDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyOilFactory","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"developers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"users","outputs":[{"name":"addr","type":"address"},{"name":"balance","type":"uint256"},{"name":"totalPay","type":"uint256"},{"name":"referrersReceived","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"resoucesOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMarketers","type":"address"}],"name":"setMarketers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"developersPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"collectResources","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_indexTable","type":"uint256"}],"name":"getLeadersTableInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"factoryToUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"}],"name":"getResourcePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_indexTable","type":"uint256"}],"name":"getLeaders","outputs":[{"name":"","type":"address[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_userId","type":"uint256"}],"name":"userInfo","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getReferralPercentsByIndex","outputs":[{"name":"","type":"uint16[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user_id","type":"uint256"}],"name":"getFactories","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minSumReferral","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyWoodFactory","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_level","type":"uint8"}],"name":"getPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"factories","outputs":[{"name":"ftype","type":"uint8"},{"name":"level","type":"uint8"},{"name":"collected_at","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_level","type":"uint8"}],"name":"getBonusPerMinute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_level","type":"uint8"},{"name":"_collected_at","type":"uint256"}],"name":"_resourcesAtTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"levelsCount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDevelopers","type":"address"}],"name":"setDevelopers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sum","type":"uint256"}],"name":"getReferralPercents","outputs":[{"name":"","type":"uint16[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"leadersCount","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_refId","type":"uint256"}],"name":"registerWithRefID","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"referralGroups","outputs":[{"name":"minSum","type":"uint256"},{"name":"maxSum","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referrersOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_type","type":"uint8"},{"name":"_level","type":"uint8"}],"name":"getProductsPerMinute","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyMetalFactory","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"leaders","outputs":[{"name":"timestampEnd","type":"uint256"},{"name":"duration","type":"uint256"},{"name":"minSum","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"}],"name":"sellResources","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalUsers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_factoryId","type":"uint256"}],"name":"worktime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"resourcePrices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referralLevelsGroups","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"}],"name":"levelStack","outputs":[{"name":"price","type":"uint256"},{"name":"ppm","type":"uint256"},{"name":"ppmBonus","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_level","type":"uint8"}],"name":"referralsOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint8"}],"name":"buyFactory","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"buyPreciousMetal","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"addressToUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minSumDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_factoryId","type":"uint256"}],"name":"resourcesAtTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"referralLevelsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"userToFactories","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"CreateUser","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_refferalId","type":"uint256"},{"indexed":false,"name":"_userId","type":"uint256"}],"name":"ReferralRegister","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_userId","type":"uint256"},{"indexed":false,"name":"_referrerId","type":"uint256"},{"indexed":false,"name":"_sum","type":"uint256"}],"name":"ReferrerDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_userId","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_userId","type":"uint256"},{"indexed":false,"name":"_factoryId","type":"uint256"},{"indexed":false,"name":"_factoryType","type":"uint8"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"PaymentProceed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_type","type":"uint8"},{"indexed":false,"name":"_resources","type":"uint256"}],"name":"CollectResources","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_factoryId","type":"uint256"},{"indexed":false,"name":"_newLevel","type":"uint8"},{"indexed":false,"name":"_userId","type":"uint256"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"LevelUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_userId","type":"uint256"},{"indexed":false,"name":"_type","type":"uint8"},{"indexed":false,"name":"_sum","type":"uint256"}],"name":"Sell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_indexTable","type":"uint256"},{"indexed":false,"name":"_addr","type":"address"},{"indexed":false,"name":"_index","type":"uint256"},{"indexed":false,"name":"_sum","type":"uint256"}],"name":"NewLeader","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_indexTable","type":"uint256"}],"name":"LeadersClear","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousDevelopers","type":"address"},{"indexed":true,"name":"newDevelopers","type":"address"}],"name":"DevelopersChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousMarketers","type":"address"},{"indexed":true,"name":"newMarketers","type":"address"}],"name":"MarketersChanged","type":"event"}]

Contract Creation Code

60018054600160a060020a0319908116730c05ae835f26a8d4a89ae80c7a0e5495e5361ca11790915560028054821673e222dd2dd012fcac0256b1f3830cc033418b68891790556008805460ff19169055662386f26fc100006009556000600c819055600d819055805490911633178155608081815260a082905260c082905260e09190915260046101408181526101e0604052600a929161010091906101608480388339505050815260408051600580825260c08201909252602092830192909190820160a080388339505050905281546001808201808555600094855260209485902084516007909402018054600160a060020a031916600160a060020a039094169390931783558385015191830191909155604083015160028301556060830151600383015560808301518051919462000145926004850192909101906200016d565b5060a08201518051620001639160058401916020909101906200016d565b50505050620001dd565b828054828255906000526020600020908101928215620001ab579160200282015b82811115620001ab5782518255916020019190600101906200018e565b50620001b9929150620001bd565b5090565b620001da91905b80821115620001b95760008155600101620001c4565b90565b61499380620001ed6000396000f30060806040526004361061029d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302ceb8b381146102a25780630ce90ec2146102cf5780630f3fc087146102dc5780631aa3a008146102f15780631cdb86a3146102f9578063208d5e9f146103115780632bc31ca414610319578063365b98b21461034a5780633887dae91461039257806339347d52146103f75780633a033915146104185780633bbfe1411461042d5780633eb1137e146104425780633fc282ef1461047857806342583c02146104905780634bd51822146104a55780634db2a711146104c057806351d70bc4146105715780635875455e146106505780635a2587f4146106685780635b9280f6146106805780635ee6e3a21461069557806360e5ef3a1461069d578063672383c4146106be57806368ec45121461070e578063715b3ec91461072f578063722713f71461075357806383c6a62b146107685780638ab476bf146107935780638da5cb5b146107b457806391ddb16d146107c9578063930efb711461076857806393d1c8ad146107e157806397ff49e7146107ec578063994678ea1461081d5780639a08b33814610832578063a16e8b2014610853578063a36e65771461085b578063af6a1a9a14610873578063ba0bba401461088e578063bff1f9e1146108a3578063c4e26656146108b8578063d0e30db0146108d0578063d9fe8286146108d8578063da0aedb1146108f3578063e1fc887e14610908578063e5d7bd4f14610929578063e8364cde14610944578063eae84a3014610952578063edf538861461095a578063f2fde38b1461097b578063f6153ccd1461099c578063f6d90974146109b1578063f7ad68ed146109c6578063f93745f0146109de578063fc412987146109f3575b600080fd5b3480156102ae57600080fd5b506102bd60ff60043516610a0e565b60408051918252519081900360200190f35b6102da600435610a20565b005b3480156102e857600080fd5b506102bd610cb2565b6102bd610cb7565b34801561030557600080fd5b506102bd600435610e5e565b6102bd610e69565b34801561032557600080fd5b5061032e610e7b565b60408051600160a060020a039092168252519081900360200190f35b34801561035657600080fd5b50610362600435610e8a565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561039e57600080fd5b506103a7610ecc565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103e35781810151838201526020016103cb565b505050509050019250505060405180910390f35b34801561040357600080fd5b506102da600160a060020a0360043516610f51565b34801561042457600080fd5b506102bd610fd9565b34801561043957600080fd5b506102da610fde565b34801561044e57600080fd5b5061045a6004356110a5565b60408051938452602084019290925282820152519081900360600190f35b34801561048457600080fd5b506102bd60043561111a565b34801561049c57600080fd5b5061032e61112c565b3480156104b157600080fd5b506102bd60ff6004351661113b565b3480156104cc57600080fd5b506104d8600435611150565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561051c578181015183820152602001610504565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561055b578181015183820152602001610543565b5050505090500194505050505060405180910390f35b34801561057d57600080fd5b50610589600435611286565b6040518087600160a060020a0316600160a060020a031681526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156105f75781810151838201526020016105df565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561063657818101518382015260200161061e565b505050509050019850505050505050505060405180910390f35b34801561065c57600080fd5b506103a76004356113cd565b34801561067457600080fd5b506103a760043561146d565b34801561068c57600080fd5b506102bd6114ce565b6102bd6114d9565b3480156106a957600080fd5b506102bd60ff600435811690602435166114e5565b3480156106ca57600080fd5b506106d6600435611523565b604051808460038111156106e657fe5b60ff1681526020018360ff1660ff168152602001828152602001935050505060405180910390f35b34801561071a57600080fd5b506102bd60ff6004358116906024351661155d565b34801561073b57600080fd5b506102bd60ff6004358116906024351660443561159e565b34801561075f57600080fd5b506102bd6115d3565b34801561077457600080fd5b5061077d611609565b6040805160ff9092168252519081900360200190f35b34801561079f57600080fd5b506102da600160a060020a036004351661160e565b3480156107c057600080fd5b5061032e611696565b3480156107d557600080fd5b506103a76004356116a5565b6102bd6004356117b8565b3480156107f857600080fd5b50610804600435611837565b6040805192835260208301919091528051918290030190f35b34801561082957600080fd5b506103a7611863565b34801561083e57600080fd5b506102bd60ff600435811690602435166118e6565b6102bd611927565b34801561086757600080fd5b5061045a600435611933565b34801561087f57600080fd5b506102bd60ff60043516611964565b34801561089a57600080fd5b506102da611b39565b3480156108af57600080fd5b506102bd611b8f565b3480156108c457600080fd5b506102bd600435611b95565b6102bd611bc6565b3480156108e457600080fd5b506102bd60ff60043516611d38565b3480156108ff57600080fd5b506102bd611d4a565b34801561091457600080fd5b5061045a60ff60043581169060243516611d4f565b34801561093557600080fd5b506103a760ff60043516611d7b565b6102bd60ff60043516611e0b565b6102bd611e83565b34801561096657600080fd5b506102bd600160a060020a0360043516611e8f565b34801561098757600080fd5b506102da600160a060020a0360043516611ea1565b3480156109a857600080fd5b506102bd611f28565b3480156109bd57600080fd5b506102bd611f2e565b3480156109d257600080fd5b506102bd600435611f34565b3480156109ea57600080fd5b506102bd611f76565b3480156109ff57600080fd5b506102bd600435602435611f7b565b60066020526000908152604090205481565b336000908152600b60205260408120548190819081901515610a4157600080fd5b600e805486908110610a4f57fe5b600091825260209091206002909102018054909450610a7c9060ff808216916101009004166001016114e5565b336000908152600b6020526040902054600a80549295509093509083908110610aa157fe5b60009182526020918290206040805160c08101825260079093029091018054600160a060020a0316835260018101548385015260028101548383015260038101546060840152600481018054835181870281018701909452808452919550610bb59486936080860193909291830182828015610b3c57602002820191906000526020600020905b815481526020019060010190808311610b28575b5050505050815260200160058201805480602002602001604051908101604052809291908181526020018280548015610b9457602002820191906000526020600020905b815481526020019060010190808311610b80575b505050919092525050865460ff808216925061010090910416600101611fab565b1515610bc057600080fd5b6001810154610bd5903463ffffffff611fee16565b60018201819055610bec908463ffffffff61200016565b60018201556002810154610c06908463ffffffff611fee16565b6002820155600d805434908101909155610c1f90612017565b610c298284612097565b610c3384826122cc565b50835460ff61010080830482166001019091160261ff0019909116178455610c5b33346123c6565b83546040805187815261010090920460ff16602083015281810184905260608201859052517fc2947d4d847973e25404afd7931f9ffeb6d01890ee4578d3c65041c4276bb667916080908290030190a15050505050565b600e81565b336000908152600b6020526040812054819015610cd357600080fd5b336000908152600b602052604090205415610ced57600080fd5b6040805160c081018252338152346020820152600081830181905260608201528151600480825260a08201909352600192600a92916080830191816020016020820280388339505050815260408051600580825260c08201909252602092830192909190820160a080388339505050905281546001808201808555600094855260209485902084516007909402018054600160a060020a031916600160a060020a0390941693909317835583850151918301919091556040830151600283015560608301516003830155608083015180519194610dd29260048501929091019061475b565b5060a08201518051610dee91600584019160209091019061475b565b5050336000818152600b60209081526040918290209590940394859055600c805460010190558051858152938401919091523483820152519293507f4f936a96f51e2c2ffe18b6b6f1e4387c6bf1cddeb935d58cab653eb22ead430a9291829003606001919050a18091505b5090565b603c42919091030490565b6000610e756002611e0b565b90505b90565b600154600160a060020a031681565b600a805482908110610e9857fe5b60009182526020909120600790910201805460018201546002830154600390930154600160a060020a039092169350919084565b336000908152600b6020526040902054600a8054606092908110610eec57fe5b9060005260206000209060070201600401805480602002602001604051908101604052809291908181526020018280548015610f4757602002820191906000526020600020905b815481526020019060010190808311610f33575b5050505050905090565b600054600160a060020a03163314610f6857600080fd5b600160a060020a0381161515610f7d57600080fd5b600254604051600160a060020a038084169216907f5650bc3484c51d95070941164495fa61356f571133f65393510e90fa461118fc90600090a360028054600160a060020a031916600160a060020a0392909216919091179055565b600181565b336000908152600b60205260408120548190819081901515610fff57600080fd5b336000908152600b6020526040902054600a8054919550908590811061102157fe5b60009182526020808320338452600b8252604080852054855260109092529083206007909202019450925090505b815481101561109f57611096600e838381548110151561106b57fe5b906000526020600020015481548110151561108257fe5b9060005260206000209060020201846122cc565b5060010161104f565b50505050565b60008060006007848154811015156110b957fe5b9060005260206000209060050201600001546007858154811015156110da57fe5b9060005260206000209060050201600101546007868154811015156110fb57fe5b9060005260206000209060050201600201549250925092509193909250565b600f6020526000908152604090205481565b600254600160a060020a031681565b60ff1660009081526003602052604090205490565b60608060006060600060078681548110151561116857fe5b9060005260206000209060050201925082600301805490506040519080825280602002602001820160405280156111a9578160200160208202803883390190505b509150600090505b60038301548110156112195782600401600084600301838154811015156111d457fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902054825183908390811061120757fe5b602090810290910101526001016111b1565b82600301828180548060200260200160405190810160405280929190818152602001828054801561127357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611255575b5050505050915094509450505050915091565b6000806000806060806112976147a2565b600a8054899081106112a557fe5b60009182526020918290206040805160c08101825260079093029091018054600160a060020a03168352600181015483850152600281015483830152600381015460608401526004810180548351818702810187019094528084529394919360808601939283018282801561133957602002820191906000526020600020905b815481526020019060010190808311611325575b505050505081526020016005820180548060200260200160405190810160405280929190818152602001828054801561139157602002820191906000526020600020905b81548152602001906001019080831161137d575b5050509190925250508151602083015160408401516060850151608086015160a090960151939e929d50909b5099509297509550909350505050565b60606005828154811015156113de57fe5b906000526020600020906003020160020180548060200260200160405190810160405280929190818152602001828054801561146157602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116114285790505b50505050509050919050565b60008181526010602090815260409182902080548351818402810184019094528084526060939283018282801561146157602002820191906000526020600020905b8154815260200190600101908083116114af5750505050509050919050565b662386f26fc1000081565b6000610e756000611e0b565b6000600460008460038111156114f757fe5b60ff90811682526020808301939093526040918201600090812091861681529252902054905092915050565b600e80548290811061153157fe5b60009182526020909120600290910201805460019091015460ff80831693506101009092049091169083565b60006004600084600381111561156f57fe5b60ff90811682526020808301939093526040918201600090812091861681529252902060020154905092915050565b600060646115ac858561155d565b6115b686866118e6565b016115c084610e5e565b028115156115ca57fe5b04949350505050565b336000908152600b6020526040812054600a805490919081106115f257fe5b906000526020600020906007020160010154905090565b600781565b600054600160a060020a0316331461162557600080fd5b600160a060020a038116151561163a57600080fd5b600154604051600160a060020a038084169216907f7d28dbfe9b3b0a2416f60ca7bc6f6cd19d476b00cec731d9c37ac02a09613d7390600090a360018054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a031681565b606060006116b16147e2565b600091505b60038210156117b15760058054839081106116cd57fe5b90600052602060002090600302016060604051908101604052908160008201548152602001600182015481526020016002820180548060200260200160405190810160405280929190818152602001828054801561177257602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116117395790505b505050505081525050905080600001518410158015611795575080602001518411155b156117a657806040015192506117b1565b6001909101906116b6565b5050919050565b336000908152600b60205260408120548190156117d457600080fd5b600a5483106117e257600080fd5b6117ea610cb7565b90506117f681846123eb565b604080518481526020810183905281517fb900dc1fba63117f0809180dec6da68c5bc269d0d8338586b2d57235a0671c13929181900390910190a192915050565b600580548290811061184557fe5b60009182526020909120600390910201805460019091015490915082565b336000908152600b6020526040902054600a805460609290811061188357fe5b9060005260206000209060070201600501805480602002602001604051908101604052809291908181526020018280548015610f475760200282019190600052602060002090815481526020019060010190808311610f33575050505050905090565b6000600460008460038111156118f857fe5b60ff90811682526020808301939093526040918201600090812091861681529252902060010154905092915050565b6000610e756001611e0b565b600780548290811061194157fe5b600091825260209091206005909102018054600182015460029092015490925083565b336000908152600b602052604081205481908190151561198357600080fd5b336000908152600b60205260409020549150739a103a76447a747194ec6439de5e2e6eac597db1637ae2b5c76119b88661113b565b600a8054869081106119c657fe5b90600052602060002090600702016004018760ff168154811015156119e757fe5b90600052602060002001540230600160a060020a0316316040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b158015611a5557600080fd5b505af4158015611a69573d6000803e3d6000fd5b505050506040513d6020811015611a7f57600080fd5b5051600a805491925060009184908110611a9557fe5b90600052602060002090600702016004018560ff16815481101515611ab657fe5b6000918252602082200191909155604051339183156108fc02918491818181858888f19350505050158015611aef573d6000803e3d6000fd5b506040805183815260ff8616602082015280820183905290517fdef385fd9bc4ede5eab81b236ae5ae807f524e23733877f374ab4c709179a2d99181900360600190a19392505050565b600054600160a060020a03163314611b5057600080fd5b60085460ff1615611b6057600080fd5b6008805460ff19166001179055611b7561254b565b611b7d6125f7565b611b856136bc565b611b8d613bed565b565b600c5481565b6000611bc0600e83815481101515611ba957fe5b906000526020600020906002020160010154610e5e565b92915050565b336000908152600b602052604081205481901515611be357600080fd5b6009543411611c5357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4465706f73697420646f6573206e6f7420656e6f756768000000000000000000604482015290519081900360640190fd5b50336000908152600b6020526040902054600a8054611c9891349184908110611c7857fe5b906000526020600020906007020160010154611fee90919063ffffffff16565b600a805483908110611ca657fe5b6000918252602090912060016007909202010155600d805434908101909155611cce90612017565b611cd833346123c6565b6040805182815234602082015281517fa3af609bf46297028ce551832669030f9effef2b02606d02cbbcc40fe6b47c55929181900390910190a1600a805482908110611d2057fe5b90600052602060002090600702016001015491505090565b60036020526000908152604090205481565b600381565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b336000908152600b6020526040902054600a8054606092908110611d9b57fe5b6000918252602080832060ff8616845260066007909302019190910181526040918290208054835181840281018401909452808452909183018282801561146157602002820191906000526020600020908154815260200190600101908083116114af5750505050509050919050565b336000908152600b602052604081205481901515611e2857600080fd5b50336000908152600b6020526040902054801515611e4b57611e48610cb7565b90505b611e7c81606060405190810160405280866003811115611e6757fe5b81526000602082015242604090910152613fea565b9392505050565b6000610e756003611e0b565b600b6020526000908152604090205481565b600054600160a060020a03163314611eb857600080fd5b600160a060020a0381161515611ecd57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b600d5481565b60095481565b600080600e83815481101515611f4657fe5b6000918252602090912060029091020180546001820154919250611e7c9160ff808316926101009004169061159e565b600581565b601060205281600052604060002081815481101515611f9657fe5b90600052602060002001600091509150505481565b600080611fc5348660200151611fee90919063ffffffff16565b9050611fd184846114e5565b811015611fe15760009150611fe6565b600191505b509392505050565b600082820183811015611e7c57600080fd5b6000808383111561201057600080fd5b5050900390565b600154604051600160a060020a03909116906064340480156108fc02916000818181858888f19350505050158015612053573d6000803e3d6000fd5b50600254604051600160a060020a03909116906064600e34020480156108fc02916000818181858888f19350505050158015612093573d6000803e3d6000fd5b5050565b606060008060606000600a878154811015156120af57fe5b906000526020600020906007020160050180548060200260200160405190810160405280929190818152602001828054801561210a57602002820191906000526020600020905b8154815260200190600101908083116120f6575b50505050509450600093505b60058410156122c357848481518110151561212d57fe5b906020019060200201519250848481518110151561214757fe5b906020019060200201516000141561215e576122c3565b662386f26fc10000600a8481548110151561217557fe5b9060005260206000209060070201600201541015612192576122b8565b6121bb600a848154811015156121a457fe5b9060005260206000209060070201600201546116a5565b915061271082858151811015156121ce57fe5b9060200190602002015161ffff1687028115156121e757fe5b0490506121fd81600a85815481101515611c7857fe5b600a80548590811061220b57fe5b90600052602060002090600702016001018190555061225381600a8581548110151561223357fe5b906000526020600020906007020160030154611fee90919063ffffffff16565b600a80548590811061226157fe5b60009182526020918290206003600790920201019190915560408051898152918201859052818101839052517f211f658fbe3faa22f0ca8b56ad45888186f5bd0737b447cea43e6a0894b330109181900360600190a15b600190930192612116565b50505050505050565b8154600183015460009182916122ef9160ff80821692610100909204169061159e565b8454909150612335908290600486019060ff16600381111561230d57fe5b60ff1681548110151561231c57fe5b9060005260206000200154611fee90919063ffffffff16565b8454600485019060ff16600381111561234a57fe5b60ff1681548110151561235957fe5b60009182526020909120015542600185015583546040517f5dc5b82e66c5dcc43c01835de9ee74f6380209b673fbdd18668826fc898c66b19160ff16908390808360038111156123a557fe5b60ff1681526020018281526020019250505060405180910390a19392505050565b60005b6007548110156123e6576123de8184846142b0565b6001016123c9565b505050565b600080828414156123fb5761109f565b82600a8581548110151561240b57fe5b9060005260206000209060070201600501600081548110151561242a57fe5b600091825260209091200155600191505b600582101561250757600a80548490811061245257fe5b90600052602060002090600702016005016001830381548110151561247357fe5b9060005260206000200154905080600a8581548110151561249057fe5b9060005260206000209060070201600501838154811015156124ae57fe5b600091825260209091200155600a8054829081106124c857fe5b6000918252602080832060ff8616845260066007909302019190910181526040822080546001818101835591845291909220018590559091019061243b565b600a80548490811061251557fe5b60009182526020808320838052600660079093020191909101815260408220805460018101825590835291200184905550505050565b60036020819052640563d8f7807f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5564087d2f73007fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c556409e19f02007fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d55600052640f7eb069807fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af55565b6040805160608082018352662386f26fc10000825260c8602080840191825260008486018181528180527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec80845295517f396a5abb6bca56e91bb5dd6bbc43dc9c37f3b8d5af727f8b42952b318eb483f75592517f396a5abb6bca56e91bb5dd6bbc43dc9c37f3b8d5af727f8b42952b318eb483f85591517f396a5abb6bca56e91bb5dd6bbc43dc9c37f3b8d5af727f8b42952b318eb483f95584518084018652666a94d74f43000081526101908183019081528187018481528480527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe0580855292517fa854ba23287a95c22b66b66e4f07bb2441b3fd4ecec9d0720a55aaffc00a6db45590517fa854ba23287a95c22b66b66e4f07bb2441b3fd4ecec9d0720a55aaffc00a6db555517fa854ba23287a95c22b66b66e4f07bb2441b3fd4ecec9d0720a55aaffc00a6db6558551808501875266b1a2bc2ec500008082526102588285019081528289018681528680527f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a780875293517f23a8b3930d40243c6050962392c5f42a8d68219c31a95256ad251969f8898d7d5590517f23a8b3930d40243c6050962392c5f42a8d68219c31a95256ad251969f8898d7e55517f23a8b3930d40243c6050962392c5f42a8d68219c31a95256ad251969f8898d7f558751808701895267016345785d8a00008152610320818601908152818a018781528780527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa080885292517f28b425f61cad6d11aeb5a0203d47cee5c848ac803463a42255b3f6bb79a2e3a25590517f28b425f61cad6d11aeb5a0203d47cee5c848ac803463a42255b3f6bb79a2e3a355517f28b425f61cad6d11aeb5a0203d47cee5c848ac803463a42255b3f6bb79a2e3a45588518088018a529182526104b08286019081526078838b0190815260018089528a885293517f560c5c35d362ebe12852e61b5bb1957021175ee6b552ac19e7c3fb4e272bed3f5590517f560c5c35d362ebe12852e61b5bb1957021175ee6b552ac19e7c3fb4e272bed4055517f560c5c35d362ebe12852e61b5bb1957021175ee6b552ac19e7c3fb4e272bed415588518088018a5267013fbe85edc900008152610640818701908152608a828c0190815284895286885291517f91a929c9ec5705e488608361b51aeeb184fe55eb85793f3a420f51243ca22a3755517f91a929c9ec5705e488608361b51aeeb184fe55eb85793f3a420f51243ca22a3855517f91a929c9ec5705e488608361b51aeeb184fe55eb85793f3a420f51243ca22a395588518088018a52670214e8348c4f0000815261096081870181815260a4838d01908152858a5286895292517f6763387ad2d066a53cf4a1abdf70cd5bddab334e579a9ba59bf3a7a53cda81ca55517f6763387ad2d066a53cf4a1abdf70cd5bddab334e579a9ba59bf3a7a53cda81cb5590517f6763387ad2d066a53cf4a1abdf70cd5bddab334e579a9ba59bf3a7a53cda81cc5589518089018b526706f05b59d3b2000081526112c08188019081526101a2828d0190815294895283885290517ee28636aab960e5ab7bae6afd10a8cb24d3e08dacfd8c3a510db09eb714d13655517ee28636aab960e5ab7bae6afd10a8cb24d3e08dacfd8c3a510db09eb714d1375591517ee28636aab960e5ab7bae6afd10a8cb24d3e08dacfd8c3a510db09eb714d1385588518088018a526701aa535d3d0c00008152610e1081870190815261021c828c019081526002808a528b895292517ff2dfd1aed85f0715c432d0e56b8d7d53fa1dec4c25ed607e31f579ced79688cc5590517ff2dfd1aed85f0715c432d0e56b8d7d53fa1dec4c25ed607e31f579ced79688cd55517ff2dfd1aed85f0715c432d0e56b8d7d53fa1dec4c25ed607e31f579ced79688ce5589518089018b526703bf3b91c95b00008152611450818801908152610362828d01908152838a5287895291517f3ee599b7498e5f58c0cf496e6a67fe2810c85ff58f1b3809c5e04df57a6aac5d55517f3ee599b7498e5f58c0cf496e6a67fe2810c85ff58f1b3809c5e04df57a6aac5e55517f3ee599b7498e5f58c0cf496e6a67fe2810c85ff58f1b3809c5e04df57a6aac5f5589518089018b526704db73254763000081526119c881880190815261041a828d01908152838a5286895291517f88fd72165bcd3228b2975728293d34e1dc5b10f8d02106c2da453d97ba88259e55517f88fd72165bcd3228b2975728293d34e1dc5b10f8d02106c2da453d97ba88259f55517f88fd72165bcd3228b2975728293d34e1dc5b10f8d02106c2da453d97ba8825a05589518089018b52670de0b6b3a76400008152613200818801908152610686828d0190815292895283885290517f4e35876bfafde0e405c900e55a6f475631cef9a6ee8a84dcc5b7c2d3f34cc97a55517f4e35876bfafde0e405c900e55a6f475631cef9a6ee8a84dcc5b7c2d3f34cc97b55517f4e35876bfafde0e405c900e55a6f475631cef9a6ee8a84dcc5b7c2d3f34cc97c5588518088018a52670429d069189e00008152612580818701908152818b0193845260038089528a885291517fee69c65cdda9eb329ced9262963bb8486a7a0b875d65ea6fea5d6082f29d26d855517fee69c65cdda9eb329ced9262963bb8486a7a0b875d65ea6fea5d6082f29d26d95591517fee69c65cdda9eb329ced9262963bb8486a7a0b875d65ea6fea5d6082f29d26da5588518088018a52670a688906bd8b00008152613b60818701908152610f8c828c0190815284895286885291517f3b6e0960102b35c1db694ba6b177dcaa59c66c9ba0851b01eccff0beab17143255517f3b6e0960102b35c1db694ba6b177dcaa59c66c9ba0851b01eccff0beab17143355517f3b6e0960102b35c1db694ba6b177dcaa59c66c9ba0851b01eccff0beab1714345588518088018a52670ff59ee833b300008152614fb08187019081526113eb828c0190815284895285885291517f4d16478f263168393d7809adc880ac5e7305b6a7c70b135338e83054c1d8c63755517f4d16478f263168393d7809adc880ac5e7305b6a7c70b135338e83054c1d8c63855517f4d16478f263168393d7809adc880ac5e7305b6a7c70b135338e83054c1d8c6395588518088018a526730927f74c9de00008152619f60818701908152612d0b828c0190815293885282875290517fe27dfb2d9260308d6dd9fcd4a2ce73f304364e51dea6458da55186c791359aa255517fe27dfb2d9260308d6dd9fcd4a2ce73f304364e51dea6458da55186c791359aa35590517fe27dfb2d9260308d6dd9fcd4a2ce73f304364e51dea6458da55186c791359aa45587518087018952670c7d713b49da00008152616bd08186019081526125bc828b0190815260048089528a885292517fea5996a30a7b5148ea8ae9f9e6414dcb8e95eb69c5913e5c0893149dc7d6a4905590517fea5996a30a7b5148ea8ae9f9e6414dcb8e95eb69c5913e5c0893149dc7d6a49155517fea5996a30a7b5148ea8ae9f9e6414dcb8e95eb69c5913e5c0893149dc7d6a4925588518088018a52671d8f47b6fb950000815261aa50818701908152613cd0828c0190815283895286885291517f27f67f2fb764f60cab74e53493d0a4d2d76b9f5a8551fc5dbd83c8063cc2760455517f27f67f2fb764f60cab74e53493d0a4d2d76b9f5a8551fc5dbd83c8063cc2760555517f27f67f2fb764f60cab74e53493d0a4d2d76b9f5a8551fc5dbd83c8063cc276065588518088018a526729a2241af62c0000815261dc50818701908152614617828c0190815283895285885291517f2a5eb5e5cd4ef8c3653d1b20d8459ccc86f59b3b41d82ddfe5d439a689ff42e555517f2a5eb5e5cd4ef8c3653d1b20d8459ccc86f59b3b41d82ddfe5d439a689ff42e655517f2a5eb5e5cd4ef8c3653d1b20d8459ccc86f59b3b41d82ddfe5d439a689ff42e75588518088018a52676124fee993bc0000815262017a20818701908152617b4f828c0190815292885283875290517f0154c2e4713e919f56e9a62c2d9f91cf6332973d766728b279d479f2fa836f9955517f0154c2e4713e919f56e9a62c2d9f91cf6332973d766728b279d479f2fa836f9a55517f0154c2e4713e919f56e9a62c2d9f91cf6332973d766728b279d479f2fa836f9b55875180870189526718fae27693b40000815261f870818601908152616360828b0190815260058089528a885292517ffa0d179563c9e5c14edf3a8a9102984589c0ea3b3d3d699748ce2e8c4c0ab70f5590517ffa0d179563c9e5c14edf3a8a9102984589c0ea3b3d3d699748ce2e8c4c0ab71055517ffa0d179563c9e5c14edf3a8a9102984589c0ea3b3d3d699748ce2e8c4c0ab7115588518088018a526749b0e8ddcd53000081526201bee081870190815261bf7e828c0190815283895286885291517f9417635565144f98cdc337db16e3960dc472d5f2cec7490e80b187b96956e23955517f9417635565144f98cdc337db16e3960dc472d5f2cec7490e80b187b96956e23a55517f9417635565144f98cdc337db16e3960dc472d5f2cec7490e80b187b96956e23b5588518088018a5267654ecf52ac5a000081526202328081870190815261d94d828c0190815283895285885291517f822090a11f07b1fa8f4320e2328b04cac3376f13313b9fb19d7716aa7bfddae855517f822090a11f07b1fa8f4320e2328b04cac3376f13313b9fb19d7716aa7bfddae955517f822090a11f07b1fa8f4320e2328b04cac3376f13313b9fb19d7716aa7bfddaea5588518088018a5267ed4f67667b2e0000815262039080818701908152620178ec828c0190815292885283875290517fec281f185d823a12129c16fc96d4e0a64e04204d9f68fa9ab19c2164a51ab2f955517fec281f185d823a12129c16fc96d4e0a64e04204d9f68fa9ab19c2164a51ab2fa55517fec281f185d823a12129c16fc96d4e0a64e04204d9f68fa9ab19c2164a51ab2fb5587518087018952674af0a763bb1c0000815262029e5081860190815262014f28828b01908152600680895299875291517f69c676e78995e2cf5a57e312863efb1383e3f192643840df5fe092d155b1f58855517f69c676e78995e2cf5a57e312863efb1383e3f192643840df5fe092d155b1f58955517f69c676e78995e2cf5a57e312863efb1383e3f192643840df5fe092d155b1f58a558751808701895267c0c331685a2d0000815262048da0818601908152620269a8828b0190815289885294865290517f26468128a980f5566a780c2d32523aa1b434f4b4a83c4fc96fb3566c9511fa3855517f26468128a980f5566a780c2d32523aa1b434f4b4a83c4fc96fb3566c9511fa395591517f26468128a980f5566a780c2d32523aa1b434f4b4a83c4fc96fb3566c9511fa3a55865180860188526801534fd975564d000081526206ac9881850190815262035632828a0190815288875292855290517fdbc5932080e89e7fd4fa1f3bd1a06885b4fc4cf0601680e710c65b4987eb6be955517fdbc5932080e89e7fd4fa1f3bd1a06885b4fc4cf0601680e710c65b4987eb6bea55517fdbc5932080e89e7fd4fa1f3bd1a06885b4fc4cf0601680e710c65b4987eb6beb5585519384018652680302379bf2ca2e00008452620a56e0848301908152620565099685019687529490925252517f8be65cea2bf2db3461a657d06735eb4fe94f065782dde430adec36d1993ad2e955517f8be65cea2bf2db3461a657d06735eb4fe94f065782dde430adec36d1993ad2ea55517f8be65cea2bf2db3461a657d06735eb4fe94f065782dde430adec36d1993ad2eb55565b6136c46147e2565b6136cc6147e2565b6136d46147e2565b60408051606081018252662386f26fc100008152678ac7230489e7ffff60208201528151600580825260c082018452919283019181602001602082028038833950505090526040810151805191945061012c91600090811061373257fe5b61ffff90921660209283029091019091015260408301518051604b9190600190811061375a57fe5b61ffff90921660209283029091019091015260408301518051603c9190600290811061378257fe5b61ffff909216602092830290910190910152604083015180516028919060039081106137aa57fe5b61ffff909216602092830290910190910152604083015180516019919060049081106137d257fe5b61ffff90921660209283029091018201526005805460018101808355600092909252855160039091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101918255868401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db18201556040870151805193948894613884937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2019290910190614804565b505060408051606081018252678ac7230489e8000081526802b5e3af16b187ffff60208201528151600580825260c08201845291945091840192508160200160208202803883395050509052604081015180519193506101f49160009081106138e957fe5b61ffff9092166020928302909101909101526040820151805160c89190600190811061391157fe5b61ffff9092166020928302909101909101526040820151805160969190600290811061393957fe5b61ffff9092166020928302909101909101526040820151805160649190600390811061396157fe5b61ffff9092166020928302909101909101526040820151805160329190600490811061398957fe5b61ffff90921660209283029091018201526005805460018101808355600092909252845160039091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101918255858401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db18201556040860151805193948794613a3b937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2019290910190614804565b5050604080516060810182526802b5e3af16b1880000815260001960208201528151600580825260c08201845291945091840192508160200160208202803883395050509052604081015180519192506102bc916000908110613a9a57fe5b61ffff9092166020928302909101909101526040810151805161012c91906001908110613ac357fe5b61ffff9092166020928302909101909101526040810151805160fa91906002908110613aeb57fe5b61ffff90921660209283029091019091015260408101518051609691906003908110613b1357fe5b61ffff90921660209283029091019091015260408101518051606491906004908110613b3b57fe5b61ffff90921660209283029091018201526005805460018101808355600092909252835160039091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db08101918255848401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db182015560408501518051939486946122c3937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2019290910190614804565b60066020908152600a7f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85560077f3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a3181905560057f8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace2981905560037f75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d25560017fc5069e24aaadb2addc3e52e868fcf3f4f8acf5a87e24300992fd4540c2a87eed81905560007fbfd358e93f18da3ed276c3afdbdba00b8f0b6008a03476a6a86bd6320ee6938b8190557f697b2bd7bb2984c4e0dc14c79c987d37818484a62958b9c45a0e8b962f20650f819055604080516080810182526201518042810182528188019081528183018481528351858152808a019094526060830193845287549586018089559790945281517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68895909602948501958655517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68985015591517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a84015551805194959194613de5937fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68b019291909101906148a9565b5050505060076080604051908101604052804262093a8001815260200162093a808152602001600081526020016000604051908082528060200260200182016040528015613e3d578160200160208202803883390190505b5090528154600181810180855560009485526020948590208451600590940201928355848401519183019190915560408301516002830155606083015180519194613e90926003850192909101906148a9565b505050506007608060405190810160405280426304a286000181526020016304a286008152602001600081526020016000604051908082528060200260200182016040528015613eea578160200160208202803883390190505b5090528154600181810180855560009485526020948590208451600590940201928355848401519183019190915560408301516002830155606083015180519194613f3d926003850192909101906148a9565b505050506007608060405190810160405280426301e133800181526020016301e133808152602001600081526020016000604051908082528060200260200182016040528015613f97578160200160208202803883390190505b509052815460018181018085556000948552602094859020845160059094020192835584840151918301919091556040830151600283015560608301518051919461109f926003850192909101906148a9565b600080600080600a86815481101515613fff57fe5b60009182526020918290206040805160c08101825260079093029091018054600160a060020a031683526001810154838501526002810154838301526003810154606084015260048101805483518187028101870190945280845291975061410a948893608086019390929183018282801561409a57602002820191906000526020600020905b815481526020019060010190808311614086575b50505050508152602001600582018054806020026020016040519081016040528092919081815260200182805480156140f257602002820191906000526020600020905b8154815260200190600101908083116140de575b50505050508152505086600001518760200151611fab565b151561411557600080fd5b84516141229060006114e5565b600184015490925061413a903463ffffffff611fee16565b60018401819055614151908363ffffffff61200016565b6001840155600283015461416b908363ffffffff611fee16565b600280850191909155600d805434019055600e805460018181018084556000939093528851919093027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd018054899290829060ff1916868360038111156141ce57fe5b0217905550602082810151825460ff9091166101000261ff0019909116178255604092830151600192830155939092036000818152600f85528281208b90558a81526010855291822080549384018155825292902001819055905061423234612017565b61423c8683612097565b61424633346123c6565b7f8f59dce00c1ab7202394532f1ca472fd1968974b94e346f4bb01270676cbe89686828760000151856040518085815260200184815260200183600381111561428b57fe5b60ff16815260200182815260200194505050505060405180910390a195945050505050565b6000806000806007878154811015156142c557fe5b9060005260206000209060050201600001544211156142e7576142e78761446f565b60078054889081106142f557fe5b60009182526020808320600260059093020191820154600160a060020a038a16845260048301909152604090922054909550908110159350915061433f828663ffffffff611fee16565b600160a060020a03871660009081526004860160205260409020819055600285015490915081108015614376575060038401546007145b15614380576122c3565b82158061438f57506003840154155b156143c55760038401805460018101825560009182526020909120018054600160a060020a031916600160a060020a0388161790555b6003840154600110156143e8576143e8846000600187600301805490500361455a565b60038401546007101561442057600384018054600690811061440657fe5b60009182526020909120018054600160a060020a03191690555b6003840180546004860191600091600019810190811061443c57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902054600285015550505050505050565b600060078281548110151561448057fe5b6000918252602080832060408051608081018252600594909402909101600181015481548101855284840152838201859052815194855291840190526060820192909252600780549293509091849081106144d757fe5b9060005260206000209060050201600082015181600001556020820151816001015560408201518160020155606082015181600301908051906020019061451f9291906148a9565b50506040805184815290517f7cce3b409f5d6aca017a29bcb7332d4626c08cc76a25438953274f45723716c692509081900360200190a15050565b818160008183141561456b57614753565b60048601600060038801600288880305880181548110151561458957fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205490505b81831361472d575b8086600401600088600301868154811015156145d157fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020541115614607576001909201916145b9565b856004016000876003018481548110151561461e57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020548111156146565760001990910190614607565b818313614728576003860180548390811061466d57fe5b600091825260209091200154600387018054600160a060020a03909216918590811061469557fe5b600091825260209091200154600388018054600160a060020a0390921691869081106146bd57fe5b90600052602060002001600089600301868154811015156146da57fe5b60009182526020909120018054600160a060020a03948516600160a060020a031990911617905581549383166101009190910a90810292021990921617905560019290920191600019909101905b6145b1565b818512156147405761474086868461455a565b838312156147535761475386848661455a565b505050505050565b828054828255906000526020600020908101928215614796579160200282015b8281111561479657825182559160200191906001019061477b565b50610e5a92915061490a565b60c0604051908101604052806000600160a060020a0316815260200160008152602001600081526020016000815260200160608152602001606081525090565b6060604051908101604052806000815260200160008152602001606081525090565b82805482825590600052602060002090600f0160109004810192821561489d5791602002820160005b8382111561486d57835183826101000a81548161ffff021916908361ffff160217905550926020019260020160208160010104928301926001030261482d565b801561489b5782816101000a81549061ffff021916905560020160208160010104928301926001030261486d565b505b50610e5a929150614924565b8280548282559060005260206000209081019282156148fe579160200282015b828111156148fe5782518254600160a060020a031916600160a060020a039091161782556020909201916001909101906148c9565b50610e5a929150614943565b610e7891905b80821115610e5a5760008155600101614910565b610e7891905b80821115610e5a57805461ffff1916815560010161492a565b610e7891905b80821115610e5a578054600160a060020a03191681556001016149495600a165627a7a7230582001b84be694a48107af3fc4e24ca99f2f35387aa892b94a6ddf2e95544a564d990029

Swarm Source

bzzr://01b84be694a48107af3fc4e24ca99f2f35387aa892b94a6ddf2e95544a564d99
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.