Contract 0xC8a6b6c7FA7f26C336639e5b41f589bd95F2DB27

 
Ad
Ad
Txn Hash
Block
From
To
Value [Txn Fee]
0xb30b46ef0510ca05c15c4af7b77a49776efd1019ec7889bfb5d0f1634d6f47ed67485312021-04-21 3:28:5923 hrs 17 mins ago0x22450f585c1dc857c201e820b0e355a7d9d7793c IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000342775
0xb891544ab227a227ecd8d787291d74ebe033328b7e31b5c6cb04482f7b44513866348972021-04-17 4:23:414 days 22 hrs ago0x22450f585c1dc857c201e820b0e355a7d9d7793c IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000342775
0xa246ac46b80c2f72d0a39d2fa06bf8db7939f430717dc3f3bc755c4e86dc02f666233462021-04-16 18:44:435 days 8 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00045832
0x46fd1b16224612a33b3be0d98f417203b61d3e252ac6e1ed1cc4f5977469fc4865755472021-04-15 2:46:327 days ago0x22450f585c1dc857c201e820b0e355a7d9d7793c IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000342775
0xf72a1c85d18b9878cbe2c2d8b834dc7a5a9334714746ee8ece26ffdee865024165686472021-04-14 21:01:327 days 5 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00036224
0x863c9f15293e05cd6bfec0bbf1fd985b1bd6f2e7cc137618d5328acce928f46d65459882021-04-14 2:07:258 days 39 mins ago0x40d1906cda91313a8267921f9c296d1e08f17cb0 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000448445
0x4ebb1b18106c81f6eb82d928480f0f6993cea1373cae4027e83dad02ea37b72765441382021-04-14 0:34:558 days 2 hrs ago0x34581e6d2ed26723f7d99adc3716a4b857faeb7e IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00065717
0x78f753b783d5dabb6a53268e4b3336c6dd3f3a4bb66eb1cb1be2fdeea1202c0365174592021-04-13 2:20:279 days 26 mins ago0x22450f585c1dc857c201e820b0e355a7d9d7793c IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000342775
0xbe6ee24f76d217562206dc9103fd44806bd7fa98012f1d0668c9a01c5439a9ac65103182021-04-12 20:23:229 days 6 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00056109
0xa47f9e8947848197b7468f2ff2f8e2418a20e2dcb5c5fb6ad78e8de2b6fb6fc265008542021-04-12 12:27:439 days 14 hrs ago0x40d1906cda91313a8267921f9c296d1e08f17cb0 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000352365
0xbe2ec0d1494abcc971bd3a45f64d50aa30a5529e2479c6f22821172c29fe3d3e64997122021-04-12 11:30:379 days 15 hrs ago0x34581e6d2ed26723f7d99adc3716a4b857faeb7e IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00046501
0xf9e9c352379b481ccaa1c898dbe48f4954061f1b16ac09c71665fa0af42d66a364771602021-04-11 16:42:2610 days 10 hrs ago0x68003dd9c48c58caaf516d6e10c974781f3c51c8 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270.1 BNB0.000823055
0xf7689d61598de718fe339a7cca6443e36b201659c57070ca49e1069216a883cf64680162021-04-11 9:05:0610 days 17 hrs ago0x68003dd9c48c58caaf516d6e10c974781f3c51c8 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00010627
0x40906dddd84462c931d83037106b41456e8a85a0241c5ee6e854f5eec592867c64677862021-04-11 8:53:3610 days 17 hrs ago0x68003dd9c48c58caaf516d6e10c974781f3c51c8 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00039053
0x498d1d1373acfb893b987a78e54c1194143fe65689885d97105cc4b01bbd16b164578852021-04-11 0:36:3711 days 2 hrs ago0x22450f585c1dc857c201e820b0e355a7d9d7793c IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000492775
0xab1320fa0cd4bafce621ef78e0d869a6694c9c6391797a236872777ec38fbb9364556872021-04-10 22:46:4311 days 4 hrs ago0x51a1e05273db2e90aac1c63fd0adaacca239e9cc IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00010627
0xca59bfce3100bdae27b38eb0c24515167167ff4ec80152a851b08b03dc32b1ce64556502021-04-10 22:44:5211 days 4 hrs ago0x51a1e05273db2e90aac1c63fd0adaacca239e9cc IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00023414
0xf100008bd3014b7de9fb2291108daddbe164aa4a96ba91107893cc2fd30400df64554022021-04-10 22:32:2811 days 4 hrs ago0x34581e6d2ed26723f7d99adc3716a4b857faeb7e IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00046501
0x2ba56e19cc41c4592fb87e88f55c8861eac32cc572b1e4b19e6f522cf038381064552812021-04-10 22:26:2511 days 4 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00054001
0xecfae3a3b066bc82509008fb4eada58cd589d3e686b3275ad40b875a6477f33964512182021-04-10 19:03:1611 days 7 hrs ago0x40d1906cda91313a8267921f9c296d1e08f17cb0 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000352365
0xb379d1e3c0d695582d2eacb02fcf0565eb4329e1494e2558e9b80e9cd599aa5564202112021-04-09 17:11:1412 days 9 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270.1 BNB0.000823055
0x709f9fff980578843f3e791b68ff388ea5cc88f7ce8e97b1ccd9a8a8dc703dee64046182021-04-09 4:04:0312 days 22 hrs ago0x34581e6d2ed26723f7d99adc3716a4b857faeb7e IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00069001
0x97d5c48c33fae83a3132107d757d9e6f01860783a4693a7d201db5b52d1d344664004552021-04-09 0:33:4513 days 2 hrs ago0x40d1906cda91313a8267921f9c296d1e08f17cb0 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000352365
0x1884de7178a80208322967fe5c85d6e365260f0a336ab4971038178c0a35742a63903352021-04-08 15:52:4113 days 10 hrs ago0xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.000502365
0x4893e03af755821488f2932b4a49de939cdc9e2489aaca2fb7ecd2eca94777a163495402021-04-07 4:34:5914 days 22 hrs ago0x40d1906cda91313a8267921f9c296d1e08f17cb0 IN  0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270 BNB0.00100473
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xb30b46ef0510ca05c15c4af7b77a49776efd1019ec7889bfb5d0f1634d6f47ed67485312021-04-21 3:28:5923 hrs 17 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.000158480555555555 BNB
0xb30b46ef0510ca05c15c4af7b77a49776efd1019ec7889bfb5d0f1634d6f47ed67485312021-04-21 3:28:5923 hrs 17 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x22450f585c1dc857c201e820b0e355a7d9d7793c0.003962013888888888 BNB
0xb891544ab227a227ecd8d787291d74ebe033328b7e31b5c6cb04482f7b44513866348972021-04-17 4:23:414 days 22 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.000082698611111111 BNB
0xb891544ab227a227ecd8d787291d74ebe033328b7e31b5c6cb04482f7b44513866348972021-04-17 4:23:414 days 22 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x22450f585c1dc857c201e820b0e355a7d9d7793c0.002067465277777777 BNB
0xa246ac46b80c2f72d0a39d2fa06bf8db7939f430717dc3f3bc755c4e86dc02f666233462021-04-16 18:44:435 days 8 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.001177644444444444 BNB
0xa246ac46b80c2f72d0a39d2fa06bf8db7939f430717dc3f3bc755c4e86dc02f666233462021-04-16 18:44:435 days 8 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a0.029441111111111111 BNB
0x46fd1b16224612a33b3be0d98f417203b61d3e252ac6e1ed1cc4f5977469fc4865755472021-04-15 2:46:327 days ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.000080724537037037 BNB
0x46fd1b16224612a33b3be0d98f417203b61d3e252ac6e1ed1cc4f5977469fc4865755472021-04-15 2:46:327 days ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x22450f585c1dc857c201e820b0e355a7d9d7793c0.002018113425925925 BNB
0xf72a1c85d18b9878cbe2c2d8b834dc7a5a9334714746ee8ece26ffdee865024165686472021-04-14 21:01:327 days 5 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.001296962962962962 BNB
0xf72a1c85d18b9878cbe2c2d8b834dc7a5a9334714746ee8ece26ffdee865024165686472021-04-14 21:01:327 days 5 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a0.032424074074074074 BNB
0x863c9f15293e05cd6bfec0bbf1fd985b1bd6f2e7cc137618d5328acce928f46d65459882021-04-14 2:07:258 days 39 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.000333355555555555 BNB
0x863c9f15293e05cd6bfec0bbf1fd985b1bd6f2e7cc137618d5328acce928f46d65459882021-04-14 2:07:258 days 39 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x40d1906cda91313a8267921f9c296d1e08f17cb00.008333888888888888 BNB
0x4ebb1b18106c81f6eb82d928480f0f6993cea1373cae4027e83dad02ea37b72765441382021-04-14 0:34:558 days 2 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.004300851851851851 BNB
0x4ebb1b18106c81f6eb82d928480f0f6993cea1373cae4027e83dad02ea37b72765441382021-04-14 0:34:558 days 2 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x34581e6d2ed26723f7d99adc3716a4b857faeb7e0.107521296296296295 BNB
0x78f753b783d5dabb6a53268e4b3336c6dd3f3a4bb66eb1cb1be2fdeea1202c0365174592021-04-13 2:20:279 days 26 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.000082884259259259 BNB
0x78f753b783d5dabb6a53268e4b3336c6dd3f3a4bb66eb1cb1be2fdeea1202c0365174592021-04-13 2:20:279 days 26 mins ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x22450f585c1dc857c201e820b0e355a7d9d7793c0.002072106481481481 BNB
0xbe6ee24f76d217562206dc9103fd44806bd7fa98012f1d0668c9a01c5439a9ac65103182021-04-12 20:23:229 days 6 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.001588015555555555 BNB
0xbe6ee24f76d217562206dc9103fd44806bd7fa98012f1d0668c9a01c5439a9ac65103182021-04-12 20:23:229 days 6 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270xe8e4b5e1319b41b4de5d36d1bed86c99b130a66a0.039700388888888888 BNB
0xa47f9e8947848197b7468f2ff2f8e2418a20e2dcb5c5fb6ad78e8de2b6fb6fc265008542021-04-12 12:27:439 days 14 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.0038647 BNB
0xa47f9e8947848197b7468f2ff2f8e2418a20e2dcb5c5fb6ad78e8de2b6fb6fc265008542021-04-12 12:27:439 days 14 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x40d1906cda91313a8267921f9c296d1e08f17cb00.0966175 BNB
0xbe2ec0d1494abcc971bd3a45f64d50aa30a5529e2479c6f22821172c29fe3d3e64997122021-04-12 11:30:379 days 15 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.018731044444444444 BNB
0xbe2ec0d1494abcc971bd3a45f64d50aa30a5529e2479c6f22821172c29fe3d3e64997122021-04-12 11:30:379 days 15 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x34581e6d2ed26723f7d99adc3716a4b857faeb7e0.46827611111111111 BNB
0xf9e9c352379b481ccaa1c898dbe48f4954061f1b16ac09c71665fa0af42d66a364771602021-04-11 16:42:2610 days 10 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x55cc86010361797a26b1341823dee6f0b0a412700.004 BNB
0xf9e9c352379b481ccaa1c898dbe48f4954061f1b16ac09c71665fa0af42d66a364771602021-04-11 16:42:2610 days 10 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x0edf3f1bba1e455962b4321b74ab73fb39648aaf0.004 BNB
0xf9e9c352379b481ccaa1c898dbe48f4954061f1b16ac09c71665fa0af42d66a364771602021-04-11 16:42:2610 days 10 hrs ago 0xc8a6b6c7fa7f26c336639e5b41f589bd95f2db270x51a1e05273db2e90aac1c63fd0adaacca239e9cc0.0027 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HouseProfit

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at BscScan.com on 2021-04-02
*/

