Contract 0x8b866c709BF85303aBF9fB9082475C31AAF02EA5 1

 
Ad
Ad
Txn Hash Method
Block
From
To
Value
0x40df626f425fff14c0b338c7a5feb67b10b2a441ce9b5e00744041ea968632750xdf2a93dd94629742020-02-11 17:13:29593 days 8 hrs ago0x840c063fc9c7532385ab87d089d23d12aee4fbb3 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0012559444.8
0x4702c7645a3752373f9a3921804ec72468ecc467ab174f7f968c86ac1cca32640x67331c1994391902020-02-08 1:37:44596 days 23 hrs ago0x1741d08d7baffebb9a7e2ef0fa044ae96717d15b IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005233122
0x480653561cb115c23f9057d6a23c5ab389c9374f9a9544acbf5d8d317ca6df6eTransfer94382652020-02-07 22:14:14597 days 3 hrs ago0x0f18a4bb8cf8368d11669c8ddf221e61c809b592 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.18 Ether0.00024290282.8
0x5782c44c7daed714b6cbc6ffd92b9e590d568d7741adecf97efbb3f750fb7eac0x67331c1994229172020-02-05 13:31:51599 days 11 hrs ago0x762521efbce67f5fe385fc4d61597b575e1b7c91 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005533122
0x1e02b9ec7e59291247a25fad39c4b129f508e5ee42b7f8696de8a27f45d64a490x8f57921f94210392020-02-05 6:42:42599 days 18 hrs ago0x4014d730c19c8aabf91b91023c626de5ef52bc8a IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005232682
0xea030af390faedab96b3f9c1190de0e6236864f0719cd8ea74933dcbdbffa6250x8f57921f94208512020-02-05 5:54:43599 days 19 hrs ago0x49234141eeaf5fae6a30b514dea6a522f4af46d7 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005232682
0xa46ad6658f6a5e89a6ceb1038ad890718f302a5be904ad7e336b512cfe62032e0x8f57921f94206542020-02-05 5:11:12599 days 20 hrs ago0x42bac4868c4cf68c541fd6496771287fc5f9cd43 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005532682
0x0483f5a00b426a175963b55518a27d0bc1a5e251b10797303e70c1ba3cc443780x4dc7346c94205482020-02-05 4:45:31599 days 20 hrs ago0x8dac2bf1f71bb24a0cf7a3ae0b94ce54eb94cbe2 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005233122
0xec81e3bf10c1b78f0339a48c1d8ba72cb2eeae9c23122016aa85eac72a5b9ed40x4dc7346c94204802020-02-05 4:31:41599 days 20 hrs ago0xc243fad0ad91e602858696c4da594acda0b85335 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005233122
0xcbbc11ce95006374daf10797b5fc10491b93e184316349515ab486a602dff8690x4dc7346c94203642020-02-05 4:01:25599 days 21 hrs ago0x1572d222397defaebe01afe80cee0dc0c760deb5 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005533122
0xddc94bdd471890b73820ee2194d2b91ad387076451b9d1254d5c9b689b554abb0x0f18a4bb94202012020-02-05 3:26:46599 days 22 hrs ago0x234397a755b8fcab82705dad94470285b25f2ebd IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005232482
0xca961ba62d779a43415a747875eb56333095bd03db5ea2e1d30aa5236b28d7a90x0f18a4bb94199112020-02-05 2:23:47599 days 23 hrs ago0x8f57921f5dc03b0d43d363f6305d553fffdf4a5b IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005232482
0xa6dd62a374defc6176d90a06dafcd4ea2562d3b3bed35a608dbc2ebc02990a760x0f18a4bb94172482020-02-04 16:35:43600 days 8 hrs ago0x4dc7346c1103ac286e20ea4dd5b8296e19039536 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005532482
0xfeee9aca1154459022b12c5d3dd32dd6f6ee23e5b35d966e74f9bec6e1f96669Transfer94112792020-02-03 18:42:55601 days 6 hrs ago0x642b4fcfd6fac595d5c2e7bd6dbce675c0e2afb9 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.18 Ether0.00013012651.5
0x4ab4057c9ab81b97635d763ecac07d2ca33f016d524183f12396cbc8d99a1860Transfer94111722020-02-03 18:19:56601 days 7 hrs ago0x09efc0f62c8a3356206a24e8201a8c78ac871f8d IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.18 Ether0.00013012651.5
0xdbfd2044266ea32fdb8ddb73a68981634e04b525bca2cc2ef8fff531dbb233a80x09efc0f694111032020-02-03 18:06:42601 days 7 hrs ago0x0f18a4bb8cf8368d11669c8ddf221e61c809b592 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0003924361.5
0xdf3e9bce9439a299908378966eb3569f8dd4f3b4cab15af185419ba4fdb8b1ec0x642b4fcf94108472020-02-03 17:02:01601 days 8 hrs ago0x808b854b5d0dde8fa242c02822a85822f9da9200 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0003924841.5
0x51430165e87b86b5d9582fee23153a68146c43df7ac9ebb99221fce27d55800f0xdf2a93dd93974582020-02-01 15:54:48603 days 9 hrs ago0x3fd692a9453b50349aaf058e9e54898057c2a0b7 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.005533120
0xc78839c31dc6407650106589fdc866fca21546b02f578e6c27d1cdd4392d4cdaTransfer93951632020-02-01 7:22:07603 days 18 hrs ago0xa9740d2297ec5f09880a0e37818887c8bfb0bc2f IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.18 Ether0.0001735022
0x2522c79d2e8d6d3066e9e96c00e72759911150760014b52442bc1b44ef05a6270xa9740d2293950342020-02-01 6:51:33603 days 18 hrs ago0xf5526ae4ca546059e54e67e7d2edd8f3efc68d58 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005232682
0xcf6178fcac0b22ad4026989261ad3200eb669f6aff546ae3c784f4e7079afcd80x4f1fe77d93907182020-01-31 15:06:40604 days 10 hrs ago0xce4db10838d0a416c05bcd33ca75f9bb0178b58f IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0003924841.5
0xe1dd92425265ac5758bb039b85a9cbd1939cbdc954fe45d5039973486b430af60xa9740d2293827752020-01-30 9:36:39605 days 15 hrs ago0xc895caa11dfd3c23e4b4a3d35ba119ce6d4499f4 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0007849023
0xc20aa1d6a6b01e00543a0b5470f446631bdd1dbadb07230444542ea9146f37da0x09efc0f693824022020-01-30 8:12:23605 days 17 hrs ago0xa25883cb2a634bd110c9038f2aa96154711bbf4c IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0052324820
0xf4ff73c02ef0be044266cc003e93d4f98634ffad3a7359d01727cbf1cfe440cf0x09efc0f693819192020-01-30 6:29:52605 days 18 hrs ago0x967c7e5b10f3da8bca5846f794cbdbb30d120724 IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.08 Ether0.0005532482
0x8c820fad67377ba76a98b013b4fb63c4e4dffe6cb788db6f013ad23d64f6f6f0Transfer93704112020-01-28 11:59:35607 days 13 hrs ago0x4c1f6add2d6c3680547c5c90e91a65c27cf064ab IN  0x8b866c709bf85303abf9fb9082475c31aaf02ea50.18 Ether0.0000867511
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x40df626f425fff14c0b338c7a5feb67b10b2a441ce9b5e00744041ea9686327594629742020-02-11 17:13:29593 days 8 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50xdf2a93dda74ac2eaf4b4fb1c24c45bd3416cc79f0.06 Ether
0x40df626f425fff14c0b338c7a5feb67b10b2a441ce9b5e00744041ea9686327594629742020-02-11 17:13:29593 days 8 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0x4702c7645a3752373f9a3921804ec72468ecc467ab174f7f968c86ac1cca326494391902020-02-08 1:37:44596 days 23 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x67331c19e97c6621871ddbe506141369cce27c630.06 Ether
0x4702c7645a3752373f9a3921804ec72468ecc467ab174f7f968c86ac1cca326494391902020-02-08 1:37:44596 days 23 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0x480653561cb115c23f9057d6a23c5ab389c9374f9a9544acbf5d8d317ca6df6e94382652020-02-07 22:14:14597 days 3 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x4c1f6add2d6c3680547c5c90e91a65c27cf064ab0.18 Ether
0x5782c44c7daed714b6cbc6ffd92b9e590d568d7741adecf97efbb3f750fb7eac94229172020-02-05 13:31:51599 days 11 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x67331c19e97c6621871ddbe506141369cce27c630.06 Ether
0x5782c44c7daed714b6cbc6ffd92b9e590d568d7741adecf97efbb3f750fb7eac94229172020-02-05 13:31:51599 days 11 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0x1e02b9ec7e59291247a25fad39c4b129f508e5ee42b7f8696de8a27f45d64a4994210392020-02-05 6:42:42599 days 18 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8f57921f5dc03b0d43d363f6305d553fffdf4a5b0.06 Ether
0x1e02b9ec7e59291247a25fad39c4b129f508e5ee42b7f8696de8a27f45d64a4994210392020-02-05 6:42:42599 days 18 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xea030af390faedab96b3f9c1190de0e6236864f0719cd8ea74933dcbdbffa62594208512020-02-05 5:54:43599 days 19 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8f57921f5dc03b0d43d363f6305d553fffdf4a5b0.06 Ether
0xea030af390faedab96b3f9c1190de0e6236864f0719cd8ea74933dcbdbffa62594208512020-02-05 5:54:43599 days 19 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xa46ad6658f6a5e89a6ceb1038ad890718f302a5be904ad7e336b512cfe62032e94206542020-02-05 5:11:12599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8f57921f5dc03b0d43d363f6305d553fffdf4a5b0.06 Ether
0xa46ad6658f6a5e89a6ceb1038ad890718f302a5be904ad7e336b512cfe62032e94206542020-02-05 5:11:12599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0x0483f5a00b426a175963b55518a27d0bc1a5e251b10797303e70c1ba3cc4437894205482020-02-05 4:45:31599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x4dc7346c1103ac286e20ea4dd5b8296e190395360.06 Ether
0x0483f5a00b426a175963b55518a27d0bc1a5e251b10797303e70c1ba3cc4437894205482020-02-05 4:45:31599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xec81e3bf10c1b78f0339a48c1d8ba72cb2eeae9c23122016aa85eac72a5b9ed494204802020-02-05 4:31:41599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x4dc7346c1103ac286e20ea4dd5b8296e190395360.06 Ether
0xec81e3bf10c1b78f0339a48c1d8ba72cb2eeae9c23122016aa85eac72a5b9ed494204802020-02-05 4:31:41599 days 20 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xcbbc11ce95006374daf10797b5fc10491b93e184316349515ab486a602dff86994203642020-02-05 4:01:25599 days 21 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x4dc7346c1103ac286e20ea4dd5b8296e190395360.06 Ether
0xcbbc11ce95006374daf10797b5fc10491b93e184316349515ab486a602dff86994203642020-02-05 4:01:25599 days 21 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xddc94bdd471890b73820ee2194d2b91ad387076451b9d1254d5c9b689b554abb94202012020-02-05 3:26:46599 days 22 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x0f18a4bb8cf8368d11669c8ddf221e61c809b5920.06 Ether
0xddc94bdd471890b73820ee2194d2b91ad387076451b9d1254d5c9b689b554abb94202012020-02-05 3:26:46599 days 22 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xca961ba62d779a43415a747875eb56333095bd03db5ea2e1d30aa5236b28d7a994199112020-02-05 2:23:47599 days 23 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x0f18a4bb8cf8368d11669c8ddf221e61c809b5920.06 Ether
0xca961ba62d779a43415a747875eb56333095bd03db5ea2e1d30aa5236b28d7a994199112020-02-05 2:23:47599 days 23 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
0xa6dd62a374defc6176d90a06dafcd4ea2562d3b3bed35a608dbc2ebc02990a7694172482020-02-04 16:35:43600 days 8 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x0f18a4bb8cf8368d11669c8ddf221e61c809b5920.06 Ether
0xa6dd62a374defc6176d90a06dafcd4ea2562d3b3bed35a608dbc2ebc02990a7694172482020-02-04 16:35:43600 days 8 hrs ago 0x8b866c709bf85303abf9fb9082475c31aaf02ea50x8ebc54fb82f7a4e3598e5a7a195a4bfde91ed9f30.02 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ETHGain

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, OSL-3.0 license
/**
 *Submitted for verification at Etherscan.io on 2019-11-16
*/

