ETH Price: $2,918.52 (+3.49%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer*114329702020-12-11 17:33:221427 days ago1607708002IN
0x1bc5fc0e...12DD0Ad5d
1 ETH0.0016437576.8
Buy New Level107850642020-09-03 0:30:161527 days ago1599093016IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.06056535474
Registration Ext107804912020-09-02 7:33:401528 days ago1599032020IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.21259153435.6
Registration Ext107804562020-09-02 7:26:011528 days ago1599031561IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.21522116440.00000112
Registration Ext107666862020-08-31 5:04:011530 days ago1598850241IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.06921325184
Registration Ext107666172020-08-31 4:48:501530 days ago1598849330IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.08784774180
Buy New Level107623352020-08-30 13:04:131530 days ago1598792653IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.02030259170
Registration Ext107617462020-08-30 10:57:151531 days ago1598785035IN
0x1bc5fc0e...12DD0Ad5d
0.0181 ETH0.0031904141
Buy New Level107615152020-08-30 9:57:311531 days ago1598781451IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.03486827221
Buy New Level107585532020-08-29 23:01:261531 days ago1598742086IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.0111393466
Buy New Level107585282020-08-29 22:55:181531 days ago1598741718IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.0084331566
Registration Ext107549412020-08-29 9:52:021532 days ago1598694722IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.0433735106
Registration Ext107544692020-08-29 8:05:261532 days ago1598688326IN
0x1bc5fc0e...12DD0Ad5d
0.02179 ETH0.0019662886.9
Registration Ext107538482020-08-29 5:45:171532 days ago1598679917IN
0x1bc5fc0e...12DD0Ad5d
0.03530481 ETH0.0012897357
Registration Ext107538442020-08-29 5:44:031532 days ago1598679843IN
0x1bc5fc0e...12DD0Ad5d
0.02869819 ETH0.0014933866
Registration Ext107538432020-08-29 5:43:581532 days ago1598679838IN
0x1bc5fc0e...12DD0Ad5d
0.03019158 ETH0.0014933866
Registration Ext107538392020-08-29 5:43:271532 days ago1598679807IN
0x1bc5fc0e...12DD0Ad5d
0.02993021 ETH0.0015386368
Registration Ext107538352020-08-29 5:42:291532 days ago1598679749IN
0x1bc5fc0e...12DD0Ad5d
0.03146885 ETH0.0015386368
Registration Ext107537922020-08-29 5:33:131532 days ago1598679193IN
0x1bc5fc0e...12DD0Ad5d
0.02247901 ETH0.0018101680
Registration Ext107537862020-08-29 5:31:471532 days ago1598679107IN
0x1bc5fc0e...12DD0Ad5d
0.02428917 ETH0.0018101680
Registration Ext107537842020-08-29 5:31:391532 days ago1598679099IN
0x1bc5fc0e...12DD0Ad5d
0.02434458 ETH0.0018554182
Registration Ext107537822020-08-29 5:31:231532 days ago1598679083IN
0x1bc5fc0e...12DD0Ad5d
0.0262 ETH0.0018554182
Registration Ext107537312020-08-29 5:19:201532 days ago1598678360IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.030019462
Registration Ext107536732020-08-29 5:06:221532 days ago1598677582IN
0x1bc5fc0e...12DD0Ad5d
0.05 ETH0.0256949251.73085987
Registration Ext107536702020-08-29 5:06:021532 days ago1598677562IN
0x1bc5fc0e...12DD0Ad5d
0.0344256 ETH0.0016065171
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
107850642020-09-03 0:30:161527 days ago1599093016
0x1bc5fc0e...12DD0Ad5d
0.05 ETH
107804912020-09-02 7:33:401528 days ago1599032020
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107804912020-09-02 7:33:401528 days ago1599032020
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107804562020-09-02 7:26:011528 days ago1599031561
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107804562020-09-02 7:26:011528 days ago1599031561
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107666862020-08-31 5:04:011530 days ago1598850241
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107666862020-08-31 5:04:011530 days ago1598850241
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107666172020-08-31 4:48:501530 days ago1598849330
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107666172020-08-31 4:48:501530 days ago1598849330
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107623352020-08-30 13:04:131530 days ago1598792653
0x1bc5fc0e...12DD0Ad5d
0.05 ETH
107615152020-08-30 9:57:311531 days ago1598781451
0x1bc5fc0e...12DD0Ad5d
0.05 ETH
107585532020-08-29 23:01:261531 days ago1598742086
0x1bc5fc0e...12DD0Ad5d
0.05 ETH
107585282020-08-29 22:55:181531 days ago1598741718
0x1bc5fc0e...12DD0Ad5d
0.05 ETH
107549412020-08-29 9:52:021532 days ago1598694722
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107549412020-08-29 9:52:021532 days ago1598694722
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107537312020-08-29 5:19:201532 days ago1598678360
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107537312020-08-29 5:19:201532 days ago1598678360
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107536732020-08-29 5:06:221532 days ago1598677582
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107536732020-08-29 5:06:221532 days ago1598677582
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107487622020-08-28 11:02:001533 days ago1598612520
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107487622020-08-28 11:02:001533 days ago1598612520
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107480682020-08-28 8:25:351533 days ago1598603135
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107480682020-08-28 8:25:351533 days ago1598603135
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107480172020-08-28 8:16:351533 days ago1598602595
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
107480172020-08-28 8:16:351533 days ago1598602595
0x1bc5fc0e...12DD0Ad5d
0.025 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ETHKING

Compiler Version
v0.5.14+commit.01f1aaa4

Optimization Enabled:
Yes with 200 runs

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

pragma solidity 0.5.14;

contract ETHKING {
    
    struct User {
        uint id;
        address referrer;
        uint partnersCount;
        
        mapping(uint8 => bool) activeX3Levels;
        mapping(uint8 => bool) activeX6Levels;
        
        mapping(uint8 => X3) x3Matrix;
        mapping(uint8 => X6) x6Matrix;
    }
    
    struct X3 {
        address currentReferrer;
        address[] referrals;
        bool blocked;
        uint reinvestCount;
    }
    
    struct X6 {
        address currentReferrer;
        address[] firstLevelReferrals;
        address[] secondLevelReferrals;
        bool blocked;
        uint reinvestCount;
        address closedPart;
    }

    uint8 public constant LAST_LEVEL = 12;
    
    mapping (address => User) public users;
    mapping (uint => address) public idToAddress;
    mapping (uint => address) public userIds;
    mapping(address => mapping(uint=> mapping(uint => uint))) public earnedEth; 
    mapping(address=> mapping (uint => uint)) public totalEarnedEth; 

    uint public lastUserId = 2;
    address public owner;
    bool public lockStatus;
    
    mapping(uint8 => uint) public levelPrice;
    
    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
    event Reinvest(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
    event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
    event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
    event MissedEthReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
    event SentExtraEthDividends(address indexed from, address indexed receiver, uint8 matrix, uint8 level);
    
    
    constructor(address ownerAddress) public {
        levelPrice[1] = 0.025 ether;
        for (uint8 i = 2; i <= LAST_LEVEL; i++) {
            levelPrice[i] = levelPrice[i-1] * 2;
        }
        
        owner = ownerAddress;
        
        User memory user = User({
            id: 1,
            referrer: address(0),
            partnersCount: uint(0)
        });
        
        users[ownerAddress] = user;
        idToAddress[1] = ownerAddress;
        
        for (uint8 i = 1; i <= LAST_LEVEL; i++) {
            users[ownerAddress].activeX3Levels[i] = true;
            users[ownerAddress].activeX6Levels[i] = true;
        }
        
        userIds[1] = ownerAddress;
    }
    
    modifier isLock() {
        require(lockStatus == false,"Contract Locked");
        _;
    }
    
    function() external payable {
        if(msg.data.length == 0) {
            return registration(msg.sender, owner);
        }
        
        registration(msg.sender, bytesToAddress(msg.data));
    }

    function registrationExt(address referrerAddress) isLock external payable  {
        registration(msg.sender, referrerAddress);
    }
    
    function buyNewLevel(uint8 matrix, uint8 level) isLock external payable {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        require(matrix == 1 || matrix == 2, "invalid matrix");
        require(msg.value == levelPrice[level], "invalid price");
        require(level > 1 && level <= LAST_LEVEL, "invalid level");

        if (matrix == 1) {
            require(!users[msg.sender].activeX3Levels[level], "level already activated");

            if (users[msg.sender].x3Matrix[level-1].blocked) {
                users[msg.sender].x3Matrix[level-1].blocked = false;
            }
    
            address freeX3Referrer = findFreeX3Referrer(msg.sender, level);
            users[msg.sender].x3Matrix[level].currentReferrer = freeX3Referrer;
            users[msg.sender].activeX3Levels[level] = true;
            updateX3Referrer(msg.sender, freeX3Referrer, level);
            
            emit Upgrade(msg.sender, freeX3Referrer, 1, level);

        } else {
            require(!users[msg.sender].activeX6Levels[level], "level already activated"); 

            if (users[msg.sender].x6Matrix[level-1].blocked) {
                users[msg.sender].x6Matrix[level-1].blocked = false;
            }

            address freeX6Referrer = findFreeX6Referrer(msg.sender, level);
            
            users[msg.sender].activeX6Levels[level] = true;
            updateX6Referrer(msg.sender, freeX6Referrer, level);
            
            emit Upgrade(msg.sender, freeX6Referrer, 2, level);
        }
    }    
    
    function registration(address userAddress, address referrerAddress) private {
        require(msg.value == 0.05 ether, "registration cost 0.05");
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
        
        uint32 size;
        assembly {
            size := extcodesize(userAddress)
        }
        require(size == 0, "cannot be a contract");
        
        User memory user = User({
            id: lastUserId,
            referrer: referrerAddress,
            partnersCount: 0
        });
        
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        
        users[userAddress].referrer = referrerAddress;
        
        users[userAddress].activeX3Levels[1] = true; 
        users[userAddress].activeX6Levels[1] = true;
        
        
        userIds[lastUserId] = userAddress;
        lastUserId++;
        
        users[referrerAddress].partnersCount++;

        address freeX3Referrer = findFreeX3Referrer(userAddress, 1);
        users[userAddress].x3Matrix[1].currentReferrer = freeX3Referrer;
        updateX3Referrer(userAddress, freeX3Referrer, 1);

        updateX6Referrer(userAddress, findFreeX6Referrer(userAddress, 1), 1);
        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    
    function updateX3Referrer(address userAddress, address referrerAddress, uint8 level) private {
        users[referrerAddress].x3Matrix[level].referrals.push(userAddress);

        if (users[referrerAddress].x3Matrix[level].referrals.length < 3) {
            emit NewUserPlace(userAddress, referrerAddress, 1, level, uint8(users[referrerAddress].x3Matrix[level].referrals.length));
            return sendETHDividends(referrerAddress, userAddress, 1, level);
        }
        
        emit NewUserPlace(userAddress, referrerAddress, 1, level, 3);
        //close matrix
        users[referrerAddress].x3Matrix[level].referrals = new address[](0);
        if (!users[referrerAddress].activeX3Levels[level+1] && level != LAST_LEVEL) {
            users[referrerAddress].x3Matrix[level].blocked = true;
        }

        //create new one by recursion
        if (referrerAddress != owner) {
            //check referrer active level
            address freeReferrerAddress = findFreeX3Referrer(referrerAddress, level);
            if (users[referrerAddress].x3Matrix[level].currentReferrer != freeReferrerAddress) {
                users[referrerAddress].x3Matrix[level].currentReferrer = freeReferrerAddress;
            }
            
            users[referrerAddress].x3Matrix[level].reinvestCount++;
            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 1, level);
            updateX3Referrer(referrerAddress, freeReferrerAddress, level);
        } else {
            sendETHDividends(owner, userAddress, 1, level);
            users[owner].x3Matrix[level].reinvestCount++;
            emit Reinvest(owner, address(0), userAddress, 1, level);
        }
    }

    function updateX6Referrer(address userAddress, address referrerAddress, uint8 level) private {
        require(users[referrerAddress].activeX6Levels[level], "500. Referrer level is inactive");
        
        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length < 2) {
            users[referrerAddress].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, referrerAddress, 2, level, uint8(users[referrerAddress].x6Matrix[level].firstLevelReferrals.length));
            
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = referrerAddress;

            if (referrerAddress == owner) {
                return sendETHDividends(referrerAddress, userAddress, 2, level);
            }
            
            address ref = users[referrerAddress].x6Matrix[level].currentReferrer;            
            users[ref].x6Matrix[level].secondLevelReferrals.push(userAddress); 
            
            uint len = users[ref].x6Matrix[level].firstLevelReferrals.length;
            
            if ((len == 2) && 
                (users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) &&
                (users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress)) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }  else if ((len == 1 || len == 2) &&
                    users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 3);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 4);
                }
            } else if (len == 2 && users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }

            return updateX6ReferrerSecondLevel(userAddress, ref, level);
        }
        
        users[referrerAddress].x6Matrix[level].secondLevelReferrals.push(userAddress);

        if (users[referrerAddress].x6Matrix[level].closedPart != address(0)) {
            if ((users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]) &&
                (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] ==
                users[referrerAddress].x6Matrix[level].closedPart)) {

                updateX6(userAddress, referrerAddress, level, true);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].closedPart) {
                updateX6(userAddress, referrerAddress, level, true);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            } else {
                updateX6(userAddress, referrerAddress, level, false);
                return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
            }
        }

        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[1] == userAddress) {
            updateX6(userAddress, referrerAddress, level, false);
            return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
        } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == userAddress) {
            updateX6(userAddress, referrerAddress, level, true);
            return updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
        }
        
        if (users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length <= 
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length) {
            updateX6(userAddress, referrerAddress, level, false);
        } else {
            updateX6(userAddress, referrerAddress, level, true);
        }
        
        updateX6ReferrerSecondLevel(userAddress, referrerAddress, level);
    }

    function updateX6(address userAddress, address referrerAddress, uint8 level, bool x2) private {
        if (!x2) {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[0], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 2 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[0];
        } else {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[1], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 4 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[1];
        }
    }
    
    function updateX6ReferrerSecondLevel(address userAddress, address referrerAddress, uint8 level) private {
        if (users[referrerAddress].x6Matrix[level].secondLevelReferrals.length < 4) {
            return sendETHDividends(referrerAddress, userAddress, 2, level);
        }
        
        address[] memory x6 = users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].firstLevelReferrals;
        
        if (x6.length == 2) {
            if (x6[0] == referrerAddress ||
                x6[1] == referrerAddress) {
                users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
            } else if (x6.length == 1) {
                if (x6[0] == referrerAddress) {
                    users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
                }
            }
        }
        
        users[referrerAddress].x6Matrix[level].firstLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].secondLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].closedPart = address(0);

        if (!users[referrerAddress].activeX6Levels[level+1] && level != LAST_LEVEL) {
            users[referrerAddress].x6Matrix[level].blocked = true;
        }

        users[referrerAddress].x6Matrix[level].reinvestCount++;
        
        if (referrerAddress != owner) {
            address freeReferrerAddress = findFreeX6Referrer(referrerAddress, level);

            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 2, level);
            updateX6Referrer(referrerAddress, freeReferrerAddress, level);
        } else {
            emit Reinvest(owner, address(0), userAddress, 2, level);
            sendETHDividends(owner, userAddress, 2, level);
        }
    }
    
    function findFreeX3Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX3Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
    
    function findFreeX6Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX6Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
        
    function usersActiveX3Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX3Levels[level];
    }

    function usersActiveX6Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX6Levels[level];
    }

    function usersX3Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, bool) {
        return (users[userAddress].x3Matrix[level].currentReferrer,
                users[userAddress].x3Matrix[level].referrals,
                users[userAddress].x3Matrix[level].blocked);
    }

    function usersX6Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, address[] memory, bool, address) {
        return (users[userAddress].x6Matrix[level].currentReferrer,
                users[userAddress].x6Matrix[level].firstLevelReferrals,
                users[userAddress].x6Matrix[level].secondLevelReferrals,
                users[userAddress].x6Matrix[level].blocked,
                users[userAddress].x6Matrix[level].closedPart);
    }
    
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }
    
    function getX3TotalEarnedEth() public view returns(uint) {
        uint256 X3TotalEarn;
        
        for(uint i=1; i<=lastUserId;i++) {
            X3TotalEarn += totalEarnedEth[userIds[i]][1];
        }
        
        return X3TotalEarn;
        
    }
    
    function getX6TotalEarnedEth() public view returns(uint) {
        uint256 X4TotalEarn;
        
        for(uint i=1; i<=lastUserId;i++) {
            X4TotalEarn += totalEarnedEth[userIds[i]][2];
        }
        
        return X4TotalEarn;
        
    }
    
        // public functions
    function failSafe(address payable _toUser, uint _amount) public returns (bool) {
        require(msg.sender == owner, "Not authorized");
        require(_toUser != address(0), "Invalid Address");
        require(address(this).balance >= _amount, "Insufficient balance");
        (_toUser).transfer(_amount);
        return true;
    }
    
    function contractLock(bool _lockStatus) public returns(bool) {
        require(msg.sender == owner, "Not authorized");
        lockStatus = _lockStatus;
        return true;
    }

    function findEthReceiver(address userAddress, address _from, uint8 matrix, uint8 level) private returns(address, bool) {
        address receiver = userAddress;
        bool isExtraDividends;
        if (matrix == 1) {
            while (true) {
                if (users[receiver].x3Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 1, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x3Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        } else {
            while (true) {
                if (users[receiver].x6Matrix[level].blocked) {
                    emit MissedEthReceive(receiver, _from, 2, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x6Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        }
    }

    function sendETHDividends(address userAddress, address _from, uint8 matrix, uint8 level) private {
        (address receiver, bool isExtraDividends) = findEthReceiver(userAddress, _from, matrix, level);

        if (!address(uint160(receiver)).send(levelPrice[level])) {
            address(uint160(receiver)).transfer(address(this).balance);
        }
        
        if (isExtraDividends) {
            emit SentExtraEthDividends(_from, receiver, matrix, level);
        }
        
        earnedEth[receiver][matrix][level] += levelPrice[level];
        totalEarnedEth[receiver][matrix] += (levelPrice[level]);
    }
    
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"MissedEthReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"place","type":"uint8"}],"name":"NewUserPlace","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"currentReferrer","type":"address"},{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"SentExtraEthDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Upgrade","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"LAST_LEVEL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"matrix","type":"uint8"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"buyNewLevel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"bool","name":"_lockStatus","type":"bool"}],"name":"contractLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"earnedEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_toUser","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"failSafe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeX3Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findFreeX6Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getX3TotalEarnedEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getX6TotalEarnedEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"levelPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"registrationExt","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalEarnedEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIds","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"partnersCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX3Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX6Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX3Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX6Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405260026005553480156200001657600080fd5b50604051620032e7380380620032e7833981810160405260208110156200003c57600080fd5b5051600160005260076020526658d15e176280007fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8285560025b600c60ff821611620000b15760ff6000198201811660009081526007602052604080822054928416825290206002909102905560010162000075565b50600680546001600160a01b0319166001600160a01b038316179055620000d762000219565b50604080516060810182526001808252600060208084018281528486018381526001600160a01b038881168086528585529785208751815592518387018054919092166001600160a01b0319918216179091559051600290920191909155918390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054909116909317909255905b600c60ff821611620001c8576001600160a01b03831660009081526020818152604080832060ff851684526003810183528184208054600160ff1991821681179092556004909201909352922080549092168117909155016200016a565b5050600160005260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b0319166001600160a01b039290921691909117905562000243565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b61309480620002536000396000f3fe60806040526004361061013f5760003560e01c8063797eee24116100b6578063a87430ba1161006f578063a87430ba146105e9578063b2f7543a14610642578063be389d571461067e578063e06e8dbd146106a6578063ecabdf79146106e2578063fa45323d1461070f5761013f565b8063797eee24146103a757806383ba31b2146103cd5780638da5cb5b146104765780639cc102fc1461048b578063a478656b14610584578063a7839224146105b05761013f565b8063348d448711610108578063348d4487146102d25780633e89340f146102e75780634635fd68146102fc5780634cb026f014610326578063509222cd1461033b57806352fd9f131461036e5761013f565b8062412a4f146101ab57806307279e2a146101d257806329c70400146102225780632a2d0c471461024d5780633320a0db14610293575b366101605760065461015b9033906001600160a01b031661074b565b6101a9565b6101a9336101a46000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3f92505050565b61074b565b005b3480156101b757600080fd5b506101c0610a46565b60408051918252519081900360200190f35b3480156101de57600080fd5b5061020e600480360360408110156101f557600080fd5b5080356001600160a01b0316906020013560ff16610a96565b604080519115158252519081900360200190f35b34801561022e57600080fd5b50610237610aca565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506102776004803603602081101561027057600080fd5b5035610acf565b604080516001600160a01b039092168252519081900360200190f35b34801561029f57600080fd5b506101c0600480360360608110156102b657600080fd5b506001600160a01b038135169060208101359060400135610aea565b3480156102de57600080fd5b506101c0610b0d565b3480156102f357600080fd5b5061020e610b13565b34801561030857600080fd5b506102776004803603602081101561031f57600080fd5b5035610b23565b34801561033257600080fd5b506101c0610b3e565b34801561034757600080fd5b5061020e6004803603602081101561035e57600080fd5b50356001600160a01b0316610b87565b34801561037a57600080fd5b5061020e6004803603604081101561039157600080fd5b506001600160a01b038135169060200135610ba4565b6101a9600480360360208110156103bd57600080fd5b50356001600160a01b0316610cd0565b3480156103d957600080fd5b50610409600480360360408110156103f057600080fd5b5080356001600160a01b0316906020013560ff16610d2e565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b83811015610460578181015183820152602001610448565b5050505090500194505050505060405180910390f35b34801561048257600080fd5b50610277610ddb565b34801561049757600080fd5b506104c7600480360360408110156104ae57600080fd5b5080356001600160a01b0316906020013560ff16610dea565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b8381101561052c578181015183820152602001610514565b50505050905001838103825286818151815260200191508051906020019060200280838360005b8381101561056b578181015183820152602001610553565b5050505090500197505050505050505060405180910390f35b34801561059057600080fd5b5061020e600480360360208110156105a757600080fd5b50351515610f09565b3480156105bc57600080fd5b506101c0600480360360408110156105d357600080fd5b506001600160a01b038135169060200135610f7d565b3480156105f557600080fd5b5061061c6004803603602081101561060c57600080fd5b50356001600160a01b0316610f9a565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561064e57600080fd5b5061020e6004803603604081101561066557600080fd5b5080356001600160a01b0316906020013560ff16610fc4565b6101a96004803603604081101561069457600080fd5b5060ff81358116916020013516610ff3565b3480156106b257600080fd5b50610277600480360360408110156106c957600080fd5b5080356001600160a01b0316906020013560ff1661147f565b3480156106ee57600080fd5b506101c06004803603602081101561070557600080fd5b503560ff1661150b565b34801561071b57600080fd5b506102776004803603604081101561073257600080fd5b5080356001600160a01b0316906020013560ff1661151d565b3466b1a2bc2ec500001461079f576040805162461bcd60e51b8152602060048201526016602482015275726567697374726174696f6e20636f737420302e303560501b604482015290519081900360640190fd5b6107a882610b87565b156107e8576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6107f181610b87565b610838576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff81161561088a576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b610892612f49565b50604080516060810182526005805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff199081168517909155838552600490950186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161097790869061151d565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b031916928416929092179091559091506109c790869083906115a9565b6109dd856109d687600161147f565b600161191a565b6001600160a01b03808616600081815260208181526040808320549489168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050505050565b6014015190565b60008060015b6005548111610a8f576000818152600260208181526040808420546001600160a01b03168452600482528084209284529190529020549190910190600101610a4c565b5090505b90565b6001600160a01b03821660009081526020818152604080832060ff8086168552600390910190925290912054165b92915050565b600c81565b6001602052600090815260409020546001600160a01b031681565b600360209081526000938452604080852082529284528284209052825290205481565b60055481565b600654600160a01b900460ff1681565b6002602052600090815260409020546001600160a01b031681565b60008060015b6005548111610a8f576000818152600260209081526040808320546001600160a01b03168352600482528083206001808552925290912054929092019101610b44565b6001600160a01b0316600090815260208190526040902054151590565b6006546000906001600160a01b03163314610bf7576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b038316610c44576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b604482015290519081900360640190fd5b81471015610c90576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610cc6573d6000803e3d6000fd5b5060019392505050565b600654600160a01b900460ff1615610d21576040805162461bcd60e51b815260206004820152600f60248201526e10dbdb9d1c9858dd08131bd8dad959608a1b604482015290519081900360640190fd5b610d2b338261074b565b50565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610dc757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610da9575b505050505091509250925092509250925092565b6006546001600160a01b031681565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a99978416989497600290950196909416949092169291869190830182828015610e9257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e74575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610eee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed0575b50505050509250945094509450945094509295509295909350565b6006546000906001600160a01b03163314610f5c576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b5060068054821515600160a01b0260ff60a01b199091161790556001919050565b600460209081526000928352604080842090915290825290205481565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b600654600160a01b900460ff1615611044576040805162461bcd60e51b815260206004820152600f60248201526e10dbdb9d1c9858dd08131bd8dad959608a1b604482015290519081900360640190fd5b61104d33610b87565b6110885760405162461bcd60e51b815260040180806020018281038252602381526020018061303d6023913960400191505060405180910390fd5b8160ff166001148061109d57508160ff166002145b6110df576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b60ff81166000908152600760205260409020543414611135576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b60018160ff1611801561114c5750600c60ff821611155b61118d576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081b195d995b609a1b604482015290519081900360640190fd5b8160ff166001141561131d573360009081526020818152604080832060ff80861685526003909101909252909120541615611209576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615611267573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000611273338361151d565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff191660011790559091506112cc9082846115a9565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a35061147b565b3360009081526020818152604080832060ff8086168552600490910190925290912054161561138d576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff60001986018116855260069091019092529091206003015416156113eb573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b60006113f7338361147f565b3360008181526020818152604080832060ff881684526004019091529020805460ff1916600117905590915061142e90828461191a565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff808716845260049091019091529190205416156114e557506001600160a01b0380831660009081526020819052604090206001015416610ac4565b6001600160a01b0392831660009081526020819052604090206001015490921691611482565b60076020526000908152604090205481565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600390910190915291902054161561158357506001600160a01b0380831660009081526020819052604090206001015416610ac4565b6001600160a01b0392831660009081526020819052604090206001015490921691611520565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611681576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612ffd8339815191529181900360600190a361167c82846001846122b2565b611915565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612ffd8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff8716845260050190915292902090516117069260019092019190612f73565b506001600160a01b03821660009081526020818152604080832060ff600186018116855260039091019092529091205416158015611748575060ff8116600c14155b15611783576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6006546001600160a01b0383811691161461188e5760006117a4838361151d565b6001600160a01b0384811660009081526020818152604080832060ff88168452600501909152902054919250828116911614611818576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff88168085526005909101835292819020600301805460019081019091558151908152918201929092528151888516948616939260008051602061301d833981519152928290030190a46118888382846115a9565b50611915565b6006546118a7906001600160a01b0316846001846122b2565b600680546001600160a01b0390811660009081526020818152604080832060ff8716808552600590910183528184206003018054600190810190915595548251968752928601528051888516959394929092169260008051602061301d833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff808616855260049091019092529091205416611998576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611eff576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612ffd833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600690810190925290912080546001600160a01b03191685841690811790915590549091161415611ab05761167c82846002846122b2565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b1697909717909655919093520154909181148015611b8157506001600160a01b0382811660009081526020818152604080832060ff881684526006019091528120600101805492871692909190611b6a57fe5b6000918252602090912001546001600160a01b0316145b8015611bdd57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611bc657fe5b6000918252602090912001546001600160a01b0316145b15611ca2576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611c5b57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611c9d565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a35b611eed565b8060011480611cb15750806002145b8015611d0957506001600160a01b0382811660009081526020818152604080832060ff881684526006019091528120600101805492871692909190611cf257fe5b6000918252602090912001546001600160a01b0316145b15611dcd576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611d8757604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611c9d565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611eed565b806002148015611e2d57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611e1657fe5b6000918252602090912001546001600160a01b0316145b15611eed576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611eab57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611eed565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a35b611ef88583856123f9565b5050611915565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b0319168886161790559091526005015416156120e3576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611f9757fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611fdb57fe5b6000918252602090912001546001600160a01b031614801561205057506001600160a01b0382811660009081526020818152604080832060ff8616845260060190915281206005810154600190910180549190931692919061203957fe5b6000918252602090912001546001600160a01b0316145b1561206d57612062838383600161284c565b61167c8383836123f9565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600581015460019091018054919093169291906120ae57fe5b6000918252602090912001546001600160a01b031614156120d657612062838383600161284c565b612062838383600061284c565b6001600160a01b0382811660009081526020818152604080832060ff8616845260060190915290206001908101805492861692909190811061212157fe5b6000918252602090912001546001600160a01b0316141561214957612062838383600061284c565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060010180549286169290919061218357fe5b6000918252602090912001546001600160a01b031614156121ab57612062838383600161284c565b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915281206001908101805483929081106121e457fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff861680845260069182018352848420600190810154968916855284845285852091855291019091529181209091018054829190829061224a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff861682526006019092529020600101541161229a57612295838383600061284c565b6122a7565b6122a7838383600161284c565b6119158383836123f9565b6000806122c186868686612db5565b60ff85166000908152600760205260408082205490519395509193506001600160a01b0385169282156108fc029291818181858888f19350505050612337576040516001600160a01b038316904780156108fc02916000818181858888f19350505050158015612335573d6000803e3d6000fd5b505b801561238d576040805160ff80871682528516602082015281516001600160a01b0380861693908916927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b5060ff918216600081815260076020908152604080832080546001600160a01b0390961680855260038452828520989097168085529783528184209484529382528083208054909501909455915493815260048252828120948152939052909120805490910190555050565b6001600160a01b03821660009081526020818152604080832060ff85168452600601909152902060020154600411156124395761167c82846002846122b2565b6001600160a01b0380831660009081526020818152604080832060ff861680855260069182018452828520549095168452838352818420948452939093018152908290206001018054835181840281018401909452808452606093928301828280156124ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124b0575b5050505050905080516002141561262b57826001600160a01b0316816000815181106124f657fe5b60200260200101516001600160a01b031614806125385750826001600160a01b03168160018151811061252557fe5b60200260200101516001600160a01b0316145b1561259a576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b031916909117905561262b565b80516001141561262b57826001600160a01b0316816000815181106125bb57fe5b60200260200101516001600160a01b0316141561262b576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff88168452600601909152929020905161266f9260019092019190612f73565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516126b49260029092019190612f73565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b0319169055600187018116855260049091019092529091205416158015612715575060ff8216600c14155b15612750576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff8816845260069081019092529091206004018054600101905554909116146127ec57600061279a848461147f565b604080516002815260ff8616602082015281519293506001600160a01b0380891693818616939189169260008051602061301d83398151915292908290030190a46127e684828561191a565b50612846565b600654604080516002815260ff8516602082015281516001600160a01b038089169460009491169260008051602061301d833981519152929081900390910190a4600654612846906001600160a01b0316856002856122b2565b50505050565b80612afc576001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054829190829061288857fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c89161790559589168452838352848420908452019052908120909101805490919061290a57fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612ffd83398151915292600292889291829190829061296a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612ffd8339815191529260029288928291908290612a1a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054909190612ab157fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b03191691909216179055612846565b6001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600190810180548392908110612b3557fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905220810180549091908110612bb657fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612ffd83398151915293600293899383929091908110612c1957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612ffd8339815191529360029389939192839291908110612cce57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612d6957fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612e8b575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612e7c57604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612e86565b9092509050612f40565b612dc7565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612e7c57604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612e8b565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612fc8579160200282015b82811115612fc857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612f93565b50612fd4929150612fd8565b5090565b610a9391905b80821115612fd45780546001600160a01b0319168155600101612fde56fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a723158204cfcbd8789b3f65f21a5715958e09784f88eb68f16533db171dfbd91057d29ba64736f6c634300050e003200000000000000000000000063e39d90096862c209b7106efbce17a5a19411f6

Deployed Bytecode

0x60806040526004361061013f5760003560e01c8063797eee24116100b6578063a87430ba1161006f578063a87430ba146105e9578063b2f7543a14610642578063be389d571461067e578063e06e8dbd146106a6578063ecabdf79146106e2578063fa45323d1461070f5761013f565b8063797eee24146103a757806383ba31b2146103cd5780638da5cb5b146104765780639cc102fc1461048b578063a478656b14610584578063a7839224146105b05761013f565b8063348d448711610108578063348d4487146102d25780633e89340f146102e75780634635fd68146102fc5780634cb026f014610326578063509222cd1461033b57806352fd9f131461036e5761013f565b8062412a4f146101ab57806307279e2a146101d257806329c70400146102225780632a2d0c471461024d5780633320a0db14610293575b366101605760065461015b9033906001600160a01b031661074b565b6101a9565b6101a9336101a46000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a3f92505050565b61074b565b005b3480156101b757600080fd5b506101c0610a46565b60408051918252519081900360200190f35b3480156101de57600080fd5b5061020e600480360360408110156101f557600080fd5b5080356001600160a01b0316906020013560ff16610a96565b604080519115158252519081900360200190f35b34801561022e57600080fd5b50610237610aca565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506102776004803603602081101561027057600080fd5b5035610acf565b604080516001600160a01b039092168252519081900360200190f35b34801561029f57600080fd5b506101c0600480360360608110156102b657600080fd5b506001600160a01b038135169060208101359060400135610aea565b3480156102de57600080fd5b506101c0610b0d565b3480156102f357600080fd5b5061020e610b13565b34801561030857600080fd5b506102776004803603602081101561031f57600080fd5b5035610b23565b34801561033257600080fd5b506101c0610b3e565b34801561034757600080fd5b5061020e6004803603602081101561035e57600080fd5b50356001600160a01b0316610b87565b34801561037a57600080fd5b5061020e6004803603604081101561039157600080fd5b506001600160a01b038135169060200135610ba4565b6101a9600480360360208110156103bd57600080fd5b50356001600160a01b0316610cd0565b3480156103d957600080fd5b50610409600480360360408110156103f057600080fd5b5080356001600160a01b0316906020013560ff16610d2e565b604080516001600160a01b0385168152821515918101919091526060602080830182815285519284019290925284516080840191868101910280838360005b83811015610460578181015183820152602001610448565b5050505090500194505050505060405180910390f35b34801561048257600080fd5b50610277610ddb565b34801561049757600080fd5b506104c7600480360360408110156104ae57600080fd5b5080356001600160a01b0316906020013560ff16610dea565b604080516001600160a01b03808816825284151560608301528316608082015260a060208083018281528851928401929092528751929391929184019160c0850191898101910280838360005b8381101561052c578181015183820152602001610514565b50505050905001838103825286818151815260200191508051906020019060200280838360005b8381101561056b578181015183820152602001610553565b5050505090500197505050505050505060405180910390f35b34801561059057600080fd5b5061020e600480360360208110156105a757600080fd5b50351515610f09565b3480156105bc57600080fd5b506101c0600480360360408110156105d357600080fd5b506001600160a01b038135169060200135610f7d565b3480156105f557600080fd5b5061061c6004803603602081101561060c57600080fd5b50356001600160a01b0316610f9a565b604080519384526001600160a01b03909216602084015282820152519081900360600190f35b34801561064e57600080fd5b5061020e6004803603604081101561066557600080fd5b5080356001600160a01b0316906020013560ff16610fc4565b6101a96004803603604081101561069457600080fd5b5060ff81358116916020013516610ff3565b3480156106b257600080fd5b50610277600480360360408110156106c957600080fd5b5080356001600160a01b0316906020013560ff1661147f565b3480156106ee57600080fd5b506101c06004803603602081101561070557600080fd5b503560ff1661150b565b34801561071b57600080fd5b506102776004803603604081101561073257600080fd5b5080356001600160a01b0316906020013560ff1661151d565b3466b1a2bc2ec500001461079f576040805162461bcd60e51b8152602060048201526016602482015275726567697374726174696f6e20636f737420302e303560501b604482015290519081900360640190fd5b6107a882610b87565b156107e8576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b6107f181610b87565b610838576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b813b63ffffffff81161561088a576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b610892612f49565b50604080516060810182526005805482526001600160a01b03808616602080850182815260008688018181528b861680835282855289832089518155935160018086018054929099166001600160a01b03199283161789559251600280870191909155895485528387528b852080548316841790558854821688179098558284526003850186528a8420805460ff199081168517909155838552600490950186528a842080549095168317909455875483528685528983208054909416179092558554820190955591845283905293822001805484019055909161097790869061151d565b6001600160a01b038681166000908152602081815260408083206001808552600590910190925290912080546001600160a01b031916928416929092179091559091506109c790869083906115a9565b6109dd856109d687600161147f565b600161191a565b6001600160a01b03808616600081815260208181526040808320549489168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050505050565b6014015190565b60008060015b6005548111610a8f576000818152600260208181526040808420546001600160a01b03168452600482528084209284529190529020549190910190600101610a4c565b5090505b90565b6001600160a01b03821660009081526020818152604080832060ff8086168552600390910190925290912054165b92915050565b600c81565b6001602052600090815260409020546001600160a01b031681565b600360209081526000938452604080852082529284528284209052825290205481565b60055481565b600654600160a01b900460ff1681565b6002602052600090815260409020546001600160a01b031681565b60008060015b6005548111610a8f576000818152600260209081526040808320546001600160a01b03168352600482528083206001808552925290912054929092019101610b44565b6001600160a01b0316600090815260208190526040902054151590565b6006546000906001600160a01b03163314610bf7576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b6001600160a01b038316610c44576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964204164647265737360881b604482015290519081900360640190fd5b81471015610c90576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015610cc6573d6000803e3d6000fd5b5060019392505050565b600654600160a01b900460ff1615610d21576040805162461bcd60e51b815260206004820152600f60248201526e10dbdb9d1c9858dd08131bd8dad959608a1b604482015290519081900360640190fd5b610d2b338261074b565b50565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600590910183528184208054600282015460019092018054855181880281018801909652808652969760609789979390911695919493909316929091849190830182828015610dc757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610da9575b505050505091509250925092509250925092565b6006546001600160a01b031681565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600690910183528184208054600382015460058301546001840180548751818a0281018a0190985280885298996060998a998c998a99978416989497600290950196909416949092169291869190830182828015610e9257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610e74575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610eee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed0575b50505050509250945094509450945094509295509295909350565b6006546000906001600160a01b03163314610f5c576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b604482015290519081900360640190fd5b5060068054821515600160a01b0260ff60a01b199091161790556001919050565b600460209081526000928352604080842090915290825290205481565b60006020819052908152604090208054600182015460029092015490916001600160a01b03169083565b6001600160a01b039190911660009081526020818152604080832060ff94851684526004019091529020541690565b600654600160a01b900460ff1615611044576040805162461bcd60e51b815260206004820152600f60248201526e10dbdb9d1c9858dd08131bd8dad959608a1b604482015290519081900360640190fd5b61104d33610b87565b6110885760405162461bcd60e51b815260040180806020018281038252602381526020018061303d6023913960400191505060405180910390fd5b8160ff166001148061109d57508160ff166002145b6110df576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b60ff81166000908152600760205260409020543414611135576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b604482015290519081900360640190fd5b60018160ff1611801561114c5750600c60ff821611155b61118d576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081b195d995b609a1b604482015290519081900360640190fd5b8160ff166001141561131d573360009081526020818152604080832060ff80861685526003909101909252909120541615611209576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198601811685526005909101909252909120600201541615611267573360009081526020818152604080832060ff60001986011684526005019091529020600201805460ff191690555b6000611273338361151d565b3360008181526020818152604080832060ff8816845260058101835281842080546001600160a01b0319166001600160a01b0388161790556003019091529020805460ff191660011790559091506112cc9082846115a9565b604080516001815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a35061147b565b3360009081526020818152604080832060ff8086168552600490910190925290912054161561138d576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff60001986018116855260069091019092529091206003015416156113eb573360009081526020818152604080832060ff60001986011684526006019091529020600301805460ff191690555b60006113f7338361147f565b3360008181526020818152604080832060ff881684526004019091529020805460ff1916600117905590915061142e90828461191a565b604080516002815260ff8416602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b5050565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff808716845260049091019091529190205416156114e557506001600160a01b0380831660009081526020819052604090206001015416610ac4565b6001600160a01b0392831660009081526020819052604090206001015490921691611482565b60076020526000908152604090205481565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff8087168452600390910190915291902054161561158357506001600160a01b0380831660009081526020819052604090206001015416610ac4565b6001600160a01b0392831660009081526020819052604090206001015490921691611520565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600590910183529083206001908101805491820181558085529284200180546001600160a01b031916948816949094179093559190525460031115611681576001600160a01b0380831660008181526020818152604080832060ff8088168086526005909201845293829020600190810154835191825293810191909152919092168183015290519192861691600080516020612ffd8339815191529181900360600190a361167c82846001846122b2565b611915565b604080516001815260ff8316602082015260038183015290516001600160a01b038085169290861691600080516020612ffd8339815191529181900360600190a360408051600080825260208083018085526001600160a01b038716835282825284832060ff8716845260050190915292902090516117069260019092019190612f73565b506001600160a01b03821660009081526020818152604080832060ff600186018116855260039091019092529091205416158015611748575060ff8116600c14155b15611783576001600160a01b03821660009081526020818152604080832060ff851684526005019091529020600201805460ff191660011790555b6006546001600160a01b0383811691161461188e5760006117a4838361151d565b6001600160a01b0384811660009081526020818152604080832060ff88168452600501909152902054919250828116911614611818576001600160a01b0383811660009081526020818152604080832060ff87168452600501909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380841660008181526020818152604080832060ff88168085526005909101835292819020600301805460019081019091558151908152918201929092528151888516948616939260008051602061301d833981519152928290030190a46118888382846115a9565b50611915565b6006546118a7906001600160a01b0316846001846122b2565b600680546001600160a01b0390811660009081526020818152604080832060ff8716808552600590910183528184206003018054600190810190915595548251968752928601528051888516959394929092169260008051602061301d833981519152929081900390910190a45b505050565b6001600160a01b03821660009081526020818152604080832060ff808616855260049091019092529091205416611998576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915290206001015460021115611eff576001600160a01b0382811660008181526020818152604080832060ff8781168086526006909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988c16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612ffd833981519152916060908290030190a36001600160a01b0383811660009081526020818152604080832060ff86168452600690810190925290912080546001600160a01b03191685841690811790915590549091161415611ab05761167c82846002846122b2565b6001600160a01b0382811660009081526020818152604080832060ff8616808552600691820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978b1697909717909655919093520154909181148015611b8157506001600160a01b0382811660009081526020818152604080832060ff881684526006019091528120600101805492871692909190611b6a57fe5b6000918252602090912001546001600160a01b0316145b8015611bdd57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611bc657fe5b6000918252602090912001546001600160a01b0316145b15611ca2576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611c5b57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611c9d565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a35b611eed565b8060011480611cb15750806002145b8015611d0957506001600160a01b0382811660009081526020818152604080832060ff881684526006019091528120600101805492871692909190611cf257fe5b6000918252602090912001546001600160a01b0316145b15611dcd576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611d8757604080516002815260ff8516602082015260038183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611c9d565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611eed565b806002148015611e2d57506001600160a01b0382811660009081526020818152604080832060ff88168452600601909152902060019081018054928716929091908110611e1657fe5b6000918252602090912001546001600160a01b0316145b15611eed576001600160a01b03841660009081526020818152604080832060ff8716845260060190915290206001908101541415611eab57604080516002815260ff8516602082015260058183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a3611eed565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290881691600080516020612ffd8339815191529181900360600190a35b611ef88583856123f9565b5050611915565b6001600160a01b0382811660009081526020818152604080832060ff86168085526006909101835290832060028101805460018101825590855292842090920180546001600160a01b0319168886161790559091526005015416156120e3576001600160a01b03821660009081526020818152604080832060ff851684526006019091529020600190810180549091908110611f9757fe5b60009182526020808320909101546001600160a01b038581168452838352604080852060ff87168652600601909352918320600101805492909116929091611fdb57fe5b6000918252602090912001546001600160a01b031614801561205057506001600160a01b0382811660009081526020818152604080832060ff8616845260060190915281206005810154600190910180549190931692919061203957fe5b6000918252602090912001546001600160a01b0316145b1561206d57612062838383600161284c565b61167c8383836123f9565b6001600160a01b0382811660009081526020818152604080832060ff861684526006019091528120600581015460019091018054919093169291906120ae57fe5b6000918252602090912001546001600160a01b031614156120d657612062838383600161284c565b612062838383600061284c565b6001600160a01b0382811660009081526020818152604080832060ff8616845260060190915290206001908101805492861692909190811061212157fe5b6000918252602090912001546001600160a01b0316141561214957612062838383600061284c565b6001600160a01b0382811660009081526020818152604080832060ff86168452600601909152812060010180549286169290919061218357fe5b6000918252602090912001546001600160a01b031614156121ab57612062838383600161284c565b6001600160a01b03821660009081526020818152604080832060ff8516845260060190915281206001908101805483929081106121e457fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff861680845260069182018352848420600190810154968916855284845285852091855291019091529181209091018054829190829061224a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff861682526006019092529020600101541161229a57612295838383600061284c565b6122a7565b6122a7838383600161284c565b6119158383836123f9565b6000806122c186868686612db5565b60ff85166000908152600760205260408082205490519395509193506001600160a01b0385169282156108fc029291818181858888f19350505050612337576040516001600160a01b038316904780156108fc02916000818181858888f19350505050158015612335573d6000803e3d6000fd5b505b801561238d576040805160ff80871682528516602082015281516001600160a01b0380861693908916927ff0ddc65c0d411f042f723dcfa1b7d13e85a35b7b70761d447c6500411cacf328929081900390910190a35b5060ff918216600081815260076020908152604080832080546001600160a01b0390961680855260038452828520989097168085529783528184209484529382528083208054909501909455915493815260048252828120948152939052909120805490910190555050565b6001600160a01b03821660009081526020818152604080832060ff85168452600601909152902060020154600411156124395761167c82846002846122b2565b6001600160a01b0380831660009081526020818152604080832060ff861680855260069182018452828520549095168452838352818420948452939093018152908290206001018054835181840281018401909452808452606093928301828280156124ce57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116124b0575b5050505050905080516002141561262b57826001600160a01b0316816000815181106124f657fe5b60200260200101516001600160a01b031614806125385750826001600160a01b03168160018151811061252557fe5b60200260200101516001600160a01b0316145b1561259a576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b031916909117905561262b565b80516001141561262b57826001600160a01b0316816000815181106125bb57fe5b60200260200101516001600160a01b0316141561262b576001600160a01b0380841660008181526020818152604080832060ff8816808552600691820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038816835282825284832060ff88168452600601909152929020905161266f9260019092019190612f73565b5060408051600080825260208083018085526001600160a01b038816835282825284832060ff8816845260060190915292902090516126b49260029092019190612f73565b506001600160a01b03831660009081526020818152604080832060ff808716855260068201845282852060050180546001600160a01b0319169055600187018116855260049091019092529091205416158015612715575060ff8216600c14155b15612750576001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600301805460ff191660011790555b6001600160a01b0380841660008181526020818152604080832060ff8816845260069081019092529091206004018054600101905554909116146127ec57600061279a848461147f565b604080516002815260ff8616602082015281519293506001600160a01b0380891693818616939189169260008051602061301d83398151915292908290030190a46127e684828561191a565b50612846565b600654604080516002815260ff8516602082015281516001600160a01b038089169460009491169260008051602061301d833981519152929081900390910190a4600654612846906001600160a01b0316856002856122b2565b50505050565b80612afc576001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054829190829061288857fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c89161790559589168452838352848420908452019052908120909101805490919061290a57fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260060190935291832060010180549183169392881692600080516020612ffd83398151915292600292889291829190829061296a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600601909152812060010180549293881692600080516020612ffd8339815191529260029288928291908290612a1a57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff8616845260060190915281206001018054909190612ab157fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b03191691909216179055612846565b6001600160a01b03831660009081526020818152604080832060ff861684526006019091528120600190810180548392908110612b3557fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600691820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905220810180549091908110612bb657fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600601909352918320600190810180549284169493891693600080516020612ffd83398151915293600293899383929091908110612c1957fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526006909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526006019091528120600190810180549394891693600080516020612ffd8339815191529360029389939192839291908110612cce57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600690910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526006019091529020600190810180549091908110612d6957fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526006019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612e8b575b6001600160a01b03821660009081526020818152604080832060ff808a1685526005909101909252909120600201541615612e7c57604080516001815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600501909152902054166001612e86565b9092509050612f40565b612dc7565b6001600160a01b03821660009081526020818152604080832060ff808a1685526006909101909252909120600301541615612e7c57604080516002815260ff8716602082015281516001600160a01b03808b1693908616927ffc0cb63f8dbd6b20ceb84a3c5358a41576a1479e6ecd040b4b985525dc09a709929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600601909152902054166001612e8b565b94509492505050565b60405180606001604052806000815260200160006001600160a01b03168152602001600081525090565b828054828255906000526020600020908101928215612fc8579160200282015b82811115612fc857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612f93565b50612fd4929150612fd8565b5090565b610a9391905b80821115612fd45780546001600160a01b0319168155600101612fde56fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82a00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a675736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a723158204cfcbd8789b3f65f21a5715958e09784f88eb68f16533db171dfbd91057d29ba64736f6c634300050e0032

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

00000000000000000000000063e39d90096862c209b7106efbce17a5a19411f6

-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x63E39D90096862C209b7106efBCE17A5a19411f6

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000063e39d90096862c209b7106efbce17a5a19411f6


Deployed Bytecode Sourcemap

27:21130:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2767:8;2764:90;;2836:5;;2811:31;;2824:10;;-1:-1:-1;;;;;2836:5:0;2811:12;:31::i;:::-;2804:38;;2764:90;2874:50;2887:10;2899:24;2914:8;;2899:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2899:14:0;;-1:-1:-1;;;2899:24:0:i;:::-;2874:12;:50::i;:::-;27:21130;18418:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18418:268:0;;;:::i;:::-;;;;;;;;;;;;;;;;16871:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16871:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16871:155:0;;-1:-1:-1;;;;;16871:155:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;727:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;727:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;822:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;822:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;822:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;822:44:0;;;;;;;;;;;;;;920:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;920:74:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;920:74:0;;;;;;;;;;;;;:::i;1075:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1075:26:0;;;:::i;1135:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:22:0;;;:::i;873:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;873:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;873:40:0;;:::i;18138:268::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18138:268:0;;;:::i;18016:110::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18016:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18016:110:0;-1:-1:-1;;;;;18016:110:0;;:::i;18727:340::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18727:340:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18727:340:0;;;;;;;;:::i;2940:135::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2940:135:0;-1:-1:-1;;;;;2940:135:0;;:::i;17197:312::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17197:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17197:312:0;;-1:-1:-1;;;;;17197:312:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17197:312:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-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;17197:312:0;;;;;;;;;;;;;;;;;;;1108:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1108:20:0;;;:::i;17517:487::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17517:487:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17517:487:0;;-1:-1:-1;;;;;17517:487:0;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17517:487:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-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;17517:487: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;17517:487:0;;;;;;;;;;;;;;;;;;;;;;19079:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19079:183:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19079:183:0;;;;:::i;1002:63::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1002:63:0;;;;;;;;:::i;777:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;777:38:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;777:38:0;-1:-1:-1;;;;;777:38:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;777:38:0;;;;;;;;;;;;;;;;;;;;17034:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17034:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17034:155:0;;-1:-1:-1;;;;;17034:155:0;;;;;;;;:::i;3087:1578::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3087:1578:0;;;;;;;;;;;:::i;16506:349::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16506:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16506:349:0;;-1:-1:-1;;;;;16506:349:0;;;;;;;;:::i;1170:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1170:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1170:40:0;;;;:::i;16145:349::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16145:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16145:349:0;;-1:-1:-1;;;;;16145:349:0;;;;;;;;:::i;4681:1434::-;4776:9;4789:10;4776:23;4768:58;;;;;-1:-1:-1;;;4768:58:0;;;;;;;;;;;;-1:-1:-1;;;4768:58:0;;;;;;;;;;;;;;;4846:25;4859:11;4846:12;:25::i;:::-;4845:26;4837:50;;;;;-1:-1:-1;;;4837:50:0;;;;;;;;;;;;-1:-1:-1;;;4837:50:0;;;;;;;;;;;;;;;4906:29;4919:15;4906:12;:29::i;:::-;4898:61;;;;;-1:-1:-1;;;4898:61:0;;;;;;;;;;;;-1:-1:-1;;;4898:61:0;;;;;;;;;;;;;;;5034:24;;5087:9;;;;5079:42;;;;;-1:-1:-1;;;5079:42:0;;;;;;;;;;;;-1:-1:-1;;;5079:42:0;;;;;;;;;;;;;;;5142:16;;:::i;:::-;-1:-1:-1;5161:117:0;;;;;;;;5185:10;;;5161:117;;-1:-1:-1;;;;;5161:117:0;;;;;;;;;;-1:-1:-1;5161:117:0;;;;;;5299:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5299:25:0;;;;;;;;;;;;;;;;5347:10;;5335:23;;;;;;;;:37;;;;;;;;5393:45;;;;;;;;;5459:36;;;:33;;;:36;;;;;:43;;-1:-1:-1;;5459:43:0;;;;;;;;5514:36;;;:33;;;;:36;;;;;:43;;;;;;;;;;5596:10;;5588:19;;;;;;;;:33;;;;;;;;;5632:12;;;;;;;5665:22;;;;;;;;;:36;:38;;;;;;5161:117;;5741:34;;5305:11;;5741:18;:34::i;:::-;-1:-1:-1;;;;;5786:18:0;;;:5;:18;;;;;;;;;;;5814:1;5786:30;;;:27;;;;:30;;;;;;:63;;-1:-1:-1;;;;;;5786:63:0;;;;;;;;;;;;;-1:-1:-1;5860:48:0;;5786:18;;:63;;5860:16;:48::i;:::-;5921:68;5938:11;5951:34;5970:11;5983:1;5951:18;:34::i;:::-;5987:1;5921:16;:68::i;:::-;-1:-1:-1;;;;;6058:18:0;;;:5;:18;;;;;;;;;;;:21;6015:92;;;6081:22;;;;;;;:25;6015:92;;;;;;;;;6058:18;6015:92;;;;;;;;;;;4681:1434;;;;;:::o;20996:158::-;21132:2;21123:12;21117:19;;21094:53::o;18418:268::-;18469:4;;18537:1;18526:104;18543:10;;18540:1;:13;18526:104;;18589:26;18604:10;;;:7;:10;;;;;;;;;-1:-1:-1;;;;;18604:10:0;18589:26;;:14;:26;;;;;:29;;;;;;;;;18574:44;;;;;18604:10;18554:3;18526:104;;;-1:-1:-1;18657:11:0;-1:-1:-1;18418:268:0;;:::o;16871:155::-;-1:-1:-1;;;;;16978:18:0;;16954:4;16978:18;;;;;;;;;;;:40;;;;;;:33;;;;:40;;;;;;;;16871:155;;;;;:::o;727:37::-;762:2;727:37;:::o;822:44::-;;;;;;;;;;;;-1:-1:-1;;;;;822:44:0;;:::o;920:74::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1075:26::-;;;;:::o;1135:22::-;;;-1:-1:-1;;;1135:22:0;;;;;:::o;873:40::-;;;;;;;;;;;;-1:-1:-1;;;;;873:40:0;;:::o;18138:268::-;18189:4;;18257:1;18246:104;18263:10;;18260:1;:13;18246:104;;18309:26;18324:10;;;:7;:10;;;;;;;;;-1:-1:-1;;;;;18324:10:0;18309:26;;:14;:26;;;;;18324:10;18309:29;;;;;;;;;18294:44;;;;;18274:3;18246:104;;18016:110;-1:-1:-1;;;;;18098:11:0;18073:4;18098:11;;;;;;;;;;:14;:19;;;18016:110::o;18727:340::-;18839:5;;18800:4;;-1:-1:-1;;;;;18839:5:0;18825:10;:19;18817:46;;;;;-1:-1:-1;;;18817:46:0;;;;;;;;;;;;-1:-1:-1;;;18817:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;18882:21:0;;18874:49;;;;;-1:-1:-1;;;18874:49:0;;;;;;;;;;;;-1:-1:-1;;;18874:49:0;;;;;;;;;;;;;;;18967:7;18942:21;:32;;18934:65;;;;;-1:-1:-1;;;18934:65:0;;;;;;;;;;;;-1:-1:-1;;;18934:65:0;;;;;;;;;;;;;;;19010:27;;-1:-1:-1;;;;;19010:18:0;;;:27;;;;;19029:7;;19010:27;;;;19029:7;19010:18;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;19055:4:0;;18727:340;-1:-1:-1;;;18727:340:0:o;2940:135::-;2655:10;;-1:-1:-1;;;2655:10:0;;;;:19;2647:46;;;;;-1:-1:-1;;;2647:46:0;;;;;;;;;;;;-1:-1:-1;;;2647:46:0;;;;;;;;;;;;;;;3026:41;3039:10;3051:15;3026:12;:41::i;:::-;2940:135;:::o;17197:312::-;-1:-1:-1;;;;;17326:18:0;;;17274:7;17326:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;17458:42;;;;17326:50;17395:44;;;17318:183;;;;;;;;;;;;;;;;;17274:7;;17283:16;;17274:7;;17326:50;;;;;17395:44;;17458:42;;;;;17318:183;;17395:44;;17318:183;;;17395:44;17318:183;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17318:183:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17197:312;;;;;:::o;1108:20::-;;;-1:-1:-1;;;;;1108:20:0;;:::o;17517:487::-;-1:-1:-1;;;;;17673:18:0;;;17594:7;17673:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;17889:42;;;;17950:45;;;;17673:50;17742:54;;17665:331;;;;;;;;;;;;;;;;;17594:7;;17603:16;;;;17594:7;;;;17673:50;;;;17742:54;;17815:55;;;;;17889:42;;;;17950:45;;;;17665:331;17742:54;;17665:331;;;17742:54;17665:331;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17665:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17665:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17517:487;;;;;;;;:::o;19079:183::-;19173:5;;19134:4;;-1:-1:-1;;;;;19173:5:0;19159:10;:19;19151:46;;;;;-1:-1:-1;;;19151:46:0;;;;;;;;;;;;-1:-1:-1;;;19151:46:0;;;;;;;;;;;;;;;-1:-1:-1;19208:10:0;:24;;;;;-1:-1:-1;;;19208:24:0;-1:-1:-1;;;;19208:24:0;;;;;;-1:-1:-1;19079:183:0;;;:::o;1002:63::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;777:38::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;777:38:0;;;:::o;17034:155::-;-1:-1:-1;;;;;17141:18:0;;;;17117:4;17141:18;;;;;;;;;;;:40;;;;;;:33;;:40;;;;;;;;17034:155::o;3087:1578::-;2655:10;;-1:-1:-1;;;2655:10:0;;;;:19;2647:46;;;;;-1:-1:-1;;;2647:46:0;;;;;;;;;;;;-1:-1:-1;;;2647:46:0;;;;;;;;;;;;;;;3178:24;3191:10;3178:12;:24::i;:::-;3170:72;;;;-1:-1:-1;;;3170:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3261:6;:11;;3271:1;3261:11;:26;;;;3276:6;:11;;3286:1;3276:11;3261:26;3253:53;;;;;-1:-1:-1;;;3253:53:0;;;;;;;;;;;;-1:-1:-1;;;3253:53:0;;;;;;;;;;;;;;;3338:17;;;;;;;:10;:17;;;;;;3325:9;:30;3317:56;;;;;-1:-1:-1;;;3317:56:0;;;;;;;;;;;;-1:-1:-1;;;3317:56:0;;;;;;;;;;;;;;;3400:1;3392:5;:9;;;:32;;;;-1:-1:-1;762:2:0;3405:19;;;;;3392:32;3384:58;;;;;-1:-1:-1;;;3384:58:0;;;;;;;;;;;;-1:-1:-1;;;3384:58:0;;;;;;;;;;;;;;;3459:6;:11;;3469:1;3459:11;3455:1203;;;3502:10;3496:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;3495:40;3487:76;;;;;-1:-1:-1;;;3487:76:0;;;;;;;;;;;;-1:-1:-1;;;3487:76:0;;;;;;;;;;;;;;;3590:10;3584:5;:17;;;;;;;;;;;:35;-1:-1:-1;;3611:7:0;;3584:35;;;;:26;;;;:35;;;;;;:43;;;;3580:135;;;3654:10;3694:5;3648:17;;;;;;;;;;;:35;-1:-1:-1;;3675:7:0;;3648:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;3648:51:0;;;3580:135;3735:22;3760:37;3779:10;3791:5;3760:18;:37::i;:::-;3818:10;3812:5;:17;;;;;;;;;;;:33;;;;;:26;;;:33;;;;;:66;;-1:-1:-1;;;;;;3812:66:0;-1:-1:-1;;;;;3812:66:0;;;;;3893:32;;:39;;;;;:46;;-1:-1:-1;;3893:46:0;-1:-1:-1;3893:46:0;;;3812:66;;-1:-1:-1;3954:51:0;;3812:66;:33;3954:16;:51::i;:::-;4039:45;;;4075:1;4039:45;;;;;;;;;;;-1:-1:-1;;;;;4039:45:0;;;4047:10;;4039:45;;;;;;;;;;;3455:1203;;;;4134:10;4128:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;4127:40;4119:76;;;;;-1:-1:-1;;;4119:76:0;;;;;;;;;;;;-1:-1:-1;;;4119:76:0;;;;;;;;;;;;;;;4223:10;4217:5;:17;;;;;;;;;;;:35;-1:-1:-1;;4244:7:0;;4217:35;;;;:26;;;;:35;;;;;;:43;;;;4213:135;;;4287:10;4327:5;4281:17;;;;;;;;;;;:35;-1:-1:-1;;4308:7:0;;4281:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;4281:51:0;;;4213:135;4364:22;4389:37;4408:10;4420:5;4389:18;:37::i;:::-;4461:10;4455:5;:17;;;;;;;;;;;:39;;;;;:32;;:39;;;;;:46;;-1:-1:-1;;4455:46:0;4497:4;4455:46;;;4364:62;;-1:-1:-1;4516:51:0;;4364:62;4488:5;4516:16;:51::i;:::-;4601:45;;;4637:1;4601:45;;;;;;;;;;;-1:-1:-1;;;;;4601:45:0;;;4609:10;;4601:45;;;;;;;;;;;3455:1203;;3087:1578;;:::o;16506:349::-;16588:7;16608:240;-1:-1:-1;;;;;16646:18:0;;;16640:5;16646:18;;;;;;;;;;;:27;;;;;;16640:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;16636:131;;;-1:-1:-1;;;;;;16724:18:0;;;:5;:18;;;;;;;;;;:27;;;;16717:34;;16636:131;-1:-1:-1;;;;;16809:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;16608:240;;1170:40;;;;;;;;;;;;;:::o;16145:349::-;16227:7;16247:240;-1:-1:-1;;;;;16285:18:0;;;16279:5;16285:18;;;;;;;;;;;:27;;;;;;16279:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;16275:131;;;-1:-1:-1;;;;;;16363:18:0;;;:5;:18;;;;;;;;;;:27;;;;16356:34;;16275:131;-1:-1:-1;;;;;16448:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;16247:240;;6127:1717;-1:-1:-1;;;;;6231:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:48;;;;27:10:-1;;23:18;;;45:23;;6231:66:0;;;;;;;;;-1:-1:-1;;;;;;6231:66:0;;;;;;;;;;;6314:38;;;:55;6372:1;-1:-1:-1;6310:291:0;;;-1:-1:-1;;;;;6395:116:0;;;6454:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;;6438:1;6454:48;;;:55;6395:116;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6395:116:0;;;;;;;;6533:56;6550:15;6567:11;6580:1;6583:5;6533:16;:56::i;:::-;6526:63;;6310:291;6626:55;;;6669:1;6626:55;;;;;;;;;6679:1;6626:55;;;;;;-1:-1:-1;;;;;6626:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;6626:55:0;;;;;;;;6767:16;;;6781:1;6767:16;;;;;;;;;;-1:-1:-1;;;;;6716:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:67;;;;:48;;;;;6767:16;6716:67;:::i;:::-;-1:-1:-1;;;;;;6799:22:0;;:5;:22;;;;;;;;;;;:46;6843:1;6837:7;;6799:46;;;;:37;;;;:46;;;;;;;;6798:47;:70;;;;-1:-1:-1;6849:19:0;;;762:2;6849:19;;6798:70;6794:156;;;-1:-1:-1;;;;;6885:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;6885:53:0;6934:4;6885:53;;;6794:156;7024:5;;-1:-1:-1;;;;;7005:24:0;;;7024:5;;7005:24;7001:836;;7089:27;7119:42;7138:15;7155:5;7119:18;:42::i;:::-;-1:-1:-1;;;;;7180:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:54;7089:72;;-1:-1:-1;7180:77:0;;;:54;;:77;7176:194;;-1:-1:-1;;;;;7278:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:76;;-1:-1:-1;;;;;;7278:76:0;;;;;;;;;;7176:194;-1:-1:-1;;;;;7398:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;;:52;;:54;;;;;;;;;7472:69;;;;;;;;;;;;;;;;;;;;;7398:22;-1:-1:-1;;;;;;;;;;;7472:69:0;;;;;;;7556:61;7573:15;7590:19;7611:5;7556:16;:61::i;:::-;7001:836;;;;7667:5;;7650:46;;-1:-1:-1;;;;;7667:5:0;7674:11;7667:5;7690;7650:16;:46::i;:::-;7717:5;;;-1:-1:-1;;;;;7717:5:0;;;7711;:12;;;;;;;;;;;:28;;;;;;:21;;;;:28;;;;;:42;;:44;;7717:5;7711:44;;;;;;7784:5;;7775:50;;;;;;;;;;;;;;;7711:5;;7784;;;;;-1:-1:-1;;;;;;;;;;;7775:50:0;;;;;;;;;;7001:836;6127:1717;;;:::o;7852:4735::-;-1:-1:-1;;;;;7964:22:0;;:5;:22;;;;;;;;;;;:44;;;;;;:37;;;;:44;;;;;;;;7956:88;;;;;-1:-1:-1;;;7956:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8069:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:65;8137:1;-1:-1:-1;8065:2298:0;;;-1:-1:-1;;;;;8155:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;:58;;;;27:10:-1;;23:18;;;45:23;;8155:76:0;;;;;;;;;;;-1:-1:-1;;;;;;8155:76:0;;;;;;;;;8310:38;;;;:65;;8251:126;;8294:1;8251:126;;;;;;;;;;;;;;;;;;8155:22;;:76;-1:-1:-1;;;;;;;;;;;8251:126:0;;;;;;;;;-1:-1:-1;;;;;8439:18:0;;;:5;:18;;;;;;;;;;;:34;;;;;:27;;;;:34;;;;;;:68;;-1:-1:-1;;;;;;8439:68:0;;;;;;;;;;8547:5;;;;;8528:24;8524:128;;;8580:56;8597:15;8614:11;8627:1;8630:5;8580:16;:56::i;8524:128::-;-1:-1:-1;;;;;8694:22:0;;;8680:11;8694:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;8775:10;;;;;;;;;:26;;;:19;;;:26;;;;;:47;;;;27:10:-1;;8694:54:0;23:18:-1;;;45:23;;8775:65:0;;;;;;;;;;;-1:-1:-1;;;;;;8775:65:0;;;;;;;;;;;8881:26;;;;:46;:53;8694:54;;8968:8;;8967:102;;;;-1:-1:-1;;;;;;9000:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;9000:49:0;:68;8967:102;:193;;;;-1:-1:-1;;;;;;9091:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9091:49:0;:68;8967:193;8963:1313;;;-1:-1:-1;;;;;9185:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;9181:264;;;9285:43;;;9316:1;9285:43;;;;;;;;;9326:1;9285:43;;;;;;-1:-1:-1;;;;;9285:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9285:43:0;;;;;;;;9181:264;;;9382:43;;;9413:1;9382:43;;;;;;;;;9423:1;9382:43;;;;;;-1:-1:-1;;;;;9382:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9382:43:0;;;;;;;;9181:264;8963:1313;;;9472:3;9479:1;9472:8;:20;;;;9484:3;9491:1;9484:8;9472:20;9471:115;;;;-1:-1:-1;;;;;;9518:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;9518:49:0;:68;9471:115;9467:809;;;-1:-1:-1;;;;;9611:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;9607:264;;;9711:43;;;9742:1;9711:43;;;;;;;;;9752:1;9711:43;;;;;;-1:-1:-1;;;;;9711:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9711:43:0;;;;;;;;9607:264;;;9808:43;;;9839:1;9808:43;;;;;;;;;9849:1;9808:43;;;;;;-1:-1:-1;;;;;9808:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9808:43:0;;;;;;;;9467:809;;;9896:3;9903:1;9896:8;:80;;;;-1:-1:-1;;;;;;9908:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9908:49:0;:68;9896:80;9892:384;;;-1:-1:-1;;;;;10001:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;9997:264;;;10101:43;;;10132:1;10101:43;;;;;;;;;10142:1;10101:43;;;;;;-1:-1:-1;;;;;10101:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10101:43:0;;;;;;;;9997:264;;;10198:43;;;10229:1;10198:43;;;;;;;;;10239:1;10198:43;;;;;;-1:-1:-1;;;;;10198:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10198:43:0;;;;;;;;9997:264;10299:52;10327:11;10340:3;10345:5;10299:27;:52::i;:::-;10292:59;;;;8065:2298;-1:-1:-1;;;;;10383:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:59;;;27:10:-1;;39:1;23:18;;45:23;;10383:77:0;;;;;;;;;;;-1:-1:-1;;;;;;10383:77:0;;;;;;;10477:38;;;:49;;;;:63;10473:1082;;-1:-1:-1;;;;;10645:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10562:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;10645:61;10562:58;:61;;10645;;;;;10562:58;;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;10562:61:0;:144;10561:300;;;;-1:-1:-1;;;;;;10811:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;10729:58;;;:61;;10811:49;;;;;10729:58;10811:5;10729:61;;;;;;;;;;;;;;-1:-1:-1;;;;;10729:61:0;:131;10561:300;10557:987;;;10884:51;10893:11;10906:15;10923:5;10930:4;10884:8;:51::i;:::-;10961:64;10989:11;11002:15;11019:5;10961:27;:64::i;10557:987::-;-1:-1:-1;;;;;11134:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;11051:58;;;:61;;11134:49;;;;;11051:58;11134:5;11051:61;;;;;;;;;;;;;;-1:-1:-1;;;;;11051:61:0;:132;11047:497;;;11204:51;11213:11;11226:15;11243:5;11250:4;11204:8;:51::i;11047:497::-;11386:52;11395:11;11408:15;11425:5;11432;11386:8;:52::i;11047:497::-;-1:-1:-1;;;;;11571:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:76;;;;:58;;;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11571:61:0;:76;11567:499;;;11664:52;11673:11;11686:15;11703:5;11710;11664:8;:52::i;11567:499::-;-1:-1:-1;;;;;11824:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:76;;;;:58;;:5;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;11824:61:0;:76;11820:246;;;11917:51;11926:11;11939:15;11956:5;11963:4;11917:8;:51::i;11820:246::-;-1:-1:-1;;;;;12225:22:0;;12219:5;12225:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;12219:5;;12225:58;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12225:61:0;;;12219:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;12225:61;12219:104;;;:111;12096:22;;;;;;;;;;;:38;;;:31;;:38;;;;;;:58;;;:61;;12225;;12096:58;12225:61;;12096;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12096:61:0;12090:68;;;;;;;;;;;;;;;:84;;;;;:77;;:84;;;;;12096:61;12090:104;:111;:240;12086:409;;12347:52;12356:11;12369:15;12386:5;12393;12347:8;:52::i;:::-;12086:409;;;12432:51;12441:11;12454:15;12471:5;12478:4;12432:8;:51::i;:::-;12515:64;12543:11;12556:15;12573:5;12515:27;:64::i;20351:633::-;20460:16;20478:21;20503:50;20519:11;20532:5;20539:6;20547:5;20503:15;:50::i;:::-;20603:17;;;;;;;:10;:17;;;;;;;20571:50;;20459:94;;-1:-1:-1;20459:94:0;;-1:-1:-1;;;;;;20571:31:0;;;:50;;;;;20603:17;20571:50;20603:17;20571:50;20603:17;20571:31;:50;;;;;;;20566:142;;20638:58;;-1:-1:-1;;;;;20638:35:0;;;20674:21;20638:58;;;;;;;;;20674:21;20638:35;:58;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20638:58:0;20566:142;20732:16;20728:107;;;20770:53;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20770:53:0;;;;;;;;;;;;;;;;;;;20728:107;-1:-1:-1;20893:17:0;;;;;;;;:10;:17;;;;;;;;;;-1:-1:-1;;;;;20855:19:0;;;;;;:9;:19;;;;;:27;;;;;;;;;;;;;:34;;;;;;;;;:55;;;;;;;;20958:17;;20921:24;;;:14;:24;;;;;:32;;;;;;;;;:55;;;;;;;-1:-1:-1;;20351:633:0:o;14224:1909::-;-1:-1:-1;;;;;14343:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:59;;:66;14412:1;-1:-1:-1;14339:166:0;;;14437:56;14454:15;14471:11;14484:1;14487:5;14437:16;:56::i;14339:166::-;-1:-1:-1;;;;;14553:22:0;;;14547:5;14553:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;14547:61;;;;;;;;:77;;;:70;;;;:77;;;;;;14553:54;14547:97;14525:119;;;;;;;;;;;;;;;;;:19;;:119;;;14547:97;14525:119;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14525:119:0;;;;;;;;;;;;;;;;;;;;;;;14669:2;:9;14682:1;14669:14;14665:501;;;14713:15;-1:-1:-1;;;;;14704:24:0;:2;14707:1;14704:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14704:24:0;;:69;;;;14758:15;-1:-1:-1;;;;;14749:24:0;:2;14752:1;14749:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14749:24:0;;14704:69;14700:455;;;-1:-1:-1;;;;;14800:22:0;;;14794:5;14800:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;14794:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;14794:106:0;;;;;;14700:455;;;14926:2;:9;14939:1;14926:14;14922:233;;;14974:15;-1:-1:-1;;;;;14965:24:0;:2;14968:1;14965:5;;;;;;;;;;;;;;-1:-1:-1;;;;;14965:24:0;;14961:179;;;-1:-1:-1;;;;;15020:22:0;;;15014:5;15020:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;15014:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;15014:106:0;;;;;;14961:179;15247:16;;;15261:1;15247:16;;;;;;;;;;-1:-1:-1;;;;;15186:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:77;;;;:58;;;;;15247:16;15186:77;:::i;:::-;-1:-1:-1;15336:16:0;;;15350:1;15336:16;;;;;;;;;;-1:-1:-1;;;;;15274:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:78;;;;:59;;;;;15336:16;15274:78;:::i;:::-;-1:-1:-1;;;;;;15363:22:0;;15423:1;15363:22;;;;;;;;;;;:38;;;;;;:31;;;:38;;;;;:49;;:62;;-1:-1:-1;;;;;;15363:62:0;;;;15481:7;;15443:46;;;;:37;;;;:46;;;;;;;;15442:47;:70;;;;-1:-1:-1;15493:19:0;;;762:2;15493:19;;15442:70;15438:156;;;-1:-1:-1;;;;;15529:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;15529:53:0;15578:4;15529:53;;;15438:156;-1:-1:-1;;;;;15606:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;;;:38;;;;;;:52;;:54;;;;;;15704:5;;;;15685:24;15681:445;;15726:27;15756:42;15775:15;15792:5;15756:18;:42::i;:::-;15820:69;;;15880:1;15820:69;;;;;;;;;;;15726:72;;-1:-1:-1;;;;;;15820:69:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;15820:69:0;;;;;;;;15904:61;15921:15;15938:19;15959:5;15904:16;:61::i;:::-;15681:445;;;;16012:5;;16003:50;;;16044:1;16003:50;;;;;;;;;;;-1:-1:-1;;;;;16003:50:0;;;;16027:1;;16012:5;;;-1:-1:-1;;;;;;;;;;;16003:50:0;;;;;;;;;;16085:5;;16068:46;;-1:-1:-1;;;;;16085:5:0;16092:11;16105:1;16108:5;16068:16;:46::i;:::-;14224:1909;;;;:::o;12595:1617::-;12705:2;12700:1505;;-1:-1:-1;;;;;12730:22:0;;12724:5;12730:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;12724:5;;12730:58;12724:5;;12730:61;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12730:61:0;;;12724:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;12730:61;12724:104;;;27:10:-1;;23:18;;;45:23;;12724:122:0;;;;;;;;;-1:-1:-1;;;;;;12724:122:0;;;;;;;12892:22;;;;;;;;;;;:38;;;:31;:38;;;;;:58;;;:61;;:58;;12730:61;12892;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12977:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;12892:61;12977:58;:61;;12892;;;;12866:218;;;;-1:-1:-1;;;;;;;;;;;12866:218:0;12955:1;;12958:5;;12892:61;;;12977:58;12892:61;;12977;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12977:61:0;12971:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;12977:61;12971:104;:111;12866:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13104:176:0;;;13167:5;13173:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;13104:176;;;;;-1:-1:-1;;;;;;;;;;;13104:176:0;13147:1;;13150:5;;13167;;13173:58;13167:5;;13173:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13173:61:0;13167:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;13173:61;13167:104;:111;13104:176;;;;;;;;;;;;;;;;;13157:1;:122;;;13104:176;;;;;;;;;;;;;;-1:-1:-1;;;;;13381:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:58;;:5;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13328:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;13328:114:0;13381:61;;;;13328:114;;;12700:1505;;;-1:-1:-1;;;;;13481:22:0;;13475:5;13481:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;13475:5;;13481:58;:61;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13481:61:0;;;13475:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;13481:61;13475:104;;;27:10:-1;;23:18;;;45:23;;13475:122:0;;;;;;;;;-1:-1:-1;;;;;;13475:122:0;;;;;;;13643:22;;;;;;;;;;;:38;;;:31;:38;;;:58;;:61;;:58;;13481:61;13643;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13728:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;13643:61;13728:58;;;:61;;13643;;;;13617:218;;;;-1:-1:-1;;;;;;;;;;;13617:218:0;13706:1;;13709:5;;13643:61;;13728:58;;13643:61;13728;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13728:61:0;13722:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;13728:61;13722:104;:111;13617:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13855:176:0;;;13918:5;13924:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;13855:176;;;;;-1:-1:-1;;;;;;;;;;;13855:176:0;13898:1;;13901:5;;13918;;;;13924:58;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13924:61:0;13918:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;13924:61;13918:104;:111;13855:176;;;;;;;;;;;;;;;;;13908:1;:122;;;13855:176;;;;;;;;;;;;;;-1:-1:-1;;;;;14132:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14079:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;14079:114:0;14132:61;;;;14079:114;;;12595:1617;;;;:::o;19270:1073::-;19374:7;;19419:11;19374:7;19487:1;19477:11;;;;19473:863;;;19505:394;-1:-1:-1;;;;;19541:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;19537:347;;;19610:43;;;19644:1;19610:43;;;;;;;;;;;-1:-1:-1;;;;;19610:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19733:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;19695:4;19537:347;;;19837:8;;-1:-1:-1;19847:16:0;-1:-1:-1;19829:35:0;;19537:347;19505:394;;19473:863;-1:-1:-1;;;;;19967:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;19963:347;;;20036:43;;;20070:1;20036:43;;;;;;;;;;;-1:-1:-1;;;;;20036:43:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20159:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;20121:4;19931:394;;19270:1073;;;;;;;;:::o;27:21130::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;27:21130:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;27:21130:0;-1:-1:-1;;;;;27:21130:0;;;;;;;;;;;-1:-1:-1;27:21130:0;;;;;;;-1:-1:-1;27:21130:0;;;-1:-1:-1;27:21130:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;27:21130:0;;;;;;

Swarm Source

bzzr://4cfcbd8789b3f65f21a5715958e09784f88eb68f16533db171dfbd91057d29ba

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.