/**
 *Submitted for verification at BscScan.com on 2021-04-05
*/

pragma solidity ^0.5.17;

library Objects {
    struct Investment {
        uint256 planId;
        uint256 investmentDate;
        uint256 investment;
        uint256 lastWithdrawalDate;
        uint256 currentDividends;
        bool isExpired;
    }

    struct Plan {
        uint256 dailyInterest;
        uint256 term; //0 means unlimited
    }

    struct Investor {
        address addr;
        uint256 referrerEarnings;
        uint256 availableReferrerEarnings;
        uint256 referrer;
        uint256 planCount;
        mapping(uint256 => Investment) plans;
        uint256 level1RefCount;
        uint256 level2RefCount;
        uint256 level3RefCount;
        uint256 checkpoint;
    }
}

contract Ownable {
    address public owner;

    event onOwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

contract HouseProfit is Ownable {
    using SafeMath for uint256;
    uint256 public constant DEVELOPER_RATE = 40; //per thousand
    uint256 public constant MARKETING_RATE = 40; //per thousand	
    uint256 public constant FUND_RATE = 40;
    uint256 public constant REFERENCE_RATE = 81;
    uint256 public constant REFERENCE_LEVEL1_RATE = 40;
    uint256 public constant REFERENCE_LEVEL2_RATE = 20;
    uint256 public constant REFERENCE_LEVEL3_RATE = 20;
    uint256 public constant REFERENCE_SELF_RATE = 1;
    uint256 public constant MINIMUM = 0.03 ether; //0.03 BNB minimum investment needed
    uint256 public constant REFERRER_CODE = 6666; //default
    uint256 public constant TIME_STEP = 86400;
    uint256 public constant DAY = 1 days;
    uint256 public constant LAUNCH_TIME = 1617638400; // Monday, 5 April 2021 4:00:00 PM UTC Time

    uint256 public latestReferrerCode;
    uint256 private totalInvestments_;

    address payable public fundAds;
    address payable public mktAds;
    address payable public prjAds;

    mapping(address => uint256) public address2UID;
    mapping(uint256 => Objects.Investor) public uid2Investor;
    Objects.Plan[] private investmentPlans_;

    event onInvest(address investor, uint256 amount);
    event onGrant(address grantor, address beneficiary, uint256 amount);
    event onWithdraw(address investor, uint256 amount);

    constructor(address payable fundAddr,address payable mktAddr, address payable prjAddr) public {
        fundAds = fundAddr;
        mktAds = mktAddr;
        prjAds = prjAddr;
        _init();
    }

    function() external payable {
        if (msg.value == 0) {
            withdraw();
        } else {
			invest(0, 0); //default to buy plan 0, no referrer
        }
    }

    function checkIn() public {
    }

    function setMarketingAccount(address payable _newMarketingAccount) public onlyOwner {
        require(_newMarketingAccount != address(0));
        mktAds = _newMarketingAccount;
    }

    function getMarketingAccount() public view onlyOwner returns (address) {
        return mktAds;
    }

    function setDeveloperAccount(address payable _newDeveloperAccount) public onlyOwner {
        require(_newDeveloperAccount != address(0));
        prjAds = _newDeveloperAccount;
    }

    function getDeveloperAccount() public view onlyOwner returns (address) {
        return prjAds;
    }

    function setReferenceAccount(address payable _newReferenceAccount) public onlyOwner {
        require(_newReferenceAccount != address(0));
        prjAds = _newReferenceAccount;
    }

    function getReferenceAccount() public view onlyOwner returns (address) {
        return prjAds;
    }

    function _init() private {
        latestReferrerCode = REFERRER_CODE;
        address2UID[msg.sender] = latestReferrerCode;
        uid2Investor[latestReferrerCode].addr = msg.sender;
        uid2Investor[latestReferrerCode].referrer = 0;
        uid2Investor[latestReferrerCode].planCount = 0;
        investmentPlans_.push(Objects.Plan(20, 0)); //unlimited
        investmentPlans_.push(Objects.Plan(40, TIME_STEP.mul(60))); //60 days
        investmentPlans_.push(Objects.Plan(80, TIME_STEP.mul(17))); //17 days
        investmentPlans_.push(Objects.Plan(160, TIME_STEP.mul(7))); //7 days
    }

    function getCurrentPlans() public view returns (uint256[] memory, uint256[] memory, uint256[] memory) {
        uint256[] memory ids = new uint256[](investmentPlans_.length);
        uint256[] memory interests = new uint256[](investmentPlans_.length);
        uint256[] memory terms = new uint256[](investmentPlans_.length);
        for (uint256 i = 0; i < investmentPlans_.length; i++) {
            Objects.Plan storage plan = investmentPlans_[i];
            ids[i] = i;
            interests[i] = plan.dailyInterest;
            terms[i] = plan.term;
        }
        return
        (
        ids,
        interests,
        terms
        );
    }

    function getTotalInvestments() public onlyOwner view returns (uint256){
        return totalInvestments_;
    }

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

    function getUIDByAddress(address _addr) public view returns (uint256) {
        return address2UID[_addr];
    }

    function getInvestorInfoByUID(uint256 _uid) public view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256, uint256[] memory, uint256[] memory) {
        if (msg.sender != owner) {
            require(address2UID[msg.sender] == _uid, "only owner or self can check the investor info.");
        }
        Objects.Investor storage investor = uid2Investor[_uid];
        uint256[] memory newDividends = new uint256[](investor.planCount);
        uint256[] memory currentDividends = new  uint256[](investor.planCount);
        for (uint256 i = 0; i < investor.planCount; i++) {
            require(investor.plans[i].investmentDate != 0, "wrong investment date");
            currentDividends[i] = investor.plans[i].currentDividends;
            if (investor.plans[i].isExpired) {
                newDividends[i] = 0;
            } else {
                if (investmentPlans_[investor.plans[i].planId].term > 0) {
                    if (block.timestamp >= investor.plans[i].investmentDate.add(investmentPlans_[investor.plans[i].planId].term)) {
                        newDividends[i] = _calculateDividends(investor.plans[i].investment, investmentPlans_[investor.plans[i].planId].dailyInterest, investor.plans[i].investmentDate.add(investmentPlans_[investor.plans[i].planId].term), investor.plans[i].lastWithdrawalDate);
                    } else {
                        newDividends[i] = _calculateDividends(investor.plans[i].investment, investmentPlans_[investor.plans[i].planId].dailyInterest, block.timestamp, investor.plans[i].lastWithdrawalDate);
                    }
                } else {
                    newDividends[i] = _calculateDividends(investor.plans[i].investment, investmentPlans_[investor.plans[i].planId].dailyInterest, block.timestamp, investor.plans[i].lastWithdrawalDate);
                }
            }
        }
        return
        (
        investor.referrerEarnings,
        investor.availableReferrerEarnings,
        investor.referrer,
        investor.level1RefCount,
        investor.level2RefCount,
        investor.level3RefCount,
        investor.planCount,
        currentDividends,
        newDividends
        );
    }

    function getInvestmentPlanByUID(uint256 _uid) public view returns (uint256[] memory, uint256[] memory, uint256[] memory, uint256[] memory, bool[] memory) {
        if (msg.sender != owner) {
            require(address2UID[msg.sender] == _uid, "only owner or self can check the investment plan info.");
        }
        Objects.Investor storage investor = uid2Investor[_uid];
        uint256[] memory planIds = new  uint256[](investor.planCount);
        uint256[] memory investmentDates = new  uint256[](investor.planCount);
        uint256[] memory investments = new  uint256[](investor.planCount);
        uint256[] memory currentDividends = new  uint256[](investor.planCount);
        bool[] memory isExpireds = new  bool[](investor.planCount);

        for (uint256 i = 0; i < investor.planCount; i++) {
            require(investor.plans[i].investmentDate!=0,"wrong investment date");
            planIds[i] = investor.plans[i].planId;
            currentDividends[i] = investor.plans[i].currentDividends;
            investmentDates[i] = investor.plans[i].investmentDate;
            investments[i] = investor.plans[i].investment;
            if (investor.plans[i].isExpired) {
                isExpireds[i] = true;
            } else {
                isExpireds[i] = false;
                if (investmentPlans_[investor.plans[i].planId].term > 0) {
                    if (block.timestamp >= investor.plans[i].investmentDate.add(investmentPlans_[investor.plans[i].planId].term)) {
                        isExpireds[i] = true;
                    }
                }
            }
        }

        return
        (
        planIds,
        investmentDates,
        investments,
        currentDividends,
        isExpireds
        );
    }

    function _addInvestor(address _addr, uint256 _referrerCode) private returns (uint256) {
        if (_referrerCode >= REFERRER_CODE) {
            //require(uid2Investor[_referrerCode].addr != address(0), "Wrong referrer code");
            if (uid2Investor[_referrerCode].addr == address(0)) {
                _referrerCode = 0;
            }
        } else {
            _referrerCode = 0;
        }
        address addr = _addr;
        latestReferrerCode = latestReferrerCode.add(1);
        address2UID[addr] = latestReferrerCode;
        uid2Investor[latestReferrerCode].addr = addr;
        uid2Investor[latestReferrerCode].referrer = _referrerCode;
        uid2Investor[latestReferrerCode].planCount = 0;
        if (_referrerCode >= REFERRER_CODE) {
            uint256 _ref1 = _referrerCode;
            uint256 _ref2 = uid2Investor[_ref1].referrer;
            uint256 _ref3 = uid2Investor[_ref2].referrer;
            uid2Investor[_ref1].level1RefCount = uid2Investor[_ref1].level1RefCount.add(1);
            if (_ref2 >= REFERRER_CODE) {
                uid2Investor[_ref2].level2RefCount = uid2Investor[_ref2].level2RefCount.add(1);
            }
            if (_ref3 >= REFERRER_CODE) {
                uid2Investor[_ref3].level3RefCount = uid2Investor[_ref3].level3RefCount.add(1);
            }
        }
        return (latestReferrerCode);
    }

    function _invest(address _addr, uint256 _planId, uint256 _referrerCode, uint256 _amount) private returns (bool) {
        require(block.timestamp >= LAUNCH_TIME ,"Not Launch");
        require(_planId >= 0 && _planId < investmentPlans_.length, "Wrong investment plan id");
        require(_amount >= MINIMUM, "Less than the minimum amount of deposit requirement");
        uint256 uid = address2UID[_addr];
        if (uid == 0) {
            uid = _addInvestor(_addr, _referrerCode);
            //new user
        } else {//old user
            //do nothing, referrer is permenant
        }
        uint256 planCount = uid2Investor[uid].planCount;
        Objects.Investor storage investor = uid2Investor[uid];
        investor.plans[planCount].planId = _planId;
        investor.plans[planCount].investmentDate = block.timestamp;
        investor.plans[planCount].lastWithdrawalDate = block.timestamp;
        investor.plans[planCount].investment = _amount;
        investor.plans[planCount].currentDividends = 0;
        investor.plans[planCount].isExpired = false;

        investor.planCount = investor.planCount.add(1);

        _calculateReferrerReward(uid, _amount, investor.referrer);

        totalInvestments_ = totalInvestments_.add(_amount);

        uint256 developerPercentage = (_amount.mul(DEVELOPER_RATE)).div(1000);
        prjAds.transfer(developerPercentage);
        uint256 marketingPercentage = (_amount.mul(MARKETING_RATE)).div(1000);
        mktAds.transfer(marketingPercentage);
        
        return true;
    }

    function grant(address addr, uint256 _planId) public payable {
        uint256 grantorUid = address2UID[msg.sender];
        bool isAutoAddReferrer = true;
        uint256 referrerCode = 0;

        if (grantorUid != 0 && isAutoAddReferrer) {
            referrerCode = grantorUid;
        }

        if (_invest(addr,_planId,referrerCode,msg.value)) {
            emit onGrant(msg.sender, addr, msg.value);
        }
    }

    function invest(uint256 _referrerCode, uint256 _planId) public payable {
        if (_invest(msg.sender, _planId, _referrerCode, msg.value)) {
            emit onInvest(msg.sender, msg.value);
        }
    }

    function withdraw() public payable {
        require(msg.value == 0, "withdrawal doesn't allow to transfer hr simultaneously");
        uint256 uid = address2UID[msg.sender];
        require (block.timestamp >= uid2Investor[uid].checkpoint.add(DAY.mul(3).div(2)), "Withdraw every 36 hours");
        require(uid != 0, "Can not withdraw because no any investments");
        uint256 withdrawalAmount = 0;
        for (uint256 i = 0; i < uid2Investor[uid].planCount; i++) {
            if (uid2Investor[uid].plans[i].isExpired) {
                continue;
            }

            Objects.Plan storage plan = investmentPlans_[uid2Investor[uid].plans[i].planId];

            bool isExpired = false;
            uint256 withdrawalDate = block.timestamp;
            if (plan.term > 0) {
                uint256 endTime = uid2Investor[uid].plans[i].investmentDate.add(plan.term);
                if (withdrawalDate >= endTime) {
                    withdrawalDate = endTime;
                    isExpired = true;
                }
            }

            uint256 amount = _calculateDividends(uid2Investor[uid].plans[i].investment , plan.dailyInterest , withdrawalDate , uid2Investor[uid].plans[i].lastWithdrawalDate);

            withdrawalAmount += amount;

            uid2Investor[uid].plans[i].lastWithdrawalDate = withdrawalDate;
            uid2Investor[uid].plans[i].isExpired = isExpired;
            uid2Investor[uid].plans[i].currentDividends += amount;
        }
		
		if (withdrawalAmount>0) {
			msg.sender.transfer(withdrawalAmount);
            uint256 fundingPercentage = (withdrawalAmount.mul(FUND_RATE)).div(1000);
            fundAds.transfer(fundingPercentage);
		}
		

        if (uid2Investor[uid].availableReferrerEarnings>0) {
            msg.sender.transfer(uid2Investor[uid].availableReferrerEarnings);
            uid2Investor[uid].referrerEarnings = uid2Investor[uid].availableReferrerEarnings.add(uid2Investor[uid].referrerEarnings);
            uid2Investor[uid].availableReferrerEarnings = 0;
        }
        
        uid2Investor[uid].checkpoint = block.timestamp;
        

        emit onWithdraw(msg.sender, withdrawalAmount);
    }

    function _calculateDividends(uint256 _amount, uint256 _dailyInterestRate, uint256 _now, uint256 _start) private pure returns (uint256) {
        return (_amount * _dailyInterestRate / 1000 * (_now - _start)) / TIME_STEP;
    }

    function _calculateReferrerReward(uint256 _uid, uint256 _investment, uint256 _referrerCode) private {

        uint256 _allReferrerAmount = (_investment.mul(REFERENCE_RATE)).div(1000);
        if (_referrerCode != 0) {
            uint256 _ref1 = _referrerCode;
            uint256 _ref2 = uid2Investor[_ref1].referrer;
            uint256 _ref3 = uid2Investor[_ref2].referrer;
            uint256 _refAmount = 0;

            if (_ref1 != 0) {
                _refAmount = (_investment.mul(REFERENCE_LEVEL1_RATE)).div(1000);
                _allReferrerAmount = _allReferrerAmount.sub(_refAmount);
                uid2Investor[_ref1].availableReferrerEarnings = _refAmount.add(uid2Investor[_ref1].availableReferrerEarnings);
                _refAmount = (_investment.mul(REFERENCE_SELF_RATE)).div(1000);
                uid2Investor[_uid].availableReferrerEarnings =  _refAmount.add(uid2Investor[_uid].availableReferrerEarnings);
            }

            if (_ref2 != 0) {
                _refAmount = (_investment.mul(REFERENCE_LEVEL2_RATE)).div(1000);
                _allReferrerAmount = _allReferrerAmount.sub(_refAmount);
                uid2Investor[_ref2].availableReferrerEarnings = _refAmount.add(uid2Investor[_ref2].availableReferrerEarnings);
            }

            if (_ref3 != 0) {
                _refAmount = (_investment.mul(REFERENCE_LEVEL3_RATE)).div(1000);
                _allReferrerAmount = _allReferrerAmount.sub(_refAmount);
                uid2Investor[_ref3].availableReferrerEarnings = _refAmount.add(uid2Investor[_ref3].availableReferrerEarnings);
            }
        }

        if (_allReferrerAmount > 0) {
            prjAds.transfer(_allReferrerAmount.div(3));
            mktAds.transfer(_allReferrerAmount.div(3));
            fundAds.transfer(_allReferrerAmount.div(3));
        }
    }

}

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

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

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

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

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"fundAddr","type":"address"},{"internalType":"address payable","name":"mktAddr","type":"address"},{"internalType":"address payable","name":"prjAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"grantor","type":"address"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onGrant","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onInvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"onOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"onWithdraw","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DEVELOPER_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FUND_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LAUNCH_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MARKETING_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERENCE_LEVEL1_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERENCE_LEVEL2_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERENCE_LEVEL3_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERENCE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERENCE_SELF_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"REFERRER_CODE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TIME_STEP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"address2UID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"checkIn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundAds","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentPlans","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDeveloperAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_uid","type":"uint256"}],"name":"getInvestmentPlanByUID","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bool[]","name":"","type":"bool[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_uid","type":"uint256"}],"name":"getInvestorInfoByUID","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMarketingAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReferenceAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalInvestments","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"getUIDByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"_planId","type":"uint256"}],"name":"grant","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_referrerCode","type":"uint256"},{"internalType":"uint256","name":"_planId","type":"uint256"}],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"latestReferrerCode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mktAds","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"prjAds","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newDeveloperAccount","type":"address"}],"name":"setDeveloperAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newMarketingAccount","type":"address"}],"name":"setMarketingAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_newReferenceAccount","type":"address"}],"name":"setReferenceAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uid2Investor","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"referrerEarnings","type":"uint256"},{"internalType":"uint256","name":"availableReferrerEarnings","type":"uint256"},{"internalType":"uint256","name":"referrer","type":"uint256"},{"internalType":"uint256","name":"planCount","type":"uint256"},{"internalType":"uint256","name":"level1RefCount","type":"uint256"},{"internalType":"uint256","name":"level2RefCount","type":"uint256"},{"internalType":"uint256","name":"level3RefCount","type":"uint256"},{"internalType":"uint256","name":"checkpoint","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003b1b38038062003b1b833981810160405260608110156200003757600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200016f6200017860201b60201c565b50505062000457565b611a0a600181905550600154600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503360076000600154815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060076000600154815260200190815260200160002060030181905550600060076000600154815260200190815260200160002060040181905550600860405180604001604052806014815260200160008152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050506008604051806040016040528060288152602001620002e7603c620151806200041c60201b620029e11790919060201c565b81525090806001815401808255809150509060018203906000526020600020906002020160009091929091909150600082015181600001556020820151816001015550505060086040518060400160405280605081526020016200035e6011620151806200041c60201b620029e11790919060201c565b8152509080600181540180825580915050906001820390600052602060002090600202016000909192909190915060008201518160000155602082015181600101555050506008604051806040016040528060a08152602001620003d56007620151806200041c60201b620029e11790919060201c565b815250908060018154018082558091505090600182039060005260206000209060020201600090919290919091506000820151816000015560208201518160010155505050565b60008083141562000431576000905062000451565b60008284029050828482816200044357fe5b04146200044c57fe5b809150505b92915050565b6136b480620004676000396000f3fe60806040526004361061021a5760003560e01c80637e3ee80d11610123578063b2a0df7d116100ab578063e87de7681161006f578063e87de76814610c3e578063f2fde38b14610d3a578063f3e7569f14610d8b578063f9a026aa14610ddc578063fe4d017f14610e075761021a565b8063b2a0df7d14610a50578063b3b57c8714610a7b578063d6a63c9f14610b84578063d6ea1f6914610baf578063d87aa64314610c065761021a565b80638da5cb5b116100f25780638da5cb5b146108995780639c484b5c146108f0578063a50898cb1461091b578063a94f86b414610946578063ab92bff61461099d5761021a565b80637e3ee80d1461076f578063838fcc90146107c657806389b7e8601461081d5780638ac1a1a4146108485761021a565b806332bc298c116101a657806347f06cf61161017557806347f06cf6146104ca5780634b4138201461067a57806350b2a881146106a55780636370920e146106f657806375c04d0b146107445761021a565b806332bc298c14610413578063353346021461043e5780633ccfd60b1461049557806341a930ab1461049f5761021a565b8063183ff085116101ed578063183ff0851461032457806325ccbc431461033b57806327cfe8561461036657806328e7cef5146103915780632914ae51146103bc5761021a565b8063022466b51461023e57806312065fe0146102695780631463ae061461029457806316161548146102f9575b60003414156102305761022b610e6c565b61023c565b61023b6000806114d7565b5b005b34801561024a57600080fd5b50610253611558565b6040518082815260200191505060405180910390f35b34801561027557600080fd5b5061027e611560565b6040518082815260200191505060405180910390f35b3480156102a057600080fd5b506102e3600480360360208110156102b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611568565b6040518082815260200191505060405180910390f35b34801561030557600080fd5b5061030e611580565b6040518082815260200191505060405180910390f35b34801561033057600080fd5b50610339611585565b005b34801561034757600080fd5b50610350611587565b6040518082815260200191505060405180910390f35b34801561037257600080fd5b5061037b61158d565b6040518082815260200191505060405180910390f35b34801561039d57600080fd5b506103a6611594565b6040518082815260200191505060405180910390f35b3480156103c857600080fd5b506103d1611599565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561041f57600080fd5b506104286115bf565b6040518082815260200191505060405180910390f35b34801561044a57600080fd5b506104536115c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61049d610e6c565b005b3480156104ab57600080fd5b506104b4611649565b6040518082815260200191505060405180910390f35b3480156104d657600080fd5b50610503600480360360208110156104ed57600080fd5b810190808035906020019092919050505061164e565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b8381101561055657808201518184015260208101905061053b565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b8381101561059857808201518184015260208101905061057d565b50505050905001868103845289818151815260200191508051906020019060200280838360005b838110156105da5780820151818401526020810190506105bf565b50505050905001868103835288818151815260200191508051906020019060200280838360005b8381101561061c578082015181840152602081019050610601565b50505050905001868103825287818151815260200191508051906020019060200280838360005b8381101561065e578082015181840152602081019050610643565b505050509050019a505050505050505050505060405180910390f35b34801561068657600080fd5b5061068f611b3b565b6040518082815260200191505060405180910390f35b3480156106b157600080fd5b506106f4600480360360208110156106c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b40565b005b6107426004803603604081101561070c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c17565b005b34801561075057600080fd5b50610759611d35565b6040518082815260200191505060405180910390f35b34801561077b57600080fd5b50610784611d3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107d257600080fd5b506107db611dbe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082957600080fd5b50610832611e41565b6040518082815260200191505060405180910390f35b34801561085457600080fd5b506108976004803603602081101561086b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e46565b005b3480156108a557600080fd5b506108ae611f1d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108fc57600080fd5b50610905611f42565b6040518082815260200191505060405180910390f35b34801561092757600080fd5b50610930611f4d565b6040518082815260200191505060405180910390f35b34801561095257600080fd5b5061095b611f52565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109a957600080fd5b506109d6600480360360208110156109c057600080fd5b8101908080359060200190929190505050611f78565b604051808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b348015610a5c57600080fd5b50610a65611fe6565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610ab460048036036020811015610a9e57600080fd5b8101908080359060200190929190505050611feb565b604051808a81526020018981526020018881526020018781526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610b25578082015181840152602081019050610b0a565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610b67578082015181840152602081019050610b4c565b505050509050019b50505050505050505050505060405180910390f35b348015610b9057600080fd5b50610b9961258e565b6040518082815260200191505060405180910390f35b348015610bbb57600080fd5b50610bc4612593565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c3c60048036036040811015610c1c57600080fd5b8101908080359060200190929190803590602001909291905050506114d7565b005b348015610c4a57600080fd5b50610c536125b9565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610c9e578082015181840152602081019050610c83565b50505050905001848103835286818151815260200191508051906020019060200280838360005b83811015610ce0578082015181840152602081019050610cc5565b50505050905001848103825285818151815260200191508051906020019060200280838360005b83811015610d22578082015181840152602081019050610d07565b50505050905001965050505050505060405180910390f35b348015610d4657600080fd5b50610d8960048036036020811015610d5d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061270d565b005b348015610d9757600080fd5b50610dda60048036036020811015610dae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061285e565b005b348015610de857600080fd5b50610df1612935565b6040518082815260200191505060405180910390f35b348015610e1357600080fd5b50610e5660048036036020811015610e2a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612998565b6040518082815260200191505060405180910390f35b60003414610ec5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806135876036913960400191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610f5b610f366002610f286003620151806129e190919063ffffffff16565b612a1890919063ffffffff16565b6007600084815260200190815260200160002060090154612a3190919063ffffffff16565b421015610fd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f576974686472617720657665727920333620686f75727300000000000000000081525060200191505060405180910390fd5b600081141561102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806135bd602b913960400191505060405180910390fd5b600080905060008090505b60076000848152602001908152602001600020600401548110156112735760076000848152602001908152602001600020600501600082815260200190815260200160002060050160009054906101000a900460ff161561109557611266565b6000600860076000868152602001908152602001600020600501600084815260200190815260200160002060000154815481106110ce57fe5b906000526020600020906002020190506000809050600042905060008360010154111561114b5760006111388460010154600760008a8152602001908152602001600020600501600088815260200190815260200160002060010154612a3190919063ffffffff16565b905080821061114957809150600192505b505b60006111b160076000898152602001908152602001600020600501600087815260200190815260200160002060020154856000015484600760008c815260200190815260200160002060050160008a815260200190815260200160002060030154612a4d565b9050808601955081600760008981526020019081526020016000206005016000878152602001908152602001600020600301819055508260076000898152602001908152602001600020600501600087815260200190815260200160002060050160006101000a81548160ff0219169083151502179055508060076000898152602001908152602001600020600501600087815260200190815260200160002060040160008282540192505081905550505050505b8080600101915050611035565b50600081111561135b573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156112c3573d6000803e3d6000fd5b5060006112ee6103e86112e06028856129e190919063ffffffff16565b612a1890919063ffffffff16565b9050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611358573d6000803e3d6000fd5b50505b60006007600084815260200190815260200160002060020154111561144d573373ffffffffffffffffffffffffffffffffffffffff166108fc60076000858152602001908152602001600020600201549081150290604051600060405180830381858888f193505050501580156113d6573d6000803e3d6000fd5b5061141660076000848152602001908152602001600020600101546007600085815260200190815260200160002060020154612a3190919063ffffffff16565b6007600084815260200190815260200160002060010181905550600060076000848152602001908152602001600020600201819055505b4260076000848152602001908152602001600020600901819055507fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc3382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6114e333828434612a77565b15611554577f9a7b89cf778462f98a9b59f99121c720927a5c37ffaaba0346f77326622a8aeb3334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b63606b340081565b600047905090565b60066020528060005260406000206000915090505481565b605181565b565b611a0a81565b6201518081565b602881565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6201518081565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461162157600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602881565b60608060608060606000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117425785600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806136176036913960400191505060405180910390fd5b5b60006007600088815260200190815260200160002090506060816004015460405190808252806020026020018201604052801561178e5781602001602082028038833980820191505090505b509050606082600401546040519080825280602002602001820160405280156117c65781602001602082028038833980820191505090505b509050606083600401546040519080825280602002602001820160405280156117fe5781602001602082028038833980820191505090505b509050606084600401546040519080825280602002602001820160405280156118365781602001602082028038833980820191505090505b5090506060856004015460405190808252806020026020018201604052801561186e5781602001602082028038833980820191505090505b50905060008090505b8660040154811015611b1c576000876005016000838152602001908152602001600020600101541415611912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f77726f6e6720696e766573746d656e742064617465000000000000000000000081525060200191505060405180910390fd5b8660050160008281526020019081526020016000206000015486828151811061193757fe5b6020026020010181815250508660050160008281526020019081526020016000206004015483828151811061196857fe5b6020026020010181815250508660050160008281526020019081526020016000206001015485828151811061199957fe5b602002602001018181525050866005016000828152602001908152602001600020600201548482815181106119ca57fe5b60200260200101818152505086600501600082815260200190815260200160002060050160009054906101000a900460ff1615611a26576001828281518110611a0f57fe5b602002602001019015159081151581525050611b0f565b6000828281518110611a3457fe5b602002602001019015159081151581525050600060088860050160008481526020019081526020016000206000015481548110611a6d57fe5b9060005260206000209060020201600101541115611b0e57611ae660088860050160008481526020019081526020016000206000015481548110611aad57fe5b90600052602060002090600202016001015488600501600084815260200190815260200160002060010154612a3190919063ffffffff16565b4210611b0d576001828281518110611afa57fe5b6020026020010190151590811515815250505b5b5b8080600101915050611877565b5084848484849a509a509a509a509a5050505050505091939590929450565b601481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611bd357600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600060019050600080905060008314158015611c745750815b15611c7d578290505b611c8985858334612a77565b15611d2e577fa42dcf7f76c611f59eb8a21823736f441a5e515b7bb248b11ce834d25d063076338634604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15b5050505050565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d9657600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e1957600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602881565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e9f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611ed957600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b666a94d74f43000081565b601481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154908060040154908060060154908060070154908060080154908060090154905089565b600181565b60008060008060008060006060806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120e55789600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146120e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806135e8602f913960400191505060405180910390fd5b5b6000600760008c81526020019081526020016000209050606081600401546040519080825280602002602001820160405280156121315781602001602082028038833980820191505090505b509050606082600401546040519080825280602002602001820160405280156121695781602001602082028038833980820191505090505b50905060008090505b836004015481101561254657600084600501600083815260200190815260200160002060010154141561220d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f77726f6e6720696e766573746d656e742064617465000000000000000000000081525060200191505060405180910390fd5b8360050160008281526020019081526020016000206004015482828151811061223257fe5b60200260200101818152505083600501600082815260200190815260200160002060050160009054906101000a900460ff161561228857600083828151811061227757fe5b602002602001018181525050612539565b6000600885600501600084815260200190815260200160002060000154815481106122af57fe5b90600052602060002090600202016001015411156124ad57612328600885600501600084815260200190815260200160002060000154815481106122ef57fe5b90600052602060002090600202016001015485600501600084815260200190815260200160002060010154612a3190919063ffffffff16565b421061241d57612400846005016000838152602001908152602001600020600201546008866005016000858152602001908152602001600020600001548154811061236f57fe5b9060005260206000209060020201600001546123e2600888600501600087815260200190815260200160002060000154815481106123a957fe5b90600052602060002090600202016001015488600501600087815260200190815260200160002060010154612a3190919063ffffffff16565b87600501600086815260200190815260200160002060030154612a4d565b83828151811061240c57fe5b6020026020010181815250506124a8565b61248f846005016000838152602001908152602001600020600201546008866005016000858152602001908152602001600020600001548154811061245e57fe5b9060005260206000209060020201600001544287600501600086815260200190815260200160002060030154612a4d565b83828151811061249b57fe5b6020026020010181815250505b612538565b61251f84600501600083815260200190815260200160002060020154600886600501600085815260200190815260200160002060000154815481106124ee57fe5b9060005260206000209060020201600001544287600501600086815260200190815260200160002060030154612a4d565b83828151811061252b57fe5b6020026020010181815250505b5b8080600101915050612172565b50826001015483600201548460030154856006015486600701548760080154886004015487899b509b509b509b509b509b509b509b509b505050509193959799909294969850565b602881565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060806060806008805490506040519080825280602002602001820160405280156125f35781602001602082028038833980820191505090505b509050606060088054905060405190808252806020026020018201604052801561262c5781602001602082028038833980820191505090505b50905060606008805490506040519080825280602002602001820160405280156126655781602001602082028038833980820191505090505b50905060008090505b6008805490508110156126fb5760006008828154811061268a57fe5b90600052602060002090600202019050818583815181106126a757fe5b60200260200101818152505080600001548483815181106126c457fe5b60200260200101818152505080600101548383815181106126e157fe5b60200260200101818152505050808060010191505061266e565b50828282955095509550505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461276657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127a057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e3feca4334579203cd183fe1ced9524940047e5586fe13e8cc5dd1babaf6e8260405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146128b757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128f157600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461299057600080fd5b600254905090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000808314156129f45760009050612a12565b6000828402905082848281612a0557fe5b0414612a0d57fe5b809150505b92915050565b600080828481612a2457fe5b0490508091505092915050565b600080828401905083811015612a4357fe5b8091505092915050565b6000620151808284036103e886880281612a6357fe5b040281612a6c57fe5b049050949350505050565b600063606b3400421015612af3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e6f74204c61756e63680000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008410158015612b08575060088054905084105b612b7a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f57726f6e6720696e766573746d656e7420706c616e206964000000000000000081525060200191505060405180910390fd5b666a94d74f430000821015612bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018061364d6033913960400191505060405180910390fd5b6000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612c3857612c318685612eb3565b9050612c39565b5b60006007600083815260200190815260200160002060040154905060006007600084815260200190815260200160002090508681600501600084815260200190815260200160002060000181905550428160050160008481526020019081526020016000206001018190555042816005016000848152602001908152602001600020600301819055508481600501600084815260200190815260200160002060020181905550600081600501600084815260200190815260200160002060040181905550600081600501600084815260200190815260200160002060050160006101000a81548160ff021916908315150217905550612d4660018260040154612a3190919063ffffffff16565b8160040181905550612d5d83868360030154613164565b612d7285600254612a3190919063ffffffff16565b6002819055506000612da26103e8612d946028896129e190919063ffffffff16565b612a1890919063ffffffff16565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612e0c573d6000803e3d6000fd5b506000612e376103e8612e2960288a6129e190919063ffffffff16565b612a1890919063ffffffff16565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612ea1573d6000803e3d6000fd5b50600195505050505050949350505050565b6000611a0a8210612f3357600073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f2e57600091505b612f38565b600091505b6000839050612f5260018054612a3190919063ffffffff16565b600181905550600154600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508060076000600154815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260076000600154815260200190815260200160002060030181905550600060076000600154815260200190815260200160002060040181905550611a0a831061315857600083905060006007600083815260200190815260200160002060030154905060006007600083815260200190815260200160002060030154905061309e60016007600086815260200190815260200160002060060154612a3190919063ffffffff16565b6007600085815260200190815260200160002060060181905550611a0a8210613106576130eb60016007600085815260200190815260200160002060070154612a3190919063ffffffff16565b60076000848152602001908152602001600020600701819055505b611a0a81106131545761313960016007600084815260200190815260200160002060080154612a3190919063ffffffff16565b60076000838152602001908152602001600020600801819055505b5050505b60015491505092915050565b600061318e6103e86131806051866129e190919063ffffffff16565b612a1890919063ffffffff16565b9050600082146133eb5760008290506000600760008381526020019081526020016000206003015490506000600760008381526020019081526020016000206003015490506000809050600084146132d0576132086103e86131fa60288a6129e190919063ffffffff16565b612a1890919063ffffffff16565b905061321d818661356f90919063ffffffff16565b9450613248600760008681526020019081526020016000206002015482612a3190919063ffffffff16565b600760008681526020019081526020016000206002018190555061328a6103e861327c60018a6129e190919063ffffffff16565b612a1890919063ffffffff16565b90506132b5600760008a81526020019081526020016000206002015482612a3190919063ffffffff16565b600760008a8152602001908152602001600020600201819055505b6000831461335b576133006103e86132f260148a6129e190919063ffffffff16565b612a1890919063ffffffff16565b9050613315818661356f90919063ffffffff16565b9450613340600760008581526020019081526020016000206002015482612a3190919063ffffffff16565b60076000858152602001908152602001600020600201819055505b600082146133e65761338b6103e861337d60148a6129e190919063ffffffff16565b612a1890919063ffffffff16565b90506133a0818661356f90919063ffffffff16565b94506133cb600760008481526020019081526020016000206002015482612a3190919063ffffffff16565b60076000848152602001908152602001600020600201819055505b505050505b600081111561356957600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc613444600384612a1890919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561346f573d6000803e3d6000fd5b50600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6134c0600384612a1890919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156134eb573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61353c600384612a1890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015613567573d6000803e3d6000fd5b505b50505050565b60008282111561357b57fe5b81830390509291505056fe7769746864726177616c20646f65736e277420616c6c6f7720746f207472616e736665722068722073696d756c74616e656f75736c7943616e206e6f742077697468647261772062656361757365206e6f20616e7920696e766573746d656e74736f6e6c79206f776e6572206f722073656c662063616e20636865636b2074686520696e766573746f7220696e666f2e6f6e6c79206f776e6572206f722073656c662063616e20636865636b2074686520696e766573746d656e7420706c616e20696e666f2e4c657373207468616e20746865206d696e696d756d20616d6f756e74206f66206465706f73697420726571756972656d656e74a265627a7a723158204507347f83ee82dd9ec2bb774053275c35ed636ff6c422c18a15ea62b35829c564736f6c6343000511003200000000000000000000000051a1e05273db2e90aac1c63fd0adaacca239e9cc00000000000000000000000055cc86010361797a26b1341823dee6f0b0a412700000000000000000000000000edf3f1bba1e455962b4321b74ab73fb39648aaf

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000051a1e05273db2e90aac1c63fd0adaacca239e9cc00000000000000000000000055cc86010361797a26b1341823dee6f0b0a412700000000000000000000000000edf3f1bba1e455962b4321b74ab73fb39648aaf

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000051a1e05273db2e90aac1c63fd0adaacca239e9cc
Arg [1] : 00000000000000000000000055cc86010361797a26b1341823dee6f0b0a41270
Arg [2] : 0000000000000000000000000edf3f1bba1e455962b4321b74ab73fb39648aaf