pragma solidity ^0.5.7;


library SafeMath {

  function mul(uint a, uint b) internal pure returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

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

  function sub(uint a, uint b) internal pure returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function add(uint a, uint b) internal pure returns (uint) {
    uint c = a + b;
    assert(c >= a);
    return c;
  }

}


contract Ownable {

  address public owner;
  address public mainAddress;

  constructor() public {
    owner = msg.sender;
    mainAddress = msg.sender;
  }

  modifier onlyOwner() {
    require(msg.sender == owner, "Only for owner");
    _;
  }

  function transferOwnership(address _owner) public onlyOwner {
    owner = _owner;
  }

}

contract ETHGain is Ownable {
    
    event Register(uint indexed _user, uint indexed _referrer, uint indexed _introducer, uint _time);
    event SponsorChange(uint indexed _user, uint indexed _referrer, uint indexed _introducer, uint _time);
    event Upgrade(uint indexed _user, uint _star, uint _price, uint _time);
    event Payment(uint indexed _user, uint indexed _referrer, uint indexed _introducer, uint _star, uint _money, uint _fee, uint _time);
    event LostMoney(uint indexed _referrer, uint indexed _referral, uint _star, uint _money, uint _time);

    mapping (uint => uint) public STAR_PRICE;
    mapping (uint => uint) public STAR_FEE;
    uint REFERRER_1_STAR_LIMIT = 3;

    struct UserStruct {
        bool isExist;
        address wallet;
        uint referrerID;
        uint introducerID;
        address[] referral;
        mapping (uint => bool) starActive;
    }

    mapping (uint => UserStruct) public users;
    mapping (address => uint) public userList;

    uint public currentUserID = 0;
    uint public total = 0 ether;
    uint public totalFees = 0 ether;
    bool public paused = false;
    bool public allowSponsorChange = true;

    constructor() public {

        //Cycle 1
        STAR_PRICE[1] = 0.08 ether;
        STAR_PRICE[2] = 0.18 ether;
        STAR_PRICE[3] = 1.00 ether;
        STAR_PRICE[4] = 3.24 ether;
        //Cycle 2
        STAR_PRICE[5] = 40.00 ether;
        STAR_PRICE[6] = 45.00 ether;
        STAR_PRICE[7] = 90.00 ether;
        STAR_PRICE[8] = 300.00 ether;

        //Cycle 3
        STAR_PRICE[9] = 585.00 ether;
        STAR_PRICE[10] = 900.00 ether;
        STAR_PRICE[11] = 1450.00 ether;
        STAR_PRICE[12] = 2700.00 ether;
        //Cycle 4
        STAR_PRICE[13] = 5700.00 ether;
        STAR_PRICE[14] = 7700.00 ether;
        STAR_PRICE[15] = 12000.00 ether;
        STAR_PRICE[16] = 18000.00 ether;

        STAR_FEE[1] = 0.02 ether;
        STAR_FEE[3] = 0.50 ether;
        STAR_FEE[5] = 8.00 ether;
        STAR_FEE[7] = 13.00 ether;
        STAR_FEE[8] = 25.00 ether;
        STAR_FEE[9] = 45.00 ether;
        STAR_FEE[13] = 500.00 ether;

        UserStruct memory userStruct;
        currentUserID++;

        userStruct = UserStruct({
            isExist : true,
            wallet : mainAddress,
            referrerID : 0,
            introducerID : 0,
            referral : new address[](0)
        });

        users[currentUserID] = userStruct;
        userList[mainAddress] = currentUserID;

        users[currentUserID].starActive[1] = true;
        users[currentUserID].starActive[2] = true;
        users[currentUserID].starActive[3] = true;
        users[currentUserID].starActive[4] = true;
        users[currentUserID].starActive[5] = true;
        users[currentUserID].starActive[6] = true;
        users[currentUserID].starActive[7] = true;
        users[currentUserID].starActive[8] = true;
        users[currentUserID].starActive[9] = true;
        users[currentUserID].starActive[10] = true;
        users[currentUserID].starActive[11] = true;
        users[currentUserID].starActive[12] = true;
        users[currentUserID].starActive[13] = true;
        users[currentUserID].starActive[14] = true;
        users[currentUserID].starActive[15] = true;
        users[currentUserID].starActive[16] = true;
    }

    function setMainAddress(address _mainAddress) public onlyOwner {

        require(userList[_mainAddress] == 0, 'Address is already in use by another user');
        
        delete userList[mainAddress];
        userList[_mainAddress] = uint(1);
        mainAddress = _mainAddress;
        users[1].wallet = _mainAddress;
      }

    function setPaused(bool _paused) public onlyOwner {
        paused = _paused;
      }

      function setAllowSponsorChange(bool _allowSponsorChange) public onlyOwner {
        allowSponsorChange = _allowSponsorChange;
      }

    //https://etherconverter.online to Ether
    function setStarPrice(uint _star, uint _price) public onlyOwner {
        STAR_PRICE[_star] = _price;
      }

    //https://etherconverter.online to Ether
    function setStarFee(uint _star, uint _price) public onlyOwner {
        STAR_FEE[_star] = _price;
      }

    function setCurrentUserID(uint _currentUserID) public onlyOwner {
        currentUserID = _currentUserID;
      }

    //Null address is 0x0000000000000000000000000000000000000000
    function setUserData(uint _userID, address _wallet, uint _referrerID, uint _introducerID, address _referral1, address _referral2, address _referral3, uint star) public onlyOwner {

        require(_userID > 0, 'Invalid user ID');
        require(_wallet != address(0), 'Invalid user wallet');
        require(_referrerID > 0, 'Invalid referrer ID');
        require(_introducerID > 0, 'Invalid introducer ID');

        if(_userID > currentUserID){
            currentUserID++;
        }

        if(users[_userID].isExist){
            delete userList[users[_userID].wallet];
            delete users[_userID];
        }

        UserStruct memory userStruct;

        userStruct = UserStruct({
            isExist : true,
            wallet : _wallet,
            referrerID : _referrerID,
            introducerID : _introducerID,
            referral : new address[](0)
        });
    
        users[_userID] = userStruct;
        userList[_wallet] = _userID;

        for(uint a = 1; a <= uint(16); a++){
            if(a <= star){
                users[_userID].starActive[a] = true;
            } else {
                users[_userID].starActive[a] = false;
            }
        }

        if(_referral1 != address(0)){
            users[_userID].referral.push(_referral1);
        }
           
        if(_referral2 != address(0)){
            users[_userID].referral.push(_referral2);
        }

        if(_referral3 != address(0)){
            users[_userID].referral.push(_referral3);
        }

    }

    function () external payable {

        require(!paused, 'Temporarily not accepting new users and Star upgrades');

        uint star;

        if(msg.value == STAR_PRICE[1]){
            star = 1;
        }else if(msg.value == STAR_PRICE[2]){
            star = 2;
        }else if(msg.value == STAR_PRICE[3]){
            star = 3;
        }else if(msg.value == STAR_PRICE[4]){
            star = 4;
        }else if(msg.value == STAR_PRICE[5]){
            star = 5;
        }else if(msg.value == STAR_PRICE[6]){
            star = 6;
        }else if(msg.value == STAR_PRICE[7]){
            star = 7;
        }else if(msg.value == STAR_PRICE[8]){
            star = 8;
        }else if(msg.value == STAR_PRICE[9]){
            star = 9;
        }else if(msg.value == STAR_PRICE[10]){
            star = 10;
        }else if(msg.value == STAR_PRICE[11]){
            star = 11;
        }else if(msg.value == STAR_PRICE[12]){
            star = 12;
        }else if(msg.value == STAR_PRICE[13]){
            star = 13;
        }else if(msg.value == STAR_PRICE[14]){
            star = 14;
        }else if(msg.value == STAR_PRICE[15]){
            star = 15;
        }else if(msg.value == STAR_PRICE[16]){
            star = 16;
        }else {
            revert('You have sent incorrect payment amount');
        }

        if(star == 1){

            uint referrerID = 0;
            address referrer = bytesToAddress(msg.data);

            if (userList[referrer] > 0 && userList[referrer] <= currentUserID){
                referrerID = userList[referrer];
            } else {
                revert('Incorrect referrer');
            }

            if(users[userList[msg.sender]].isExist){
                changeSponsor(referrerID);
            } else {
                registerUser(referrerID);
            }
        } else if(users[userList[msg.sender]].isExist){
            upgradeUser(star);
        } else {
            revert("Please buy first star");
        }
    }

    function changeSponsor(uint _referrerID) internal {

        require(allowSponsorChange, 'You are already signed up. Sponsor change not allowed');
        require(users[userList[msg.sender]].isExist, 'You are not signed up');
        require(userList[msg.sender] != _referrerID, 'You cannot sponsor yourself');
        require(users[userList[msg.sender]].referrerID != _referrerID && users[userList[msg.sender]].introducerID != _referrerID, 'You are already under this sponsor');
        require(_referrerID > 0 && _referrerID <= currentUserID, 'Incorrect referrer ID');
        require(msg.value==STAR_PRICE[1], 'You have sent incorrect payment amount');
        require(users[userList[msg.sender]].starActive[2] == false, 'Sponsor change is allowed only on Star 1');

        uint _introducerID = _referrerID;
        uint oldReferrer = users[userList[msg.sender]].referrerID;

        if(users[_referrerID].referral.length >= REFERRER_1_STAR_LIMIT)
        {
            _referrerID = userList[findFreeReferrer(_referrerID)];
        }

        users[userList[msg.sender]].referrerID = _referrerID;
        users[userList[msg.sender]].introducerID = _introducerID;

        users[_referrerID].referral.push(msg.sender);

        uint arrayLength = SafeMath.sub(uint(users[oldReferrer].referral.length),uint(1));

        address[] memory referrals = new address[](arrayLength);

        for(uint a = 0; a <= arrayLength; a++){
            if(users[oldReferrer].referral[a] != msg.sender){
                referrals[a] = users[oldReferrer].referral[a];
            }
        }

        for(uint b = 0; b <= arrayLength; b++){
            users[oldReferrer].referral.pop();
        }

        uint arrayLengthSecond = SafeMath.sub(uint(referrals.length),uint(1));

        for(uint c = 0; c <= arrayLengthSecond; c++){
            if(referrals[c] != address(0)){
                users[oldReferrer].referral.push(referrals[c]);
            }
        }

        upgradePayment(userList[msg.sender], 1);

        emit SponsorChange(userList[msg.sender], _referrerID, _introducerID, now);

    }

    function registerUser(uint _referrerID) internal {

        require(!users[userList[msg.sender]].isExist, 'You are already signed up');
        require(_referrerID > 0 && _referrerID <= currentUserID, 'Incorrect referrer ID');
        require(msg.value==STAR_PRICE[1], 'You have sent incorrect payment amount');

        uint _introducerID = _referrerID;

        if(users[_referrerID].referral.length >= REFERRER_1_STAR_LIMIT)
        {
            _referrerID = userList[findFreeReferrer(_referrerID)];
        }

        UserStruct memory userStruct;
        currentUserID++;

        userStruct = UserStruct({
            isExist : true,
            wallet : msg.sender,
            referrerID : _referrerID,
            introducerID : _introducerID,
            referral : new address[](0)
        });

        users[currentUserID] = userStruct;
        userList[msg.sender] = currentUserID;

        users[currentUserID].starActive[1] = true;
        users[currentUserID].starActive[2] = false;
        users[currentUserID].starActive[3] = false;
        users[currentUserID].starActive[4] = false;
        users[currentUserID].starActive[5] = false;
        users[currentUserID].starActive[6] = false;
        users[currentUserID].starActive[7] = false;
        users[currentUserID].starActive[8] = false;
        users[currentUserID].starActive[9] = false;
        users[currentUserID].starActive[10] = false;
        users[currentUserID].starActive[11] = false;
        users[currentUserID].starActive[12] = false;
        users[currentUserID].starActive[13] = false;
        users[currentUserID].starActive[14] = false;
        users[currentUserID].starActive[15] = false;
        users[currentUserID].starActive[16] = false;

        users[_referrerID].referral.push(msg.sender);

        upgradePayment(currentUserID, 1);

        emit Register(currentUserID, _referrerID, _introducerID, now);
    }

    function upgradeUser(uint _star) internal {

        require(users[userList[msg.sender]].isExist, 'You are not signed up yet');
        require( _star >= 2 && _star <= 16, 'Incorrect star');
        require(msg.value==STAR_PRICE[_star], 'You have sent incorrect payment amount');
        require(users[userList[msg.sender]].starActive[_star] == false, 'You have already activated this star');

        uint previousStar = SafeMath.sub(_star,uint(1));
        require(users[userList[msg.sender]].starActive[previousStar] == true, 'Buy the previous star first');
        
        users[userList[msg.sender]].starActive[_star] = true;

        upgradePayment(userList[msg.sender], _star);
        
        emit Upgrade(userList[msg.sender], _star, STAR_PRICE[_star], now);
    }

    function upgradePayment(uint _user, uint _star) internal {

        address referrer;
        address introducer;

        uint referrerFinal;
        uint referrer1;
        uint referrer2;
        uint referrer3;
        uint money;

        if(_star == 1){
            referrerFinal = users[_user].introducerID;
        }else if(_star == 5 || _star == 9 || _star == 13){
            referrer1 = users[_user].referrerID;
            referrerFinal = users[referrer1].referrerID;
        } else if(_star == 2 || _star == 6 || _star == 10 || _star == 14){
            referrer1 = users[_user].referrerID;
            referrerFinal = users[referrer1].referrerID;
        } else if(_star == 3 || _star == 7 || _star == 11 || _star == 15){
            referrer1 = users[_user].referrerID;
            referrer2 = users[referrer1].referrerID;
            referrerFinal = users[referrer2].referrerID;
        } else if(_star == 4 || _star == 8 || _star == 12 || _star == 16){
            referrer1 = users[_user].referrerID;
            referrer2 = users[referrer1].referrerID;
            referrer3 = users[referrer2].referrerID;
            referrerFinal = users[referrer3].referrerID;
        }

        if(!users[referrerFinal].isExist || users[referrerFinal].starActive[_star] == false){
            referrer = mainAddress;
        } else {
            referrer = users[referrerFinal].wallet;
        }

        money = STAR_PRICE[_star];
                
        if(STAR_FEE[_star] > 0){
            bool result;
            result = address(uint160(mainAddress)).send(STAR_FEE[_star]);
            money = SafeMath.sub(money,STAR_FEE[_star]);
            totalFees = SafeMath.add(totalFees,money);
        }

        total = SafeMath.add(total,money);

        if(_star>=3){

            if(!users[users[_user].introducerID].isExist){
                introducer = mainAddress;
            } else {
                if(users[referrer1].starActive[_star] == false){
                    introducer = mainAddress;
                } else {
                    introducer = users[referrer1].wallet;
                }
            }

            money = SafeMath.div(money,2);

            bool result_one;
            result_one = address(uint160(referrer)).send(money);

            bool result_two;
            result_two = address(uint160(introducer)).send(money);
            
        } else {
            bool result_three;
            result_three = address(uint160(referrer)).send(money);
        }

        if(users[referrerFinal].starActive[_star] == false ){
            emit LostMoney(referrerFinal, userList[msg.sender], _star, money, now);
        }

        emit Payment(userList[msg.sender], userList[referrer], userList[introducer], _star, money, STAR_FEE[_star], now);

    }

    function findFreeReferrer(uint _user) public view returns(address) {

        require(users[_user].isExist, 'User does not exist');

        if(users[_user].referral.length < REFERRER_1_STAR_LIMIT){
            return users[_user].wallet;
        }

        address[] memory referrals = new address[](363);
        referrals[0] = users[_user].referral[0]; 
        referrals[1] = users[_user].referral[1];
        referrals[2] = users[_user].referral[2];

        address freeReferrer;
        bool noFreeReferrer = true;

        for(uint i = 0; i < 363; i++){
            if(users[userList[referrals[i]]].referral.length == REFERRER_1_STAR_LIMIT){
                if(i < 120){
                    referrals[(i+1)*3] = users[userList[referrals[i]]].referral[0];
                    referrals[(i+1)*3+1] = users[userList[referrals[i]]].referral[1];
                    referrals[(i+1)*3+2] = users[userList[referrals[i]]].referral[2];
                }
            } else {
                noFreeReferrer = false;
                freeReferrer = referrals[i];
                break;
            }
        }
        require(!noFreeReferrer, 'Free referrer not found');
        return freeReferrer;

    }

    function viewUserReferrals(uint _user) public view returns(address[] memory) {
        return users[_user].referral;
    }

    function viewUserStarActive(uint _user, uint _star) public view returns(bool) {
        return users[_user].starActive[_star];
    }

    function bytesToAddress(bytes memory bys) private pure returns (address  addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"mainAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFees","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userList","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allowSponsorChange","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userID","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_referrerID","type":"uint256"},{"name":"_introducerID","type":"uint256"},{"name":"_referral1","type":"address"},{"name":"_referral2","type":"address"},{"name":"_referral3","type":"address"},{"name":"star","type":"uint256"}],"name":"setUserData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"users","outputs":[{"name":"isExist","type":"bool"},{"name":"wallet","type":"address"},{"name":"referrerID","type":"uint256"},{"name":"introducerID","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"STAR_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_star","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"setStarFee","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":"_user","type":"uint256"},{"name":"_star","type":"uint256"}],"name":"viewUserStarActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"STAR_PRICE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentUserID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_allowSponsorChange","type":"bool"}],"name":"setAllowSponsorChange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_currentUserID","type":"uint256"}],"name":"setCurrentUserID","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_mainAddress","type":"address"}],"name":"setMainAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"uint256"}],"name":"viewUserReferrals","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_star","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"setStarPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"uint256"}],"name":"findFreeReferrer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"uint256"},{"indexed":true,"name":"_referrer","type":"uint256"},{"indexed":true,"name":"_introducer","type":"uint256"},{"indexed":false,"name":"_time","type":"uint256"}],"name":"Register","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"uint256"},{"indexed":true,"name":"_referrer","type":"uint256"},{"indexed":true,"name":"_introducer","type":"uint256"},{"indexed":false,"name":"_time","type":"uint256"}],"name":"SponsorChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"uint256"},{"indexed":false,"name":"_star","type":"uint256"},{"indexed":false,"name":"_price","type":"uint256"},{"indexed":false,"name":"_time","type":"uint256"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"uint256"},{"indexed":true,"name":"_referrer","type":"uint256"},{"indexed":true,"name":"_introducer","type":"uint256"},{"indexed":false,"name":"_star","type":"uint256"},{"indexed":false,"name":"_money","type":"uint256"},{"indexed":false,"name":"_fee","type":"uint256"},{"indexed":false,"name":"_time","type":"uint256"}],"name":"Payment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_referrer","type":"uint256"},{"indexed":true,"name":"_referral","type":"uint256"},{"indexed":false,"name":"_star","type":"uint256"},{"indexed":false,"name":"_money","type":"uint256"},{"indexed":false,"name":"_time","type":"uint256"}],"name":"LostMoney","type":"event"}]

