ETH Price: $3,372.89 (-3.25%)

Contract

0xAd451250f213020BBcf4e1d0Ad478A9fC5F02767
 

Overview

ETH Balance

0.0035875 ETH

Eth Value

$12.10 (@ $3,372.89/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Income127601022021-07-04 8:56:321271 days ago1625388992IN
0xAd451250...fC5F02767
0 ETH0.003544389
Withdraw Income125728422021-06-05 6:19:261300 days ago1622873966IN
0xAd451250...fC5F02767
0 ETH0.0043230414
Withdraw Income116781842021-01-18 8:31:411438 days ago1610958701IN
0xAd451250...fC5F02767
0 ETH0.0183081356
Withdraw Income115964222021-01-05 19:25:451450 days ago1609874745IN
0xAd451250...fC5F02767
0 ETH0.0324045100
Withdraw Income113719822020-12-02 8:36:161485 days ago1606898176IN
0xAd451250...fC5F02767
0 ETH0.0090498330
Withdraw Income112868752020-11-19 6:47:331498 days ago1605768453IN
0xAd451250...fC5F02767
0 ETH0.006938223
Withdraw Income112868402020-11-19 6:38:441498 days ago1605767924IN
0xAd451250...fC5F02767
0 ETH0.005158417.1
Withdraw Income112867812020-11-19 6:27:421498 days ago1605767262IN
0xAd451250...fC5F02767
0 ETH0.0051282317.00000145
Withdraw Income112670332020-11-16 5:28:421501 days ago1605504522IN
0xAd451250...fC5F02767
0 ETH0.0059233315
Withdraw Income112669952020-11-16 5:19:501501 days ago1605503990IN
0xAd451250...fC5F02767
0 ETH0.0059233315.00000145
Withdraw Income112107912020-11-07 14:14:571509 days ago1604758497IN
0xAd451250...fC5F02767
0 ETH0.0063075655
Withdraw Income111695012020-11-01 6:25:111516 days ago1604211911IN
0xAd451250...fC5F02767
0 ETH0.0067131117
Withdraw Income111678112020-10-31 23:59:051516 days ago1604188745IN
0xAd451250...fC5F02767
0 ETH0.003776114.1
Withdraw Income111041572020-10-22 5:38:261526 days ago1603345106IN
0xAd451250...fC5F02767
0 ETH0.0120664440
Withdraw Income111041502020-10-22 5:36:581526 days ago1603345018IN
0xAd451250...fC5F02767
0 ETH0.0120664440
Withdraw Income110708812020-10-17 2:54:551531 days ago1602903295IN
0xAd451250...fC5F02767
0 ETH0.0064513119.00000145
Withdraw Income110574702020-10-15 1:42:261533 days ago1602726146IN
0xAd451250...fC5F02767
0 ETH0.0085998330
Withdraw Income110567812020-10-14 23:16:301533 days ago1602717390IN
0xAd451250...fC5F02767
0 ETH0.0033692420.00000134
Withdraw Income110493892020-10-13 20:07:571534 days ago1602619677IN
0xAd451250...fC5F02767
0 ETH0.0060788221.20561619
Withdraw Income110328322020-10-11 7:26:241537 days ago1602401184IN
0xAd451250...fC5F02767
0 ETH0.0069630326.00000145
Withdraw Income110328322020-10-11 7:26:241537 days ago1602401184IN
0xAd451250...fC5F02767
0 ETH0.0069630326
Withdraw Income110327092020-10-11 7:00:141537 days ago1602399614IN
0xAd451250...fC5F02767
0 ETH0.0066952225
Withdraw Income110326562020-10-11 6:49:391537 days ago1602398979IN
0xAd451250...fC5F02767
0 ETH0.0066952225
Withdraw Income110314822020-10-11 2:22:031537 days ago1602382923IN
0xAd451250...fC5F02767
0 ETH0.0040066927
Withdraw Income110295012020-10-10 19:12:431537 days ago1602357163IN
0xAd451250...fC5F02767
0 ETH0.0088376933
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
109329542020-09-25 16:48:041552 days ago1601052484
0xAd451250...fC5F02767
0.16 ETH
109329462020-09-25 16:46:341552 days ago1601052394
0xAd451250...fC5F02767
0.07 ETH
109329392020-09-25 16:44:551552 days ago1601052295
0xAd451250...fC5F02767
0.67 ETH
109329372020-09-25 16:44:301552 days ago1601052270
0xAd451250...fC5F02767
0.0375 ETH
109329342020-09-25 16:44:091552 days ago1601052249
0xAd451250...fC5F02767
0.87 ETH
109329262020-09-25 16:42:381552 days ago1601052158
0xAd451250...fC5F02767
0.45 ETH
109329222020-09-25 16:41:551552 days ago1601052115
0xAd451250...fC5F02767
0.78 ETH
109321722020-09-25 13:45:531552 days ago1601041553
0xAd451250...fC5F02767
0.081625 ETH
109321582020-09-25 13:43:121552 days ago1601041392
0xAd451250...fC5F02767
0.142625 ETH
109321492020-09-25 13:41:351552 days ago1601041295
0xAd451250...fC5F02767
0.06 ETH
109321142020-09-25 13:33:461552 days ago1601040826
0xAd451250...fC5F02767
0.17325 ETH
109321052020-09-25 13:32:011552 days ago1601040721
0xAd451250...fC5F02767
0.06 ETH
109320952020-09-25 13:30:091552 days ago1601040609
0xAd451250...fC5F02767
0.118875 ETH
109318032020-09-25 12:24:531552 days ago1601036693
0xAd451250...fC5F02767
0.0625 ETH
109317002020-09-25 12:00:221552 days ago1601035222
0xAd451250...fC5F02767
0.182625 ETH
109316842020-09-25 11:57:301552 days ago1601035050
0xAd451250...fC5F02767
0.05875 ETH
109316522020-09-25 11:50:511552 days ago1601034651
0xAd451250...fC5F02767
0.05875 ETH
109314082020-09-25 10:53:231552 days ago1601031203
0xAd451250...fC5F02767
0.09175 ETH
109313332020-09-25 10:34:241552 days ago1601030064
0xAd451250...fC5F02767
0.05875 ETH
109313332020-09-25 10:34:241552 days ago1601030064
0xAd451250...fC5F02767
1.2 ETH
109313072020-09-25 10:28:401552 days ago1601029720
0xAd451250...fC5F02767
0.06 ETH
109309562020-09-25 9:13:591553 days ago1601025239
0xAd451250...fC5F02767
0.53 ETH
109309562020-09-25 9:13:591553 days ago1601025239
0xAd451250...fC5F02767
0.57 ETH
109308902020-09-25 8:58:491553 days ago1601024329
0xAd451250...fC5F02767
0.79 ETH
109308902020-09-25 8:58:491553 days ago1601024329
0xAd451250...fC5F02767
0.47 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CrowdsharingIO

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-08
*/

/*

░█████╗░██████╗░░█████╗░░██╗░░░░░░░██╗██████╗░░██████╗██╗░░██╗░█████╗░██████╗░██╗███╗░░██╗░██████╗░  ██╗░█████╗░
██╔══██╗██╔══██╗██╔══██╗░██║░░██╗░░██║██╔══██╗██╔════╝██║░░██║██╔══██╗██╔══██╗██║████╗░██║██╔════╝░  ██║██╔══██╗
██║░░╚═╝██████╔╝██║░░██║░╚██╗████╗██╔╝██║░░██║╚█████╗░███████║███████║██████╔╝██║██╔██╗██║██║░░██╗░  ██║██║░░██║
██║░░██╗██╔══██╗██║░░██║░░████╔═████║░██║░░██║░╚═══██╗██╔══██║██╔══██║██╔══██╗██║██║╚████║██║░░╚██╗  ██║██║░░██║
╚█████╔╝██║░░██║╚█████╔╝░░╚██╔╝░╚██╔╝░██████╔╝██████╔╝██║░░██║██║░░██║██║░░██║██║██║░╚███║╚██████╔╝  ██║╚█████╔╝
░╚════╝░╚═╝░░╚═╝░╚════╝░░░░╚═╝░░░╚═╝░░╚═════╝░╚═════╝░╚═╝░░╚═╝╚═╝░░╚═╝╚═╝░░╚═╝╚═╝╚═╝░░╚══╝░╚═════╝░  ╚═╝░╚════╝░
Official Telegram: https://t.me/crowdsharing
Official Website: https://crowdsharing.io

*/

pragma solidity ^0.5.17;

contract CrowdsharingIO {
    using SafeMath for *;

    address public owner;
    address private admin;
    CrowdsharingIO public oldSC = CrowdsharingIO(0x77E867326F438360bF382fB5fFeE3BC77845566D);
    uint public oldSCUserId = 1;
    uint256 public currUserID = 0;
    uint256 private houseFee = 3;
    uint256 private poolTime = 24 hours;
    uint256 private payoutPeriod = 24 hours;
    uint256 private dailyWinPool = 10;
    uint256 private incomeTimes = 32;
    uint256 private incomeDivide = 10;
    uint256 public roundID;
    uint256 public r1 = 0;
    uint256 public r2 = 0;
    uint256 public r3 = 0;
    uint256 public totalAmountWithdrawn = 0;
    uint256[3] private awardPercentage;

    struct Leaderboard {
        uint256 amt;
        address addr;
    }

    Leaderboard[3] public topPromoters;
    Leaderboard[3] public topInvestors;
    
    Leaderboard[3] public lastTopInvestors;
    Leaderboard[3] public lastTopPromoters;
    uint256[3] public lastTopInvestorsWinningAmount;
    uint256[3] public lastTopPromotersWinningAmount;
        

    mapping (address => uint256) private playerEventVariable;
    mapping (uint256 => address) public userList;
    mapping (uint256 => DataStructs.DailyRound) public round;
    mapping (address => DataStructs.Player) public player;
    mapping (address => mapping (uint256 => DataStructs.PlayerDailyRounds)) public plyrRnds_; 

    /****************************  EVENTS   *****************************************/

    event registerUserEvent(address indexed _playerAddress, uint256 _userID, address indexed _referrer, uint256 _referrerID);
    event investmentEvent(address indexed _playerAddress, uint256 indexed _amount);
    event referralCommissionEvent(address indexed _playerAddress, address indexed _referrer, uint256 indexed amount, uint256 timeStamp);
    event dailyPayoutEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event withdrawEvent(address indexed _playerAddress, uint256 indexed amount, uint256 indexed timeStamp);
    event superBonusEvent(address indexed _playerAddress, uint256 indexed _amount);
    event superBonusAwardEvent(address indexed _playerAddress, uint256 indexed _amount);
    event roundAwardsEvent(address indexed _playerAddress, uint256 indexed _amount);
    event ownershipTransferred(address indexed owner, address indexed newOwner);



    constructor (address _admin) public {
         owner = msg.sender;
         admin = _admin;
         roundID = 1;
         round[1].startTime = 1596896192;
         round[1].endTime = 1596982592;
         round[1].pool = 6710000000000000000;
         awardPercentage[0] = 50;
         awardPercentage[1] = 30;
         awardPercentage[2] = 20;

    }
    
    /****************************  MODIFIERS    *****************************************/
    
    
    /**
     * @dev sets boundaries for incoming tx
     */
    modifier isWithinLimits(uint256 _eth) {
        require(_eth >= 100000000000000000, "Minimum is 0.1");
        _;
    }

    /**
     * @dev sets permissible values for incoming tx
     */
    modifier isallowedValue(uint256 _eth) {
        require(_eth % 100000000000000000 == 0, "Wrong amount, 0.1 multiples allowed");
        _;
    }
    
    /**
     * @dev allows only the user to run the function
     */
    modifier onlyOwner() {
        require(msg.sender == owner, "only Owner");
        _;
    }


    /****************************  CORE LOGIC    *****************************************/


    //if someone accidently sends eth to contract address
    function () external payable {
        depositAmount(1);
    }
    
    function regAdmins(address [] memory _adminAddress, uint256 _amount) public onlyOwner {
        require(currUserID <= 200, "No more admins can be registered");
        for(uint i = 0; i < _adminAddress.length; i++){
            
            currUserID++;
            player[_adminAddress[i]].id = currUserID;
            player[_adminAddress[i]].lastSettledTime = now;
            player[_adminAddress[i]].currentInvestedAmount = _amount;
            player[_adminAddress[i]].incomeLimitLeft = 500000 ether;
            player[_adminAddress[i]].totalInvestment = _amount;
            player[_adminAddress[i]].referrer = userList[currUserID-1];
            player[_adminAddress[i]].referralCount = 20;
            
            userList[currUserID] = _adminAddress[i];
            
            playerEventVariable[_adminAddress[i]] = 100 ether;
        
        }
    }
    
    function syncUsers(uint limit) public onlyOwner {
        require(address(oldSC) != address(0), 'Initialize closed');
        
         for(uint i = 0; i < limit; i++) {
             address user = oldSC.userList(oldSCUserId);
             oldSCUserId++;
             
             (,uint256 _totalInvestment,uint256 _totalVolETH, 
             uint _directReferralIncome, uint256 _roiReferralIncome, 
             uint _currentInvestedAmount,,uint _lastSettledTime,
             uint _incomeLimitLeft,,,,uint _referralCount, address _referrer) = oldSC.player(user);
             (uint256 _selfInvestment, uint _ethVolume) = oldSC.plyrRnds_(user,1);
             
             player[user].id = ++currUserID;
             player[user].lastSettledTime = _lastSettledTime;
             player[user].currentInvestedAmount = _currentInvestedAmount;
             player[user].incomeLimitLeft = _incomeLimitLeft;
             player[user].totalInvestment = _totalInvestment;
             player[user].referrer = _referrer;
             player[user].referralCount =_referralCount;
             player[user].roiReferralIncome = _roiReferralIncome;
             player[user].directReferralIncome = _directReferralIncome;
             player[user].totalVolumeEth = _totalVolETH;
            
             userList[currUserID] = user;
            
             playerEventVariable[user] = 100 ether;
             
             plyrRnds_[user][1].selfInvestment = _selfInvestment;
             plyrRnds_[user][1].ethVolume = _ethVolume;
             
         }
        
    }
    
    function syncData() public onlyOwner{
        require(address(oldSC) != address(0), 'Initialize closed');
        
            topPromoters[0].amt =  15000000000000000000;
            topPromoters[0].addr = 0x538682B5BA140351dB74B094Cf779fE59dFc600E;
            topPromoters[1].amt =  12900000000000000000;
            topPromoters[1].addr = 0x732Cae5Dd214517156B985379922777afD34249d;
            topPromoters[2].amt =  4900000000000000000;
            topPromoters[2].addr = 0x6f62016176Ee749B3805f6663Cbc575DdD831b11;
            
            topInvestors[0].amt = 15000000000000000000;
            topInvestors[0].addr = 0x732Cae5Dd214517156B985379922777afD34249d;
            topInvestors[1].amt = 5000000000000000000;
            topInvestors[1].addr = 0x5A8D2a28729351bb6BFcFBb8701be1C7186Aad48;
            topInvestors[2].amt = 5000000000000000000;
            topInvestors[2].addr = 0x9116a95eB0292e076bD0c4865127bF1e3640B20C;
            
            
            r1 = oldSC.r1();
            r2 = oldSC.r2();
            r3 = oldSC.r3();
            totalAmountWithdrawn = oldSC.totalAmountWithdrawn();
        
    }
    function closeSync() public onlyOwner{
        oldSC = CrowdsharingIO(0);
    }

   
    function depositAmount(uint256 _referrerID) 
    public
    isWithinLimits(msg.value)
    isallowedValue(msg.value)
    payable {
        require(_referrerID >0 && _referrerID <=currUserID,"Wrong Referrer ID");

        uint256 amount = msg.value;
        address _referrer = userList[_referrerID];
        
        //check whether it's the new user
        if (player[msg.sender].id <= 0) {
            
            currUserID++;
            player[msg.sender].id = currUserID;
            player[msg.sender].lastSettledTime = now;
            player[msg.sender].currentInvestedAmount = amount;
            player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
            player[msg.sender].totalInvestment = amount;
            player[msg.sender].referrer = _referrer;
            player[_referrer].referralCount = player[_referrer].referralCount.add(1);
            
            userList[currUserID] = msg.sender;
            
            playerEventVariable[msg.sender] = 100 ether;
            
            //update player's investment in current round
            plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);
            addInvestor(msg.sender);
                    
            if(_referrer == owner) {
                player[owner].directReferralIncome = player[owner].directReferralIncome.add(amount.mul(20).div(100));
                r1 = r1.add(amount.mul(13).div(100));
            }
            else {
                player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                addPromoter(_referrer);
                checkSuperBonus(_referrer);
                //assign the referral commission to all.
                referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
            }
              emit registerUserEvent(msg.sender, currUserID, _referrer, _referrerID);
        }
            //if the user has already joined earlier
        else {
            require(player[msg.sender].incomeLimitLeft == 0, "limit still left");
            require(amount >= player[msg.sender].currentInvestedAmount, "bad amount");
            _referrer = player[msg.sender].referrer;
                
            player[msg.sender].lastSettledTime = now;
            player[msg.sender].currentInvestedAmount = amount;
            player[msg.sender].incomeLimitLeft = amount.mul(incomeTimes).div(incomeDivide);
            player[msg.sender].totalInvestment = player[msg.sender].totalInvestment.add(amount);
                    
            //update player's investment in current round pool
            plyrRnds_[msg.sender][roundID].selfInvestment = plyrRnds_[msg.sender][roundID].selfInvestment.add(amount);
            addInvestor(msg.sender);
                
            if(_referrer == owner) {
                player[owner].directReferralIncome = player[owner].directReferralIncome.add(amount.mul(20).div(100));
            }
            else {
                player[_referrer].totalVolumeEth = player[_referrer].totalVolumeEth.add(amount);
                plyrRnds_[_referrer][roundID].ethVolume = plyrRnds_[_referrer][roundID].ethVolume.add(amount);
                addPromoter(_referrer);
                checkSuperBonus(_referrer);
                //assign the referral commission to all.
                referralBonusTransferDirect(msg.sender, amount.mul(20).div(100));
            }
        }
            
        round[roundID].pool = round[roundID].pool.add(amount.mul(dailyWinPool).div(100));
        address(uint160(admin)).transfer(amount.mul(houseFee).div(100));
        r3 = r3.add(amount.mul(5).div(100));
        
        //check if round time has finished
        if (now > round[roundID].endTime && round[roundID].ended == false) {
            startNewRound();
        }
        emit investmentEvent (msg.sender, amount);
            
    }
    
    //Check Super bonus award
    function checkSuperBonus(address _playerAddress) private {
        if(player[_playerAddress].totalVolumeEth >= playerEventVariable[_playerAddress]) {
            playerEventVariable[_playerAddress] = playerEventVariable[_playerAddress].add(100 ether);
            emit superBonusEvent(_playerAddress, player[_playerAddress].totalVolumeEth);
        }
    }


    function referralBonusTransferDirect(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.mul(60).div(100);
        uint i;

        for(i=0; i < 10; i++) {
            
            if (_nextReferrer != address(0x0)) {
                //referral commission to level 1
                if(i == 0) {
                    if (player[_nextReferrer].incomeLimitLeft >= amount.div(2)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(2));
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(2));
                        //This event will be used to get the total referral commission of a person, no need for extra variable
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(2), now);                        
                    }
                    else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r1 = r1.add(amount.div(2).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                    }
                    else  {
                        r1 = r1.add(amount.div(2)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(2));
                }
                
                else if(i == 1 ) {
                    if(player[_nextReferrer].referralCount >= 2) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(10)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(10));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(10));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(10), now);                        
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(10).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;
                        }
                        else  {
                            r1 = r1.add(amount.div(10)); 
                        }
                    }
                    else{
                        r1 = r1.add(amount.div(10)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(10));
                }
                //referral commission from level 3-10
                else {
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                    
                        }
                        else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].directReferralIncome = player[_nextReferrer].directReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r1 = r1.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                    
                        }
                        else  {
                            r1 = r1.add(amount.div(20)); 
                        }
                    }
                    else {
                        r1 = r1.add(amount.div(20)); 
                    }
                }
            }
            else {
                r1 = r1.add((uint(10).sub(i)).mul(amount.div(20)).add(_amountLeft)); 
                break;
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    
    function referralBonusTransferDailyROI(address _playerAddress, uint256 amount)
    private
    {
        address _nextReferrer = player[_playerAddress].referrer;
        uint256 _amountLeft = amount.mul(129).div(100);
        uint i;

        for(i=0; i < 20; i++) {
            
            if (_nextReferrer != address(0x0)) {
                if(i == 0) {
                    if (player[_nextReferrer].incomeLimitLeft >= amount.mul(30).div(100)) {
                        player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.mul(30).div(100));
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.mul(30).div(100));
                        
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.mul(30).div(100), now);
                        
                    } else if(player[_nextReferrer].incomeLimitLeft !=0) {
                        player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                        r2 = r2.add(amount.mul(30).div(100).sub(player[_nextReferrer].incomeLimitLeft));
                        emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                        player[_nextReferrer].incomeLimitLeft = 0;
                        
                    }
                    else {
                        r2 = r2.add(amount.mul(30).div(100)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.mul(30).div(100));                
                }
                else if(i == 1 || i == 2) {//for user 2&3
                     
                    if(player[_nextReferrer].referralCount >= 2) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(10)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(10));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(10));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(10), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.div(10).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.div(10)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.div(10)); 
                    }
                    _amountLeft = _amountLeft.sub(amount.div(10));
                }
                else if (i >=3 && i <= 6){ //for users 4-7
                    
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.mul(8).div(100)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.mul(8).div(100));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.mul(8).div(100));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.mul(8).div(100), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.mul(8).div(100).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.mul(8).div(100)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.mul(8).div(100));
                    }
                    _amountLeft = _amountLeft.sub(amount.mul(8).div(100));
                
                }
                else if(i >= 7 && i <= 13){ // for users 8-14
                
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(20)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(20));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(20));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(20), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.div(20).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.div(20)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.div(20));
                    }
                    _amountLeft = _amountLeft.sub(amount.div(20));
                }
                else { // for users 15-20
                    if(player[_nextReferrer].referralCount >= i+1) {
                        if (player[_nextReferrer].incomeLimitLeft >= amount.div(50)) {
                            player[_nextReferrer].incomeLimitLeft = player[_nextReferrer].incomeLimitLeft.sub(amount.div(50));
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(amount.div(50));
                            
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, amount.div(50), now);
                        
                        }else if(player[_nextReferrer].incomeLimitLeft !=0) {
                            player[_nextReferrer].roiReferralIncome = player[_nextReferrer].roiReferralIncome.add(player[_nextReferrer].incomeLimitLeft);
                            r2 = r2.add(amount.div(50).sub(player[_nextReferrer].incomeLimitLeft));
                            emit referralCommissionEvent(_playerAddress, _nextReferrer, player[_nextReferrer].incomeLimitLeft, now);
                            player[_nextReferrer].incomeLimitLeft = 0;                        
                        }
                        else {
                            r2 = r2.add(amount.div(50)); 
                        }
                    }
                    else {
                         r2 = r2.add(amount.div(50));
                    }
                    _amountLeft = _amountLeft.sub(amount.div(50));
                }
            }
            else {
                    r2 = r2.add(_amountLeft); 
                    break;
            }
            _nextReferrer = player[_nextReferrer].referrer;
        }
    }
    

    //method to settle and withdraw the daily ROI
    function settleIncome(address _playerAddress)
    private {
        
            
        uint256 remainingTimeForPayout;
        uint256 currInvestedAmount;
            
        if(now > player[_playerAddress].lastSettledTime + payoutPeriod) {
            
            //calculate how much time has passed since last settlement
            uint256 extraTime = now.sub(player[_playerAddress].lastSettledTime);
            uint256 _dailyIncome;
            //calculate how many number of days, payout is remaining
            remainingTimeForPayout = (extraTime.sub((extraTime % payoutPeriod))).div(payoutPeriod);
            
            currInvestedAmount = player[_playerAddress].currentInvestedAmount;
            //calculate 1.25% of his invested amount
            _dailyIncome = currInvestedAmount.div(80);
            //check his income limit remaining
            if (player[_playerAddress].incomeLimitLeft >= _dailyIncome.mul(remainingTimeForPayout)) {
                player[_playerAddress].incomeLimitLeft = player[_playerAddress].incomeLimitLeft.sub(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(_dailyIncome.mul(remainingTimeForPayout));
                player[_playerAddress].lastSettledTime = player[_playerAddress].lastSettledTime.add((extraTime.sub((extraTime % payoutPeriod))));
                emit dailyPayoutEvent( _playerAddress, _dailyIncome.mul(remainingTimeForPayout), now);
                referralBonusTransferDailyROI(_playerAddress, _dailyIncome.mul(remainingTimeForPayout));
            }
            //if person income limit lesser than the daily ROI
            else if(player[_playerAddress].incomeLimitLeft !=0) {
                uint256 temp;
                temp = player[_playerAddress].incomeLimitLeft;                 
                player[_playerAddress].incomeLimitLeft = 0;
                player[_playerAddress].dailyIncome = player[_playerAddress].dailyIncome.add(temp);
                player[_playerAddress].lastSettledTime = now;
                emit dailyPayoutEvent( _playerAddress, temp, now);
                referralBonusTransferDailyROI(_playerAddress, temp);
            }         
        }
        
    }
    

    //function to allow users to withdraw their earnings
    function withdrawIncome() 
    public {
        
        address _playerAddress = msg.sender;
        
        //settle the daily dividend
        settleIncome(_playerAddress);
        
        uint256 _earnings =
                    player[_playerAddress].dailyIncome +
                    player[_playerAddress].directReferralIncome +
                    player[_playerAddress].roiReferralIncome +
                    player[_playerAddress].investorPoolIncome +
                    player[_playerAddress].sponsorPoolIncome +
                    player[_playerAddress].superIncome;

        //can only withdraw if they have some earnings.         
        if(_earnings > 0) {
            require(address(this).balance >= _earnings, "Short of funds in contract, sorry");

            player[_playerAddress].dailyIncome = 0;
            player[_playerAddress].directReferralIncome = 0;
            player[_playerAddress].roiReferralIncome = 0;
            player[_playerAddress].investorPoolIncome = 0;
            player[_playerAddress].sponsorPoolIncome = 0;
            player[_playerAddress].superIncome = 0;
            
            totalAmountWithdrawn = totalAmountWithdrawn.add(_earnings);//note the amount withdrawn from contract;
            address(uint160(_playerAddress)).transfer(_earnings);
            emit withdrawEvent(_playerAddress, _earnings, now);
        }
    }
    
    
    //To start the new round for daily pool
    function startNewRound()
    private
     {
        uint256 _roundID = roundID;
       
        uint256 _poolAmount = round[roundID].pool;
        if (now > round[_roundID].endTime && round[_roundID].ended == false) {
            
            if (_poolAmount >= 10 ether) {
                round[_roundID].ended = true;
                uint256 distributedSponsorAwards = distributeTopPromoters();
                uint256 distributedInvestorAwards = distributeTopInvestors();
       
                _roundID++;
                roundID++;
                round[_roundID].startTime = now;
                round[_roundID].endTime = now.add(poolTime);
                round[_roundID].pool = _poolAmount.sub(distributedSponsorAwards.add(distributedInvestorAwards));
            }
            else {
                round[_roundID].startTime = now;
                round[_roundID].endTime = now.add(poolTime);
                round[_roundID].pool = _poolAmount;
            }
        }
    }


    
    function addPromoter(address _add)
        private
        returns (bool)
    {
        if (_add == address(0x0)){
            return false;
        }

        uint256 _amt = plyrRnds_[_add][roundID].ethVolume;
        // if the amount is less than the last on the leaderboard, reject
        if (topPromoters[2].amt >= _amt){
            return false;
        }

        address firstAddr = topPromoters[0].addr;
        uint256 firstAmt = topPromoters[0].amt;
        address secondAddr = topPromoters[1].addr;
        uint256 secondAmt = topPromoters[1].amt;


        // if the user should be at the top
        if (_amt > topPromoters[0].amt){

            if (topPromoters[0].addr == _add){
                topPromoters[0].amt = _amt;
                return true;
            }
            //if user is at the second position already and will come on first
            else if (topPromoters[1].addr == _add){

                topPromoters[0].addr = _add;
                topPromoters[0].amt = _amt;
                topPromoters[1].addr = firstAddr;
                topPromoters[1].amt = firstAmt;
                return true;
            }
            else{

                topPromoters[0].addr = _add;
                topPromoters[0].amt = _amt;
                topPromoters[1].addr = firstAddr;
                topPromoters[1].amt = firstAmt;
                topPromoters[2].addr = secondAddr;
                topPromoters[2].amt = secondAmt;
                return true;
            }
        }
        // if the user should be at the second position
        else if (_amt > topPromoters[1].amt){

            if (topPromoters[1].addr == _add){
                topPromoters[1].amt = _amt;
                return true;
            }
            else{

                topPromoters[1].addr = _add;
                topPromoters[1].amt = _amt;
                topPromoters[2].addr = secondAddr;
                topPromoters[2].amt = secondAmt;
                return true;
            }

        }
        // if the user should be at the third position
        else if (_amt > topPromoters[2].amt){

             if (topPromoters[2].addr == _add){
                topPromoters[2].amt = _amt;
                return true;
            }
            
            else{
                topPromoters[2].addr = _add;
                topPromoters[2].amt = _amt;
                return true;
            }

        }

    }


    function addInvestor(address _add)
        private
        returns (bool)
    {
        if (_add == address(0x0)){
            return false;
        }

        uint256 _amt = plyrRnds_[_add][roundID].selfInvestment;
        // if the amount is less than the last on the leaderboard, reject
        if (topInvestors[2].amt >= _amt){
            return false;
        }

        address firstAddr = topInvestors[0].addr;
        uint256 firstAmt = topInvestors[0].amt;
        address secondAddr = topInvestors[1].addr;
        uint256 secondAmt = topInvestors[1].amt;

        // if the user should be at the top
        if (_amt > topInvestors[0].amt){

            if (topInvestors[0].addr == _add){
                topInvestors[0].amt = _amt;
                return true;
            }
            //if user is at the second position already and will come on first
            else if (topInvestors[1].addr == _add){

                topInvestors[0].addr = _add;
                topInvestors[0].amt = _amt;
                topInvestors[1].addr = firstAddr;
                topInvestors[1].amt = firstAmt;
                return true;
            }

            else {

                topInvestors[0].addr = _add;
                topInvestors[0].amt = _amt;
                topInvestors[1].addr = firstAddr;
                topInvestors[1].amt = firstAmt;
                topInvestors[2].addr = secondAddr;
                topInvestors[2].amt = secondAmt;
                return true;
            }
        }
        // if the user should be at the second position
        else if (_amt > topInvestors[1].amt){

             if (topInvestors[1].addr == _add){
                topInvestors[1].amt = _amt;
                return true;
            }
            else{
                
                topInvestors[1].addr = _add;
                topInvestors[1].amt = _amt;
                topInvestors[2].addr = secondAddr;
                topInvestors[2].amt = secondAmt;
                return true;
            }

        }
        // if the user should be at the third position
        else if (_amt > topInvestors[2].amt){

            if (topInvestors[2].addr == _add){
                topInvestors[2].amt = _amt;
                return true;
            }
            else{
                topInvestors[2].addr = _add;
                topInvestors[2].amt = _amt;
                return true;
            }

        }
    }

    function distributeTopPromoters() 
        private 
        returns (uint256)
        {
            uint256 totAmt = round[roundID].pool.mul(10).div(100);
            uint256 distributedAmount;
            uint256 i;
       

            for (i = 0; i< 3; i++) {
                if (topPromoters[i].addr != address(0x0)) {
                    if (player[topPromoters[i].addr].incomeLimitLeft >= totAmt.mul(awardPercentage[i]).div(100)) {
                        player[topPromoters[i].addr].incomeLimitLeft = player[topPromoters[i].addr].incomeLimitLeft.sub(totAmt.mul(awardPercentage[i]).div(100));
                        player[topPromoters[i].addr].sponsorPoolIncome = player[topPromoters[i].addr].sponsorPoolIncome.add(totAmt.mul(awardPercentage[i]).div(100));                                                
                        emit roundAwardsEvent(topPromoters[i].addr, totAmt.mul(awardPercentage[i]).div(100));
                    }
                    else if(player[topPromoters[i].addr].incomeLimitLeft !=0) {
                        player[topPromoters[i].addr].sponsorPoolIncome = player[topPromoters[i].addr].sponsorPoolIncome.add(player[topPromoters[i].addr].incomeLimitLeft);
                        r2 = r2.add((totAmt.mul(awardPercentage[i]).div(100)).sub(player[topPromoters[i].addr].incomeLimitLeft));
                        emit roundAwardsEvent(topPromoters[i].addr,player[topPromoters[i].addr].incomeLimitLeft);
                        player[topPromoters[i].addr].incomeLimitLeft = 0;
                    }
                    else {
                        r2 = r2.add(totAmt.mul(awardPercentage[i]).div(100));
                    }

                    distributedAmount = distributedAmount.add(totAmt.mul(awardPercentage[i]).div(100));
                    lastTopPromoters[i].addr = topPromoters[i].addr;
                    lastTopPromoters[i].amt = topPromoters[i].amt;
                    lastTopPromotersWinningAmount[i] = totAmt.mul(awardPercentage[i]).div(100);
                    topPromoters[i].addr = address(0x0);
                    topPromoters[i].amt = 0;
                }
            }
            return distributedAmount;
        }

    function distributeTopInvestors()
        private 
        returns (uint256)
        {
            uint256 totAmt = round[roundID].pool.mul(10).div(100);
            uint256 distributedAmount;
            uint256 i;
       

            for (i = 0; i< 3; i++) {
                if (topInvestors[i].addr != address(0x0)) {
                    if (player[topInvestors[i].addr].incomeLimitLeft >= totAmt.mul(awardPercentage[i]).div(100)) {
                        player[topInvestors[i].addr].incomeLimitLeft = player[topInvestors[i].addr].incomeLimitLeft.sub(totAmt.mul(awardPercentage[i]).div(100));
                        player[topInvestors[i].addr].investorPoolIncome = player[topInvestors[i].addr].investorPoolIncome.add(totAmt.mul(awardPercentage[i]).div(100));                                                
                        emit roundAwardsEvent(topInvestors[i].addr, totAmt.mul(awardPercentage[i]).div(100));
                        
                    }
                    else if(player[topInvestors[i].addr].incomeLimitLeft !=0) {
                        player[topInvestors[i].addr].investorPoolIncome = player[topInvestors[i].addr].investorPoolIncome.add(player[topInvestors[i].addr].incomeLimitLeft);
                        r2 = r2.add((totAmt.mul(awardPercentage[i]).div(100)).sub(player[topInvestors[i].addr].incomeLimitLeft));
                        emit roundAwardsEvent(topInvestors[i].addr, player[topInvestors[i].addr].incomeLimitLeft);
                        player[topInvestors[i].addr].incomeLimitLeft = 0;
                    }
                    else {
                        r2 = r2.add(totAmt.mul(awardPercentage[i]).div(100));
                    }

                    distributedAmount = distributedAmount.add(totAmt.mul(awardPercentage[i]).div(100));
                    lastTopInvestors[i].addr = topInvestors[i].addr;
                    lastTopInvestors[i].amt = topInvestors[i].amt;
                    topInvestors[i].addr = address(0x0);
                    lastTopInvestorsWinningAmount[i] = totAmt.mul(awardPercentage[i]).div(100);
                    topInvestors[i].amt = 0;
                }
            }
            return distributedAmount;
        }


    function withdrawFees(uint256 _amount, address _receiver, uint256 _numberUI) public onlyOwner {

        if(_numberUI == 1 && r1 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r1 = r1.sub(_amount);
                    totalAmountWithdrawn = totalAmountWithdrawn.add(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 2 && r2 >= _amount) {
            if(_amount > 0) {
                if(address(this).balance >= _amount) {
                    r2 = r2.sub(_amount);
                    totalAmountWithdrawn = totalAmountWithdrawn.add(_amount);
                    address(uint160(_receiver)).transfer(_amount);
                }
            }
        }
        else if(_numberUI == 3) {
            player[_receiver].superIncome = player[_receiver].superIncome.add(_amount);
            r3 = r3.sub(_amount);
            emit superBonusAwardEvent(_receiver, _amount);
        }
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external onlyOwner {
        _transferOwnership(newOwner);
    }

     /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) private {
        require(newOwner != address(0), "New owner cannot be the zero address");
        emit ownershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

library DataStructs {

        struct DailyRound {
            uint256 startTime;
            uint256 endTime;
            bool ended; //has daily round ended
            uint256 pool; //amount in the pool;
        }

        struct Player {
            uint256 id;
            uint256 totalInvestment;
            uint256 totalVolumeEth;
            uint256 directReferralIncome;
            uint256 roiReferralIncome;
            uint256 currentInvestedAmount;
            uint256 dailyIncome;            
            uint256 lastSettledTime;
            uint256 incomeLimitLeft;
            uint256 investorPoolIncome;
            uint256 sponsorPoolIncome;
            uint256 superIncome;
            uint256 referralCount;
            address referrer;
        }

        struct PlayerDailyRounds {
            uint256 selfInvestment; 
            uint256 ethVolume; 
        }
}


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/contracts@next`.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"dailyPayoutEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"investmentEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ownershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"referralCommissionEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"_userID","type":"uint256"},{"indexed":true,"internalType":"address","name":"_referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"_referrerID","type":"uint256"}],"name":"registerUserEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"roundAwardsEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"superBonusAwardEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"superBonusEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_playerAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"timeStamp","type":"uint256"}],"name":"withdrawEvent","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"closeSync","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currUserID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_referrerID","type":"uint256"}],"name":"depositAmount","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopInvestors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopInvestorsWinningAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopPromoters","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lastTopPromotersWinningAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oldSC","outputs":[{"internalType":"contract CrowdsharingIO","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oldSCUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"player","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"totalInvestment","type":"uint256"},{"internalType":"uint256","name":"totalVolumeEth","type":"uint256"},{"internalType":"uint256","name":"directReferralIncome","type":"uint256"},{"internalType":"uint256","name":"roiReferralIncome","type":"uint256"},{"internalType":"uint256","name":"currentInvestedAmount","type":"uint256"},{"internalType":"uint256","name":"dailyIncome","type":"uint256"},{"internalType":"uint256","name":"lastSettledTime","type":"uint256"},{"internalType":"uint256","name":"incomeLimitLeft","type":"uint256"},{"internalType":"uint256","name":"investorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"sponsorPoolIncome","type":"uint256"},{"internalType":"uint256","name":"superIncome","type":"uint256"},{"internalType":"uint256","name":"referralCount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"plyrRnds_","outputs":[{"internalType":"uint256","name":"selfInvestment","type":"uint256"},{"internalType":"uint256","name":"ethVolume","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r2","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"r3","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_adminAddress","type":"address[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"regAdmins","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"round","outputs":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"ended","type":"bool"},{"internalType":"uint256","name":"pool","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"syncData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"syncUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topInvestors","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"topPromoters","outputs":[{"internalType":"uint256","name":"amt","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAmountWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_numberUI","type":"uint256"}],"name":"withdrawFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawIncome","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

6080604052600280546001600160a01b0319167377e867326f438360bf382fb5ffee3bc77845566d1790556001600390815560006004819055600591909155620151806006819055600755600a600881905560206009558055600c819055600d819055600e819055600f5534801561007657600080fd5b5060405162004eaa38038062004eaa8339818101604052602081101561009b57600080fd5b505160008054336001600160a01b0319918216178255600180549091166001600160a01b038416178155600b81905581526033602052635f2eb3c07f10f6f77027d502f219862b0303542eb5dd005b06fa23ff4d1775aaa45bbf947755635f3005407f10f6f77027d502f219862b0303542eb5dd005b06fa23ff4d1775aaa45bbf947855675d1eb572eadf00007f10f6f77027d502f219862b0303542eb5dd005b06fa23ff4d1775aaa45bbf947a5560329060100155601e601060010155601460106002015550614d3880620001726000396000f3fe60806040526004361061019c5760003560e01c806387f8ab26116100ec578063ad012f1c1161008a578063cf1a1f2f11610064578063cf1a1f2f14610649578063f2445a4b1461065e578063f2fde38b14610688578063f68741d6146106bb5761019c565b8063ad012f1c146105e0578063b105c24d1461060a578063b3001cb6146106345761019c565b8063928989f9116100c6578063928989f91461056257806395878183146105775780639f4216e8146105a1578063a4bb170d146105cb5761019c565b806387f8ab26146104ff5780638bf6e4101461051c5780638da5cb5b146105315761019c565b8063452b381d116101595780635468aee4116101335780635468aee4146104575780636ca5b5b01461048157806372ad692e14610496578063790956f7146104d55761019c565b8063452b381d146103465780634c54e1b5146103985780634ea80191146104425761019c565b80630bcbbd21146101a857806314f8b424146101cf5780631a0fa8c3146101e45780631cb9579c146101f957806334d5f37b14610244578063444d84c614610294575b6101a660016106d0565b005b3480156101b457600080fd5b506101bd610ed0565b60408051918252519081900360200190f35b3480156101db57600080fd5b506101bd610ed6565b3480156101f057600080fd5b506101a6610edc565b34801561020557600080fd5b506102236004803603602081101561021c57600080fd5b5035611038565b604080519283526001600160a01b0390911660208301528051918290030190f35b34801561025057600080fd5b5061026e6004803603602081101561026757600080fd5b5035611060565b604080519485526020850193909352901515838301526060830152519081900360800190f35b3480156102a057600080fd5b506101a6600480360360408110156102b757600080fd5b8101906020810181356401000000008111156102d257600080fd5b8201836020820111156102e457600080fd5b8035906020019184602083028401116401000000008311171561030657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061108d915050565b34801561035257600080fd5b5061037f6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356113f9565b6040805192835260208301919091528051918290030190f35b3480156103a457600080fd5b506103cb600480360360208110156103bb57600080fd5b50356001600160a01b031661141d565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526001600160a01b03166101a083015251908190036101c00190f35b34801561044e57600080fd5b506101a6611493565b34801561046357600080fd5b506102236004803603602081101561047a57600080fd5b50356117f1565b34801561048d57600080fd5b506101bd6117fe565b3480156104a257600080fd5b506101a6600480360360608110156104b957600080fd5b508035906001600160a01b036020820135169060400135611804565b3480156104e157600080fd5b50610223600480360360208110156104f857600080fd5b50356119cc565b6101a66004803603602081101561051557600080fd5b50356106d0565b34801561052857600080fd5b506101bd6119d9565b34801561053d57600080fd5b506105466119df565b604080516001600160a01b039092168252519081900360200190f35b34801561056e57600080fd5b506105466119ee565b34801561058357600080fd5b506101a66004803603602081101561059a57600080fd5b50356119fd565b3480156105ad57600080fd5b50610546600480360360208110156105c457600080fd5b5035612015565b3480156105d757600080fd5b506101bd612030565b3480156105ec57600080fd5b506102236004803603602081101561060357600080fd5b5035612036565b34801561061657600080fd5b506101bd6004803603602081101561062d57600080fd5b5035612043565b34801561064057600080fd5b506101bd612057565b34801561065557600080fd5b506101a661205d565b34801561066a57600080fd5b506101bd6004803603602081101561068157600080fd5b50356120bb565b34801561069457600080fd5b506101a6600480360360208110156106ab57600080fd5b50356001600160a01b03166120c8565b3480156106c757600080fd5b506101bd612120565b3467016345785d8a000081101561071f576040805162461bcd60e51b815260206004820152600e60248201526d4d696e696d756d20697320302e3160901b604482015290519081900360640190fd5b3467016345785d8a00008106156107675760405162461bcd60e51b8152600401808060200182810382526023815260200180614c3b6023913960400191505060405180910390fd5b60008311801561077957506004548311155b6107be576040805162461bcd60e51b815260206004820152601160248201527015dc9bdb99c8149959995c9c995c881251607a1b604482015290519081900360640190fd5b60008381526032602090815260408083205433845260349092529091205434916001600160a01b031690610aec576004805460010190819055336000908152603460205260409020908155426007820155600501829055600a5460095461083d919061083190859063ffffffff61212616565b9063ffffffff61218816565b3360009081526034602052604080822060088101939093556001808401869055600d90930180546001600160a01b0319166001600160a01b03861690811790915582529020600c015461088f916121ca565b6001600160a01b0382166000908152603460209081526040808320600c019390935560045482526032815282822080546001600160a01b0319163390811790915582526031815282822068056bc75e2d63100000905560358152828220600b54835290522054610905908363ffffffff6121ca16565b336000818152603560209081526040808320600b54845290915290209190915561092e90612224565b506000546001600160a01b03828116911614156109d25761098661095e606461083185601463ffffffff61212616565b600080546001600160a01b03168152603460205260409020600301549063ffffffff6121ca16565b600080546001600160a01b03168152603460205260409020600301556109ca6109bb606461083185600d63ffffffff61212616565b600c549063ffffffff6121ca16565b600c55610a9e565b6001600160a01b0381166000908152603460205260409020600201546109fe908363ffffffff6121ca16565b6001600160a01b03821660009081526034602090815260408083206002019390935560358152828220600b54835290522060010154610a43908363ffffffff6121ca16565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902060010155610a758161246c565b50610a7f8161269c565b610a9e33610a99606461083186601463ffffffff61212616565b61274e565b600454604080519182526020820187905280516001600160a01b0384169233927f0d6b51718415933a5fe2df79da35a8e108d131ce6900dd1771d0ee991e50ad4a92918290030190a3610d82565b3360009081526034602052604090206008015415610b44576040805162461bcd60e51b815260206004820152601060248201526f1b1a5b5a5d081cdd1a5b1b081b19599d60821b604482015290519081900360640190fd5b33600090815260346020526040902060050154821015610b98576040805162461bcd60e51b815260206004820152600a60248201526918985908185b5bdd5b9d60b21b604482015290519081900360640190fd5b50336000908152603460205260409020600d8101544260078301556005909101829055600a546009546001600160a01b0390921691610bdd9190610831908590612126565b336000908152603460205260409020600881019190915560010154610c08908363ffffffff6121ca16565b3360009081526034602090815260408083206001019390935560358152828220600b54835290522054610c41908363ffffffff6121ca16565b336000818152603560209081526040808320600b548452909152902091909155610c6a90612224565b506000546001600160a01b0382811691161415610cbb57610c9a61095e606461083185601463ffffffff61212616565b600080546001600160a01b0316815260346020526040902060030155610d82565b6001600160a01b038116600090815260346020526040902060020154610ce7908363ffffffff6121ca16565b6001600160a01b03821660009081526034602090815260408083206002019390935560358152828220600b54835290522060010154610d2c908363ffffffff6121ca16565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902060010155610d5e8161246c565b50610d688161269c565b610d8233610a99606461083186601463ffffffff61212616565b610dc0610d9f60646108316008548661212690919063ffffffff16565b600b546000908152603360205260409020600301549063ffffffff6121ca16565b600b546000908152603360205260409020600301556001546005546001600160a01b03909116906108fc90610e039060649061083190879063ffffffff61212616565b6040518115909202916000818181858888f19350505050158015610e2b573d6000803e3d6000fd5b50610e54610e45606461083185600563ffffffff61212616565b600e549063ffffffff6121ca16565b600e55600b5460009081526033602052604090206001015442118015610e8f5750600b5460009081526033602052604090206002015460ff16155b15610e9c57610e9c612f1e565b604051829033907f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75390600090a35050505050565b600d5481565b600b5481565b33610ee681613067565b6001600160a01b0381166000908152603460205260409020600b810154600a8201546009830154600484015460038501546006909501549094019093019092019091010180156110345780471015610f6f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614c9f6021913960400191505060405180910390fd5b6001600160a01b038216600090815260346020526040812060068101829055600381018290556004810182905560098101829055600a8101829055600b0155600f54610fc1908263ffffffff6121ca16565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610ffa573d6000803e3d6000fd5b504281836001600160a01b03167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45b5050565b601f816003811061104557fe5b6002020180546001909101549091506001600160a01b031682565b60336020526000908152604090208054600182015460028301546003909301549192909160ff9091169084565b6000546001600160a01b031633146110d9576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b60c86004541115611131576040805162461bcd60e51b815260206004820181905260248201527f4e6f206d6f72652061646d696e732063616e2062652072656769737465726564604482015290519081900360640190fd5b60005b82518110156113f4576004805460010190819055835160349060009086908590811061115c57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550426034600085848151811061119c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206007018190555081603460008584815181106111dc57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600501819055506969e10de76676d08000006034600085848151811061122657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060080181905550816034600085848151811061126657fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206001018190555060326000600160045403815260200190815260200160002060009054906101000a90046001600160a01b0316603460008584815181106112d157fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600d0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060146034600085848151811061133257fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600c018190555082818151811061136d57fe5b602002602001015160326000600454815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555068056bc75e2d63100000603160008584815181106113c857fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101611134565b505050565b60356020908152600092835260408084209091529082529020805460019091015482565b603460205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c8d0154600d909d01549b9c9a9b999a9899979896979596949593949293919290916001600160a01b03168e565b6000546001600160a01b031633146114df576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b6002546001600160a01b0316611530576040805162461bcd60e51b8152602060048201526011602482015270125b9a5d1a585b1a5e994818db1bdcd959607a1b604482015290519081900360640190fd5b67d02ab486cedc000060138190556014805473538682b5ba140351db74b094cf779fe59dfc600e6001600160a01b03199182161790915567b30601a7228a00006015556016805473732cae5dd214517156b985379922777afd34249d90831681179091556744004c09e76a0000601755601880548316736f62016176ee749b3805f6663cbc575ddd831b11179055601992909255601a80548216909217909155674563918244f40000601b819055601c8054735a8d2a28729351bb6bfcfbb8701be1c7186aad48908416179055601d55601e8054909116739116a95eb0292e076bd0c4865127bf1e3640b20c179055600254604080516306ca5b5b60e41b815290516001600160a01b0390921691636ca5b5b091600480820192602092909190829003018186803b15801561166457600080fd5b505afa158015611678573d6000803e3d6000fd5b505050506040513d602081101561168e57600080fd5b5051600c5560025460408051630bcbbd2160e01b815290516001600160a01b0390921691630bcbbd2191600480820192602092909190829003018186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d602081101561170257600080fd5b5051600d55600254604080516308bf6e4160e41b815290516001600160a01b0390921691638bf6e41091600480820192602092909190829003018186803b15801561174c57600080fd5b505afa158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b5051600e5560025460408051637b43a0eb60e11b815290516001600160a01b039092169163f68741d691600480820192602092909190829003018186803b1580156117c057600080fd5b505afa1580156117d4573d6000803e3d6000fd5b505050506040513d60208110156117ea57600080fd5b5051600f55565b6025816003811061104557fe5b600c5481565b6000546001600160a01b03163314611850576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b806001148015611862575082600c5410155b156118dd5782156118d8578247106118d857600c54611887908463ffffffff61337a16565b600c55600f5461189d908463ffffffff6121ca16565b600f556040516001600160a01b0383169084156108fc029085906000818181858888f193505050501580156118d6573d6000803e3d6000fd5b505b6113f4565b8060021480156118ef575082600d5410155b1561192a5782156118d8578247106118d857600d54611914908463ffffffff61337a16565b600d55600f5461189d908463ffffffff6121ca16565b80600314156113f4576001600160a01b0382166000908152603460205260409020600b015461195f908463ffffffff6121ca16565b6001600160a01b0383166000908152603460205260409020600b0155600e5461198e908463ffffffff61337a16565b600e5560405183906001600160a01b038416907f0c345e029e967ca5c81e931376e8075049982cea9635d24118b56524ba1fa13190600090a3505050565b6013816003811061104557fe5b600e5481565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b03163314611a49576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b6002546001600160a01b0316611a9a576040805162461bcd60e51b8152602060048201526011602482015270125b9a5d1a585b1a5e994818db1bdcd959607a1b604482015290519081900360640190fd5b60005b8181101561103457600254600354604080516313e842dd60e31b81526004810192909252516000926001600160a01b031691639f4216e8916024808301926020929190829003018186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d6020811015611b1e57600080fd5b505160038054600101905560025460408051634c54e1b560e01b81526001600160a01b0380851660048301529151939450600093849384938493849384938493849384939190921691634c54e1b5916024808301926101c0929190829003018186803b158015611b8d57600080fd5b505afa158015611ba1573d6000803e3d6000fd5b505050506040513d6101c0811015611bb857600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509d509d505050509a509a50509950995099509950995050600080600260009054906101000a90046001600160a01b03166001600160a01b031663452b381d8d60016040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050604080518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6040811015611d0257600080fd5b81019080805190602001909291908051906020019092919050505091509150600460008154600101919050819055603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206000018190555085603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206007018190555086603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206005018190555084603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600801819055508a603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206001018190555082603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600d0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600c018190555087603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206004018190555088603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206003018190555089603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600201819055508b60326000600454815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555068056bc75e2d63100000603160008e6001600160a01b03166001600160a01b031681526020019081526020016000208190555081603560008e6001600160a01b03166001600160a01b031681526020019081526020016000206000600181526020019081526020016000206000018190555080603560008e6001600160a01b03166001600160a01b03168152602001908152602001600020600060018152602001908152602001600020600101819055505050505050505050505050508080600101915050611a9d565b6032602052600090815260409020546001600160a01b031681565b60045481565b6019816003811061104557fe5b602b816003811061205057fe5b0154905081565b60035481565b6000546001600160a01b031633146120a9576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b600280546001600160a01b0319169055565b602e816003811061205057fe5b6000546001600160a01b03163314612114576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b61211d816133bc565b50565b600f5481565b60008261213557506000612182565b8282028284828161214257fe5b041461217f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614c7e6021913960400191505060405180910390fd5b90505b92915050565b600061217f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061345c565b60008282018381101561217f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b03821661223c57506000612467565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902054601d548111612275576000915050612467565b601a54601954601c54601b546001600160a01b039384169390911690828511156123c357601a546001600160a01b03888116911614156122c95784601960005b600202015550600194506124679350505050565b601c546001600160a01b038881169116141561232957601a80546001600160a01b0319166001600160a01b03891617905584601960006002020155601c80546001600160a01b0319166001600160a01b03861617905582601960016122b5565b601a80546001600160a01b0319166001600160a01b03891617905584601960006002020155601c80546001600160a01b0319166001600160a01b03861617905582601960015b600202016000018190555081601960026003811061238957fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060196002600381106122b557fe5b601b5485111561241257601c546001600160a01b03888116911614156123ed5784601960016122b5565b601c80546001600160a01b0319166001600160a01b038916179055846019600161236f565b601d5485111561246157601e546001600160a01b038881169116141561243c5784601960026122b5565b601e80546001600160a01b0319166001600160a01b03891617905584601960026122b5565b50505050505b919050565b60006001600160a01b03821661248457506000612467565b6001600160a01b0382166000908152603560209081526040808320600b54845290915290206001015460175481116124c0576000915050612467565b6014546013546016546015546001600160a01b039384169390911690828511156125fe576014546001600160a01b03888116911614156125045784601360006122b5565b6016546001600160a01b038881169116141561256457601480546001600160a01b0319166001600160a01b03891617905584601360006002020155601680546001600160a01b0319166001600160a01b03861617905582601360016122b5565b601480546001600160a01b0319166001600160a01b03891617905584601360006002020155601680546001600160a01b0319166001600160a01b03861617905582601360015b60020201600001819055508160136002600381106125c457fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060136002600381106122b557fe5b60155485111561264d576016546001600160a01b03888116911614156126285784601360016122b5565b601680546001600160a01b0319166001600160a01b03891617905584601360016125aa565b601754851115612461576018546001600160a01b03888116911614156126775784601360026122b5565b601880546001600160a01b0319166001600160a01b03891617905584601360026122b5565b6001600160a01b0381166000908152603160209081526040808320546034909252909120600201541061211d576001600160a01b0381166000908152603160205260409020546126fb9068056bc75e2d6310000063ffffffff6121ca16565b6001600160a01b038216600081815260316020908152604080832094909455603490528281206002015492517fa44cd2dafb9e2c1c8e0eced6c02ad6ad9ff96b40d0a6d244e275090928c2573e9190a350565b6001600160a01b038083166000908152603460205260408120600d015490911690612785606461083185603c63ffffffff61212616565b905060005b600a811015612f17576001600160a01b03831615612ea25780612a1c576127b884600263ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080154106128d8576128156127ed85600263ffffffff61218816565b6001600160a01b0385166000908152603460205260409020600801549063ffffffff61337a16565b6001600160a01b03841660009081526034602052604090206008015561286d61284585600263ffffffff61218816565b6001600160a01b0385166000908152603460205260409020600301549063ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206003015561289a84600263ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46129f4565b6001600160a01b038316600090815260346020526040902060080154156129dc576001600160a01b0383166000908152603460205260409020600881015460039091015461292b9163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612974906109bb9061296887600263ffffffff61218816565b9063ffffffff61337a16565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556129f4565b6129f06109bb85600263ffffffff61218816565b600c555b612a15612a0885600263ffffffff61218816565b839063ffffffff61337a16565b9150612e9d565b8060011415612c6a576001600160a01b0383166000908152603460205260409020600c0154600211612c3e57612a5984600a63ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410612b2957612a8e6127ed85600a63ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080155612abe61284585600a63ffffffff61218816565b6001600160a01b038416600090815260346020526040902060030155612aeb84600a63ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4612c39565b6001600160a01b03831660009081526034602052604090206008015415612c21576001600160a01b03831660009081526034602052604090206008810154600390910154612b7c9163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612bb9906109bb9061296887600a63ffffffff61218816565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155612c39565b612c356109bb85600a63ffffffff61218816565b600c555b612c56565b612c526109bb85600a63ffffffff61218816565b600c555b612a15612a0885600a63ffffffff61218816565b6001600160a01b0383166000908152603460205260409020600c01546001820111612e8557612ca084601463ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410612d7057612cd56127ed85601463ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080155612d0561284585601463ffffffff61218816565b6001600160a01b038416600090815260346020526040902060030155612d3284601463ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4612e80565b6001600160a01b03831660009081526034602052604090206008015415612e68576001600160a01b03831660009081526034602052604090206008810154600390910154612dc39163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612e00906109bb9061296887601463ffffffff61218816565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155612e80565b612e7c6109bb85601463ffffffff61218816565b600c555b612e9d565b612e996109bb85601463ffffffff61218816565b600c555b612eee565b612ee66109bb83612eda612ebd88601463ffffffff61218816565b612ece600a8763ffffffff61337a16565b9063ffffffff61212616565b9063ffffffff6121ca16565b600c55612f17565b6001600160a01b039283166000908152603460205260409020600d01549092169160010161278a565b5050505050565b600b546000818152603360205260409020600381015460019091015442118015612f5a575060008281526033602052604090206002015460ff16155b1561103457678ac7230489e800008110613022576000828152603360205260408120600201805460ff19166001179055612f926134fe565b90506000612f9e613a83565b600b805460019081019091559094016000818152603360205260409020429081905560065491959250612fd69163ffffffff6121ca16565b600085815260336020526040902060010155613008612ffb838363ffffffff6121ca16565b849063ffffffff61337a16565b600085815260336020526040902060030155506110349050565b60008281526033602052604090204290819055600654613048919063ffffffff6121ca16565b6000928352603360205260409092206001810192909255600390910155565b600780546001600160a01b0383166000908152603460205260408120909201548291014211156113f4576001600160a01b0383166000908152603460205260408120600701546130be90429063ffffffff61337a16565b905060006130e560075461083160075485816130d657fe5b8691900663ffffffff61337a16565b6001600160a01b038616600090815260346020526040902060050154909450925061311783605063ffffffff61218816565b9050613129818563ffffffff61212616565b6001600160a01b038616600090815260346020526040902060080154106132c15761318561315d828663ffffffff61212616565b6001600160a01b0387166000908152603460205260409020600801549063ffffffff61337a16565b6001600160a01b0386166000908152603460205260409020600801556131dc6131b4828663ffffffff61212616565b6001600160a01b0387166000908152603460205260409020600601549063ffffffff6121ca16565b6001600160a01b0386166000908152603460205260409020600601556007546132429061321a90848161320b57fe5b8591900663ffffffff61337a16565b6001600160a01b0387166000908152603460205260409020600701549063ffffffff6121ca16565b6001600160a01b0386166000908152603460205260409020600701554261326f828663ffffffff61212616565b6040516001600160a01b038816907f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a90600090a46132bc856132b7838763ffffffff61212616565b613f53565b612f17565b6001600160a01b03851660009081526034602052604090206008015415612f17576001600160a01b038516600090815260346020526040812060088101805492905560060154613317908263ffffffff6121ca16565b6001600160a01b0387166000818152603460205260408082206006810194909455426007909401849055518492917f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a91a46133728682613f53565b505050505050565b600061217f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614be0565b6001600160a01b0381166134015760405162461bcd60e51b8152600401808060200182810382526024815260200180614ce06024913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b791a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081836134e85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134ad578181015183820152602001613495565b50505050905090810190601f1680156134da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134f457fe5b0495945050505050565b600b54600090815260336020526040812060030154819061352d9060649061083190600a63ffffffff61212616565b90506000805b6003811015613a7c5760006013826003811061354b57fe5b60020201600101546001600160a01b031614613a745761358560646108316010846003811061357657fe5b0154869063ffffffff61212616565b603460006013846003811061359657fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015410613735576136236135e76064610831601085600381106135d857fe5b0154879063ffffffff61212616565b60346000601385600381106135f857fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801549061337a565b603460006013846003811061363457fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801556136ad6136716064610831601085600381106135d857fe5b603460006013856003811061368257fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a0154906121ca565b60346000601384600381106136be57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a01556136f860646108316010846003811061357657fe5b6013826003811061370557fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a3613960565b603460006013836003811061374657fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015415613944576137d4603460006013846003811061378457fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060080154603460006013856003811061368257fe5b60346000601384600381106137e557fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600a0181905550613896613887603460006013856003811061383e57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015461296860646108316010876003811061387857fe5b0154899063ffffffff61212616565b600d549063ffffffff6121ca16565b600d5560346000601383600381106138aa57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080154601382600381106138dc57fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a36000603460006013846003811061391a57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613960565b61395c6138876064610831601085600381106135d857fe5b600d555b6139856139786064610831601085600381106135d857fe5b839063ffffffff6121ca16565b91506013816003811061399457fe5b60020201600101546001600160a01b0316602582600381106139b257fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550601381600381106139ea57fe5b6002020154602582600381106139fc57fe5b6002020155613a1660646108316010846003811061357657fe5b602e8260038110613a2357fe5b0155600060138260038110613a3457fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060138260038110613a6e57fe5b60020201555b600101613533565b5091505090565b600b546000908152603360205260408120600301548190613ab29060649061083190600a63ffffffff61212616565b90506000805b6003811015613a7c57600060198260038110613ad057fe5b60020201600101546001600160a01b031614613f4b57613afb60646108316010846003811061357657fe5b6034600060198460038110613b0c57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015410613c7157613b5f613b4e6064610831601085600381106135d857fe5b60346000601985600381106135f857fe5b6034600060198460038110613b7057fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613be9613bad6064610831601085600381106135d857fe5b6034600060198560038110613bbe57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090154906121ca565b6034600060198460038110613bfa57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090155613c3460646108316010846003811061357657fe5b60198260038110613c4157fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a3613e44565b6034600060198360038110613c8257fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015415613e2857613d106034600060198460038110613cc057fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600801546034600060198560038110613bbe57fe5b6034600060198460038110613d2157fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060090181905550613d7a613887603460006019856003811061383e57fe5b600d556034600060198360038110613d8e57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015460198260038110613dc057fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a360006034600060198460038110613dfe57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613e44565b613e406138876064610831601085600381106135d857fe5b600d555b613e5c6139786064610831601085600381106135d857fe5b915060198160038110613e6b57fe5b60020201600101546001600160a01b0316601f8260038110613e8957fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060198160038110613ec157fe5b6002020154601f8260038110613ed357fe5b6002020155600060198260038110613ee757fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613f2760646108316010846003811061357657fe5b602b8260038110613f3457fe5b0155600060198260038110613f4557fe5b60020201555b600101613ab8565b6001600160a01b038083166000908152603460205260408120600d015490911690613f8a606461083185608163ffffffff61212616565b905060005b6014811015612f17576001600160a01b03831615614b9c578061420357613fc2606461083186601e63ffffffff61212616565b6001600160a01b038416600090815260346020526040902060080154106140c957613ffc6127ed606461083187601e63ffffffff61212616565b6001600160a01b038416600090815260346020526040902060080155614059614031606461083187601e63ffffffff61212616565b6001600160a01b0385166000908152603460205260409020600401549063ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206004015561408b606461083186601e63ffffffff61212616565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46141e3565b6001600160a01b038316600090815260346020526040902060080154156141c6576001600160a01b0383166000908152603460205260409020600881015460049091015461411c9163ffffffff6121ca16565b6001600160a01b038416600090815260346020526040902060048101919091556008015461415e9061388790612968606461083189601e63ffffffff61212616565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556141e3565b6141df613887606461083187601e63ffffffff61212616565b600d555b6141fc612a08606461083187601e63ffffffff61212616565b9150614b97565b80600114806142125750806002145b1561445c576001600160a01b0383166000908152603460205260409020600c01546002116144305761424b84600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801541061431b576142806127ed85600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556142b061403185600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600401556142dd84600a63ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a461442b565b6001600160a01b03831660009081526034602052604090206008015415614413576001600160a01b0383166000908152603460205260409020600881015460049091015461436e9163ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206004810191909155600801546143ab906138879061296887600a63ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b03831660009081526034602052604081206008015561442b565b61442761388785600a63ffffffff61218816565b600d555b614448565b61444461388785600a63ffffffff61218816565b600d555b6141fc612a0885600a63ffffffff61218816565b6003811015801561446e575060068111155b156146ef576001600160a01b0383166000908152603460205260409020600c015460018201116146b9576144ae606461083186600863ffffffff61212616565b6001600160a01b03841660009081526034602052604090206008015410614595576144e86127ed606461083187600863ffffffff61212616565b6001600160a01b0384166000908152603460205260409020600890810191909155614525906140319060649061083190889063ffffffff61212616565b6001600160a01b038416600090815260346020526040902060040155614557606461083186600863ffffffff61212616565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46146b4565b6001600160a01b03831660009081526034602052604090206008015415614697576001600160a01b038316600090815260346020526040902060088101546004909101546145e89163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600481019190915560089081015461462f91613887919061296890606490610831908a9063ffffffff61212616565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556146b4565b6146b0613887606461083187600863ffffffff61212616565b600d555b6146d6565b6146d2613887606461083187600863ffffffff61212616565b600d555b6141fc612a08606461083187600863ffffffff61212616565b600781101580156147015750600d8111155b1561494d576001600160a01b0383166000908152603460205260409020600c015460018201116149215761473c84601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801541061480c576147716127ed85601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556147a161403185601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600401556147ce84601463ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a461491c565b6001600160a01b03831660009081526034602052604090206008015415614904576001600160a01b0383166000908152603460205260409020600881015460049091015461485f9163ffffffff6121ca16565b6001600160a01b038416600090815260346020526040902060048101919091556008015461489c906138879061296887601463ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b03831660009081526034602052604081206008015561491c565b61491861388785601463ffffffff61218816565b600d555b614939565b61493561388785601463ffffffff61218816565b600d555b6141fc612a0885601463ffffffff61218816565b6001600160a01b0383166000908152603460205260409020600c01546001820111614b685761498384603263ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410614a53576149b86127ed85603263ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556149e861403185603263ffffffff61218816565b6001600160a01b038416600090815260346020526040902060040155614a1584603263ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4614b63565b6001600160a01b03831660009081526034602052604090206008015415614b4b576001600160a01b03831660009081526034602052604090206008810154600490910154614aa69163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600481019190915560080154614ae3906138879061296887603263ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155614b63565b614b5f61388785603263ffffffff61218816565b600d555b614b80565b614b7c61388785603263ffffffff61218816565b600d555b614b94612a0885603263ffffffff61218816565b91505b614bb7565b600d54614baf908363ffffffff6121ca16565b600d55612f17565b6001600160a01b039283166000908152603460205260409020600d015490921691600101613f8f565b60008184841115614c325760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156134ad578181015183820152602001613495565b50505090039056fe57726f6e6720616d6f756e742c20302e31206d756c7469706c657320616c6c6f776564253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753686f7274206f662066756e647320696e20636f6e74726163742c20736f727279e8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df213174e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a7231582079ead7132d9e5bdb0fbdfe850e12f2741b2635d3f75582db6d2cabf32daabb1e64736f6c63430005110032000000000000000000000000d40960f59340d9b6c5a629181229782f8f96af54

Deployed Bytecode

0x60806040526004361061019c5760003560e01c806387f8ab26116100ec578063ad012f1c1161008a578063cf1a1f2f11610064578063cf1a1f2f14610649578063f2445a4b1461065e578063f2fde38b14610688578063f68741d6146106bb5761019c565b8063ad012f1c146105e0578063b105c24d1461060a578063b3001cb6146106345761019c565b8063928989f9116100c6578063928989f91461056257806395878183146105775780639f4216e8146105a1578063a4bb170d146105cb5761019c565b806387f8ab26146104ff5780638bf6e4101461051c5780638da5cb5b146105315761019c565b8063452b381d116101595780635468aee4116101335780635468aee4146104575780636ca5b5b01461048157806372ad692e14610496578063790956f7146104d55761019c565b8063452b381d146103465780634c54e1b5146103985780634ea80191146104425761019c565b80630bcbbd21146101a857806314f8b424146101cf5780631a0fa8c3146101e45780631cb9579c146101f957806334d5f37b14610244578063444d84c614610294575b6101a660016106d0565b005b3480156101b457600080fd5b506101bd610ed0565b60408051918252519081900360200190f35b3480156101db57600080fd5b506101bd610ed6565b3480156101f057600080fd5b506101a6610edc565b34801561020557600080fd5b506102236004803603602081101561021c57600080fd5b5035611038565b604080519283526001600160a01b0390911660208301528051918290030190f35b34801561025057600080fd5b5061026e6004803603602081101561026757600080fd5b5035611060565b604080519485526020850193909352901515838301526060830152519081900360800190f35b3480156102a057600080fd5b506101a6600480360360408110156102b757600080fd5b8101906020810181356401000000008111156102d257600080fd5b8201836020820111156102e457600080fd5b8035906020019184602083028401116401000000008311171561030657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061108d915050565b34801561035257600080fd5b5061037f6004803603604081101561036957600080fd5b506001600160a01b0381351690602001356113f9565b6040805192835260208301919091528051918290030190f35b3480156103a457600080fd5b506103cb600480360360208110156103bb57600080fd5b50356001600160a01b031661141d565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526001600160a01b03166101a083015251908190036101c00190f35b34801561044e57600080fd5b506101a6611493565b34801561046357600080fd5b506102236004803603602081101561047a57600080fd5b50356117f1565b34801561048d57600080fd5b506101bd6117fe565b3480156104a257600080fd5b506101a6600480360360608110156104b957600080fd5b508035906001600160a01b036020820135169060400135611804565b3480156104e157600080fd5b50610223600480360360208110156104f857600080fd5b50356119cc565b6101a66004803603602081101561051557600080fd5b50356106d0565b34801561052857600080fd5b506101bd6119d9565b34801561053d57600080fd5b506105466119df565b604080516001600160a01b039092168252519081900360200190f35b34801561056e57600080fd5b506105466119ee565b34801561058357600080fd5b506101a66004803603602081101561059a57600080fd5b50356119fd565b3480156105ad57600080fd5b50610546600480360360208110156105c457600080fd5b5035612015565b3480156105d757600080fd5b506101bd612030565b3480156105ec57600080fd5b506102236004803603602081101561060357600080fd5b5035612036565b34801561061657600080fd5b506101bd6004803603602081101561062d57600080fd5b5035612043565b34801561064057600080fd5b506101bd612057565b34801561065557600080fd5b506101a661205d565b34801561066a57600080fd5b506101bd6004803603602081101561068157600080fd5b50356120bb565b34801561069457600080fd5b506101a6600480360360208110156106ab57600080fd5b50356001600160a01b03166120c8565b3480156106c757600080fd5b506101bd612120565b3467016345785d8a000081101561071f576040805162461bcd60e51b815260206004820152600e60248201526d4d696e696d756d20697320302e3160901b604482015290519081900360640190fd5b3467016345785d8a00008106156107675760405162461bcd60e51b8152600401808060200182810382526023815260200180614c3b6023913960400191505060405180910390fd5b60008311801561077957506004548311155b6107be576040805162461bcd60e51b815260206004820152601160248201527015dc9bdb99c8149959995c9c995c881251607a1b604482015290519081900360640190fd5b60008381526032602090815260408083205433845260349092529091205434916001600160a01b031690610aec576004805460010190819055336000908152603460205260409020908155426007820155600501829055600a5460095461083d919061083190859063ffffffff61212616565b9063ffffffff61218816565b3360009081526034602052604080822060088101939093556001808401869055600d90930180546001600160a01b0319166001600160a01b03861690811790915582529020600c015461088f916121ca565b6001600160a01b0382166000908152603460209081526040808320600c019390935560045482526032815282822080546001600160a01b0319163390811790915582526031815282822068056bc75e2d63100000905560358152828220600b54835290522054610905908363ffffffff6121ca16565b336000818152603560209081526040808320600b54845290915290209190915561092e90612224565b506000546001600160a01b03828116911614156109d25761098661095e606461083185601463ffffffff61212616565b600080546001600160a01b03168152603460205260409020600301549063ffffffff6121ca16565b600080546001600160a01b03168152603460205260409020600301556109ca6109bb606461083185600d63ffffffff61212616565b600c549063ffffffff6121ca16565b600c55610a9e565b6001600160a01b0381166000908152603460205260409020600201546109fe908363ffffffff6121ca16565b6001600160a01b03821660009081526034602090815260408083206002019390935560358152828220600b54835290522060010154610a43908363ffffffff6121ca16565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902060010155610a758161246c565b50610a7f8161269c565b610a9e33610a99606461083186601463ffffffff61212616565b61274e565b600454604080519182526020820187905280516001600160a01b0384169233927f0d6b51718415933a5fe2df79da35a8e108d131ce6900dd1771d0ee991e50ad4a92918290030190a3610d82565b3360009081526034602052604090206008015415610b44576040805162461bcd60e51b815260206004820152601060248201526f1b1a5b5a5d081cdd1a5b1b081b19599d60821b604482015290519081900360640190fd5b33600090815260346020526040902060050154821015610b98576040805162461bcd60e51b815260206004820152600a60248201526918985908185b5bdd5b9d60b21b604482015290519081900360640190fd5b50336000908152603460205260409020600d8101544260078301556005909101829055600a546009546001600160a01b0390921691610bdd9190610831908590612126565b336000908152603460205260409020600881019190915560010154610c08908363ffffffff6121ca16565b3360009081526034602090815260408083206001019390935560358152828220600b54835290522054610c41908363ffffffff6121ca16565b336000818152603560209081526040808320600b548452909152902091909155610c6a90612224565b506000546001600160a01b0382811691161415610cbb57610c9a61095e606461083185601463ffffffff61212616565b600080546001600160a01b0316815260346020526040902060030155610d82565b6001600160a01b038116600090815260346020526040902060020154610ce7908363ffffffff6121ca16565b6001600160a01b03821660009081526034602090815260408083206002019390935560358152828220600b54835290522060010154610d2c908363ffffffff6121ca16565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902060010155610d5e8161246c565b50610d688161269c565b610d8233610a99606461083186601463ffffffff61212616565b610dc0610d9f60646108316008548661212690919063ffffffff16565b600b546000908152603360205260409020600301549063ffffffff6121ca16565b600b546000908152603360205260409020600301556001546005546001600160a01b03909116906108fc90610e039060649061083190879063ffffffff61212616565b6040518115909202916000818181858888f19350505050158015610e2b573d6000803e3d6000fd5b50610e54610e45606461083185600563ffffffff61212616565b600e549063ffffffff6121ca16565b600e55600b5460009081526033602052604090206001015442118015610e8f5750600b5460009081526033602052604090206002015460ff16155b15610e9c57610e9c612f1e565b604051829033907f1c58ec20c926cc585eaf181eaf11cb4eb553acc2fda2d960f36b962c17e8e75390600090a35050505050565b600d5481565b600b5481565b33610ee681613067565b6001600160a01b0381166000908152603460205260409020600b810154600a8201546009830154600484015460038501546006909501549094019093019092019091010180156110345780471015610f6f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614c9f6021913960400191505060405180910390fd5b6001600160a01b038216600090815260346020526040812060068101829055600381018290556004810182905560098101829055600a8101829055600b0155600f54610fc1908263ffffffff6121ca16565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610ffa573d6000803e3d6000fd5b504281836001600160a01b03167f3f5274d9edd3b530545223adc84dcf865f2433783bc200984750bd356af5725360405160405180910390a45b5050565b601f816003811061104557fe5b6002020180546001909101549091506001600160a01b031682565b60336020526000908152604090208054600182015460028301546003909301549192909160ff9091169084565b6000546001600160a01b031633146110d9576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b60c86004541115611131576040805162461bcd60e51b815260206004820181905260248201527f4e6f206d6f72652061646d696e732063616e2062652072656769737465726564604482015290519081900360640190fd5b60005b82518110156113f4576004805460010190819055835160349060009086908590811061115c57fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000181905550426034600085848151811061119c57fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206007018190555081603460008584815181106111dc57fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600501819055506969e10de76676d08000006034600085848151811061122657fe5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060080181905550816034600085848151811061126657fe5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206001018190555060326000600160045403815260200190815260200160002060009054906101000a90046001600160a01b0316603460008584815181106112d157fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600d0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060146034600085848151811061133257fe5b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600c018190555082818151811061136d57fe5b602002602001015160326000600454815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555068056bc75e2d63100000603160008584815181106113c857fe5b6020908102919091018101516001600160a01b0316825281019190915260400160002055600101611134565b505050565b60356020908152600092835260408084209091529082529020805460019091015482565b603460205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600a8b0154600b8c0154600c8d0154600d909d01549b9c9a9b999a9899979896979596949593949293919290916001600160a01b03168e565b6000546001600160a01b031633146114df576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b6002546001600160a01b0316611530576040805162461bcd60e51b8152602060048201526011602482015270125b9a5d1a585b1a5e994818db1bdcd959607a1b604482015290519081900360640190fd5b67d02ab486cedc000060138190556014805473538682b5ba140351db74b094cf779fe59dfc600e6001600160a01b03199182161790915567b30601a7228a00006015556016805473732cae5dd214517156b985379922777afd34249d90831681179091556744004c09e76a0000601755601880548316736f62016176ee749b3805f6663cbc575ddd831b11179055601992909255601a80548216909217909155674563918244f40000601b819055601c8054735a8d2a28729351bb6bfcfbb8701be1c7186aad48908416179055601d55601e8054909116739116a95eb0292e076bd0c4865127bf1e3640b20c179055600254604080516306ca5b5b60e41b815290516001600160a01b0390921691636ca5b5b091600480820192602092909190829003018186803b15801561166457600080fd5b505afa158015611678573d6000803e3d6000fd5b505050506040513d602081101561168e57600080fd5b5051600c5560025460408051630bcbbd2160e01b815290516001600160a01b0390921691630bcbbd2191600480820192602092909190829003018186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d602081101561170257600080fd5b5051600d55600254604080516308bf6e4160e41b815290516001600160a01b0390921691638bf6e41091600480820192602092909190829003018186803b15801561174c57600080fd5b505afa158015611760573d6000803e3d6000fd5b505050506040513d602081101561177657600080fd5b5051600e5560025460408051637b43a0eb60e11b815290516001600160a01b039092169163f68741d691600480820192602092909190829003018186803b1580156117c057600080fd5b505afa1580156117d4573d6000803e3d6000fd5b505050506040513d60208110156117ea57600080fd5b5051600f55565b6025816003811061104557fe5b600c5481565b6000546001600160a01b03163314611850576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b806001148015611862575082600c5410155b156118dd5782156118d8578247106118d857600c54611887908463ffffffff61337a16565b600c55600f5461189d908463ffffffff6121ca16565b600f556040516001600160a01b0383169084156108fc029085906000818181858888f193505050501580156118d6573d6000803e3d6000fd5b505b6113f4565b8060021480156118ef575082600d5410155b1561192a5782156118d8578247106118d857600d54611914908463ffffffff61337a16565b600d55600f5461189d908463ffffffff6121ca16565b80600314156113f4576001600160a01b0382166000908152603460205260409020600b015461195f908463ffffffff6121ca16565b6001600160a01b0383166000908152603460205260409020600b0155600e5461198e908463ffffffff61337a16565b600e5560405183906001600160a01b038416907f0c345e029e967ca5c81e931376e8075049982cea9635d24118b56524ba1fa13190600090a3505050565b6013816003811061104557fe5b600e5481565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b03163314611a49576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b6002546001600160a01b0316611a9a576040805162461bcd60e51b8152602060048201526011602482015270125b9a5d1a585b1a5e994818db1bdcd959607a1b604482015290519081900360640190fd5b60005b8181101561103457600254600354604080516313e842dd60e31b81526004810192909252516000926001600160a01b031691639f4216e8916024808301926020929190829003018186803b158015611af457600080fd5b505afa158015611b08573d6000803e3d6000fd5b505050506040513d6020811015611b1e57600080fd5b505160038054600101905560025460408051634c54e1b560e01b81526001600160a01b0380851660048301529151939450600093849384938493849384938493849384939190921691634c54e1b5916024808301926101c0929190829003018186803b158015611b8d57600080fd5b505afa158015611ba1573d6000803e3d6000fd5b505050506040513d6101c0811015611bb857600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050509d509d505050509a509a50509950995099509950995050600080600260009054906101000a90046001600160a01b03166001600160a01b031663452b381d8d60016040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050604080518083038186803b158015611cd857600080fd5b505afa158015611cec573d6000803e3d6000fd5b505050506040513d6040811015611d0257600080fd5b81019080805190602001909291908051906020019092919050505091509150600460008154600101919050819055603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206000018190555085603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206007018190555086603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206005018190555084603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600801819055508a603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206001018190555082603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600d0160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600c018190555087603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206004018190555088603460008e6001600160a01b03166001600160a01b031681526020019081526020016000206003018190555089603460008e6001600160a01b03166001600160a01b03168152602001908152602001600020600201819055508b60326000600454815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555068056bc75e2d63100000603160008e6001600160a01b03166001600160a01b031681526020019081526020016000208190555081603560008e6001600160a01b03166001600160a01b031681526020019081526020016000206000600181526020019081526020016000206000018190555080603560008e6001600160a01b03166001600160a01b03168152602001908152602001600020600060018152602001908152602001600020600101819055505050505050505050505050508080600101915050611a9d565b6032602052600090815260409020546001600160a01b031681565b60045481565b6019816003811061104557fe5b602b816003811061205057fe5b0154905081565b60035481565b6000546001600160a01b031633146120a9576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b600280546001600160a01b0319169055565b602e816003811061205057fe5b6000546001600160a01b03163314612114576040805162461bcd60e51b815260206004820152600a60248201526937b7363c9027bbb732b960b11b604482015290519081900360640190fd5b61211d816133bc565b50565b600f5481565b60008261213557506000612182565b8282028284828161214257fe5b041461217f5760405162461bcd60e51b8152600401808060200182810382526021815260200180614c7e6021913960400191505060405180910390fd5b90505b92915050565b600061217f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061345c565b60008282018381101561217f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006001600160a01b03821661223c57506000612467565b6001600160a01b0382166000908152603560209081526040808320600b548452909152902054601d548111612275576000915050612467565b601a54601954601c54601b546001600160a01b039384169390911690828511156123c357601a546001600160a01b03888116911614156122c95784601960005b600202015550600194506124679350505050565b601c546001600160a01b038881169116141561232957601a80546001600160a01b0319166001600160a01b03891617905584601960006002020155601c80546001600160a01b0319166001600160a01b03861617905582601960016122b5565b601a80546001600160a01b0319166001600160a01b03891617905584601960006002020155601c80546001600160a01b0319166001600160a01b03861617905582601960015b600202016000018190555081601960026003811061238957fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060196002600381106122b557fe5b601b5485111561241257601c546001600160a01b03888116911614156123ed5784601960016122b5565b601c80546001600160a01b0319166001600160a01b038916179055846019600161236f565b601d5485111561246157601e546001600160a01b038881169116141561243c5784601960026122b5565b601e80546001600160a01b0319166001600160a01b03891617905584601960026122b5565b50505050505b919050565b60006001600160a01b03821661248457506000612467565b6001600160a01b0382166000908152603560209081526040808320600b54845290915290206001015460175481116124c0576000915050612467565b6014546013546016546015546001600160a01b039384169390911690828511156125fe576014546001600160a01b03888116911614156125045784601360006122b5565b6016546001600160a01b038881169116141561256457601480546001600160a01b0319166001600160a01b03891617905584601360006002020155601680546001600160a01b0319166001600160a01b03861617905582601360016122b5565b601480546001600160a01b0319166001600160a01b03891617905584601360006002020155601680546001600160a01b0319166001600160a01b03861617905582601360015b60020201600001819055508160136002600381106125c457fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060136002600381106122b557fe5b60155485111561264d576016546001600160a01b03888116911614156126285784601360016122b5565b601680546001600160a01b0319166001600160a01b03891617905584601360016125aa565b601754851115612461576018546001600160a01b03888116911614156126775784601360026122b5565b601880546001600160a01b0319166001600160a01b03891617905584601360026122b5565b6001600160a01b0381166000908152603160209081526040808320546034909252909120600201541061211d576001600160a01b0381166000908152603160205260409020546126fb9068056bc75e2d6310000063ffffffff6121ca16565b6001600160a01b038216600081815260316020908152604080832094909455603490528281206002015492517fa44cd2dafb9e2c1c8e0eced6c02ad6ad9ff96b40d0a6d244e275090928c2573e9190a350565b6001600160a01b038083166000908152603460205260408120600d015490911690612785606461083185603c63ffffffff61212616565b905060005b600a811015612f17576001600160a01b03831615612ea25780612a1c576127b884600263ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080154106128d8576128156127ed85600263ffffffff61218816565b6001600160a01b0385166000908152603460205260409020600801549063ffffffff61337a16565b6001600160a01b03841660009081526034602052604090206008015561286d61284585600263ffffffff61218816565b6001600160a01b0385166000908152603460205260409020600301549063ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206003015561289a84600263ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46129f4565b6001600160a01b038316600090815260346020526040902060080154156129dc576001600160a01b0383166000908152603460205260409020600881015460039091015461292b9163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612974906109bb9061296887600263ffffffff61218816565b9063ffffffff61337a16565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556129f4565b6129f06109bb85600263ffffffff61218816565b600c555b612a15612a0885600263ffffffff61218816565b839063ffffffff61337a16565b9150612e9d565b8060011415612c6a576001600160a01b0383166000908152603460205260409020600c0154600211612c3e57612a5984600a63ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410612b2957612a8e6127ed85600a63ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080155612abe61284585600a63ffffffff61218816565b6001600160a01b038416600090815260346020526040902060030155612aeb84600a63ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4612c39565b6001600160a01b03831660009081526034602052604090206008015415612c21576001600160a01b03831660009081526034602052604090206008810154600390910154612b7c9163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612bb9906109bb9061296887600a63ffffffff61218816565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155612c39565b612c356109bb85600a63ffffffff61218816565b600c555b612c56565b612c526109bb85600a63ffffffff61218816565b600c555b612a15612a0885600a63ffffffff61218816565b6001600160a01b0383166000908152603460205260409020600c01546001820111612e8557612ca084601463ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410612d7057612cd56127ed85601463ffffffff61218816565b6001600160a01b038416600090815260346020526040902060080155612d0561284585601463ffffffff61218816565b6001600160a01b038416600090815260346020526040902060030155612d3284601463ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4612e80565b6001600160a01b03831660009081526034602052604090206008015415612e68576001600160a01b03831660009081526034602052604090206008810154600390910154612dc39163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600381019190915560080154612e00906109bb9061296887601463ffffffff61218816565b600c556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155612e80565b612e7c6109bb85601463ffffffff61218816565b600c555b612e9d565b612e996109bb85601463ffffffff61218816565b600c555b612eee565b612ee66109bb83612eda612ebd88601463ffffffff61218816565b612ece600a8763ffffffff61337a16565b9063ffffffff61212616565b9063ffffffff6121ca16565b600c55612f17565b6001600160a01b039283166000908152603460205260409020600d01549092169160010161278a565b5050505050565b600b546000818152603360205260409020600381015460019091015442118015612f5a575060008281526033602052604090206002015460ff16155b1561103457678ac7230489e800008110613022576000828152603360205260408120600201805460ff19166001179055612f926134fe565b90506000612f9e613a83565b600b805460019081019091559094016000818152603360205260409020429081905560065491959250612fd69163ffffffff6121ca16565b600085815260336020526040902060010155613008612ffb838363ffffffff6121ca16565b849063ffffffff61337a16565b600085815260336020526040902060030155506110349050565b60008281526033602052604090204290819055600654613048919063ffffffff6121ca16565b6000928352603360205260409092206001810192909255600390910155565b600780546001600160a01b0383166000908152603460205260408120909201548291014211156113f4576001600160a01b0383166000908152603460205260408120600701546130be90429063ffffffff61337a16565b905060006130e560075461083160075485816130d657fe5b8691900663ffffffff61337a16565b6001600160a01b038616600090815260346020526040902060050154909450925061311783605063ffffffff61218816565b9050613129818563ffffffff61212616565b6001600160a01b038616600090815260346020526040902060080154106132c15761318561315d828663ffffffff61212616565b6001600160a01b0387166000908152603460205260409020600801549063ffffffff61337a16565b6001600160a01b0386166000908152603460205260409020600801556131dc6131b4828663ffffffff61212616565b6001600160a01b0387166000908152603460205260409020600601549063ffffffff6121ca16565b6001600160a01b0386166000908152603460205260409020600601556007546132429061321a90848161320b57fe5b8591900663ffffffff61337a16565b6001600160a01b0387166000908152603460205260409020600701549063ffffffff6121ca16565b6001600160a01b0386166000908152603460205260409020600701554261326f828663ffffffff61212616565b6040516001600160a01b038816907f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a90600090a46132bc856132b7838763ffffffff61212616565b613f53565b612f17565b6001600160a01b03851660009081526034602052604090206008015415612f17576001600160a01b038516600090815260346020526040812060088101805492905560060154613317908263ffffffff6121ca16565b6001600160a01b0387166000818152603460205260408082206006810194909455426007909401849055518492917f8c5a7dbdaf6119ca6207af55c8ed2aa8d5e9396e53ae2bf20ce1eaf826cef71a91a46133728682613f53565b505050505050565b600061217f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614be0565b6001600160a01b0381166134015760405162461bcd60e51b8152600401808060200182810382526024815260200180614ce06024913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f7699c77f2404f9b6bbd003861bb4af8ae70b205e19e73d7ec7fe4590db59a6b791a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600081836134e85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156134ad578181015183820152602001613495565b50505050905090810190601f1680156134da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134f457fe5b0495945050505050565b600b54600090815260336020526040812060030154819061352d9060649061083190600a63ffffffff61212616565b90506000805b6003811015613a7c5760006013826003811061354b57fe5b60020201600101546001600160a01b031614613a745761358560646108316010846003811061357657fe5b0154869063ffffffff61212616565b603460006013846003811061359657fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015410613735576136236135e76064610831601085600381106135d857fe5b0154879063ffffffff61212616565b60346000601385600381106135f857fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801549061337a565b603460006013846003811061363457fe5b60020201600101546001600160a01b031681526020810191909152604001600020600801556136ad6136716064610831601085600381106135d857fe5b603460006013856003811061368257fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a0154906121ca565b60346000601384600381106136be57fe5b60020201600101546001600160a01b031681526020810191909152604001600020600a01556136f860646108316010846003811061357657fe5b6013826003811061370557fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a3613960565b603460006013836003811061374657fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015415613944576137d4603460006013846003811061378457fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060080154603460006013856003811061368257fe5b60346000601384600381106137e557fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600a0181905550613896613887603460006013856003811061383e57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015461296860646108316010876003811061387857fe5b0154899063ffffffff61212616565b600d549063ffffffff6121ca16565b600d5560346000601383600381106138aa57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080154601382600381106138dc57fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a36000603460006013846003811061391a57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613960565b61395c6138876064610831601085600381106135d857fe5b600d555b6139856139786064610831601085600381106135d857fe5b839063ffffffff6121ca16565b91506013816003811061399457fe5b60020201600101546001600160a01b0316602582600381106139b257fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550601381600381106139ea57fe5b6002020154602582600381106139fc57fe5b6002020155613a1660646108316010846003811061357657fe5b602e8260038110613a2357fe5b0155600060138260038110613a3457fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060138260038110613a6e57fe5b60020201555b600101613533565b5091505090565b600b546000908152603360205260408120600301548190613ab29060649061083190600a63ffffffff61212616565b90506000805b6003811015613a7c57600060198260038110613ad057fe5b60020201600101546001600160a01b031614613f4b57613afb60646108316010846003811061357657fe5b6034600060198460038110613b0c57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015410613c7157613b5f613b4e6064610831601085600381106135d857fe5b60346000601985600381106135f857fe5b6034600060198460038110613b7057fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613be9613bad6064610831601085600381106135d857fe5b6034600060198560038110613bbe57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090154906121ca565b6034600060198460038110613bfa57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060090155613c3460646108316010846003811061357657fe5b60198260038110613c4157fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a3613e44565b6034600060198360038110613c8257fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015415613e2857613d106034600060198460038110613cc057fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600801546034600060198560038110613bbe57fe5b6034600060198460038110613d2157fe5b6002020160010160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060090181905550613d7a613887603460006019856003811061383e57fe5b600d556034600060198360038110613d8e57fe5b60020201600101546001600160a01b0316815260208101919091526040016000206008015460198260038110613dc057fe5b60020201600101546040516001600160a01b0390911690600080516020614c5e83398151915290600090a360006034600060198460038110613dfe57fe5b60020201600101546001600160a01b03168152602081019190915260400160002060080155613e44565b613e406138876064610831601085600381106135d857fe5b600d555b613e5c6139786064610831601085600381106135d857fe5b915060198160038110613e6b57fe5b60020201600101546001600160a01b0316601f8260038110613e8957fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060198160038110613ec157fe5b6002020154601f8260038110613ed357fe5b6002020155600060198260038110613ee757fe5b6002020160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550613f2760646108316010846003811061357657fe5b602b8260038110613f3457fe5b0155600060198260038110613f4557fe5b60020201555b600101613ab8565b6001600160a01b038083166000908152603460205260408120600d015490911690613f8a606461083185608163ffffffff61212616565b905060005b6014811015612f17576001600160a01b03831615614b9c578061420357613fc2606461083186601e63ffffffff61212616565b6001600160a01b038416600090815260346020526040902060080154106140c957613ffc6127ed606461083187601e63ffffffff61212616565b6001600160a01b038416600090815260346020526040902060080155614059614031606461083187601e63ffffffff61212616565b6001600160a01b0385166000908152603460205260409020600401549063ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206004015561408b606461083186601e63ffffffff61212616565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46141e3565b6001600160a01b038316600090815260346020526040902060080154156141c6576001600160a01b0383166000908152603460205260409020600881015460049091015461411c9163ffffffff6121ca16565b6001600160a01b038416600090815260346020526040902060048101919091556008015461415e9061388790612968606461083189601e63ffffffff61212616565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556141e3565b6141df613887606461083187601e63ffffffff61212616565b600d555b6141fc612a08606461083187601e63ffffffff61212616565b9150614b97565b80600114806142125750806002145b1561445c576001600160a01b0383166000908152603460205260409020600c01546002116144305761424b84600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801541061431b576142806127ed85600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556142b061403185600a63ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600401556142dd84600a63ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a461442b565b6001600160a01b03831660009081526034602052604090206008015415614413576001600160a01b0383166000908152603460205260409020600881015460049091015461436e9163ffffffff6121ca16565b6001600160a01b03841660009081526034602052604090206004810191909155600801546143ab906138879061296887600a63ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b03831660009081526034602052604081206008015561442b565b61442761388785600a63ffffffff61218816565b600d555b614448565b61444461388785600a63ffffffff61218816565b600d555b6141fc612a0885600a63ffffffff61218816565b6003811015801561446e575060068111155b156146ef576001600160a01b0383166000908152603460205260409020600c015460018201116146b9576144ae606461083186600863ffffffff61212616565b6001600160a01b03841660009081526034602052604090206008015410614595576144e86127ed606461083187600863ffffffff61212616565b6001600160a01b0384166000908152603460205260409020600890810191909155614525906140319060649061083190889063ffffffff61212616565b6001600160a01b038416600090815260346020526040902060040155614557606461083186600863ffffffff61212616565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a46146b4565b6001600160a01b03831660009081526034602052604090206008015415614697576001600160a01b038316600090815260346020526040902060088101546004909101546145e89163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600481019190915560089081015461462f91613887919061296890606490610831908a9063ffffffff61212616565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b0383166000908152603460205260408120600801556146b4565b6146b0613887606461083187600863ffffffff61212616565b600d555b6146d6565b6146d2613887606461083187600863ffffffff61212616565b600d555b6141fc612a08606461083187600863ffffffff61212616565b600781101580156147015750600d8111155b1561494d576001600160a01b0383166000908152603460205260409020600c015460018201116149215761473c84601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801541061480c576147716127ed85601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556147a161403185601463ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600401556147ce84601463ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a461491c565b6001600160a01b03831660009081526034602052604090206008015415614904576001600160a01b0383166000908152603460205260409020600881015460049091015461485f9163ffffffff6121ca16565b6001600160a01b038416600090815260346020526040902060048101919091556008015461489c906138879061296887601463ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b03831660009081526034602052604081206008015561491c565b61491861388785601463ffffffff61218816565b600d555b614939565b61493561388785601463ffffffff61218816565b600d555b6141fc612a0885601463ffffffff61218816565b6001600160a01b0383166000908152603460205260409020600c01546001820111614b685761498384603263ffffffff61218816565b6001600160a01b03841660009081526034602052604090206008015410614a53576149b86127ed85603263ffffffff61218816565b6001600160a01b0384166000908152603460205260409020600801556149e861403185603263ffffffff61218816565b6001600160a01b038416600090815260346020526040902060040155614a1584603263ffffffff61218816565b836001600160a01b0316866001600160a01b0316600080516020614cc0833981519152426040518082815260200191505060405180910390a4614b63565b6001600160a01b03831660009081526034602052604090206008015415614b4b576001600160a01b03831660009081526034602052604090206008810154600490910154614aa69163ffffffff6121ca16565b6001600160a01b0384166000908152603460205260409020600481019190915560080154614ae3906138879061296887603263ffffffff61218816565b600d556001600160a01b03808416600081815260346020908152604091829020600801548251428152925190948a1692600080516020614cc083398151915292908290030190a46001600160a01b038316600090815260346020526040812060080155614b63565b614b5f61388785603263ffffffff61218816565b600d555b614b80565b614b7c61388785603263ffffffff61218816565b600d555b614b94612a0885603263ffffffff61218816565b91505b614bb7565b600d54614baf908363ffffffff6121ca16565b600d55612f17565b6001600160a01b039283166000908152603460205260409020600d015490921691600101613f8f565b60008184841115614c325760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156134ad578181015183820152602001613495565b50505090039056fe57726f6e6720616d6f756e742c20302e31206d756c7469706c657320616c6c6f776564253871ee597f4c36a5bfe1659499041a734f154acc85ca011a1c97c803c06eeb536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753686f7274206f662066756e647320696e20636f6e74726163742c20736f727279e8a8de0c33658c3de38a3892af2c86397248fb25ae303545885fd8775df213174e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646472657373a265627a7a7231582079ead7132d9e5bdb0fbdfe850e12f2741b2635d3f75582db6d2cabf32daabb1e64736f6c63430005110032

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

000000000000000000000000d40960f59340d9b6c5a629181229782f8f96af54

-----Decoded View---------------
Arg [0] : _admin (address): 0xD40960f59340D9b6c5a629181229782F8f96Af54

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d40960f59340d9b6c5a629181229782f8f96af54


Deployed Bytecode Sourcemap

2159:41626:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5878:16;5892:1;5878:13;:16::i;:::-;2159:41626;2738:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2738:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;2681:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2681:22:0;;;:::i;30096:1415::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30096:1415:0;;;:::i;3051:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3051:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3051:38:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3051:38:0;;;;;;;;;;;;;;;;3375:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3375:56:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3375:56:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5914:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5914:885:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5914:885:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5914:885:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5914:885:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5914:885:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5914:885:0;;-1:-1:-1;;5914:885:0;;;-1:-1:-1;5914:885:0;;-1:-1:-1;;5914:885:0:i;3498:88::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3498:88:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3498:88:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3438:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3438:53:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3438:53:0;-1:-1:-1;;;;;3438:53:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3438:53:0;;;;;;;;;;;;;;8420:1153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8420:1153:0;;;:::i;3096:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3096:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3096:38:0;;:::i;2710:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2710:21:0;;;:::i;42108:1077::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42108:1077:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42108:1077:0;;;-1:-1:-1;;;;;42108:1077:0;;;;;;;;;;:::i;2963:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2963:34:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2963:34:0;;:::i;9673:4098::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9673:4098:0;;:::i;2766:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2766:21:0;;;:::i;2219:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2219:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2219:20:0;;;;;;;;;;;;;;2274:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2274:88:0;;;:::i;6811:1597::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6811:1597:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6811:1597:0;;:::i;3324:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3324:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3324:44:0;;:::i;2403:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2403:29:0;;;:::i;3004:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3004:34:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3004:34:0;;:::i;3141:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3141:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3141:47:0;;:::i;2369:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2369:27:0;;;:::i;9579:81::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9579:81:0;;;:::i;3195:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3195:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3195:47:0;;:::i;43340:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43340:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43340:111:0;-1:-1:-1;;;;;43340:111:0;;:::i;2794:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2794:39:0;;;:::i;9673:4098::-;9750:9;5211:18;5203:4;:26;;5195:53;;;;;-1:-1:-1;;;5195:53:0;;;;;;;;;;;;-1:-1:-1;;;5195:53:0;;;;;;;;;;;;;;;9781:9;5411:18;9781:9;5404:25;:30;5396:78;;;;-1:-1:-1;;;5396:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9837:1;9824:11;:14;:42;;;;;9856:10;;9842:11;:24;;9824:42;9816:71;;;;;-1:-1:-1;;;9816:71:0;;;;;;;;;;;;-1:-1:-1;;;9816:71:0;;;;;;;;;;;;;;;9900:14;9957:21;;;:8;:21;;;;;;;;;10053:10;10046:18;;:6;:18;;;;;;:21;9917:9;;-1:-1:-1;;;;;9957:21:0;;10042:3258;;10103:10;:12;;;;;;;;10137:10;10103;10130:18;;;:6;:18;;;;;:34;;;10216:3;10179:34;;;:40;10234;;:49;;;10363:12;;10346:11;;10335:41;;10363:12;10335:23;;10277:6;;10335:23;:10;:23;:::i;:::-;:27;:41;:27;:41;:::i;:::-;10305:10;10298:18;;;;:6;:18;;;;;;:34;;;:78;;;;10391:34;;;;:43;;;10449:27;;;;:39;;-1:-1:-1;;;;;;10449:39:0;-1:-1:-1;;;;;10449:39:0;;;;;;;;10537:17;;;;:31;;;:38;;:35;:38::i;:::-;-1:-1:-1;;;;;10503:17:0;;;;;;:6;:17;;;;;;;;:31;;:72;;;;10613:10;;10604:20;;:8;:20;;;;;:33;;-1:-1:-1;;;;;;10604:33:0;10627:10;10604:33;;;;;;10666:31;;:19;:31;;;;;10700:9;10666:43;;10845:9;:21;;;;;10867:7;;10845:30;;;;;:45;:57;;10895:6;10845:57;:49;:57;:::i;:::-;10807:10;10797:21;;;;:9;:21;;;;;;;;10819:7;;10797:30;;;;;;;:105;;;;10917:23;;:11;:23::i;:::-;-1:-1:-1;10993:5:0;;-1:-1:-1;;;;;10980:18:0;;;10993:5;;10980:18;10977:685;;;11056:63;11095:23;11114:3;11095:14;:6;11106:2;11095:14;:10;:14;:::i;:23::-;11056:13;11063:5;;-1:-1:-1;;;;;11063:5:0;11056:13;;:6;:13;;;;;:34;;;;:63;:38;:63;:::i;:::-;11019:13;11026:5;;-1:-1:-1;;;;;11026:5:0;11019:13;;:6;:13;;;;;:34;;:100;11143:31;11150:23;11169:3;11150:14;:6;11161:2;11150:14;:10;:14;:::i;:23::-;11143:2;;;:31;:6;:31;:::i;:::-;11138:2;:36;10977:685;;;-1:-1:-1;;;;;11263:17:0;;;;;;:6;:17;;;;;:32;;;:44;;11300:6;11263:44;:36;:44;:::i;:::-;-1:-1:-1;;;;;11228:17:0;;;;;;:6;:17;;;;;;;;:32;;:79;;;;11368:9;:20;;;;;11389:7;;11368:29;;;;;:39;;;:51;;11412:6;11368:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;11326:20:0;;;;;;:9;:20;;;;;;;;11347:7;;11326:29;;;;;;;:39;;:93;11438:22;11336:9;11438:11;:22::i;:::-;;11479:26;11495:9;11479:15;:26::i;:::-;11582:64;11610:10;11622:23;11641:3;11622:14;:6;11633:2;11622:14;:10;:14;:::i;:23::-;11582:27;:64::i;:::-;11713:10;;11683:65;;;;;;;;;;;;;;-1:-1:-1;;;;;11683:65:0;;;11701:10;;11683:65;;;;;;;;;10042:3258;;;11859:10;11852:18;;;;:6;:18;;;;;:34;;;:39;11844:68;;;;;-1:-1:-1;;;11844:68:0;;;;;;;;;;;;-1:-1:-1;;;11844:68:0;;;;;;;;;;;;;;;11952:10;11945:18;;;;:6;:18;;;;;:40;;;11935:50;;;11927:73;;;;;-1:-1:-1;;;11927:73:0;;;;;;;;;;;;-1:-1:-1;;;11927:73:0;;;;;;;;;;;;;;;-1:-1:-1;12034:10:0;12027:18;;;;:6;:18;;;;;:27;;;;12124:3;12087:34;;;:40;12142;;;;:49;;;12271:12;;12254:11;;-1:-1:-1;;;;;12027:27:0;;;;12243:41;;12271:12;12243:23;;12142:49;;12243:10;:23::i;:41::-;12213:10;12206:18;;;;:6;:18;;;;;:34;;;:78;;;;12336:34;;;:46;;12375:6;12336:46;:38;:46;:::i;:::-;12306:10;12299:18;;;;:6;:18;;;;;;;;:34;;:83;;;;12531:9;:21;;;;;12553:7;;12531:30;;;;;:45;:57;;12581:6;12531:57;:49;:57;:::i;:::-;12493:10;12483:21;;;;:9;:21;;;;;;;;12505:7;;12483:30;;;;;;;:105;;;;12603:23;;:11;:23::i;:::-;-1:-1:-1;12675:5:0;;-1:-1:-1;;;;;12662:18:0;;;12675:5;;12662:18;12659:630;;;12738:63;12777:23;12796:3;12777:14;:6;12788:2;12777:14;:10;:14;:::i;12738:63::-;12701:13;12708:5;;-1:-1:-1;;;;;12708:5:0;12701:13;;:6;:13;;;;;:34;;:100;12659:630;;;-1:-1:-1;;;;;12890:17:0;;;;;;:6;:17;;;;;:32;;;:44;;12927:6;12890:44;:36;:44;:::i;:::-;-1:-1:-1;;;;;12855:17:0;;;;;;:6;:17;;;;;;;;:32;;:79;;;;12995:9;:20;;;;;13016:7;;12995:29;;;;;:39;;;:51;;13039:6;12995:51;:43;:51;:::i;:::-;-1:-1:-1;;;;;12953:20:0;;;;;;:9;:20;;;;;;;;12974:7;;12953:29;;;;;;;:39;;:93;13065:22;12963:9;13065:11;:22::i;:::-;;13106:26;13122:9;13106:15;:26::i;:::-;13209:64;13237:10;13249:23;13268:3;13249:14;:6;13260:2;13249:14;:10;:14;:::i;13209:64::-;13346:58;13370:33;13399:3;13370:24;13381:12;;13370:6;:10;;:24;;;;:::i;:33::-;13352:7;;13346:14;;;;:5;:14;;;;;:19;;;;:58;:23;:58;:::i;:::-;13330:7;;13324:14;;;;:5;:14;;;;;:19;;:80;13431:5;;13459:8;;-1:-1:-1;;;;;13431:5:0;;;;13415:63;;13448:29;;13473:3;;13448:20;;:6;;:20;:10;:20;:::i;:29::-;13415:63;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;13494:30:0;13501:22;13519:3;13501:13;:6;13512:1;13501:13;:10;:13;:::i;:22::-;13494:2;;;:30;:6;:30;:::i;:::-;13489:2;:35;13605:7;;13599:14;;;;:5;:14;;;;;:22;;;13593:3;:28;:61;;;;-1:-1:-1;13631:7:0;;13625:14;;;;:5;:14;;;;;:20;;;;;:29;13593:61;13589:109;;;13671:15;:13;:15::i;:::-;13713:36;;13742:6;;13730:10;;13713:36;;;;;5485:1;;5259;9673:4098;;:::o;2738:21::-;;;;:::o;2681:22::-;;;;:::o;30096:1415::-;30181:10;30249:28;30181:10;30249:12;:28::i;:::-;-1:-1:-1;;;;;30657:22:0;;30298:17;30657:22;;;:6;:22;;;;;:34;;;;30593:40;;;;30528:41;;;;30464:40;;;;30397:43;;;;30339:34;;;;;:101;;;:165;;;:230;;;:294;;;:352;30773:13;;30770:734;;30836:9;30811:21;:34;;30803:80;;;;-1:-1:-1;;;30803:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30900:22:0;;30937:1;30900:22;;;:6;:22;;;;;:34;;;:38;;;30953:43;;;:47;;;31015:40;;;:44;;;31074:41;;;:45;;;31134:40;;;:44;;;31193:34;;:38;31283:20;;:35;;31308:9;31283:35;:24;:35;:::i;:::-;31260:20;:58;31375:52;;-1:-1:-1;;;;;31375:41:0;;;:52;;;;;31417:9;;31375:52;;;;31417:9;31375:41;:52;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;31375:52:0;31488:3;31477:9;31461:14;-1:-1:-1;;;;;31447:45:0;;;;;;;;;;;30770:734;30096:1415;;:::o;3051:38::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3051:38:0;;:::o;3375:56::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5914:885::-;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;6033:3;6019:10;;:17;;6011:62;;;;;-1:-1:-1;;;6011:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6088:6;6084:708;6104:13;:20;6100:1;:24;6084:708;;;6159:10;:12;;;;;;;;6193:16;;6186:6;;6159:10;;6193:13;;6207:1;;6193:16;;;;;;;;;;;;-1:-1:-1;;;;;6186:24:0;-1:-1:-1;;;;;6186:24:0;;;;;;;;;;;;:27;;:40;;;;6284:3;6241:6;:24;6248:13;6262:1;6248:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6241:24:0;-1:-1:-1;;;;;6241:24:0;;;;;;;;;;;;:40;;:46;;;;6351:7;6302:6;:24;6309:13;6323:1;6309:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6302:24:0;-1:-1:-1;;;;;6302:24:0;;;;;;;;;;;;:46;;:56;;;;6416:12;6373:6;:24;6380:13;6394:1;6380:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6373:24:0;-1:-1:-1;;;;;6373:24:0;;;;;;;;;;;;:40;;:55;;;;6486:7;6443:6;:24;6450:13;6464:1;6450:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6443:24:0;-1:-1:-1;;;;;6443:24:0;;;;;;;;;;;;:40;;:50;;;;6544:8;:22;6564:1;6553:10;;:12;6544:22;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6544:22:0;6508:6;:24;6515:13;6529:1;6515:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6508:24:0;-1:-1:-1;;;;;6508:24:0;;;;;;;;;;;;:33;;;:58;;;;;-1:-1:-1;;;;;6508:58:0;;;;;-1:-1:-1;;;;;6508:58:0;;;;;;6622:2;6581:6;:24;6588:13;6602:1;6588:16;;;;;;;;;;;;;;-1:-1:-1;;;;;6581:24:0;-1:-1:-1;;;;;6581:24:0;;;;;;;;;;;;:38;;:43;;;;6676:13;6690:1;6676:16;;;;;;;;;;;;;;6653:8;:20;6662:10;;6653:20;;;;;;;;;;;;:39;;;;;-1:-1:-1;;;;;6653:39:0;;;;;-1:-1:-1;;;;;6653:39:0;;;;;;6761:9;6721:19;:37;6741:13;6755:1;6741:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6721:37:0;;;;;;;;;;;-1:-1:-1;6721:37:0;:49;6126:3;;6084:708;;;;5914:885;;:::o;3498:88::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3438:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3438:53:0;;:::o;8420:1153::-;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;8483:5;;-1:-1:-1;;;;;8483:5:0;8467:58;;;;;-1:-1:-1;;;8467:58:0;;;;;;;;;;;;-1:-1:-1;;;8467:58:0;;;;;;;;;;;;;;;8573:20;8550:12;:43;;;8608:20;:65;;8631:42;-1:-1:-1;;;;;;8608:65:0;;;;;;;8711:20;8688:15;:43;8746:20;:65;;8769:42;8746:65;;;;;;;;8849:19;8826:15;:42;8883:20;:65;;;;8906:42;8883:65;;;8977:12;:42;;;;9034:20;:65;;;;;;;;;;9136:19;9114:15;:41;;;9170:20;:65;;9193:42;9170:65;;;;;;9250:15;:41;9306:20;:65;;;;;9329:42;9306:65;;;8977:15;9419:5;:10;;;-1:-1:-1;;;9419:10:0;;;;-1:-1:-1;;;;;9419:5:0;;;;:8;;9306:15;9419:10;;;;;;;;;;;;;;:5;:10;;;5:2:-1;;;;30:1;27;20:12;5:2;9419:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9419:10:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9419:10:0;9414:2;:15;9449:5;;:10;;;-1:-1:-1;;;9449:10:0;;;;-1:-1:-1;;;;;9449:5:0;;;;:8;;:10;;;;;9419;;9449;;;;;;;;:5;:10;;;5:2:-1;;;;30:1;27;20:12;5:2;9449:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9449:10:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9449:10:0;9444:2;:15;9479:5;;:10;;;-1:-1:-1;;;9479:10:0;;;;-1:-1:-1;;;;;9479:5:0;;;;:8;;:10;;;;;9449;;9479;;;;;;;;:5;:10;;;5:2:-1;;;;30:1;27;20:12;5:2;9479:10:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9479:10:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9479:10:0;9474:2;:15;9527:5;;:28;;;-1:-1:-1;;;9527:28:0;;;;-1:-1:-1;;;;;9527:5:0;;;;:26;;:28;;;;;9479:10;;9527:28;;;;;;;;:5;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;9527:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9527:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9527:28:0;9504:20;:51;8420:1153::o;3096:38::-;;;;;;;;;2710:21;;;;:::o;42108:1077::-;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;42218:9;42231:1;42218:14;:31;;;;;42242:7;42236:2;;:13;;42218:31;42215:963;;;42269:11;;42266:297;;42329:7;42304:21;:32;42301:247;;42366:2;;:15;;42373:7;42366:15;:6;:15;:::i;:::-;42361:2;:20;42427;;:33;;42452:7;42427:33;:24;:33;:::i;:::-;42404:20;:56;42483:45;;-1:-1:-1;;;;;42483:36:0;;;:45;;;;;42520:7;;42483:45;;;;42520:7;42483:36;:45;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42483:45:0;42301:247;42215:963;;;42592:9;42605:1;42592:14;:31;;;;;42616:7;42610:2;;:13;;42592:31;42589:589;;;42643:11;;42640:297;;42703:7;42678:21;:32;42675:247;;42740:2;;:15;;42747:7;42740:15;:6;:15;:::i;:::-;42735:2;:20;42801;;:33;;42826:7;42801:33;:24;:33;:::i;42589:589::-;42966:9;42979:1;42966:14;42963:215;;;-1:-1:-1;;;;;43029:17:0;;;;;;:6;:17;;;;;:29;;;:42;;43063:7;43029:42;:33;:42;:::i;:::-;-1:-1:-1;;;;;42997:17:0;;;;;;:6;:17;;;;;:29;;:74;43091:2;;:15;;43098:7;43091:15;:6;:15;:::i;:::-;43086:2;:20;43126:40;;43158:7;;-1:-1:-1;;;;;43126:40:0;;;;;;;;42108:1077;;;:::o;2963:34::-;;;;;;;;;2766:21;;;;:::o;2219:20::-;;;-1:-1:-1;;;;;2219:20:0;;:::o;2274:88::-;;;-1:-1:-1;;;;;2274:88:0;;:::o;6811:1597::-;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;6886:5;;-1:-1:-1;;;;;6886:5:0;6870:58;;;;;-1:-1:-1;;;6870:58:0;;;;;;;;;;;;-1:-1:-1;;;6870:58:0;;;;;;;;;;;;;;;6954:6;6950:1441;6970:5;6966:1;:9;6950:1441;;;7013:5;;7028:11;;7013:27;;;-1:-1:-1;;;7013:27:0;;;;;;;;;;6998:12;;-1:-1:-1;;;;;7013:5:0;;:14;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;7013:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7013:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7013:27:0;7056:11;:13;;;;;;7368:5;;:18;;;-1:-1:-1;;;7368:18:0;;-1:-1:-1;;;;;7368:18:0;;;;;;;;;7013:27;;-1:-1:-1;7056:11:0;;;;;;;;;;;;;;;;;;7368:5;;;;;:12;;:18;;;;;;;;;;;;;;:5;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;7368:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7368:18:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7368:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7100:286;;;;;;;;;;;;;;;;;;;;;;;7403:23;7428:15;7447:5;;;;;;;;;-1:-1:-1;;;;;7447:5:0;-1:-1:-1;;;;;7447:15:0;;7463:4;7468:1;7447:23;;;;;;;;;;;;;-1:-1:-1;;;;;7447:23:0;-1:-1:-1;;;;;7447:23:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7447:23:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7447:23:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7447:23:0;;;;;;;;;;;;;;;;;;;;;;;;;7402:68;;;;7521:10;;7519:12;;;;;;;;;;7501:6;:12;7508:4;-1:-1:-1;;;;;7501:12:0;-1:-1:-1;;;;;7501:12:0;;;;;;;;;;;;:15;;:30;;;;7578:16;7547:6;:12;7554:4;-1:-1:-1;;;;;7547:12:0;-1:-1:-1;;;;;7547:12:0;;;;;;;;;;;;:28;;:47;;;;7647:22;7610:6;:12;7617:4;-1:-1:-1;;;;;7610:12:0;-1:-1:-1;;;;;7610:12:0;;;;;;;;;;;;:34;;:59;;;;7716:16;7685:6;:12;7692:4;-1:-1:-1;;;;;7685:12:0;-1:-1:-1;;;;;7685:12:0;;;;;;;;;;;;:28;;:47;;;;7779:16;7748:6;:12;7755:4;-1:-1:-1;;;;;7748:12:0;-1:-1:-1;;;;;7748:12:0;;;;;;;;;;;;:28;;:47;;;;7835:9;7811:6;:12;7818:4;-1:-1:-1;;;;;7811:12:0;-1:-1:-1;;;;;7811:12:0;;;;;;;;;;;;:21;;;:33;;;;;-1:-1:-1;;;;;7811:33:0;;;;;-1:-1:-1;;;;;7811:33:0;;;;;;7888:14;7860:6;:12;7867:4;-1:-1:-1;;;;;7860:12:0;-1:-1:-1;;;;;7860:12:0;;;;;;;;;;;;:26;;:42;;;;7951:18;7918:6;:12;7925:4;-1:-1:-1;;;;;7918:12:0;-1:-1:-1;;;;;7918:12:0;;;;;;;;;;;;:30;;:51;;;;8021:21;7985:6;:12;7992:4;-1:-1:-1;;;;;7985:12:0;-1:-1:-1;;;;;7985:12:0;;;;;;;;;;;;:33;;:57;;;;8088:12;8058:6;:12;8065:4;-1:-1:-1;;;;;8058:12:0;-1:-1:-1;;;;;8058:12:0;;;;;;;;;;;;:27;;:42;;;;8153:4;8130:8;:20;8139:10;;8130:20;;;;;;;;;;;;:27;;;;;-1:-1:-1;;;;;8130:27:0;;;;;-1:-1:-1;;;;;8130:27:0;;;;;;8215:9;8187:19;:25;8207:4;-1:-1:-1;;;;;8187:25:0;-1:-1:-1;;;;;8187:25:0;;;;;;;;;;;;:37;;;;8291:15;8255:9;:15;8265:4;-1:-1:-1;;;;;8255:15:0;-1:-1:-1;;;;;8255:15:0;;;;;;;;;;;;:18;8271:1;8255:18;;;;;;;;;;;:33;;:51;;;;8353:10;8322:9;:15;8332:4;-1:-1:-1;;;;;8322:15:0;-1:-1:-1;;;;;8322:15:0;;;;;;;;;;;;:18;8338:1;8322:18;;;;;;;;;;;:28;;:41;;;;6950:1441;;;;;;;;;;;;6977:3;;;;;;;6950:1441;;3324:44;;;;;;;;;;;;-1:-1:-1;;;;;3324:44:0;;:::o;2403:29::-;;;;:::o;3004:34::-;;;;;;;;;3141:47;;;;;;;;;;;;;-1:-1:-1;3141:47:0;:::o;2369:27::-;;;;:::o;9579:81::-;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;9627:5;:25;;-1:-1:-1;;;;;;9627:25:0;;;9579:81::o;3195:47::-;;;;;;;;;43340:111;5632:5;;-1:-1:-1;;;;;5632:5:0;5618:10;:19;5610:42;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;-1:-1:-1;;;5610:42:0;;;;;;;;;;;;;;;43415:28;43434:8;43415:18;:28::i;:::-;43340:111;:::o;2794:39::-;;;;:::o;46450:471::-;46508:7;46753:6;46749:47;;-1:-1:-1;46783:1:0;46776:8;;46749:47;46820:5;;;46824:1;46820;:5;:1;46844:5;;;;;:10;46836:56;;;;-1:-1:-1;;;46836:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46912:1;-1:-1:-1;46450:471:0;;;;;:::o;47389:132::-;47447:7;47474:39;47478:1;47481;47474:39;;;;;;;;;;;;;;;;;:3;:39::i;44965:181::-;45023:7;45055:5;;;45079:6;;;;45071:46;;;;;-1:-1:-1;;;45071:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;35111:2507;35181:4;-1:-1:-1;;;;;35207:20:0;;35203:64;;-1:-1:-1;35250:5:0;35243:12;;35203:64;-1:-1:-1;;;;;35294:15:0;;35279:12;35294:15;;;:9;:15;;;;;;;;35310:7;;35294:24;;;;;;;:39;35423:15;:19;:27;-1:-1:-1;35419:71:0;;35473:5;35466:12;;;;;35419:71;35522:20;;:12;35572:19;35623:20;;:15;35674:19;-1:-1:-1;;;;;35522:20:0;;;;35623;;;;35755:26;;;35751:1860;;;35803:20;;-1:-1:-1;;;;;35803:28:0;;;:20;;:28;35799:857;;;35873:4;35851:12;35864:1;35851:15;;;;:26;-1:-1:-1;35903:4:0;;-1:-1:-1;35896:11:0;;-1:-1:-1;;;;35896:11:0;35799:857;36026:20;;-1:-1:-1;;;;;36026:28:0;;;:20;;:28;36022:634;;;36076:20;:27;;-1:-1:-1;;;;;;36076:27:0;-1:-1:-1;;;;;36076:27:0;;;;;36144:4;36076:12;-1:-1:-1;36122:15:0;;;:26;36167:20;:32;;-1:-1:-1;;;;;;36167:32:0;-1:-1:-1;;;;;36167:32:0;;;;;36240:8;36167:12;-1:-1:-1;36218:15:0;;36022:634;36336:20;:27;;-1:-1:-1;;;;;;36336:27:0;-1:-1:-1;;;;;36336:27:0;;;;;36404:4;36336:12;-1:-1:-1;36382:15:0;;;:26;36427:20;:32;;-1:-1:-1;;;;;;36427:32:0;-1:-1:-1;;;;;36427:32:0;;;;;36500:8;36427:12;-1:-1:-1;36478:15:0;;;;:19;;:30;;;;36550:10;36527:12;36540:1;36527:15;;;;;;;;;;:20;;;:33;;;;;-1:-1:-1;;;;;36527:33:0;;;;;-1:-1:-1;;;;;36527:33:0;;;;;;36601:9;36579:12;36592:1;36579:15;;;;;;35751:1860;36750:15;:19;36743:26;;36739:872;;;36792:20;;-1:-1:-1;;;;;36792:28:0;;;:20;;:28;36788:399;;;36862:4;36840:12;36853:1;36840:15;;36788:399;36967:20;:27;;-1:-1:-1;;;;;;36967:27:0;-1:-1:-1;;;;;36967:27:0;;;;;37035:4;36967:12;-1:-1:-1;37013:15:0;;36739:872;37282:15;:19;37275:26;;37271:340;;;37323:20;;-1:-1:-1;;;;;37323:28:0;;;:20;;:28;37319:279;;;37393:4;37371:12;37384:1;37371:15;;37319:279;37480:20;:27;;-1:-1:-1;;;;;;37480:27:0;-1:-1:-1;;;;;37480:27:0;;;;;37548:4;37480:12;37493:1;37526:15;;37319:279;35111:2507;;;;;;;;;:::o;32600:2501::-;32670:4;-1:-1:-1;;;;;32696:20:0;;32692:64;;-1:-1:-1;32739:5:0;32732:12;;32692:64;-1:-1:-1;;;;;32783:15:0;;32768:12;32783:15;;;:9;:15;;;;;;;;32799:7;;32783:24;;;;;;;:34;;;32907:15;:19;:27;-1:-1:-1;32903:71:0;;32957:5;32950:12;;;;;32903:71;33006:20;;:12;33056:19;33107:20;;:15;33158:19;-1:-1:-1;;;;;33006:20:0;;;;33107;;;;33241:26;;;33237:1855;;;33289:20;;-1:-1:-1;;;;;33289:28:0;;;:20;;:28;33285:854;;;33359:4;33337:12;33350:1;33337:15;;33285:854;33512:20;;-1:-1:-1;;;;;33512:28:0;;;:20;;:28;33508:631;;;33562:20;:27;;-1:-1:-1;;;;;;33562:27:0;-1:-1:-1;;;;;33562:27:0;;;;;33630:4;33562:12;-1:-1:-1;33608:15:0;;;:26;33653:20;:32;;-1:-1:-1;;;;;;33653:32:0;-1:-1:-1;;;;;33653:32:0;;;;;33726:8;33653:12;-1:-1:-1;33704:15:0;;33508:631;33819:20;:27;;-1:-1:-1;;;;;;33819:27:0;-1:-1:-1;;;;;33819:27:0;;;;;33887:4;33819:12;-1:-1:-1;33865:15:0;;;:26;33910:20;:32;;-1:-1:-1;;;;;;33910:32:0;-1:-1:-1;;;;;33910:32:0;;;;;33983:8;33910:12;-1:-1:-1;33961:15:0;;;;:19;;:30;;;;34033:10;34010:12;34023:1;34010:15;;;;;;;;;;:20;;;:33;;;;;-1:-1:-1;;;;;34010:33:0;;;;;-1:-1:-1;;;;;34010:33:0;;;;;;34084:9;34062:12;34075:1;34062:15;;;;;;33237:1855;34233:15;:19;34226:26;;34222:870;;;34274:20;;-1:-1:-1;;;;;34274:28:0;;;:20;;:28;34270:383;;;34344:4;34322:12;34335:1;34322:15;;34270:383;34433:20;:27;;-1:-1:-1;;;;;;34433:27:0;-1:-1:-1;;;;;34433:27:0;;;;;34501:4;34433:12;-1:-1:-1;34479:15:0;;34222:870;34748:15;:19;34741:26;;34737:355;;;34790:20;;-1:-1:-1;;;;;34790:28:0;;;:20;;:28;34786:293;;;34860:4;34838:12;34851:1;34838:15;;34786:293;34961:20;:27;;-1:-1:-1;;;;;;34961:27:0;-1:-1:-1;;;;;34961:27:0;;;;;35029:4;34961:12;34974:1;35007:15;;13814:361;-1:-1:-1;;;;;13926:35:0;;;;;;:19;:35;;;;;;;;;13885:6;:22;;;;;;:37;;;:76;13882:286;;-1:-1:-1;;;;;14016:35:0;;;;;;:19;:35;;;;;;:50;;14056:9;14016:50;:39;:50;:::i;:::-;-1:-1:-1;;;;;13978:35:0;;;;;;:19;:35;;;;;;;;:88;;;;14118:6;:22;;;;;:37;;;14086:70;;;;13978:35;14086:70;13814:361;:::o;14185:5142::-;-1:-1:-1;;;;;14315:22:0;;;14291:21;14315:22;;;:6;:22;;;;;:31;;;;;;;14379:23;14398:3;14379:14;:6;14390:2;14379:14;:10;:14;:::i;:23::-;14357:45;-1:-1:-1;14413:6:0;14432:4888;14445:2;14441:1;:6;14432:4888;;;-1:-1:-1;;;;;14487:29:0;;;14483:4765;;14590:6;14587:4500;;14666:13;:6;14677:1;14666:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;14625:21:0;;;;;;:6;:21;;;;;:37;;;:54;14621:1252;;14748:56;14790:13;:6;14801:1;14790:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;14748:21:0;;;;;;:6;:21;;;;;:37;;;;:56;:41;:56;:::i;:::-;-1:-1:-1;;;;;14708:21:0;;;;;;:6;:21;;;;;:37;;:96;14876:61;14923:13;:6;14934:1;14923:13;:10;:13;:::i;:::-;-1:-1:-1;;;;;14876:21:0;;;;;;:6;:21;;;;;:42;;;;:61;:46;:61;:::i;:::-;-1:-1:-1;;;;;14831:21:0;;;;;;:6;:21;;;;;:42;;:106;15152:13;:6;15163:1;15152:13;:10;:13;:::i;:::-;15137;-1:-1:-1;;;;;15097:74:0;15121:14;-1:-1:-1;;;;;15097:74:0;-1:-1:-1;;;;;;;;;;;15167:3:0;15097:74;;;;;;;;;;;;;;;;;;14621:1252;;;-1:-1:-1;;;;;15249:21:0;;;;;;:6;:21;;;;;:37;;;:41;15246:627;;-1:-1:-1;;;;;15411:21:0;;;;;;:6;:21;;;;;:37;;;;15364:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;15319:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;15506:37;;;15481:64;;15488:56;;:13;:6;15499:1;15488:13;:10;:13;:::i;:::-;:17;:56;:17;:56;:::i;15481:64::-;15476:2;:69;-1:-1:-1;;;;;15632:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;15577:98;;15671:3;15577:98;;;;15632:37;;15577:98;;;-1:-1:-1;;;;;;;;;;;15577:98:0;;;;;;;;-1:-1:-1;;;;;15702:21:0;;15742:1;15702:21;;;:6;:21;;;;;:37;;:41;15246:627;;;15827:21;15834:13;:6;15845:1;15834:13;:10;:13;:::i;15827:21::-;15822:2;:26;15246:627;15909:30;15925:13;:6;15936:1;15925:13;:10;:13;:::i;:::-;15909:11;;:30;:15;:30;:::i;:::-;15895:44;;14587:4500;;;16003:1;16008;16003:6;16000:3087;;;-1:-1:-1;;;;;16038:21:0;;;;;;:6;:21;;;;;:35;;;16077:1;-1:-1:-1;16035:1412:0;;16152:14;:6;16163:2;16152:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;16111:21:0;;;;;;:6;:21;;;;;:37;;;:55;16107:1212;;16239:57;16281:14;:6;16292:2;16281:14;:10;:14;:::i;16239:57::-;-1:-1:-1;;;;;16199:21:0;;;;;;:6;:21;;;;;:37;;:97;16372:62;16419:14;:6;16430:2;16419:14;:10;:14;:::i;16372:62::-;-1:-1:-1;;;;;16327:21:0;;;;;;:6;:21;;;;;:42;;:107;16555:14;:6;16566:2;16555:14;:10;:14;:::i;:::-;16540:13;-1:-1:-1;;;;;16500:75:0;16524:14;-1:-1:-1;;;;;16500:75:0;-1:-1:-1;;;;;;;;;;;16571:3:0;16500:75;;;;;;;;;;;;;;;;;;16107:1212;;;-1:-1:-1;;;;;16661:21:0;;;;;;:6;:21;;;;;:37;;;:41;16658:661;;-1:-1:-1;;;;;16827:21:0;;;;;;:6;:21;;;;;:37;;;;16780:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;16735:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;16927:37;;;16901:65;;16908:57;;:14;:6;16919:2;16908:14;:10;:14;:::i;16901:65::-;16896:2;:70;-1:-1:-1;;;;;17057:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;17002:98;;17096:3;17002:98;;;;17057:37;;17002:98;;;-1:-1:-1;;;;;;;;;;;17002:98:0;;;;;;;;-1:-1:-1;;;;;17131:21:0;;17171:1;17131:21;;;:6;:21;;;;;:37;;:41;16658:661;;;17268:22;17275:14;:6;17286:2;17275:14;:10;:14;:::i;17268:22::-;17263:2;:27;16658:661;16035:1412;;;17400:22;17407:14;:6;17418:2;17407:14;:10;:14;:::i;17400:22::-;17395:2;:27;16035:1412;17483:31;17499:14;:6;17510:2;17499:14;:10;:14;:::i;16000:3087::-;-1:-1:-1;;;;;17638:21:0;;;;;;:6;:21;;;;;:35;;;17679:1;17677:3;;-1:-1:-1;17635:1433:0;;17754:14;:6;17765:2;17754:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;17713:21:0;;;;;;:6;:21;;;;;:37;;;:55;17709:1230;;17841:57;17883:14;:6;17894:2;17883:14;:10;:14;:::i;17841:57::-;-1:-1:-1;;;;;17801:21:0;;;;;;:6;:21;;;;;:37;;:97;17974:62;18021:14;:6;18032:2;18021:14;:10;:14;:::i;17974:62::-;-1:-1:-1;;;;;17929:21:0;;;;;;:6;:21;;;;;:42;;:107;18157:14;:6;18168:2;18157:14;:10;:14;:::i;:::-;18142:13;-1:-1:-1;;;;;18102:75:0;18126:14;-1:-1:-1;;;;;18102:75:0;-1:-1:-1;;;;;;;;;;;18173:3:0;18102:75;;;;;;;;;;;;;;;;;;17709:1230;;;-1:-1:-1;;;;;18261:21:0;;;;;;:6;:21;;;;;:37;;;:41;18258:681;;-1:-1:-1;;;;;18427:21:0;;;;;;:6;:21;;;;;:37;;;;18380:42;;;;;:85;;;:46;:85;:::i;:::-;-1:-1:-1;;;;;18335:21:0;;;;;;:6;:21;;;;;:42;;;:130;;;;18527:37;;;18501:65;;18508:57;;:14;:6;18519:2;18508:14;:10;:14;:::i;18501:65::-;18496:2;:70;-1:-1:-1;;;;;18657:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;18602:98;;18696:3;18602:98;;;;18657:37;;18602:98;;;-1:-1:-1;;;;;;;;;;;18602:98:0;;;;;;;;-1:-1:-1;;;;;18731:21:0;;18771:1;18731:21;;;:6;:21;;;;;:37;;:41;18258:681;;;18888:22;18895:14;:6;18906:2;18895:14;:10;:14;:::i;18888:22::-;18883:2;:27;18258:681;17635:1433;;;19021:22;19028:14;:6;19039:2;19028:14;:10;:14;:::i;19021:22::-;19016:2;:27;17635:1433;14483:4765;;;19145:62;19152:54;19194:11;19152:37;19174:14;:6;19185:2;19174:14;:10;:14;:::i;:::-;19153:15;19158:2;19166:1;19153:15;:12;:15;:::i;:::-;19152:21;:37;:21;:37;:::i;:::-;:41;:54;:41;:54;:::i;19145:62::-;19140:2;:67;19227:5;;14483:4765;-1:-1:-1;;;;;19278:21:0;;;;;;;:6;:21;;;;;:30;;;;;;;;14449:3;14432:4888;;;14185:5142;;;;;:::o;31574:1010::-;31648:7;;31629:16;31697:14;;;:5;:14;;;;;:19;;;;31737:23;;;;;31731:3;:29;:63;;;;-1:-1:-1;31764:15:0;;;;:5;:15;;;;;:21;;;;;:30;31731:63;31727:850;;;31844:8;31829:11;:23;31825:741;;31873:15;;;;:5;:15;;;;;:21;;:28;;-1:-1:-1;;31873:28:0;31897:4;31873:28;;;31955:24;:22;:24::i;:::-;31920:59;;31998:33;32034:24;:22;:24::i;:::-;32115:7;:9;;32086:10;32115:9;;;;;;32086:10;;;32115:7;32143:15;;;:5;:15;;;;;32171:3;32143:31;;;;32227:8;;32086:10;;31998:60;-1:-1:-1;32219:17:0;;;:7;:17;:::i;:::-;32193:15;;;;:5;:15;;;;;:23;;:43;32278:72;32294:55;:24;32323:25;32294:55;:28;:55;:::i;:::-;32278:11;;:72;:15;:72;:::i;:::-;32255:15;;;;:5;:15;;;;;:20;;:95;-1:-1:-1;31825:741:0;;-1:-1:-1;31825:741:0;;32404:15;;;;:5;:15;;;;;32432:3;32404:31;;;;32488:8;;32480:17;;32432:3;32480:17;:7;:17;:::i;:::-;32454:15;;;;:5;:15;;;;;;:23;;;:43;;;;32516:20;;;;:34;31574:1010::o;27735:2289::-;27971:12;;;-1:-1:-1;;;;;27930:22:0;;27829:30;27930:22;;;:6;:22;;;;;:38;;;;27829:30;;27930:53;27924:3;:59;27921:2086;;;-1:-1:-1;;;;;28114:22:0;;28086:17;28114:22;;;:6;:22;;;;;:38;;;28106:47;;:3;;:47;:7;:47;:::i;:::-;28086:67;;28168:20;28298:61;28346:12;;28299:41;28326:12;;28314:9;:24;;;;;28299:9;;28314:24;;28299:41;:13;:41;:::i;28298:61::-;-1:-1:-1;;;;;28409:22:0;;;;;;:6;:22;;;;;:44;;;28273:86;;-1:-1:-1;28409:44:0;-1:-1:-1;28537:26:0;28409:44;28560:2;28537:26;:22;:26;:::i;:::-;28522:41;-1:-1:-1;28672:40:0;28522:41;28689:22;28672:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;28630:22:0;;;;;;:6;:22;;;;;:38;;;:82;28626:1361;;28774:84;28817:40;:12;28834:22;28817:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;28774:22:0;;;;;;:6;:22;;;;;:38;;;;:84;:42;:84;:::i;:::-;-1:-1:-1;;;;;28733:22:0;;;;;;:6;:22;;;;;:38;;:125;28914:80;28953:40;:12;28970:22;28953:40;:16;:40;:::i;:::-;-1:-1:-1;;;;;28914:22:0;;;;;;:6;:22;;;;;:34;;;;:80;:38;:80;:::i;:::-;-1:-1:-1;;;;;28877:22:0;;;;;;:6;:22;;;;;:34;;:117;29125:12;;29054:87;;29098:41;;29113:9;29125:12;29113:24;;;;29098:9;;29113:24;;29098:41;:13;:41;:::i;:::-;-1:-1:-1;;;;;29054:22:0;;;;;;:6;:22;;;;;:38;;;;:87;:42;:87;:::i;:::-;-1:-1:-1;;;;;29013:22:0;;;;;;:6;:22;;;;;:38;;:128;29241:3;29199:40;:12;29216:22;29199:40;:16;:40;:::i;:::-;29165:80;;-1:-1:-1;;;;;29165:80:0;;;;;;;;29264:87;29294:14;29310:40;:12;29327:22;29310:40;:16;:40;:::i;:::-;29264:29;:87::i;:::-;28626:1361;;;-1:-1:-1;;;;;29453:22:0;;;;;;:6;:22;;;;;:38;;;:42;29450:537;;-1:-1:-1;;;;;29554:22:0;;29516:12;29554:22;;;:6;:22;;;;;:38;;;;;29628:42;;;29726:34;;;:44;;29554:38;29726:44;:38;:44;:::i;:::-;-1:-1:-1;;;;;29689:22:0;;;;;;:6;:22;;;;;;:34;;;:81;;;;29830:3;29789:38;;;;:44;;;29857;29891:4;;29689:22;29857:44;;;29920:51;29950:14;29966:4;29920:29;:51::i;:::-;29450:537;27921:2086;;27735:2289;;;:::o;45421:136::-;45479:7;45506:43;45510:1;45513;45506:43;;;;;;;;;;;;;;;;;:3;:43::i;43558:224::-;-1:-1:-1;;;;;43631:22:0;;43623:71;;;;-1:-1:-1;;;43623:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43731:5;;;43710:37;;-1:-1:-1;;;;;43710:37:0;;;;43731:5;;;43710:37;;;43758:5;:16;;-1:-1:-1;;;;;;43758:16:0;-1:-1:-1;;;;;43758:16:0;;;;;;;;;;43558:224::o;48156:345::-;48242:7;48344:12;48337:5;48329:28;;;;-1:-1:-1;;;48329:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;48329:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;48368:9;48384:1;48380;:5;;;;;;;48156:345;-1:-1:-1;;;;;48156:345:0:o;37626:2217::-;37753:7;;37697;37747:14;;;:5;:14;;;;;:19;;;37697:7;;37747:36;;37779:3;;37747:27;;37771:2;37747:27;:23;:27;:::i;:36::-;37730:53;-1:-1:-1;37798:25:0;;37873:1920;37888:1;37885;:4;37873:1920;;;37951:3;37919:12;37932:1;37919:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37919:20:0;:36;37915:1863;;38032:39;38067:3;38032:30;38043:15;38059:1;38043:18;;;;;;;;;38032:6;;:30;:10;:30;:::i;:39::-;37984:6;:28;37991:12;38004:1;37991:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;37991:20:0;37984:28;;;;;;;;;;;-1:-1:-1;37984:28:0;:44;;;:87;37980:1333;;38147:89;38196:39;38231:3;38196:30;38207:15;38223:1;38207:18;;;;;;;;;38196:6;;:30;:10;:30;:::i;:39::-;38147:6;:28;38154:12;38167:1;38154:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38154:20:0;38147:28;;;;;;;;;;;-1:-1:-1;38147:28:0;:44;;;;:48;:89::i;:::-;38100:6;:28;38107:12;38120:1;38107:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38107:20:0;38100:28;;;;;;;;;;;-1:-1:-1;38100:28:0;:44;;:136;38312:91;38363:39;38398:3;38363:30;38374:15;38390:1;38374:18;;;;;;38363:39;38312:6;:28;38319:12;38332:1;38319:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38319:20:0;38312:28;;;;;;;;;;;-1:-1:-1;38312:28:0;:46;;;;:50;:91::i;:::-;38263:6;:28;38270:12;38283:1;38270:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38270:20:0;38263:28;;;;;;;;;;;-1:-1:-1;38263:28:0;:46;;:140;38522:39;38557:3;38522:30;38533:15;38549:1;38533:18;;;;;;38522:39;38500:12;38513:1;38500:15;;;;;;;;;;:20;;;38483:79;;-1:-1:-1;;;;;38500:20:0;;;;-1:-1:-1;;;;;;;;;;;38483:79:0;38500:20;;38483:79;37980:1333;;;38616:6;:28;38623:12;38636:1;38623:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38623:20:0;38616:28;;;;;;;;;;;-1:-1:-1;38616:28:0;:44;;;:48;38613:700;;38742:96;38793:6;:28;38800:12;38813:1;38800:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;38800:20:0;-1:-1:-1;;;;;38793:28:0;-1:-1:-1;;;;;38793:28:0;;;;;;;;;;;;:44;;;38742:6;:28;38749:12;38762:1;38749:15;;;;;;38742:96;38693:6;:28;38700:12;38713:1;38700:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;38700:20:0;-1:-1:-1;;;;;38693:28:0;-1:-1:-1;;;;;38693:28:0;;;;;;;;;;;;:46;;:145;;;;38870:99;38877:91;38923:6;:28;38930:12;38943:1;38930:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;38930:20:0;38923:28;;;;;;;;;;;-1:-1:-1;38923:28:0;:44;;;38878:39;38913:3;38878:30;38889:15;38905:1;38889:18;;;;;;;;;38878:6;;:30;:10;:30;:::i;38877:91::-;38870:2;;;:99;:6;:99;:::i;:::-;38865:2;:104;39039:6;:28;39046:12;39059:1;39046:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;39046:20:0;39039:28;;;;;;;;;;;-1:-1:-1;39039:28:0;:44;;;39018:12;39031:1;39018:15;;;;;;;;;;:20;;;39001:83;;-1:-1:-1;;;;;39018:20:0;;;;-1:-1:-1;;;;;;;;;;;39001:83:0;39018:20;;39001:83;39158:1;39111:6;:28;39118:12;39131:1;39118:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;39118:20:0;39111:28;;;;;;;;;;;-1:-1:-1;39111:28:0;:44;;:48;38613:700;;;39242:47;39249:39;39284:3;39249:30;39260:15;39276:1;39260:18;;;;;;39242:47;39237:2;:52;38613:700;39357:62;39379:39;39414:3;39379:30;39390:15;39406:1;39390:18;;;;;;39379:39;39357:17;;:62;:21;:62;:::i;:::-;39337:82;;39469:12;39482:1;39469:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;39469:20:0;39442:16;39459:1;39442:19;;;;;;;;;;:24;;;:47;;;;;-1:-1:-1;;;;;39442:47:0;;;;;-1:-1:-1;;;;;39442:47:0;;;;;;39538:12;39551:1;39538:15;;;;;;;;;;:19;39512:16;39529:1;39512:19;;;;;;;;;;:45;39615:39;39650:3;39615:30;39626:15;39642:1;39626:18;;;;;;39615:39;39580:29;39610:1;39580:32;;;;;;;;:74;39708:3;39677:12;39690:1;39677:15;;;;;;;;;;:20;;;:35;;;;;-1:-1:-1;;;;;39677:35:0;;;;;-1:-1:-1;;;;;39677:35:0;;;;;;39757:1;39735:12;39748:1;39735:15;;;;;;;;;;:23;37915:1863;37891:3;;37873:1920;;;-1:-1:-1;39814:17:0;-1:-1:-1;;37626:2217:0;:::o;39851:2247::-;39977:7;;39921;39971:14;;;:5;:14;;;;;:19;;;39921:7;;39971:36;;40003:3;;39971:27;;39995:2;39971:27;:23;:27;:::i;:36::-;39954:53;-1:-1:-1;40022:25:0;;40097:1951;40112:1;40109;:4;40097:1951;;;40175:3;40143:12;40156:1;40143:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40143:20:0;:36;40139:1894;;40256:39;40291:3;40256:30;40267:15;40283:1;40267:18;;;;;;40256:39;40208:6;:28;40215:12;40228:1;40215:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40215:20:0;40208:28;;;;;;;;;;;-1:-1:-1;40208:28:0;:44;;;:87;40204:1364;;40371:89;40420:39;40455:3;40420:30;40431:15;40447:1;40431:18;;;;;;40420:39;40371:6;:28;40378:12;40391:1;40378:15;;;;;;40371:89;40324:6;:28;40331:12;40344:1;40331:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40331:20:0;40324:28;;;;;;;;;;;-1:-1:-1;40324:28:0;:44;;:136;40537:92;40589:39;40624:3;40589:30;40600:15;40616:1;40600:18;;;;;;40589:39;40537:6;:28;40544:12;40557:1;40544:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40544:20:0;40537:28;;;;;;;;;;;-1:-1:-1;40537:28:0;:47;;;;:51;:92::i;:::-;40487:6;:28;40494:12;40507:1;40494:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40494:20:0;40487:28;;;;;;;;;;;-1:-1:-1;40487:28:0;:47;;:142;40748:39;40783:3;40748:30;40759:15;40775:1;40759:18;;;;;;40748:39;40726:12;40739:1;40726:15;;;;;;;;;;:20;;;40709:79;;-1:-1:-1;;;;;40726:20:0;;;;-1:-1:-1;;;;;;;;;;;40709:79:0;40726:20;;40709:79;40204:1364;;;40868:6;:28;40875:12;40888:1;40875:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;40875:20:0;40868:28;;;;;;;;;;;-1:-1:-1;40868:28:0;:44;;;:48;40865:703;;40995:97;41047:6;:28;41054:12;41067:1;41054:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;41054:20:0;-1:-1:-1;;;;;41047:28:0;-1:-1:-1;;;;;41047:28:0;;;;;;;;;;;;:44;;;40995:6;:28;41002:12;41015:1;41002:15;;;;;;40995:97;40945:6;:28;40952:12;40965:1;40952:15;;;;;;;;;;:20;;;;;;;;;;-1:-1:-1;;;;;40952:20:0;-1:-1:-1;;;;;40945:28:0;-1:-1:-1;;;;;40945:28:0;;;;;;;;;;;;:47;;:147;;;;41124:99;41131:91;41177:6;:28;41184:12;41197:1;41184:15;;;;;;41124:99;41119:2;:104;41294:6;:28;41301:12;41314:1;41301:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;41301:20:0;41294:28;;;;;;;;;;;-1:-1:-1;41294:28:0;:44;;;41272:12;41285:1;41272:15;;;;;;;;;;:20;;;41255:84;;-1:-1:-1;;;;;41272:20:0;;;;-1:-1:-1;;;;;;;;;;;41255:84:0;41272:20;;41255:84;41413:1;41366:6;:28;41373:12;41386:1;41373:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;41373:20:0;41366:28;;;;;;;;;;;-1:-1:-1;41366:28:0;:44;;:48;40865:703;;;41497:47;41504:39;41539:3;41504:30;41515:15;41531:1;41515:18;;;;;;41497:47;41492:2;:52;40865:703;41612:62;41634:39;41669:3;41634:30;41645:15;41661:1;41645:18;;;;;;41612:62;41592:82;;41724:12;41737:1;41724:15;;;;;;;;;;:20;;;-1:-1:-1;;;;;41724:20:0;41697:16;41714:1;41697:19;;;;;;;;;;:24;;;:47;;;;;-1:-1:-1;;;;;41697:47:0;;;;;-1:-1:-1;;;;;41697:47:0;;;;;;41793:12;41806:1;41793:15;;;;;;;;;;:19;41767:16;41784:1;41767:19;;;;;;;;;;:45;:23;41835:12;41848:1;41835:15;;;;;;;;;;:20;;;:35;;;;;-1:-1:-1;;;;;41835:35:0;;;;;-1:-1:-1;;;;;41835:35:0;;;;;;41928:39;41963:3;41928:30;41939:15;41955:1;41939:18;;;;;;41928:39;41893:29;41923:1;41893:32;;;;;;;;:74;42012:1;41990:12;42003:1;41990:15;;;;;;;;;;:23;40139:1894;40115:3;;40097:1951;;19347:8323;-1:-1:-1;;;;;19479:22:0;;;19455:21;19479:22;;;:6;:22;;;;;:31;;;;;;;19543:24;19563:3;19543:15;:6;19554:3;19543:15;:10;:15;:::i;:24::-;19521:46;-1:-1:-1;19578:6:0;19597:8066;19610:2;19606:1;:6;19597:8066;;;-1:-1:-1;;;;;19652:29:0;;;19648:7943;;19705:6;19702:7763;;19781:23;19800:3;19781:14;:6;19792:2;19781:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;19740:21:0;;;;;;:6;:21;;;;;:37;;;:64;19736:1204;;19873:66;19915:23;19934:3;19915:14;:6;19926:2;19915:14;:10;:14;:::i;19873:66::-;-1:-1:-1;;;;;19833:21:0;;;;;;:6;:21;;;;;:37;;:106;20008:68;20052:23;20071:3;20052:14;:6;20063:2;20052:14;:10;:14;:::i;:23::-;-1:-1:-1;;;;;20008:21:0;;;;;;:6;:21;;;;;:39;;;;:68;:43;:68;:::i;:::-;-1:-1:-1;;;;;19966:21:0;;;;;;:6;:21;;;;;:39;;:110;20189:23;20208:3;20189:14;:6;20200:2;20189:14;:10;:14;:::i;:23::-;20174:13;-1:-1:-1;;;;;20134:84:0;20158:14;-1:-1:-1;;;;;20134:84:0;-1:-1:-1;;;;;;;;;;;20214:3:0;20134:84;;;;;;;;;;;;;;;;;;19736:1204;;;-1:-1:-1;;;;;20277:21:0;;;;;;:6;:21;;;;;:37;;;:41;20274:666;;-1:-1:-1;;;;;20433:21:0;;;;;;:6;:21;;;;;:37;;;;20389:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;20347:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;20538:37;;;20503:74;;20510:66;;:23;20529:3;20510:14;:6;20521:2;20510:14;:10;:14;:::i;20503:74::-;20498:2;:79;-1:-1:-1;;;;;20664:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;20609:98;;20703:3;20609:98;;;;20664:37;;20609:98;;;-1:-1:-1;;;;;;;;;;;20609:98:0;;;;;;;;-1:-1:-1;;;;;20734:21:0;;20774:1;20734:21;;;:6;:21;;;;;:37;;:41;20274:666;;;20884:31;20891:23;20910:3;20891:14;:6;20902:2;20891:14;:10;:14;:::i;20884:31::-;20879:2;:36;20274:666;20976:40;20992:23;21011:3;20992:14;:6;21003:2;20992:14;:10;:14;:::i;20976:40::-;20962:54;;19702:7763;;;21078:1;21083;21078:6;:16;;;;21088:1;21093;21088:6;21078:16;21075:6390;;;-1:-1:-1;;;;;21159:21:0;;;;;;:6;:21;;;;;:35;;;21198:1;-1:-1:-1;21156:1401:0;;21273:14;:6;21284:2;21273:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;21232:21:0;;;;;;:6;:21;;;;;:37;;;:55;21228:1199;;21360:57;21402:14;:6;21413:2;21402:14;:10;:14;:::i;21360:57::-;-1:-1:-1;;;;;21320:21:0;;;;;;:6;:21;;;;;:37;;:97;21490:59;21534:14;:6;21545:2;21534:14;:10;:14;:::i;21490:59::-;-1:-1:-1;;;;;21448:21:0;;;;;;:6;:21;;;;;:39;;:101;21670:14;:6;21681:2;21670:14;:10;:14;:::i;:::-;21655:13;-1:-1:-1;;;;;21615:75:0;21639:14;-1:-1:-1;;;;;21615:75:0;-1:-1:-1;;;;;;;;;;;21686:3:0;21615:75;;;;;;;;;;;;;;;;;;21228:1199;;;-1:-1:-1;;;;;21752:21:0;;;;;;:6;:21;;;;;:37;;;:41;21749:678;;-1:-1:-1;;;;;21912:21:0;;;;;;:6;:21;;;;;:37;;;;21868:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;21826:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;22012:37;;;21986:65;;21993:57;;:14;:6;22004:2;21993:14;:10;:14;:::i;21986:65::-;21981:2;:70;-1:-1:-1;;;;;22142:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;22087:98;;22181:3;22087:98;;;;22142:37;;22087:98;;;-1:-1:-1;;;;;;;;;;;22087:98:0;;;;;;;;-1:-1:-1;;;;;22216:21:0;;22256:1;22216:21;;;:6;:21;;;;;:37;;:41;21749:678;;;22376:22;22383:14;:6;22394:2;22383:14;:10;:14;:::i;22376:22::-;22371:2;:27;21749:678;21156:1401;;;22510:22;22517:14;:6;22528:2;22517:14;:10;:14;:::i;22510:22::-;22505:2;:27;21156:1401;22593:31;22609:14;:6;22620:2;22609:14;:10;:14;:::i;21075:6390::-;22675:1;22671;:5;;:15;;;;;22685:1;22680;:6;;22671:15;22667:4798;;;-1:-1:-1;;;;;22751:21:0;;;;;;:6;:21;;;;;:35;;;22792:1;22790:3;;-1:-1:-1;22748:1458:0;;22867:22;22885:3;22867:13;:6;22878:1;22867:13;:10;:13;:::i;:22::-;-1:-1:-1;;;;;22826:21:0;;;;;;:6;:21;;;;;:37;;;:63;22822:1247;;22962:65;23004:22;23022:3;23004:13;:6;23015:1;23004:13;:10;:13;:::i;22962:65::-;-1:-1:-1;;;;;22922:21:0;;;;;;:6;:21;;;;;:37;;;;:105;;;;23100:67;;23144:22;;23162:3;;23144:13;;:6;;:13;:10;:13;:::i;23100:67::-;-1:-1:-1;;;;;23058:21:0;;;;;;:6;:21;;;;;:39;;:109;23288:22;23306:3;23288:13;:6;23299:1;23288:13;:10;:13;:::i;:22::-;23273:13;-1:-1:-1;;;;;23233:83:0;23257:14;-1:-1:-1;;;;;23233:83:0;-1:-1:-1;;;;;;;;;;;23312:3:0;23233:83;;;;;;;;;;;;;;;;;;22822:1247;;;-1:-1:-1;;;;;23378:21:0;;;;;;:6;:21;;;;;:37;;;:41;23375:694;;-1:-1:-1;;;;;23538:21:0;;;;;;:6;:21;;;;;:37;;;;23494:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;23452:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;23646:37;;;;;23612:73;;23619:65;;23646:37;23619:22;;23637:3;;23619:13;;:6;;:13;:10;:13;:::i;23612:73::-;23607:2;:78;-1:-1:-1;;;;;23776:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;23721:98;;23815:3;23721:98;;;;23776:37;;23721:98;;;-1:-1:-1;;;;;;;;;;;23721:98:0;;;;;;;;-1:-1:-1;;;;;23850:21:0;;23890:1;23850:21;;;:6;:21;;;;;:37;;:41;23375:694;;;24010:30;24017:22;24035:3;24017:13;:6;24028:1;24017:13;:10;:13;:::i;24010:30::-;24005:2;:35;23375:694;22748:1458;;;24152:30;24159:22;24177:3;24159:13;:6;24170:1;24159:13;:10;:13;:::i;24152:30::-;24147:2;:35;22748:1458;24242:39;24258:22;24276:3;24258:13;:6;24269:1;24258:13;:10;:13;:::i;22667:4798::-;24350:1;24345;:6;;:17;;;;;24360:2;24355:1;:7;;24345:17;24342:3123;;;-1:-1:-1;;;;;24425:21:0;;;;;;:6;:21;;;;;:35;;;24466:1;24464:3;;-1:-1:-1;24422:1402:0;;24541:14;:6;24552:2;24541:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;24500:21:0;;;;;;:6;:21;;;;;:37;;;:55;24496:1199;;24628:57;24670:14;:6;24681:2;24670:14;:10;:14;:::i;24628:57::-;-1:-1:-1;;;;;24588:21:0;;;;;;:6;:21;;;;;:37;;:97;24758:59;24802:14;:6;24813:2;24802:14;:10;:14;:::i;24758:59::-;-1:-1:-1;;;;;24716:21:0;;;;;;:6;:21;;;;;:39;;:101;24938:14;:6;24949:2;24938:14;:10;:14;:::i;:::-;24923:13;-1:-1:-1;;;;;24883:75:0;24907:14;-1:-1:-1;;;;;24883:75:0;-1:-1:-1;;;;;;;;;;;24954:3:0;24883:75;;;;;;;;;;;;;;;;;;24496:1199;;;-1:-1:-1;;;;;25020:21:0;;;;;;:6;:21;;;;;:37;;;:41;25017:678;;-1:-1:-1;;;;;25180:21:0;;;;;;:6;:21;;;;;:37;;;;25136:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;25094:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;25280:37;;;25254:65;;25261:57;;:14;:6;25272:2;25261:14;:10;:14;:::i;25254:65::-;25249:2;:70;-1:-1:-1;;;;;25410:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;25355:98;;25449:3;25355:98;;;;25410:37;;25355:98;;;-1:-1:-1;;;;;;;;;;;25355:98:0;;;;;;;;-1:-1:-1;;;;;25484:21:0;;25524:1;25484:21;;;:6;:21;;;;;:37;;:41;25017:678;;;25644:22;25651:14;:6;25662:2;25651:14;:10;:14;:::i;25644:22::-;25639:2;:27;25017:678;24422:1402;;;25778:22;25785:14;:6;25796:2;25785:14;:10;:14;:::i;25778:22::-;25773:2;:27;24422:1402;25860:31;25876:14;:6;25887:2;25876:14;:10;:14;:::i;24342:3123::-;-1:-1:-1;;;;;25979:21:0;;;;;;:6;:21;;;;;:35;;;26020:1;26018:3;;-1:-1:-1;25976:1402:0;;26095:14;:6;26106:2;26095:14;:10;:14;:::i;:::-;-1:-1:-1;;;;;26054:21:0;;;;;;:6;:21;;;;;:37;;;:55;26050:1199;;26182:57;26224:14;:6;26235:2;26224:14;:10;:14;:::i;26182:57::-;-1:-1:-1;;;;;26142:21:0;;;;;;:6;:21;;;;;:37;;:97;26312:59;26356:14;:6;26367:2;26356:14;:10;:14;:::i;26312:59::-;-1:-1:-1;;;;;26270:21:0;;;;;;:6;:21;;;;;:39;;:101;26492:14;:6;26503:2;26492:14;:10;:14;:::i;:::-;26477:13;-1:-1:-1;;;;;26437:75:0;26461:14;-1:-1:-1;;;;;26437:75:0;-1:-1:-1;;;;;;;;;;;26508:3:0;26437:75;;;;;;;;;;;;;;;;;;26050:1199;;;-1:-1:-1;;;;;26574:21:0;;;;;;:6;:21;;;;;:37;;;:41;26571:678;;-1:-1:-1;;;;;26734:21:0;;;;;;:6;:21;;;;;:37;;;;26690:39;;;;;:82;;;:43;:82;:::i;:::-;-1:-1:-1;;;;;26648:21:0;;;;;;:6;:21;;;;;:39;;;:124;;;;26834:37;;;26808:65;;26815:57;;:14;:6;26826:2;26815:14;:10;:14;:::i;26808:65::-;26803:2;:70;-1:-1:-1;;;;;26964:21:0;;;;;;;:6;:21;;;;;;;;;:37;;;26909:98;;27003:3;26909:98;;;;26964:37;;26909:98;;;-1:-1:-1;;;;;;;;;;;26909:98:0;;;;;;;;-1:-1:-1;;;;;27038:21:0;;27078:1;27038:21;;;:6;:21;;;;;:37;;:41;26571:678;;;27198:22;27205:14;:6;27216:2;27205:14;:10;:14;:::i;27198:22::-;27193:2;:27;26571:678;25976:1402;;;27332:22;27339:14;:6;27350:2;27339:14;:10;:14;:::i;27332:22::-;27327:2;:27;25976:1402;27414:31;27430:14;:6;27441:2;27430:14;:10;:14;:::i;27414:31::-;27400:45;;24342:3123;19648:7943;;;27527:2;;:19;;27534:11;27527:19;:6;:19;:::i;:::-;27522:2;:24;27570:5;;19648:7943;-1:-1:-1;;;;;27621:21:0;;;;;;;:6;:21;;;;;:30;;;;;;;;19614:3;19597:8066;;46007:192;46093:7;46129:12;46121:6;;;;46113:29;;;;-1:-1:-1;;;46113:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;46113:29:0;-1:-1:-1;;;46165:5:0;;;46007:192::o

Swarm Source

bzzr://79ead7132d9e5bdb0fbdfe850e12f2741b2635d3f75582db6d2cabf32daabb1e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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