Deployed ByteCode Sourcemap

1311:16406:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2987:1;2974:9;:14;2970:130;;;3005:10;:8;:10::i;:::-;2970:130;;;3039:12;3046:1;3049;3039:6;:12::i;:::-;2970:130;1311:16406;2074:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:48:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5485:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5485:99:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2368:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2368:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2368:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1559:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1559:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3115:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3115:34:0;;;:::i;:::-;;1922:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1922:44:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2031:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:36:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1448:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1448:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2257:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2257:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1983:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1983:41:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3961:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3961:103:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13384:2219;;;:::i;:::-;;1514:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7942:1788;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7942:1788:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7942:1788: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;7942:1788:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7942:1788:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7942:1788:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7942:1788:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7942:1788:0;;;;;;;;;;;;;;;;;;;;;;;;;1666:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1666:50:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3157:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3157:186:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3157:186:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12721:435;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12721:435:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2175:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2175:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3656:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3656:103:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3351;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3351:103:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1609:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1609:50:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3767:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3767:186:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3767:186:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;829:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1834:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:44:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1723:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1723:50:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2294:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2294:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2421:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2421:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2421:56:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1780:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1780:47:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5714:2220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5714:2220:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5714:2220: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;5714:2220:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5714:2220:0;;;;;;;;;;;;;;;;;;;;;;;;;;1383:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1383:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2330:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2330:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13164:212;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13164:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4688:668;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4688:668: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;4688:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4688:668:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4688:668:0;;;;;;;;;;;;;;;;;;;;;1106:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1106:198:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1106:198:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3462:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3462:186:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3462:186:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5364:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5364:113:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5592:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5592:114:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5592:114:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13384:2219;13451:1;13438:9;:14;13430:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13522:11;13536;:23;13548:10;13536:23;;;;;;;;;;;;;;;;13522:37;;13598:51;13631:17;13646:1;13631:10;13639:1;2061:6;13631:7;;:10;;;;:::i;:::-;:14;;:17;;;;:::i;:::-;13598:12;:17;13611:3;13598:17;;;;;;;;;;;:28;;;:32;;:51;;;;:::i;:::-;13579:15;:70;;13570:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13703:1;13696:3;:8;;13688:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13763:24;13790:1;13763:28;;13807:9;13819:1;13807:13;;13802:1087;13826:12;:17;13839:3;13826:17;;;;;;;;;;;:27;;;13822:1;:31;13802:1087;;;13879:12;:17;13892:3;13879:17;;;;;;;;;;;:23;;:26;13903:1;13879:26;;;;;;;;;;;:36;;;;;;;;;;;;13875:85;;;13936:8;;13875:85;13976:25;14004:16;14021:12;:17;14034:3;14021:17;;;;;;;;;;;:23;;:26;14045:1;14021:26;;;;;;;;;;;:33;;;14004:51;;;;;;;;;;;;;;;;;;13976:79;;14072:14;14089:5;14072:22;;14109;14134:15;14109:40;;14180:1;14168:4;:9;;;:13;14164:283;;;14202:15;14220:56;14266:4;:9;;;14220:12;:17;14233:3;14220:17;;;;;;;;;;;:23;;:26;14244:1;14220:26;;;;;;;;;;;:41;;;:45;;:56;;;;:::i;:::-;14202:74;;14317:7;14299:14;:25;14295:137;;14366:7;14349:24;;14408:4;14396:16;;14295:137;14164:283;;14463:14;14480:144;14500:12;:17;14513:3;14500:17;;;;;;;;;;;:23;;:26;14524:1;14500:26;;;;;;;;;;;:37;;;14540:4;:18;;;14561:14;14578:12;:17;14591:3;14578:17;;;;;;;;;;;:23;;:26;14602:1;14578:26;;;;;;;;;;;:45;;;14480:19;:144::i;:::-;14463:161;;14661:6;14641:26;;;;14732:14;14684:12;:17;14697:3;14684:17;;;;;;;;;;;:23;;:26;14708:1;14684:26;;;;;;;;;;;:45;;:62;;;;14800:9;14761:12;:17;14774:3;14761:17;;;;;;;;;;;:23;;:26;14785:1;14761:26;;;;;;;;;;;:36;;;:48;;;;;;;;;;;;;;;;;;14871:6;14824:12;:17;14837:3;14824:17;;;;;;;;;;;:23;;:26;14848:1;14824:26;;;;;;;;;;;:43;;;:53;;;;;;;;;;;13802:1087;;;;;13855:3;;;;;;;13802:1087;;;;14918:1;14901:16;:18;14897:209;;;14927:10;:19;;:37;14947:16;14927:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14927:37:0;14979:25;15007:43;15045:4;15008:31;1550:2;15008:16;:20;;:31;;;;:::i;:::-;15007:37;;:43;;;;:::i;:::-;14979:71;;15065:7;;;;;;;;;;;:16;;:35;15082:17;15065:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15065:35:0;14897:209;;15170:1;15126:12;:17;15139:3;15126:17;;;;;;;;;;;:43;;;:45;15122:339;;;15188:10;:19;;:64;15208:12;:17;15221:3;15208:17;;;;;;;;;;;:43;;;15188:64;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15188:64:0;15304:83;15352:12;:17;15365:3;15352:17;;;;;;;;;;;:34;;;15304:12;:17;15317:3;15304:17;;;;;;;;;;;:43;;;:47;;:83;;;;:::i;:::-;15267:12;:17;15280:3;15267:17;;;;;;;;;;;:34;;:120;;;;15448:1;15402:12;:17;15415:3;15402:17;;;;;;;;;;;:43;;:47;;;;15122:339;15512:15;15481:12;:17;15494:3;15481:17;;;;;;;;;;;:28;;:46;;;;15555:40;15566:10;15578:16;15555:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;13384:2219;;:::o;13164:212::-;13250:54;13258:10;13270:7;13279:13;13294:9;13250:7;:54::i;:::-;13246:123;;;13326:31;13335:10;13347:9;13326:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;13246:123;13164:212;;:::o;2074:48::-;2112:10;2074:48;:::o;5485:99::-;5528:7;5555:21;5548:28;;5485:99;:::o;2368:46::-;;;;;;;;;;;;;;;;;:::o;1559:43::-;1600:2;1559:43;:::o;3115:34::-;:::o;1922:44::-;1962:4;1922:44;:::o;2031:36::-;2061:6;2031:36;:::o;1448:43::-;1489:2;1448:43;:::o;2257:30::-;;;;;;;;;;;;;:::o;1983:41::-;2019:5;1983:41;:::o;3961:103::-;4023:7;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;4050:6;;;;;;;;;;;4043:13;;3961:103;:::o;1514:38::-;1550:2;1514:38;:::o;7942:1788::-;8009:16;8027;8045;8063;8081:13;8125:5;;;;;;;;;;;8111:19;;:10;:19;;;8107:150;;8182:4;8155:11;:23;8167:10;8155:23;;;;;;;;;;;;;;;;:31;8147:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8107:150;8267:33;8303:12;:18;8316:4;8303:18;;;;;;;;;;;8267:54;;8332:24;8374:8;:18;;;8359:34;;;;;;;;;;;;;;;;;;;;;;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;8359:34:0;;;;8332:61;;8404:32;8454:8;:18;;;8439:34;;;;;;;;;;;;;;;;;;;;;;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;8439:34:0;;;;8404:69;;8484:28;8530:8;:18;;;8515:34;;;;;;;;;;;;;;;;;;;;;;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;8515:34:0;;;;8484:65;;8560:33;8611:8;:18;;;8596:34;;;;;;;;;;;;;;;;;;;;;;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;8596:34:0;;;;8560:70;;8641:24;8680:8;:18;;;8668:31;;;;;;;;;;;;;;;;;;;;;;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;8668:31:0;;;;8641:58;;8717:9;8729:1;8717:13;;8712:857;8736:8;:18;;;8732:1;:22;8712:857;;;8818:1;8784:8;:14;;:17;8799:1;8784:17;;;;;;;;;;;:32;;;:35;;8776:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8872:8;:14;;:17;8887:1;8872:17;;;;;;;;;;;:24;;;8859:7;8867:1;8859:10;;;;;;;;;;;;;:37;;;;;8933:8;:14;;:17;8948:1;8933:17;;;;;;;;;;;:34;;;8911:16;8928:1;8911:19;;;;;;;;;;;;;:56;;;;;9003:8;:14;;:17;9018:1;9003:17;;;;;;;;;;;:32;;;8982:15;8998:1;8982:18;;;;;;;;;;;;;:53;;;;;9067:8;:14;;:17;9082:1;9067:17;;;;;;;;;;;:28;;;9050:11;9062:1;9050:14;;;;;;;;;;;;;:45;;;;;9114:8;:14;;:17;9129:1;9114:17;;;;;;;;;;;:27;;;;;;;;;;;;9110:448;;;9178:4;9162:10;9173:1;9162:13;;;;;;;;;;;;;:20;;;;;;;;;;;9110:448;;;9239:5;9223:10;9234:1;9223:13;;;;;;;;;;;;;:21;;;;;;;;;;;9317:1;9267:16;9284:8;:14;;:17;9299:1;9284:17;;;;;;;;;;;:24;;;9267:42;;;;;;;;;;;;;;;;;;:47;;;:51;9263:280;;;9366:85;9403:16;9420:8;:14;;:17;9435:1;9420:17;;;;;;;;;;;:24;;;9403:42;;;;;;;;;;;;;;;;;;:47;;;9366:8;:14;;:17;9381:1;9366:17;;;;;;;;;;;:32;;;:36;;:85;;;;:::i;:::-;9347:15;:104;9343:181;;9496:4;9480:10;9491:1;9480:13;;;;;;;;;;;;;:20;;;;;;;;;;;9343:181;9263:280;9110:448;8756:3;;;;;;;8712:857;;;;9608:7;9626:15;9652:11;9674:16;9701:10;9581:141;;;;;;;;;;;;;;;;7942:1788;;;;;;;:::o;1666:50::-;1714:2;1666:50;:::o;3157:186::-;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;3292:1;3260:34;;:20;:34;;;;3252:43;;;;;;3315:20;3306:6;;:29;;;;;;;;;;;;;;;;;;3157:186;:::o;12721:435::-;12793:18;12814:11;:23;12826:10;12814:23;;;;;;;;;;;;;;;;12793:44;;12848:22;12873:4;12848:29;;12888:20;12911:1;12888:24;;12943:1;12929:10;:15;;:36;;;;;12948:17;12929:36;12925:94;;;12997:10;12982:25;;12925:94;13035:44;13043:4;13048:7;13056:12;13069:9;13035:7;:44::i;:::-;13031:118;;;13101:36;13109:10;13121:4;13127:9;13101:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13031:118;12721:435;;;;;:::o;2175:33::-;;;;:::o;3656:103::-;3718:7;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;3745:6;;;;;;;;;;;3738:13;;3656:103;:::o;3351:::-;3413:7;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;3440:6;;;;;;;;;;;3433:13;;3351:103;:::o;1609:50::-;1657:2;1609:50;:::o;3767:186::-;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;3902:1;3870:34;;:20;:34;;;;3862:43;;;;;;3925:20;3916:6;;:29;;;;;;;;;;;;;;;;;;3767:186;:::o;829:20::-;;;;;;;;;;;;;:::o;1834:44::-;1868:10;1834:44;:::o;1723:50::-;1771:2;1723:50;:::o;2294:29::-;;;;;;;;;;;;;:::o;2421:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1780:47::-;1826:1;1780:47;:::o;5714:2220::-;5779:7;5788;5797;5806;5815;5824;5833;5842:16;5860;5907:5;;;;;;;;;;;5893:19;;:10;:19;;;5889:143;;5964:4;5937:11;:23;5949:10;5937:23;;;;;;;;;;;;;;;;:31;5929:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5889:143;6042:33;6078:12;:18;6091:4;6078:18;;;;;;;;;;;6042:54;;6107:29;6153:8;:18;;;6139:33;;;;;;;;;;;;;;;;;;;;;;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;6139:33:0;;;;6107:65;;6183:33;6234:8;:18;;;6219:34;;;;;;;;;;;;;;;;;;;;;;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;6219:34:0;;;;6183:70;;6269:9;6281:1;6269:13;;6264:1335;6288:8;:18;;;6284:1;:22;6264:1335;;;6372:1;6336:8;:14;;:17;6351:1;6336:17;;;;;;;;;;;:32;;;:37;;6328:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6436:8;:14;;:17;6451:1;6436:17;;;;;;;;;;;:34;;;6414:16;6431:1;6414:19;;;;;;;;;;;;;:56;;;;;6489:8;:14;;:17;6504:1;6489:17;;;;;;;;;;;:27;;;;;;;;;;;;6485:1103;;;6555:1;6537:12;6550:1;6537:15;;;;;;;;;;;;;:19;;;;;6485:1103;;;6651:1;6601:16;6618:8;:14;;:17;6633:1;6618:17;;;;;;;;;;;:24;;;6601:42;;;;;;;;;;;;;;;;;;:47;;;:51;6597:976;;;6700:85;6737:16;6754:8;:14;;:17;6769:1;6754:17;;;;;;;;;;;:24;;;6737:42;;;;;;;;;;;;;;;;;;:47;;;6700:8;:14;;:17;6715:1;6700:17;;;;;;;;;;;:32;;;:36;;:85;;;;:::i;:::-;6681:15;:104;6677:648;;6832:232;6852:8;:14;;:17;6867:1;6852:17;;;;;;;;;;;:28;;;6882:16;6899:8;:14;;:17;6914:1;6899:17;;;;;;;;;;;:24;;;6882:42;;;;;;;;;;;;;;;;;;:56;;;6940:85;6977:16;6994:8;:14;;:17;7009:1;6994:17;;;;;;;;;;;:24;;;6977:42;;;;;;;;;;;;;;;;;;:47;;;6940:8;:14;;:17;6955:1;6940:17;;;;;;;;;;;:32;;;:36;;:85;;;;:::i;:::-;7027:8;:14;;:17;7042:1;7027:17;;;;;;;;;;;:36;;;6832:19;:232::i;:::-;6814:12;6827:1;6814:15;;;;;;;;;;;;;:250;;;;;6677:648;;;7139:162;7159:8;:14;;:17;7174:1;7159:17;;;;;;;;;;;:28;;;7189:16;7206:8;:14;;:17;7221:1;7206:17;;;;;;;;;;;:24;;;7189:42;;;;;;;;;;;;;;;;;;:56;;;7247:15;7264:8;:14;;:17;7279:1;7264:17;;;;;;;;;;;:36;;;7139:19;:162::i;:::-;7121:12;7134:1;7121:15;;;;;;;;;;;;;:180;;;;;6677:648;6597:976;;;7391:162;7411:8;:14;;:17;7426:1;7411:17;;;;;;;;;;;:28;;;7441:16;7458:8;:14;;:17;7473:1;7458:17;;;;;;;;;;;:24;;;7441:42;;;;;;;;;;;;;;;;;;:56;;;7499:15;7516:8;:14;;:17;7531:1;7516:17;;;;;;;;;;;:36;;;7391:19;:162::i;:::-;7373:12;7386:1;7373:15;;;;;;;;;;;;;:180;;;;;6597:976;6485:1103;6308:3;;;;;;;6264:1335;;;;7636:8;:25;;;7672:8;:34;;;7717:8;:17;;;7745:8;:23;;;7779:8;:23;;;7813:8;:23;;;7847:8;:18;;;7876:16;7903:12;7609:317;;;;;;;;;;;;;;;;;;;;;5714:2220;;;;;;;;;;;:::o;1383:43::-;1424:2;1383:43;:::o;2330:29::-;;;;;;;;;;;;;:::o;4688:668::-;4736:16;4754;4772;4801:20;4838:16;:23;;;;4824:38;;;;;;;;;;;;;;;;;;;;;;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;4824:38:0;;;;4801:61;;4873:26;4916:16;:23;;;;4902:38;;;;;;;;;;;;;;;;;;;;;;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;4902:38:0;;;;4873:67;;4951:22;4990:16;:23;;;;4976:38;;;;;;;;;;;;;;;;;;;;;;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;4976:38:0;;;;4951:63;;5030:9;5042:1;5030:13;;5025:236;5049:16;:23;;;;5045:1;:27;5025:236;;;5094:25;5122:16;5139:1;5122:19;;;;;;;;;;;;;;;;;;5094:47;;5165:1;5156:3;5160:1;5156:6;;;;;;;;;;;;;:10;;;;;5196:4;:18;;;5181:9;5191:1;5181:12;;;;;;;;;;;;;:33;;;;;5240:4;:9;;;5229:5;5235:1;5229:8;;;;;;;;;;;;;:20;;;;;5025:236;5074:3;;;;;;;5025:236;;;;5298:3;5312:9;5332:5;5271:77;;;;;;;;;4688:668;;;:::o;1106:198::-;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;1209:1;1188:23;;:9;:23;;;;1180:32;;;;;;1258:9;1228:40;;1251:5;;;;;;;;;;;1228:40;;;;;;;;;;;;1287:9;1279:5;;:17;;;;;;;;;;;;;;;;;;1106:198;:::o;3462:186::-;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;3597:1;3565:34;;:20;:34;;;;3557:43;;;;;;3620:20;3611:6;;:29;;;;;;;;;;;;;;;;;;3462:186;:::o;5364:113::-;5426:7;1072:5;;;;;;;;;;;1058:19;;:10;:19;;;1050:28;;;;;;5452:17;;5445:24;;5364:113;:::o;5592:114::-;5653:7;5680:11;:18;5692:5;5680:18;;;;;;;;;;;;;;;;5673:25;;5592:114;;;:::o;17745:208::-;17803:7;17832:1;17827;:6;17823:47;;;17857:1;17850:8;;;;17823:47;17880:9;17896:1;17892;:5;17880:17;;17924:1;17919;17915;:5;;;;;;:10;17908:18;;;;17944:1;17937:8;;;17745:208;;;;;:::o;17961:122::-;18019:7;18039:9;18055:1;18051;:5;;;;;;18039:17;;18074:1;18067:8;;;17961:122;;;;:::o;18222:147::-;18280:7;18300:9;18316:1;18312;:5;18300:17;;18340:1;18335;:6;;18328:14;;;;18360:1;18353:8;;;18222:147;;;;:::o;15611:228::-;15737:7;2019:5;15811:6;15804:4;:13;15796:4;15775:18;15765:7;:28;:35;;;;;;:53;15764:67;;;;;;15757:74;;15611:228;;;;;;:::o;11139:1574::-;11245:4;2112:10;11270:15;:30;;11262:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11345:1;11334:7;:12;;:49;;;;;11360:16;:23;;;;11350:7;:33;11334:49;11326:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1868:10;11431:7;:18;;11423:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11516:11;11530;:18;11542:5;11530:18;;;;;;;;;;;;;;;;11516:32;;11570:1;11563:3;:8;11559:182;;;11594:34;11607:5;11614:13;11594:12;:34::i;:::-;11588:40;;11559:182;;;;11751:17;11771:12;:17;11784:3;11771:17;;;;;;;;;;;:27;;;11751:47;;11809:33;11845:12;:17;11858:3;11845:17;;;;;;;;;;;11809:53;;11908:7;11873:8;:14;;:25;11888:9;11873:25;;;;;;;;;;;:32;;:42;;;;11969:15;11926:8;:14;;:25;11941:9;11926:25;;;;;;;;;;;:40;;:58;;;;12042:15;11995:8;:14;;:25;12010:9;11995:25;;;;;;;;;;;:44;;:62;;;;12107:7;12068:8;:14;;:25;12083:9;12068:25;;;;;;;;;;;:36;;:46;;;;12170:1;12125:8;:14;;:25;12140:9;12125:25;;;;;;;;;;;:42;;:46;;;;12220:5;12182:8;:14;;:25;12197:9;12182:25;;;;;;;;;;;:35;;;:43;;;;;;;;;;;;;;;;;;12259:25;12282:1;12259:8;:18;;;:22;;:25;;;;:::i;:::-;12238:8;:18;;:46;;;;12297:57;12322:3;12327:7;12336:8;:17;;;12297:24;:57::i;:::-;12387:30;12409:7;12387:17;;:21;;:30;;;;:::i;:::-;12367:17;:50;;;;12430:27;12460:39;12494:4;12461:27;1424:2;12461:7;:11;;:27;;;;:::i;:::-;12460:33;;:39;;;;:::i;:::-;12430:69;;12510:6;;;;;;;;;;;:15;;:36;12526:19;12510:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12510:36:0;12557:27;12587:39;12621:4;12588:27;1489:2;12588:7;:11;;:27;;;;:::i;:::-;12587:33;;:39;;;;:::i;:::-;12557:69;;12637:6;;;;;;;;;;;:15;;:36;12653:19;12637:36;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12637:36:0;12701:4;12694:11;;;;;;;11139:1574;;;;;;:::o;9738:1393::-;9815:7;1962:4;9839:13;:30;9835:311;;10029:1;9985:46;;:12;:27;9998:13;9985:27;;;;;;;;;;;:32;;;;;;;;;;;;:46;;;9981:104;;;10068:1;10052:17;;9981:104;9835:311;;;10133:1;10117:17;;9835:311;10156:12;10171:5;10156:20;;10208:25;10231:1;10208:18;;:22;;:25;;;;:::i;:::-;10187:18;:46;;;;10264:18;;10244:11;:17;10256:4;10244:17;;;;;;;;;;;;;;;:38;;;;10333:4;10293:12;:32;10306:18;;10293:32;;;;;;;;;;;:37;;;:44;;;;;;;;;;;;;;;;;;10392:13;10348:12;:32;10361:18;;10348:32;;;;;;;;;;;:41;;:57;;;;10461:1;10416:12;:32;10429:18;;10416:32;;;;;;;;;;;:42;;:46;;;;1962:4;10477:13;:30;10473:613;;10524:13;10540;10524:29;;10568:13;10584:12;:19;10597:5;10584:19;;;;;;;;;;;:28;;;10568:44;;10627:13;10643:12;:19;10656:5;10643:19;;;;;;;;;;;:28;;;10627:44;;10723:41;10762:1;10723:12;:19;10736:5;10723:19;;;;;;;;;;;:34;;;:38;;:41;;;;:::i;:::-;10686:12;:19;10699:5;10686:19;;;;;;;;;;;:34;;:78;;;;1962:4;10783:5;:22;10779:141;;10863:41;10902:1;10863:12;:19;10876:5;10863:19;;;;;;;;;;;:34;;;:38;;:41;;;;:::i;:::-;10826:12;:19;10839:5;10826:19;;;;;;;;;;;:34;;:78;;;;10779:141;1962:4;10938:5;:22;10934:141;;11018:41;11057:1;11018:12;:19;11031:5;11018:19;;;;;;;;;;;:34;;;:38;;:41;;;;:::i;:::-;10981:12;:19;10994:5;10981:19;;;;;;;;;;;:34;;:78;;;;10934:141;10473:613;;;;11104:18;;11096:27;;;9738:1393;;;;:::o;15847:1865::-;15960:26;15989:43;16027:4;15990:31;1600:2;15990:11;:15;;:31;;;;:::i;:::-;15989:37;;:43;;;;:::i;:::-;15960:72;;16064:1;16047:13;:18;16043:1438;;16082:13;16098;16082:29;;16126:13;16142:12;:19;16155:5;16142:19;;;;;;;;;;;:28;;;16126:44;;16185:13;16201:12;:19;16214:5;16201:19;;;;;;;;;;;:28;;;16185:44;;16244:18;16265:1;16244:22;;16296:1;16287:5;:10;16283:523;;16331:50;16376:4;16332:38;1657:2;16332:11;:15;;:38;;;;:::i;:::-;16331:44;;:50;;;;:::i;:::-;16318:63;;16421:34;16444:10;16421:18;:22;;:34;;;;:::i;:::-;16400:55;;16522:61;16537:12;:19;16550:5;16537:19;;;;;;;;;;;:45;;;16522:10;:14;;:61;;;;:::i;:::-;16474:12;:19;16487:5;16474:19;;;;;;;;;;;:45;;:109;;;;16615:48;16658:4;16616:36;1826:1;16616:11;:15;;:36;;;;:::i;:::-;16615:42;;:48;;;;:::i;:::-;16602:61;;16730:60;16745:12;:18;16758:4;16745:18;;;;;;;;;;;:44;;;16730:10;:14;;:60;;;;:::i;:::-;16682:12;:18;16695:4;16682:18;;;;;;;;;;;:44;;:108;;;;16283:523;16835:1;16826:5;:10;16822:316;;16870:50;16915:4;16871:38;1714:2;16871:11;:15;;:38;;;;:::i;:::-;16870:44;;:50;;;;:::i;:::-;16857:63;;16960:34;16983:10;16960:18;:22;;:34;;;;:::i;:::-;16939:55;;17061:61;17076:12;:19;17089:5;17076:19;;;;;;;;;;;:45;;;17061:10;:14;;:61;;;;:::i;:::-;17013:12;:19;17026:5;17013:19;;;;;;;;;;;:45;;:109;;;;16822:316;17167:1;17158:5;:10;17154:316;;17202:50;17247:4;17203:38;1771:2;17203:11;:15;;:38;;;;:::i;:::-;17202:44;;:50;;;;:::i;:::-;17189:63;;17292:34;17315:10;17292:18;:22;;:34;;;;:::i;:::-;17271:55;;17393:61;17408:12;:19;17421:5;17408:19;;;;;;;;;;;:45;;;17393:10;:14;;:61;;;;:::i;:::-;17345:12;:19;17358:5;17345:19;;;;;;;;;;;:45;;:109;;;;17154:316;16043:1438;;;;;17518:1;17497:18;:22;17493:212;;;17536:6;;;;;;;;;;;:15;;:42;17552:25;17575:1;17552:18;:22;;:25;;;;:::i;:::-;17536:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17536:42:0;17593:6;;;;;;;;;;;:15;;:42;17609:25;17632:1;17609:18;:22;;:25;;;;:::i;:::-;17593:42;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17593:42:0;17650:7;;;;;;;;;;;:16;;:43;17667:25;17690:1;17667:18;:22;;:25;;;;:::i;:::-;17650:43;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17650:43:0;17493:212;15847:1865;;;;:::o;18091:123::-;18149:7;18181:1;18176;:6;;18169:14;;;;18205:1;18201;:5;18194:12;;18091:123;;;;:::o

Swarm Source

bzzr://4507347f83ee82dd9ec2bb774053275c35ed636ff6c422c18a15ea62b35829c5
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.