608060405260036004556000600755600060085560006009556000600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff0219169083151502179055503480156200005b57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067011c37937e08000060026000600181526020019081526020016000208190555067027f7d0bdb920000600260006002815260200190815260200160002081905550670de0b6b3a7640000600260006003815260200190815260200160002081905550672cf6cad57044000060026000600481526020019081526020016000208190555068022b1c8c1227a00000600260006005815260200190815260200160002081905550680270801d946c9400006002600060068152602001908152602001600020819055506804e1003b28d9280000600260006007815260200190815260200160002081905550681043561a8829300000600260006008815260200190815260200160002081905550681fb6818089838400006002600060098152602001908152602001600020819055506830ca024f987b90000060026000600a815260200190815260200160002081905550684e9acad5921c68000060026000600b81526020019081526020016000208190555068925e06eec972b0000060026000600c815260200190815260200160002081905550690134ff63f81b0e90000060026000600d8152602001908152602001600020819055506901a16af753a6cbd0000060026000600e81526020019081526020016000208190555069028a857425466f80000060026000600f8152602001908152602001600020819055506903cfc82e37e9a740000060026000601081526020019081526020016000208190555066470de4df8200006003600060018152602001908152602001600020819055506706f05b59d3b20000600360006003815260200190815260200160002081905550676f05b59d3b20000060036000600581526020019081526020016000208190555067b469471f8014000060036000600781526020019081526020016000208190555068015af1d78b58c40000600360006008815260200190815260200160002081905550680270801d946c940000600360006009815260200190815260200160002081905550681b1ae4d6e2ef50000060036000600d815260200190815260200160002081905550620003f0620009eb565b6007600081548092919060010191905055506040518060a00160405280600115158152602001600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000604051908082528060200260200182016040528015620004935781602001602082028038833980820191505090505b5081525090508060056000600754815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101556060820151816002015560808201518160030190805190602001906200054892919062000a32565b5090505060075460066000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000600754815260200190815260200160002060040160006001815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006002815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006003815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006004815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006005815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006006815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006007815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006008815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006009815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600a815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600b815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600c815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600d815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600e815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600060075481526020019081526020016000206004016000600f815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600754815260200190815260200160002060040160006010815260200190815260200160002060006101000a81548160ff0219169083151502179055505062000b07565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001606081525090565b82805482825590600052602060002090810192821562000aae579160200282015b8281111562000aad5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000a53565b5b50905062000abd919062000ac1565b5090565b62000b0491905b8082111562000b0057600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000ac8565b5090565b90565b614a678062000b176000396000f3fe6080604052600436106101355760003560e01c80638da5cb5b116100ab578063d9dd9fdd1161006f578063d9dd9fdd14610c80578063db9771f514610cbb578063dda5b24c14610d0c578063eee6800314610d9c578063f209093b14610de1578063f2fde38b14610e5c57610135565b80638da5cb5b14610b1557806399d31e8214610b6c578063a916247814610bc9578063a9a5b78114610c18578063cdfec38014610c4357610135565b80632ddbd13a116100fd5780632ddbd13a146108b95780633306faf1146108e4578063365b98b2146109be5780634dcce38c14610a525780635c975abb14610aa15780637b7b6d0714610ad057610135565b80630cdd42341461076657806313114a9d146107bd57806316c38b3c146107e85780631b4e7bd21461082557806321db35ec1461088a575b600a60009054906101000a900460ff161561019b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180614a076035913960400191505060405180910390fd5b60006002600060018152602001908152602001600020543414156101c2576001905061044d565b6002600060028152602001908152602001600020543414156101e7576002905061044c565b60026000600381526020019081526020016000205434141561020c576003905061044b565b600260006004815260200190815260200160002054341415610231576004905061044a565b6002600060058152602001908152602001600020543414156102565760059050610449565b60026000600681526020019081526020016000205434141561027b5760069050610448565b6002600060078152602001908152602001600020543414156102a05760079050610447565b6002600060088152602001908152602001600020543414156102c55760089050610446565b6002600060098152602001908152602001600020543414156102ea5760099050610445565b60026000600a81526020019081526020016000205434141561030f57600a9050610444565b60026000600b81526020019081526020016000205434141561033457600b9050610443565b60026000600c81526020019081526020016000205434141561035957600c9050610442565b60026000600d81526020019081526020016000205434141561037e57600d9050610441565b60026000600e8152602001908152602001600020543414156103a357600e9050610440565b60026000600f8152602001908152602001600020543414156103c857600f905061043f565b6002600060108152602001908152602001600020543414156103ed576010905061043e565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806149e16026913960400191505060405180910390fd5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b600181141561067e57600080905060006104ab6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610ead565b90506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411801561053d5750600754600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411155b1561058957600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506105f7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e636f7272656374207265666572726572000000000000000000000000000081525060200191505060405180910390fd5b60056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060000160009054906101000a900460ff161561066d5761066882610ebb565b610677565b61067682611936565b5b5050610763565b60056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060000160009054906101000a900460ff16156106f4576106ef816121e9565b610762565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f506c65617365206275792066697273742073746172000000000000000000000081525060200191505060405180910390fd5b5b50005b34801561077257600080fd5b5061077b6126df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c957600080fd5b506107d2612705565b6040518082815260200191505060405180910390f35b3480156107f457600080fd5b506108236004803603602081101561080b57600080fd5b8101908080351515906020019092919050505061270b565b005b34801561083157600080fd5b506108746004803603602081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127ea565b6040518082815260200191505060405180910390f35b34801561089657600080fd5b5061089f612802565b604051808215151515815260200191505060405180910390f35b3480156108c557600080fd5b506108ce612815565b6040518082815260200191505060405180910390f35b3480156108f057600080fd5b506109bc600480360361010081101561090857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061281b565b005b3480156109ca57600080fd5b506109f7600480360360208110156109e157600080fd5b8101908080359060200190929190505050613042565b60405180851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390f35b348015610a5e57600080fd5b50610a8b60048036036020811015610a7557600080fd5b810190808035906020019092919050505061309f565b6040518082815260200191505060405180910390f35b348015610aad57600080fd5b50610ab66130b7565b604051808215151515815260200191505060405180910390f35b348015610adc57600080fd5b50610b1360048036036040811015610af357600080fd5b8101908080359060200190929190803590602001909291905050506130ca565b005b348015610b2157600080fd5b50610b2a6131a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7857600080fd5b50610baf60048036036040811015610b8f57600080fd5b8101908080359060200190929190803590602001909291905050506131cd565b604051808215151515815260200191505060405180910390f35b348015610bd557600080fd5b50610c0260048036036020811015610bec57600080fd5b810190808035906020019092919050505061320c565b6040518082815260200191505060405180910390f35b348015610c2457600080fd5b50610c2d613224565b6040518082815260200191505060405180910390f35b348015610c4f57600080fd5b50610c7e60048036036020811015610c6657600080fd5b8101908080351515906020019092919050505061322a565b005b348015610c8c57600080fd5b50610cb960048036036020811015610ca357600080fd5b8101908080359060200190929190505050613309565b005b348015610cc757600080fd5b50610d0a60048036036020811015610cde57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133d5565b005b348015610d1857600080fd5b50610d4560048036036020811015610d2f57600080fd5b8101908080359060200190929190505050613673565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610d88578082015181840152602081019050610d6d565b505050509050019250505060405180910390f35b348015610da857600080fd5b50610ddf60048036036040811015610dbf57600080fd5b810190808035906020019092919080359060200190929190505050613717565b005b348015610ded57600080fd5b50610e1a60048036036020811015610e0457600080fd5b81019080803590602001909291905050506137f5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e6857600080fd5b50610eab60048036036020811015610e7f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613eef565b005b600060148201519050919050565b600a60019054906101000a900460ff16610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806149666035913960400191505060405180910390fd5b60056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060000160009054906101000a900460ff16610ff5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f596f7520617265206e6f74207369676e6564207570000000000000000000000081525060200191505060405180910390fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156110aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f596f752063616e6e6f742073706f6e736f7220796f757273656c66000000000081525060200191505060405180910390fd5b8060056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101541415801561116457508060056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000206002015414155b6111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806149bf6022913960400191505060405180910390fd5b6000811180156111cb57506007548111155b61123d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e636f7272656374207265666572726572204944000000000000000000000081525060200191505060405180910390fd5b60026000600181526020019081526020016000205434146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806149e16026913960400191505060405180910390fd5b6000151560056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060040160006002815260200190815260200160002060009054906101000a900460ff1615151461137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806149156028913960400191505060405180910390fd5b6000819050600060056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020019081526020016000206001015490506004546005600085815260200190815260200160002060030180549050106114465760066000611408856137f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205492505b8260056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600101819055508160056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060020181905550600560008481526020019081526020016000206003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600061159a60056000848152602001908152602001600020600301805490506001613ff4565b90506060816040519080825280602002602001820160405280156115cd5781602001602082028038833980820191505090505b50905060008090505b8281116116fb573373ffffffffffffffffffffffffffffffffffffffff1660056000868152602001908152602001600020600301828154811061161557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ee5760056000858152602001908152602001600020600301818154811061167c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168282815181106116b357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b80806001019150506115d6565b5060008090505b82811161176a576005600085815260200190815260200160002060030180548061172857fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590558080600101915050611702565b50600061177982516001613ff4565b905060008090505b81811161186a57600073ffffffffffffffffffffffffffffffffffffffff168382815181106117ac57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161461185d57600560008681526020019081526020016000206003018382815181106117f157fe5b602002602001015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b8080600101915050611781565b506118b5600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600161400b565b8486600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020547fb2453831a7bcfe7fdb76a97836d0759a07660110380eb6a48088d32408913006426040518082815260200191505060405180910390a4505050505050565b60056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060000160009054906101000a900460ff1615611a0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f596f752061726520616c7265616479207369676e65642075700000000000000081525060200191505060405180910390fd5b600081118015611a1e57506007548111155b611a90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e636f7272656374207265666572726572204944000000000000000000000081525060200191505060405180910390fd5b6002600060018152602001908152602001600020543414611afc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806149e16026913960400191505060405180910390fd5b6000819050600454600560008481526020019081526020016000206003018054905010611b6e5760066000611b30846137f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b611b766147ba565b6007600081548092919060010191905055506040518060a001604052806001151581526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020016000604051908082528060200260200182016040528015611bf45781602001602082028038833980820191505090505b5081525090508060056000600754815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003019080519060200190611ca7929190614801565b50905050600754600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000600754815260200190815260200160002060040160006001815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006002815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006003815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006004815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006005815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006006815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006007815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006008815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006009815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600a815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600b815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600c815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600d815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600e815260200190815260200160002060006101000a81548160ff02191690831515021790555060006005600060075481526020019081526020016000206004016000600f815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600754815260200190815260200160002060040160006010815260200190815260200160002060006101000a81548160ff021916908315150217905550600560008481526020019081526020016000206003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506121a8600754600161400b565b81836007547f8c7a59b047d7293cfb5f679edbc69d919a49820d035a88e541114f70f8166d56426040518082815260200191505060405180910390a4505050565b60056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815260200190815260200160002060000160009054906101000a900460ff166122be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f596f7520617265206e6f74207369676e6564207570207965740000000000000081525060200191505060405180910390fd5b600281101580156122d0575060108111155b612342576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f496e636f7272656374207374617200000000000000000000000000000000000081525060200191505060405180910390fd5b600260008281526020019081526020016000205434146123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806149e16026913960400191505060405180910390fd5b6000151560056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600401600083815260200190815260200160002060009054906101000a900460ff1615151461247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061499b6024913960400191505060405180910390fd5b600061248a826001613ff4565b90506001151560056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600401600083815260200190815260200160002060009054906101000a900460ff16151514612579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f427579207468652070726576696f75732073746172206669727374000000000081525060200191505060405180910390fd5b600160056000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600401600084815260200190815260200160002060006101000a81548160ff021916908315150217905550612641600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361400b565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020547f31c7970e165657c5248189f858cb5616c52b545639ae9a43454d6105fc1c8fc78360026000868152602001908152602001600020544260405180848152602001838152602001828152602001935050505060405180910390a25050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548160ff02191690831515021790555050565b60066020528060005260406000206000915090505481565b600a60019054906101000a900460ff1681565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b60008811612953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e76616c69642075736572204944000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156129f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c696420757365722077616c6c65740000000000000000000000000081525060200191505060405180910390fd5b60008611612a6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c69642072656665727265722049440000000000000000000000000081525060200191505060405180910390fd5b60008511612ae2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f496e76616c696420696e74726f6475636572204944000000000000000000000081525060200191505060405180910390fd5b600754881115612aff576007600081548092919060010191905055505b6005600089815260200190815260200160002060000160009054906101000a900460ff1615612c135760066000600560008b815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905560056000898152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018201600090556002820160009055600382016000612c10919061488b565b50505b612c1b6147ba565b6040518060a001604052806001151581526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020016000604051908082528060200260200182016040528015612c875781602001602082028038833980820191505090505b50815250905080600560008b815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003019080519060200190612d38929190614801565b5090505088600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600190505b60108111612e2957828111612ddb576001600560008c8152602001908152602001600020600401600083815260200190815260200160002060006101000a81548160ff021916908315150217905550612e1c565b6000600560008c8152602001908152602001600020600401600083815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080600101915050612d87565b50600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614612ed957600560008a81526020019081526020016000206003018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614612f8857600560008a81526020019081526020016000206003018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461303757600560008a81526020019081526020016000206003018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b505050505050505050565b60056020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905084565b60036020528060005260406000206000915090505481565b600a60009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461318c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b8060036000848152602001908152602001600020819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060056000848152602001908152602001600020600401600083815260200190815260200160002060009054906101000a900460ff16905092915050565b60026020528060005260406000206000915090505481565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146132ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b80600a60016101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146133cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b8060078190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461352f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061493d6029913960400191505060405180910390fd5b60066000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090556001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006001815260200190815260200160002060000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606005600083815260200190815260200160002060030180548060200260200160405190810160405280929190818152602001828054801561370b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116136c1575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146137d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b8060026000848152602001908152602001600020819055505050565b60006005600083815260200190815260200160002060000160009054906101000a900460ff1661388d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5573657220646f6573206e6f742065786973740000000000000000000000000081525060200191505060405180910390fd5b600454600560008481526020019081526020016000206003018054905010156138ee576005600083815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050613eea565b606061016b6040519080825280602002602001820160405280156139215781602001602082028038833980820191505090505b5090506005600084815260200190815260200160002060030160008154811061394657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160008151811061397e57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560008481526020019081526020016000206003016001815481106139da57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110613a1257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060056000848152602001908152602001600020600301600281548110613a6e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600281518110613aa657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000806001905060008090505b61016b811015613e6e576004546005600060066000888681518110613b0e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600301805490501415613e42576078811015613e3d576005600060066000878581518110613b8957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600301600081548110613be957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846003600184010281518110613c2657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506005600060066000878581518110613c7457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600301600181548110613cd457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846001600360018501020181518110613d1457fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506005600060066000878581518110613d6257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548152602001908152602001600020600301600281548110613dc257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846002600360018501020181518110613e0257fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b613e61565b60009150838181518110613e5257fe5b60200260200101519250613e6e565b8080600101915050613aed565b508015613ee3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f46726565207265666572726572206e6f7420666f756e6400000000000000000081525060200191505060405180910390fd5b8193505050505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613fb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f6e6c7920666f72206f776e657200000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561400057fe5b818303905092915050565b6000806000806000806000600188141561403d57600560008a8152602001908152602001600020600201549450614201565b600588148061404c5750600988145b806140575750600d88145b1561409357600560008a815260200190815260200160002060010154935060056000858152602001908152602001600020600101549450614200565b60028814806140a25750600688145b806140ad5750600a88145b806140b85750600e88145b156140f457600560008a8152602001908152602001600020600101549350600560008581526020019081526020016000206001015494506141ff565b60038814806141035750600788145b8061410e5750600b88145b806141195750600f88145b1561416e57600560008a815260200190815260200160002060010154935060056000858152602001908152602001600020600101549250600560008481526020019081526020016000206001015494506141fe565b600488148061417d5750600888145b806141885750600c88145b806141935750601088145b156141fd57600560008a81526020019081526020016000206001015493506005600085815260200190815260200160002060010154925060056000848152602001908152602001600020600101549150600560008381526020019081526020016000206001015494505b5b5b5b5b6005600086815260200190815260200160002060000160009054906101000a900460ff1615806142695750600015156005600087815260200190815260200160002060040160008a815260200190815260200160002060009054906101000a900460ff161515145b1561429857600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696506142d2565b6005600086815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1696505b600260008981526020019081526020016000205490506000600360008a81526020019081526020016000205411156143a5576000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600360008c8152602001908152602001600020549081150290604051600060405180830381858888f19350505050905061438f82600360008c815260200190815260200160002054613ff4565b915061439d60095483614785565b600981905550505b6143b160085482614785565b600881905550600388106145535760056000600560008c815260200190815260200160002060020154815260200190815260200160002060000160009054906101000a900460ff1661442757600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695506144cd565b600015156005600086815260200190815260200160002060040160008a815260200190815260200160002060009054906101000a900460ff161515141561449257600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695506144cc565b6005600085815260200190815260200160002060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695505b5b6144d88160026147a1565b905060008773ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050905060008773ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050509050505061458e565b60008773ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050509050505b600015156005600087815260200190815260200160002060040160008a815260200190815260200160002060009054906101000a900460ff161515141561465857600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054857f8f9413841e304f52660c1aabb5715add3c1ddc836b1bba51e7459ccecb177b2d8a844260405180848152602001838152602001828152602001935050505060405180910390a35b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020547fb65a1b7c00f07645950121ee5a7e66d5c2241e2fdbfece53236813d2fe639c6b8b85600360008f815260200190815260200160002054426040518085815260200184815260200183815260200182815260200194505050505060405180910390a4505050505050505050565b60008082840190508381101561479757fe5b8091505092915050565b6000808284816147ad57fe5b0490508091505092915050565b6040518060a00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001606081525090565b82805482825590600052602060002090810192821561487a579160200282015b828111156148795782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190614821565b5b50905061488791906148ac565b5090565b50805460008255906000526020600020908101906148a991906148ef565b50565b6148ec91905b808211156148e857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016148b2565b5090565b90565b61491191905b8082111561490d5760008160009055506001016148f5565b5090565b9056fe53706f6e736f72206368616e676520697320616c6c6f776564206f6e6c79206f6e205374617220314164647265737320697320616c726561647920696e2075736520627920616e6f746865722075736572596f752061726520616c7265616479207369676e65642075702e2053706f6e736f72206368616e6765206e6f7420616c6c6f776564596f75206861766520616c72656164792061637469766174656420746869732073746172596f752061726520616c726561647920756e64657220746869732073706f6e736f72596f7520686176652073656e7420696e636f7272656374207061796d656e7420616d6f756e7454656d706f726172696c79206e6f7420616363657074696e67206e657720757365727320616e642053746172207570677261646573a165627a7a7230582040f84d12cfb377c283e85f230fb38399399ea3106145db3ad1cc9677ddb95bec0029

Deployed ByteCode Sourcemap

903:17608:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7043:6;;;;;;;;;;;7042:7;7034:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7120:9;7158:10;:13;7169:1;7158:13;;;;;;;;;;;;7145:9;:26;7142:1209;;;7194:1;7187:8;;7142:1209;;;7228:10;:13;7239:1;7228:13;;;;;;;;;;;;7215:9;:26;7212:1139;;;7264:1;7257:8;;7212:1139;;;7298:10;:13;7309:1;7298:13;;;;;;;;;;;;7285:9;:26;7282:1069;;;7334:1;7327:8;;7282:1069;;;7368:10;:13;7379:1;7368:13;;;;;;;;;;;;7355:9;:26;7352:999;;;7404:1;7397:8;;7352:999;;;7438:10;:13;7449:1;7438:13;;;;;;;;;;;;7425:9;:26;7422:929;;;7474:1;7467:8;;7422:929;;;7508:10;:13;7519:1;7508:13;;;;;;;;;;;;7495:9;:26;7492:859;;;7544:1;7537:8;;7492:859;;;7578:10;:13;7589:1;7578:13;;;;;;;;;;;;7565:9;:26;7562:789;;;7614:1;7607:8;;7562:789;;;7648:10;:13;7659:1;7648:13;;;;;;;;;;;;7635:9;:26;7632:719;;;7684:1;7677:8;;7632:719;;;7718:10;:13;7729:1;7718:13;;;;;;;;;;;;7705:9;:26;7702:649;;;7754:1;7747:8;;7702:649;;;7788:10;:14;7799:2;7788:14;;;;;;;;;;;;7775:9;:27;7772:579;;;7825:2;7818:9;;7772:579;;;7860:10;:14;7871:2;7860:14;;;;;;;;;;;;7847:9;:27;7844:507;;;7897:2;7890:9;;7844:507;;;7932:10;:14;7943:2;7932:14;;;;;;;;;;;;7919:9;:27;7916:435;;;7969:2;7962:9;;7916:435;;;8004:10;:14;8015:2;8004:14;;;;;;;;;;;;7991:9;:27;7988:363;;;8041:2;8034:9;;7988:363;;;8076:10;:14;8087:2;8076:14;;;;;;;;;;;;8063:9;:27;8060:291;;;8113:2;8106:9;;8060:291;;;8148:10;:14;8159:2;8148:14;;;;;;;;;;;;8135:9;:27;8132:219;;;8185:2;8178:9;;8132:219;;;8220:10;:14;8231:2;8220:14;;;;;;;;;;;;8207:9;:27;8204:147;;;8257:2;8250:9;;8204:147;;;8291:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8204:147;8132:219;8060:291;7988:363;7916:435;7844:507;7772:579;7702:649;7632:719;7562:789;7492:859;7422:929;7352:999;7282:1069;7212:1139;7142:1209;8374:1;8366:4;:9;8363:669;;;8393:15;8411:1;8393:19;;8427:16;8446:24;8461:8;;8446:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8446:24:0;;;;;;:14;:24::i;:::-;8427:43;;8512:1;8491:8;:18;8500:8;8491:18;;;;;;;;;;;;;;;;:22;:61;;;;;8539:13;;8517:8;:18;8526:8;8517:18;;;;;;;;;;;;;;;;:35;;8491:61;8487:201;;;8585:8;:18;8594:8;8585:18;;;;;;;;;;;;;;;;8572:31;;8487:201;;;8644:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8487:201;8707:5;:27;8713:8;:20;8722:10;8713:20;;;;;;;;;;;;;;;;8707:27;;;;;;;;;;;:35;;;;;;;;;;;;8704:164;;;8762:25;8776:10;8762:13;:25::i;:::-;8704:164;;;8828:24;8841:10;8828:12;:24::i;:::-;8704:164;8363:669;;;;;8888:5;:27;8894:8;:20;8903:10;8894:20;;;;;;;;;;;;;;;;8888:27;;;;;;;;;;;:35;;;;;;;;;;;;8885:147;;;8939:17;8951:4;8939:11;:17::i;:::-;8885:147;;;8989:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8885:147;8363:669;6992:2047;903:17608;591:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;591:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1987:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1987:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4664:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4664:87:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4664:87:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1867:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1867:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1867:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2058:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2058:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1953:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1953:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5419:1565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5419:1565:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5419:1565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1819:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1819:41:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1819:41:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1526:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1526:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1526:38:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2025:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2025:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5115:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5115:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5115:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;566:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18207:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18207:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18207:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1479:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1479:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1479:40:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1917:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1917:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4761:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4761:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4761:135:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5230:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5230:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5230:115:0;;;;;;;;;;;;;;;;;:::i;:::-;;4319:337;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4319:337:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4319:337:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18075:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18075:124:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18075:124:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;18075:124:0;;;;;;;;;;;;;;;;;4950:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4950:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4950:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16833:1234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16833:1234:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16833:1234:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;807:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;807:87:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;807:87:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18349:159;18413:13;18486:2;18481:3;18477:12;18471:19;18463:27;;18448:53;;;:::o;9047:2141::-;9118:18;;;;;;;;;;;9110:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9213:5;:27;9219:8;:20;9228:10;9219:20;;;;;;;;;;;;;;;;9213:27;;;;;;;;;;;:35;;;;;;;;;;;;9205:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9317:11;9293:8;:20;9302:10;9293:20;;;;;;;;;;;;;;;;:35;;9285:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9421:11;9379:5;:27;9385:8;:20;9394:10;9385:20;;;;;;;;;;;;;;;;9379:27;;;;;;;;;;;:38;;;:53;;:112;;;;;9480:11;9436:5;:27;9442:8;:20;9451:10;9442:20;;;;;;;;;;;;;;;;9436:27;;;;;;;;;;;:40;;;:55;;9379:112;9371:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9563:1;9549:11;:15;:47;;;;;9583:13;;9568:11;:28;;9549:47;9541:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9652:10;:13;9663:1;9652:13;;;;;;;;;;;;9641:9;:24;9633:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9772:5;9727:50;;:5;:27;9733:8;:20;9742:10;9733:20;;;;;;;;;;;;;;;;9727:27;;;;;;;;;;;:38;;:41;9766:1;9727:41;;;;;;;;;;;;;;;;;;;;;:50;;;9719:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9835:18;9856:11;9835:32;;9878:16;9897:5;:27;9903:8;:20;9912:10;9903:20;;;;;;;;;;;;;;;;9897:27;;;;;;;;;;;:38;;;9878:57;;9989:21;;9951:5;:18;9957:11;9951:18;;;;;;;;;;;:27;;:34;;;;:59;9948:153;;10050:8;:39;10059:29;10076:11;10059:16;:29::i;:::-;10050:39;;;;;;;;;;;;;;;;10036:53;;9948:153;10154:11;10113:5;:27;10119:8;:20;10128:10;10119:20;;;;;;;;;;;;;;;;10113:27;;;;;;;;;;;:38;;:52;;;;10219:13;10176:5;:27;10182:8;:20;10191:10;10182:20;;;;;;;;;;;;;;;;10176:27;;;;;;;;;;;:40;;:56;;;;10245:5;:18;10251:11;10245:18;;;;;;;;;;;:27;;10278:10;10245:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10245:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10302:16;10321:62;10339:5;:18;10345:11;10339:18;;;;;;;;;;;:27;;:34;;;;10380:1;10321:12;:62::i;:::-;10302:81;;10396:26;10439:11;10425:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;10425:26:0;;;;10396:55;;10468:6;10477:1;10468:10;;10464:192;10485:11;10480:1;:16;10464:192;;10554:10;10520:44;;:5;:18;10526:11;10520:18;;;;;;;;;;;:27;;10548:1;10520:30;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;10517:128;;10599:5;:18;10605:11;10599:18;;;;;;;;;;;:27;;10627:1;10599:30;;;;;;;;;;;;;;;;;;;;;;;;;10584:9;10594:1;10584:12;;;;;;;;;;;;;:45;;;;;;;;;;;10517:128;10498:3;;;;;;;10464:192;;;;10672:6;10681:1;10672:10;;10668:98;10689:11;10684:1;:16;10668:98;;10721:5;:18;10727:11;10721:18;;;;;;;;;;;:27;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10702:3;;;;;;;10668:98;;;;10778:22;10803:44;10821:9;:16;10844:1;10803:12;:44::i;:::-;10778:69;;10864:6;10873:1;10864:10;;10860:181;10881:17;10876:1;:22;10860:181;;10946:1;10922:26;;:9;10932:1;10922:12;;;;;;;;;;;;;;:26;;;10919:111;;10968:5;:18;10974:11;10968:18;;;;;;;;;;;:27;;11001:9;11011:1;11001:12;;;;;;;;;;;;;;10968:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10968:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10919:111;10900:3;;;;;;;10860:181;;;;11053:39;11068:8;:20;11077:10;11068:20;;;;;;;;;;;;;;;;11090:1;11053:14;:39::i;:::-;11159:13;11146:11;11124:8;:20;11133:10;11124:20;;;;;;;;;;;;;;;;11110:68;11174:3;11110:68;;;;;;;;;;;;;;;;;;9047:2141;;;;;;:::o;11196:1960::-;11267:5;:27;11273:8;:20;11282:10;11273:20;;;;;;;;;;;;;;;;11267:27;;;;;;;;;;;:35;;;;;;;;;;;;11266:36;11258:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11365:1;11351:11;:15;:47;;;;;11385:13;;11370:11;:28;;11351:47;11343:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11454:10;:13;11465:1;11454:13;;;;;;;;;;;;11443:9;:24;11435:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11523:18;11544:11;11523:32;;11609:21;;11571:5;:18;11577:11;11571:18;;;;;;;;;;;:27;;:34;;;;:59;11568:153;;11670:8;:39;11679:29;11696:11;11679:16;:29::i;:::-;11670:39;;;;;;;;;;;;;;;;11656:53;;11568:153;11733:28;;:::i;:::-;11772:13;;:15;;;;;;;;;;;;;11813:210;;;;;;;;11849:4;11813:210;;;;;;11877:10;11813:210;;;;;;11915:11;11813:210;;;;11956:13;11813:210;;;;12009:1;11995:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11995:16:0;;;;11813:210;;;11800:223;;12059:10;12036:5;:20;12042:13;;12036:20;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12103:13;;12080:8;:20;12089:10;12080:20;;;;;;;;;;;;;;;:36;;;;12166:4;12129:5;:20;12135:13;;12129:20;;;;;;;;;;;:31;;:34;12161:1;12129:34;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;12218:5;12181;:20;12187:13;;12181:20;;;;;;;;;;;:31;;:34;12213:1;12181:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12271:5;12234;:20;12240:13;;12234:20;;;;;;;;;;;:31;;:34;12266:1;12234:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12324:5;12287;:20;12293:13;;12287:20;;;;;;;;;;;:31;;:34;12319:1;12287:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12377:5;12340;:20;12346:13;;12340:20;;;;;;;;;;;:31;;:34;12372:1;12340:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12430:5;12393;:20;12399:13;;12393:20;;;;;;;;;;;:31;;:34;12425:1;12393:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12483:5;12446;:20;12452:13;;12446:20;;;;;;;;;;;:31;;:34;12478:1;12446:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12536:5;12499;:20;12505:13;;12499:20;;;;;;;;;;;:31;;:34;12531:1;12499:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12589:5;12552;:20;12558:13;;12552:20;;;;;;;;;;;:31;;:34;12584:1;12552:34;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;12643:5;12605;:20;12611:13;;12605:20;;;;;;;;;;;:31;;:35;12637:2;12605:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12697:5;12659;:20;12665:13;;12659:20;;;;;;;;;;;:31;;:35;12691:2;12659:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12751:5;12713;:20;12719:13;;12713:20;;;;;;;;;;;:31;;:35;12745:2;12713:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12805:5;12767;:20;12773:13;;12767:20;;;;;;;;;;;:31;;:35;12799:2;12767:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12859:5;12821;:20;12827:13;;12821:20;;;;;;;;;;;:31;;:35;12853:2;12821:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12913:5;12875;:20;12881:13;;12875:20;;;;;;;;;;;:31;;:35;12907:2;12875:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12967:5;12929;:20;12935:13;;12929:20;;;;;;;;;;;:31;;:35;12961:2;12929:35;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;12985:5;:18;12991:11;12985:18;;;;;;;;;;;:27;;13018:10;12985:44;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12985:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13042:32;13057:13;;13072:1;13042:14;:32::i;:::-;13129:13;13116:11;13101:13;;13092:56;13144:3;13092:56;;;;;;;;;;;;;;;;;;11196:1960;;;:::o;13164:790::-;13227:5;:27;13233:8;:20;13242:10;13233:20;;;;;;;;;;;;;;;;13227:27;;;;;;;;;;;:35;;;;;;;;;;;;13219:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13321:1;13312:5;:10;;:25;;;;;13335:2;13326:5;:11;;13312:25;13303:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13386:10;:17;13397:5;13386:17;;;;;;;;;;;;13375:9;:28;13367:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13514:5;13465:54;;:5;:27;13471:8;:20;13480:10;13471:20;;;;;;;;;;;;;;;;13465:27;;;;;;;;;;;:38;;:45;13504:5;13465:45;;;;;;;;;;;;;;;;;;;;;:54;;;13457:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13573:17;13593:27;13606:5;13617:1;13593:12;:27::i;:::-;13573:47;;13695:4;13639:60;;:5;:27;13645:8;:20;13654:10;13645:20;;;;;;;;;;;;;;;;13639:27;;;;;;;;;;;:38;;:52;13678:12;13639:52;;;;;;;;;;;;;;;;;;;;;:60;;;13631:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13800:4;13752:5;:27;13758:8;:20;13767:10;13758:20;;;;;;;;;;;;;;;;13752:27;;;;;;;;;;;:38;;:45;13791:5;13752:45;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;13817:43;13832:8;:20;13841:10;13832:20;;;;;;;;;;;;;;;;13854:5;13817:14;:43::i;:::-;13894:8;:20;13903:10;13894:20;;;;;;;;;;;;;;;;13886:60;13916:5;13923:10;:17;13934:5;13923:17;;;;;;;;;;;;13942:3;13886:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13164:790;;:::o;591:26::-;;;;;;;;;;;;;:::o;1987:31::-;;;;:::o;4664:87::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4734:7;4725:6;;:16;;;;;;;;;;;;;;;;;;4664:87;:::o;1867:41::-;;;;;;;;;;;;;;;;;:::o;2058:37::-;;;;;;;;;;;;;:::o;1953:27::-;;;;:::o;5419:1565::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5628:1;5618:7;:11;5610:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5687:1;5668:21;;:7;:21;;;;5660:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5746:1;5732:11;:15;5724:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5806:1;5790:13;:17;5782:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5859:13;;5849:7;:23;5846:69;;;5888:13;;:15;;;;;;;;;;;;;5846:69;5930:5;:14;5936:7;5930:14;;;;;;;;;;;:22;;;;;;;;;;;;5927:127;;;5975:8;:31;5984:5;:14;5990:7;5984:14;;;;;;;;;;;:21;;;;;;;;;;;;5975:31;;;;;;;;;;;;;;;5968:38;;;6028:5;:14;6034:7;6028:14;;;;;;;;;;;;6021:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;5927:127;6066:28;;:::i;:::-;6120:207;;;;;;;;6156:4;6120:207;;;;;;6184:7;6120:207;;;;;;6219:11;6120:207;;;;6260:13;6120:207;;;;6313:1;6299:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6299:16:0;;;;6120:207;;;6107:220;;6361:10;6344:5;:14;6350:7;6344:14;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6402:7;6382:8;:17;6391:7;6382:17;;;;;;;;;;;;;;;:27;;;;6426:6;6435:1;6426:10;;6422:221;6448:2;6438:1;:13;6422:221;;6480:4;6475:1;:9;6472:160;;6535:4;6504:5;:14;6510:7;6504:14;;;;;;;;;;;:25;;:28;6530:1;6504:28;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;6472:160;;;6611:5;6580;:14;6586:7;6580:14;;;;;;;;;;;:25;;:28;6606:1;6580:28;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6472:160;6453:3;;;;;;;6422:221;;;;6680:1;6658:24;;:10;:24;;;6655:95;;6698:5;:14;6704:7;6698:14;;;;;;;;;;;:23;;6727:10;6698:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6698:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6655:95;6798:1;6776:24;;:10;:24;;;6773:95;;6816:5;:14;6822:7;6816:14;;;;;;;;;;;:23;;6845:10;6816:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6816:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6773:95;6905:1;6883:24;;:10;:24;;;6880:95;;6923:5;:14;6929:7;6923:14;;;;;;;;;;;:23;;6952:10;6923:40;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6923:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6880:95;794:1;5419:1565;;;;;;;;:::o;1819:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1526:38::-;;;;;;;;;;;;;;;;;:::o;2025:26::-;;;;;;;;;;;;;:::o;5115:107::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5206:6;5188:8;:15;5197:5;5188:15;;;;;;;;;;;:24;;;;5115:107;;:::o;566:20::-;;;;;;;;;;;;;:::o;18207:134::-;18279:4;18303:5;:12;18309:5;18303:12;;;;;;;;;;;:23;;:30;18327:5;18303:30;;;;;;;;;;;;;;;;;;;;;18296:37;;18207:134;;;;:::o;1479:40::-;;;;;;;;;;;;;;;;;:::o;1917:29::-;;;;:::o;4761:135::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4867:19;4846:18;;:40;;;;;;;;;;;;;;;;;;4761:135;:::o;5230:115::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:14;5305:13;:30;;;;5230:115;:::o;4319:337::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:1;4403:8;:22;4412:12;4403:22;;;;;;;;;;;;;;;;:27;4395:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4504:8;:21;4513:11;;;;;;;;;;;4504:21;;;;;;;;;;;;;;;4497:28;;;4566:1;4536:8;:22;4545:12;4536:22;;;;;;;;;;;;;;;:32;;;;4593:12;4579:11;;:26;;;;;;;;;;;;;;;;;;4634:12;4616:5;:8;4622:1;4616:8;;;;;;;;;;;:15;;;:30;;;;;;;;;;;;;;;;;;4319:337;:::o;18075:124::-;18134:16;18170:5;:12;18176:5;18170:12;;;;;;;;;;;:21;;18163:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18075:124;;;:::o;4950:111::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5045:6;5025:10;:17;5036:5;5025:17;;;;;;;;;;;:26;;;;4950:111;;:::o;16833:1234::-;16891:7;16921:5;:12;16927:5;16921:12;;;;;;;;;;;:20;;;;;;;;;;;;16913:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17012:21;;16981:5;:12;16987:5;16981:12;;;;;;;;;;;:21;;:28;;;;:52;16978:109;;;17056:5;:12;17062:5;17056:12;;;;;;;;;;;:19;;;;;;;;;;;;17049:26;;;;16978:109;17099:26;17142:3;17128:18;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;17128:18:0;;;;17099:47;;17172:5;:12;17178:5;17172:12;;;;;;;;;;;:21;;17194:1;17172:24;;;;;;;;;;;;;;;;;;;;;;;;;17157:9;17167:1;17157:12;;;;;;;;;;;;;:39;;;;;;;;;;;17223:5;:12;17229:5;17223:12;;;;;;;;;;;:21;;17245:1;17223:24;;;;;;;;;;;;;;;;;;;;;;;;;17208:9;17218:1;17208:12;;;;;;;;;;;;;:39;;;;;;;;;;;17273:5;:12;17279:5;17273:12;;;;;;;;;;;:21;;17295:1;17273:24;;;;;;;;;;;;;;;;;;;;;;;;;17258:9;17268:1;17258:12;;;;;;;;;;;;;:39;;;;;;;;;;;17310:20;17341:19;17363:4;17341:26;;17384:6;17393:1;17384:10;;17380:586;17400:3;17396:1;:7;17380:586;;;17476:21;;17427:5;:29;17433:8;:22;17442:9;17452:1;17442:12;;;;;;;;;;;;;;17433:22;;;;;;;;;;;;;;;;17427:29;;;;;;;;;;;:38;;:45;;;;:70;17424:531;;;17524:3;17520:1;:7;17517:290;;;17572:5;:29;17578:8;:22;17587:9;17597:1;17587:12;;;;;;;;;;;;;;17578:22;;;;;;;;;;;;;;;;17572:29;;;;;;;;;;;:38;;17611:1;17572:41;;;;;;;;;;;;;;;;;;;;;;;;;17551:9;17567:1;17564;17562;:3;17561:7;17551:18;;;;;;;;;;;;;:62;;;;;;;;;;;17659:5;:29;17665:8;:22;17674:9;17684:1;17674:12;;;;;;;;;;;;;;17665:22;;;;;;;;;;;;;;;;17659:29;;;;;;;;;;;:38;;17698:1;17659:41;;;;;;;;;;;;;;;;;;;;;;;;;17636:9;17654:1;17652;17649;17647;:3;17646:7;:9;17636:20;;;;;;;;;;;;;:64;;;;;;;;;;;17746:5;:29;17752:8;:22;17761:9;17771:1;17761:12;;;;;;;;;;;;;;17752:22;;;;;;;;;;;;;;;;17746:29;;;;;;;;;;;:38;;17785:1;17746:41;;;;;;;;;;;;;;;;;;;;;;;;;17723:9;17741:1;17739;17736;17734;:3;17733:7;:9;17723:20;;;;;;;;;;;;;:64;;;;;;;;;;;17517:290;17424:531;;;17864:5;17847:22;;17903:9;17913:1;17903:12;;;;;;;;;;;;;;17888:27;;17934:5;;17424:531;17405:3;;;;;;;17380:586;;;;17985:14;17984:15;17976:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18045:12;18038:19;;;;;16833:1234;;;;:::o;807:87::-;763:5;;;;;;;;;;;749:19;;:10;:19;;;741:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;882:6;874:5;;:14;;;;;;;;;;;;;;;;;;807:87;:::o;300:104::-;352:4;377:1;372;:6;;365:14;;;;397:1;393;:5;386:12;;300:104;;;;:::o;13962:2863::-;14032:16;14059:18;14090;14119:14;14144;14169;14194:10;14229:1;14220:5;:10;14217:964;;;14262:5;:12;14268:5;14262:12;;;;;;;;;;;:25;;;14246:41;;14217:964;;;14316:1;14307:5;:10;:24;;;;14330:1;14321:5;:10;14307:24;:39;;;;14344:2;14335:5;:11;14307:39;14304:877;;;14374:5;:12;14380:5;14374:12;;;;;;;;;;;:23;;;14362:35;;14428:5;:16;14434:9;14428:16;;;;;;;;;;;:27;;;14412:43;;14304:877;;;14485:1;14476:5;:10;:24;;;;14499:1;14490:5;:10;14476:24;:39;;;;14513:2;14504:5;:11;14476:39;:54;;;;14528:2;14519:5;:11;14476:54;14473:708;;;14558:5;:12;14564:5;14558:12;;;;;;;;;;;:23;;;14546:35;;14612:5;:16;14618:9;14612:16;;;;;;;;;;;:27;;;14596:43;;14473:708;;;14669:1;14660:5;:10;:24;;;;14683:1;14674:5;:10;14660:24;:39;;;;14697:2;14688:5;:11;14660:39;:54;;;;14712:2;14703:5;:11;14660:54;14657:524;;;14742:5;:12;14748:5;14742:12;;;;;;;;;;;:23;;;14730:35;;14792:5;:16;14798:9;14792:16;;;;;;;;;;;:27;;;14780:39;;14850:5;:16;14856:9;14850:16;;;;;;;;;;;:27;;;14834:43;;14657:524;;;14907:1;14898:5;:10;:24;;;;14921:1;14912:5;:10;14898:24;:39;;;;14935:2;14926:5;:11;14898:39;:54;;;;14950:2;14941:5;:11;14898:54;14895:286;;;14980:5;:12;14986:5;14980:12;;;;;;;;;;;:23;;;14968:35;;15030:5;:16;15036:9;15030:16;;;;;;;;;;;:27;;;15018:39;;15084:5;:16;15090:9;15084:16;;;;;;;;;;;:27;;;15072:39;;15142:5;:16;15148:9;15142:16;;;;;;;;;;;:27;;;15126:43;;14895:286;14657:524;14473:708;14304:877;14217:964;15197:5;:20;15203:13;15197:20;;;;;;;;;;;:28;;;;;;;;;;;;15196:29;:80;;;;15271:5;15229:47;;:5;:20;15235:13;15229:20;;;;;;;;;;;:31;;:38;15261:5;15229:38;;;;;;;;;;;;;;;;;;;;;:47;;;15196:80;15193:204;;;15303:11;;;;;;;;;;;15292:22;;15193:204;;;15358:5;:20;15364:13;15358:20;;;;;;;;;;;:27;;;;;;;;;;;;15347:38;;15193:204;15417:10;:17;15428:5;15417:17;;;;;;;;;;;;15409:25;;15484:1;15466:8;:15;15475:5;15466:15;;;;;;;;;;;;:19;15463:250;;;15501:11;15552;;;;;;;;;;;15536:34;;:51;15571:8;:15;15580:5;15571:15;;;;;;;;;;;;15536:51;;;;;;;;;;;;;;;;;;;;;;;15527:60;;15610:35;15623:5;15629:8;:15;15638:5;15629:15;;;;;;;;;;;;15610:12;:35::i;:::-;15602:43;;15672:29;15685:9;;15695:5;15672:12;:29::i;:::-;15660:9;:41;;;;15463:250;;15733:25;15746:5;;15752;15733:12;:25::i;:::-;15725:5;:33;;;;15781:1;15774:5;:8;15771:759;;15804:5;:32;15810:5;:12;15816:5;15810:12;;;;;;;;;;;:25;;;15804:32;;;;;;;;;;;:40;;;;;;;;;;;;15800:343;;15877:11;;;;;;;;;;;15864:24;;15800:343;;;15970:5;15932:43;;:5;:16;15938:9;15932:16;;;;;;;;;;;:27;;:34;15960:5;15932:34;;;;;;;;;;;;;;;;;;;;;:43;;;15929:199;;;16012:11;;;;;;;;;;;15999:24;;15929:199;;;16085:5;:16;16091:9;16085:16;;;;;;;;;;;:23;;;;;;;;;;;;16072:36;;15929:199;15800:343;16167:21;16180:5;16186:1;16167:12;:21::i;:::-;16159:29;;16205:15;16264:8;16248:31;;:38;16280:5;16248:38;;;;;;;;;;;;;;;;;;;;;;;16235:51;;16303:15;16362:10;16346:33;;:40;16380:5;16346:40;;;;;;;;;;;;;;;;;;;;;;;16333:53;;15771:759;;;;;16433:17;16496:8;16480:31;;:38;16512:5;16480:38;;;;;;;;;;;;;;;;;;;;;;;16465:53;;15771:759;;16587:5;16545:47;;:5;:20;16551:13;16545:20;;;;;;;;;;;:31;;:38;16577:5;16545:38;;;;;;;;;;;;;;;;;;;;;:47;;;16542:149;;;16639:8;:20;16648:10;16639:20;;;;;;;;;;;;;;;;16624:13;16614:65;16661:5;16668;16675:3;16614:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16542:149;16758:8;:20;16767:10;16758:20;;;;;;;;;;;;;;;;16738:8;:18;16747:8;16738:18;;;;;;;;;;;;;;;;16716:8;:20;16725:10;16716:20;;;;;;;;;;;;;;;;16708:107;16780:5;16787;16794:8;:15;16803:5;16794:15;;;;;;;;;;;;16811:3;16708:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13962:2863;;;;;;;;;:::o;410:121::-;462:4;475:6;488:1;484;:5;475:14;;508:1;503;:6;;496:14;;;;524:1;517:8;;;410:121;;;;:::o;194:100::-;246:4;259:6;272:1;268;:5;;;;;;259:14;;287:1;280:8;;;194:100;;;;:::o;903:17608::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://40f84d12cfb377c283e85f230fb38399399ea3106145db3ad1cc9677ddb95bec
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.