ETH Price: $2,126.96 (-0.66%)
Gas: 0.13 Gwei

Contract

0x68FA5fBE4767EE190b69C952B8C461D3f4e95F4E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Invest112811262020-11-18 9:31:581948 days ago1605691918IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0019062562
Set Limits112810242020-11-18 9:06:291948 days ago1605690389IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0014439848
Set Limits112809982020-11-18 9:01:061948 days ago1605690066IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0015636952.00000145
Reinvest112809982020-11-18 9:01:061948 days ago1605690066IN
0x68FA5fBE...3f4e95F4E
100 ETH0.0008180736.96000024
Recieve112808602020-11-18 8:33:571948 days ago1605688437IN
0x68FA5fBE...3f4e95F4E
2.35 ETH0.0076835962
Re Calculate Imp...112796082020-11-18 3:52:401948 days ago1605671560IN
0x68FA5fBE...3f4e95F4E
0 ETH0.2033865473
Trigger Calculat...112795892020-11-18 3:47:331948 days ago1605671253IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0015689571.00000145
Trigger Calculat...112795872020-11-18 3:47:081948 days ago1605671228IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0069286771
Trigger Calculat...112795852020-11-18 3:46:181948 days ago1605671178IN
0x68FA5fBE...3f4e95F4E
0 ETH0.0079936771.00000145
_import112795812020-11-18 3:45:321948 days ago1605671132IN
0x68FA5fBE...3f4e95F4E
0 ETH0.2645023473.81
_import112795742020-11-18 3:43:411948 days ago1605671021IN
0x68FA5fBE...3f4e95F4E
0 ETH0.421479853.00000145
_import112795082020-11-18 3:25:591948 days ago1605669959IN
0x68FA5fBE...3f4e95F4E
0 ETH0.7194471371.00000145
_import112794922020-11-18 3:22:501948 days ago1605669770IN
0x68FA5fBE...3f4e95F4E
0 ETH0.6601352170
_import112794412020-11-18 3:11:311948 days ago1605669091IN
0x68FA5fBE...3f4e95F4E
0 ETH0.6607845771
_import112793912020-11-18 3:00:341948 days ago1605668434IN
0x68FA5fBE...3f4e95F4E
0 ETH0.4801034964.00000145

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-112811262020-11-18 9:31:581948 days ago1605691918
0x68FA5fBE...3f4e95F4E
102.2325 ETH
-112808602020-11-18 8:33:571948 days ago1605688437
0x68FA5fBE...3f4e95F4E
0.1175 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PrestigeClub

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-18
*/

pragma solidity 0.6.8;


// SPDX-License-Identifier: MIT


library SafeMath128{

    //Custom addition
    function safemul(uint128 a, uint128 b) internal pure returns (uint128) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint128 c = a * b;
        if(!(c / a == b)){
            c = (2**128)-1;
        }

        return c;
    }
}

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath104 {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint112 a, uint112 b) internal pure returns (uint112) {
        uint112 c = a + b;
        if(!(c >= a)){
            c = (2**112)-1;
        }
        require(c >= a, "addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint112 a, uint112 b) internal pure returns (uint112) {
        if(!(b <= a)){
            return 0;
        }
        uint112 c = a - b;

        return c;
    }

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

        uint112 c = a * b;
        if(!(c / a == b)){
            c = (2**112)-1;
        }

        return c;
    }


    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint112 a, uint112 b) internal pure returns (uint112) {
        require(b > 0, "div by zero");
        uint112 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == msg.sender, "Caller is not the owner");
        _;
    }
    
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "New owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

//Restrictions:
//only 2^32 Users
//Maximum of 2^104 / 10^18 Ether investment. Theoretically 20 Trl Ether, practically 100000000000 Ether compiles
//Maximum of (2^104 / 10^18 Ether) investment. Theoretically 20 Trl Ether, practically 100000000000 Ether compiles
contract PrestigeClub is Ownable() {

    using SafeMath104 for uint112;
    using SafeMath128 for uint128;

    struct User {
        uint112 deposit; //265 bits together
        uint112 payout;
        uint32 position;
        uint8 qualifiedPools;
        uint8 downlineBonus;
        address referer;
        address[] referrals;

        uint112 directSum;
        uint40 lastPayout;

        uint112[5] downlineVolumes;
    }
    
    event NewDeposit(address indexed addr, uint112 amount);
    event PoolReached(address indexed addr, uint8 pool);
    event DownlineBonusStageReached(address indexed adr, uint8 stage);
    
    event Payout(address indexed addr, uint112 interest, uint112 direct, uint112 pool, uint112 downline, uint40 dayz); 
    
    event Withdraw(address indexed addr, uint112 amount);
    
    mapping (address => User) public users;
    address[] public userList;

    uint32 public lastPosition;
    
    uint128 public depositSum;
    
    Pool[8] public pools;
    
    struct Pool {
        uint112 minOwnInvestment;
        uint8 minDirects;
        uint112 minSumDirects;
        uint8 payoutQuote; //ppm
        uint32 numUsers;
    }

    PoolState[] public states;

    struct PoolState {
        uint128 totalDeposits;
        uint32 totalUsers;
        uint32[8] numUsers;
    }
    
    DownlineBonusStage[4] downlineBonuses;
    
    struct DownlineBonusStage {
        uint32 minPool;
        uint64 payoutQuote; //ppm
    }
    
    uint40 public pool_last_draw;
    
    constructor() public {
 
        uint40 timestamp = uint40(block.timestamp);
        pool_last_draw = timestamp - (timestamp % payout_interval) - (2 * payout_interval);


        pools[0] = Pool(3 ether, 1, 3 ether, 130, 0);
        pools[1] = Pool(15 ether, 3, 5 ether, 130, 0);
        pools[2] = Pool(15 ether, 4, 44 ether, 130, 0);
        pools[3] = Pool(30 ether, 10, 105 ether, 130, 0);
        pools[4] = Pool(45 ether, 15, 280 ether, 130, 0);
        pools[5] = Pool(60 ether, 20, 530 ether, 130, 0);
        pools[6] = Pool(150 ether, 20, 1470 ether, 80, 0);
        pools[7] = Pool(300 ether, 20, 2950 ether, 80, 0);

        downlineBonuses[0] = DownlineBonusStage(3, 50);
        downlineBonuses[1] = DownlineBonusStage(4, 100);
        downlineBonuses[2] = DownlineBonusStage(5, 160);
        downlineBonuses[3] = DownlineBonusStage(6, 210);

        userList.push(address(0));
        
    }
    
    uint112 internal minDeposit = 1 ether;
    uint112 internal minWithdraw = 1000 wei; 
    
    uint40 constant internal payout_interval = 1 days;
    
    function recieve() public payable {
        require((users[msg.sender].deposit * 20 / 19) >= minDeposit || msg.value >= minDeposit, "Mininum deposit value not reached");
        
        address sender = msg.sender;

        uint112 value = uint112(msg.value).mul(19) / 20;

        bool userExists = users[sender].position != 0;
        
        triggerCalculation();

        // Create a position for new accounts
        if(!userExists){
            lastPosition++;
            users[sender].position = lastPosition;
            users[sender].lastPayout = (pool_last_draw + 1);
            userList.push(sender);
        }

        address referer = users[sender].referer; //can put outside because referer is always set since setReferral() gets called before recieve() in recieve(address)

        if(referer != address(0)){
            updateUpline(sender, referer, value);
        }

        //Update Payouts
        if(userExists){
            updatePayout(sender);
        }

        users[sender].deposit = users[sender].deposit.add(value);
        
        //Transfer fee
        payable(owner()).transfer(msg.value - value);
        
        emit NewDeposit(sender, value);
        
        updateUserPool(sender);
        updateDownlineBonusStage(sender);
        if(referer != address(0)){
            users[referer].directSum = users[referer].directSum.add(value);

            updateUserPool(referer);
            updateDownlineBonusStage(referer);
        }
        
        depositSum = depositSum + value; //Won´t do an overflow since value is uint112 and depositSum 128

    }
    
    
    function recieve(address referer) public payable {
        
        _setReferral(referer);
        recieve();
        
    }

    uint8 public downlineLimit = 31;

    function updateUpline(address reciever, address adr, uint112 addition) private {
        
        address current = adr;
        uint8 bonusStage = users[reciever].downlineBonus;
        
        uint8 downlineLimitCounter = downlineLimit - 1;
        
        while(current != address(0) && downlineLimitCounter > 0){

            updatePayout(current);

            users[current].downlineVolumes[bonusStage] = users[current].downlineVolumes[bonusStage].add(addition);
            uint8 currentBonus = users[current].downlineBonus;
            if(currentBonus > bonusStage){
                bonusStage = currentBonus;
            }

            current = users[current].referer;
            downlineLimitCounter--;
        }
        
    }
    
    function updatePayout(address adr) private {
        
        uint40 dayz = (uint40(block.timestamp) - users[adr].lastPayout) / (payout_interval);
        if(dayz >= 1){
            
            uint112 interestPayout = getInterestPayout(adr);
            uint112 poolpayout = getPoolPayout(adr, dayz);
            uint112 directsPayout = getDirectsPayout(adr);
            uint112 downlineBonusAmount = getDownlinePayout(adr);
            
            
            uint112 sum = interestPayout.add(directsPayout).add(downlineBonusAmount); 
            sum = (sum.mul(dayz)).add(poolpayout);
            
            users[adr].payout = users[adr].payout.add(sum);
            users[adr].lastPayout += (payout_interval * dayz);
            
            emit Payout(adr, interestPayout, directsPayout, poolpayout, downlineBonusAmount, dayz);
            
        }
    }
    
    function getInterestPayout(address adr) public view returns (uint112){
        //Calculate Base Payouts
        uint8 quote;
        uint112 deposit = users[adr].deposit;
        if(deposit >= 30 ether){
            quote = 15;
        }else{
            quote = 10;
        }
        
        return deposit.mul(quote) / 10000;
    }
    
    function getPoolPayout(address adr, uint40 dayz) public view returns (uint112){

        uint40 length = (uint40)(states.length);

        uint112 poolpayout = 0;

        if(users[adr].qualifiedPools > 0){
            for(uint40 day = length - dayz ; day < length ; day++){


                uint32 numUsers = states[day].totalUsers;
                uint112 streamline = uint112(states[day].totalDeposits.safemul(numUsers - users[adr].position)).div(numUsers);


                uint112 payout_day = 0; //TODO Merge into poolpayout, only for debugging
                uint32 stateNumUsers = 0;
                for(uint8 j = 0 ; j < users[adr].qualifiedPools ; j++){
                    uint112 pool_base = streamline.mul(pools[j].payoutQuote) / 1000000;

                    stateNumUsers = states[day].numUsers[j];

                    if(stateNumUsers != 0){
                        payout_day += pool_base.div(stateNumUsers);
                    }
                }

                poolpayout = poolpayout.add(payout_day);

            }
        }
        
        return poolpayout;
    }

    function getDownlinePayout(address adr) public view returns (uint112){

        //Calculate Downline Bonus
        uint112 downlinePayout = 0;
        
        uint8 downlineBonus = users[adr].downlineBonus;
        
        if(downlineBonus > 0){
            
            uint64 ownPercentage = downlineBonuses[downlineBonus - 1].payoutQuote;

            for(uint8 i = 0 ; i < downlineBonus; i++){

                uint64 quote = 0;
                if(i > 0){
                    quote = downlineBonuses[i - 1].payoutQuote;
                }else{
                    quote = 0;
                }

                uint64 percentage = ownPercentage - quote;
                if(percentage > 0){ //Requiring positivity and saving gas for 0, since that returns 0

                    downlinePayout = downlinePayout.add(users[adr].downlineVolumes[i].mul(percentage) / 1000000); 

                }

            }

            if(downlineBonus == 4){
                downlinePayout = downlinePayout.add(users[adr].downlineVolumes[downlineBonus].mul(50) / 1000000);
            }

        }

        return downlinePayout;
        
    }

    function getDirectsPayout(address adr) public view returns (uint112) {
        
        //Calculate Directs Payouts
        uint112 directsDepositSum = users[adr].directSum;

        uint112 directsPayout = directsDepositSum.mul(5) / 10000;

        return (directsPayout);
        
    }

    function pushPoolState() private {
        uint32[8] memory temp;
        for(uint8 i = 0 ; i < 8 ; i++){
            temp[i] = pools[i].numUsers;
        }
        states.push(PoolState(depositSum, lastPosition, temp));
        pool_last_draw += payout_interval;
    }
    
    function updateUserPool(address adr) private {
        
        if(users[adr].qualifiedPools < pools.length){
            
            uint8 poolnum = users[adr].qualifiedPools;
            
            uint112 sumDirects = users[adr].directSum;
            
            //Check if requirements for next pool are met
            if(users[adr].deposit >= pools[poolnum].minOwnInvestment && users[adr].referrals.length >= pools[poolnum].minDirects && sumDirects >= pools[poolnum].minSumDirects){
                users[adr].qualifiedPools = poolnum + 1;
                pools[poolnum].numUsers++;
                
                emit PoolReached(adr, poolnum + 1);
                
                updateUserPool(adr);
            }
            
        }
        
    }
    
    function updateDownlineBonusStage(address adr) private {

        uint8 bonusstage = users[adr].downlineBonus;

        if(bonusstage < downlineBonuses.length){

            //Check if requirements for next stage are met
            if(users[adr].qualifiedPools >= downlineBonuses[bonusstage].minPool){
                users[adr].downlineBonus += 1;
                
                //Update data in upline
                uint112 value = users[adr].deposit;  //Value without current stage, since that must not be subtracted

                for(uint8 i = 0 ; i <= bonusstage ; i++){
                    value = value.add(users[adr].downlineVolumes[i]);
                }

                uint8 currentBonusStage = bonusstage + 1;
                uint8 lastBonusStage = bonusstage;

                address current = users[adr].referer;
                while(current != address(0)){

                    
                    users[current].downlineVolumes[lastBonusStage] = users[current].downlineVolumes[lastBonusStage].sub(value);
                    users[current].downlineVolumes[currentBonusStage] = users[current].downlineVolumes[currentBonusStage].add(value);

                    uint8 currentDB = users[current].downlineBonus;
                    if(currentDB > currentBonusStage){
                        currentBonusStage = currentDB;
                    }
                    if(currentDB > lastBonusStage){
                        lastBonusStage = currentDB;
                    }

                    if(lastBonusStage == currentBonusStage){
                        break;
                    }

                    current = users[current].referer;
                }

                emit DownlineBonusStageReached(adr, users[adr].downlineBonus);
                
                updateDownlineBonusStage(adr);
            }
        }
        
    }
    
    function calculateDirects(address adr) external view returns (uint112, uint32) {
        
        address[] memory referrals = users[adr].referrals;
        
        uint112 sum = 0;
        for(uint32 i = 0 ; i < referrals.length ; i++){
            sum = sum.add(users[referrals[i]].deposit);
        }
        
        return (sum, (uint32)(referrals.length));
        
    }
    
    //Endpoint to withdraw payouts
    function withdraw(uint112 amount) public {
        
        updatePayout(msg.sender);

        require(amount > minWithdraw, "Minimum Withdrawal amount not met");
        require(users[msg.sender].payout >= amount, "Not enough payout available");
        
        uint112 transfer = amount * 19 / 20;
        
        users[msg.sender].payout -= amount;
        
        payable(msg.sender).transfer(transfer);
        
        payable(owner()).transfer(amount - transfer);
        
        emit Withdraw(msg.sender, amount);
        
    }

    function _setReferral(address referer) private {
        
        if(users[msg.sender].referer == referer){
            return;
        }
        
        if(users[msg.sender].position != 0 && users[msg.sender].position < users[referer].position) {
            return;
        }
        
        require(users[msg.sender].referer == address(0), "Referer can only be set once");
        require(users[referer].position > 0, "Referer does not exist");
        require(msg.sender != referer, "Cant set oneself as referer");
        
        users[referer].referrals.push(msg.sender);
        users[msg.sender].referer = referer;

        if(users[msg.sender].deposit > 0){
            users[referer].directSum = users[referer].directSum.add(users[msg.sender].deposit);
        }
        
    }
    
    
    function invest(uint amount) public onlyOwner {
        
        payable(owner()).transfer(amount);
    }
    
    function reinvest() public payable onlyOwner {
    }
    
    function setLimits(uint112 _minDeposit, uint112 _minWithdrawal) public onlyOwner {
        minDeposit = _minDeposit;
        minWithdraw = _minWithdrawal;
    }

    function setDownlineLimit(uint8 limit) public onlyOwner {
        downlineLimit = limit;
    }

    //Only for BO
    function getDownline() external view returns (uint112, uint){
        uint112 sum;
        for(uint8 i = 0 ; i < users[msg.sender].downlineVolumes.length ; i++){
            sum += users[msg.sender].downlineVolumes[i];
        }

        uint numUsers = getDownlineUsers(msg.sender);

        return (sum, numUsers);
    }

    function getDownlineUsers(address adr) public view returns (uint128){

        uint128 sum = 0;
        uint32 length = uint32(users[adr].referrals.length);
        sum += length;
        for(uint32 i = 0; i < length ; i++){
            sum += getDownlineUsers(users[adr].referrals[i]);
        }
        return sum;
    }
    
    function reCalculateImported(uint64 from, uint64 to) public onlyOwner {
        uint40 time = pool_last_draw + 1;
        for(uint64 i = from ; i < to + 1 ; i++){
            address adr = userList[i];
            users[adr].payout = 0;
            users[adr].lastPayout = time;
            updatePayout(adr);
        }
    }
    
    function _import(address[] memory sender, uint112[] memory deposit, address[] memory referer) public onlyOwner {
        for(uint64 i = 0 ; i < sender.length ; i++){
            importUser(sender[i], deposit[i], referer[i]);
        }
    }
    
    function importUser(address sender, uint112 deposit, address referer) internal onlyOwner {
        
        if(referer != address(0)){
            users[referer].referrals.push(sender);
            users[sender].referer = referer;
        }

        uint112 value = deposit;

        // Create a position for new accounts
        lastPosition++;
        users[sender].position = lastPosition;
        users[sender].lastPayout = pool_last_draw;
        userList.push(sender);

        if(referer != address(0)){
            updateUpline(sender, referer, value);
        }

        users[sender].deposit += value;
        
        emit NewDeposit(sender, value);
        
        updateUserPool(sender);
        updateDownlineBonusStage(sender);
        
        if(referer != address(0)){
            users[referer].directSum += value;
    
            updateUserPool(referer);
            updateDownlineBonusStage(referer);
        }
        
        depositSum += value;
        
    }

    function getUserReferrals(address adr) public view returns (address[] memory referrals){
        return users[adr].referrals;
    }
    
    function getUserList() public view returns (address[] memory){  
        return userList;
    }
    
    function triggerCalculation() public {
        if(block.timestamp > pool_last_draw + payout_interval){
            pushPoolState();
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"adr","type":"address"},{"indexed":false,"internalType":"uint8","name":"stage","type":"uint8"}],"name":"DownlineBonusStageReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"amount","type":"uint112"}],"name":"NewDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"interest","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"direct","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"pool","type":"uint112"},{"indexed":false,"internalType":"uint112","name":"downline","type":"uint112"},{"indexed":false,"internalType":"uint40","name":"dayz","type":"uint40"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint8","name":"pool","type":"uint8"}],"name":"PoolReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint112","name":"amount","type":"uint112"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address[]","name":"sender","type":"address[]"},{"internalType":"uint112[]","name":"deposit","type":"uint112[]"},{"internalType":"address[]","name":"referer","type":"address[]"}],"name":"_import","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"calculateDirects","outputs":[{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositSum","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"downlineLimit","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDirectsPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDownline","outputs":[{"internalType":"uint112","name":"","type":"uint112"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDownlinePayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getDownlineUsers","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getInterestPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"},{"internalType":"uint40","name":"dayz","type":"uint40"}],"name":"getPoolPayout","outputs":[{"internalType":"uint112","name":"","type":"uint112"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getUserReferrals","outputs":[{"internalType":"address[]","name":"referrals","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"invest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastPosition","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool_last_draw","outputs":[{"internalType":"uint40","name":"","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"pools","outputs":[{"internalType":"uint112","name":"minOwnInvestment","type":"uint112"},{"internalType":"uint8","name":"minDirects","type":"uint8"},{"internalType":"uint112","name":"minSumDirects","type":"uint112"},{"internalType":"uint8","name":"payoutQuote","type":"uint8"},{"internalType":"uint32","name":"numUsers","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"from","type":"uint64"},{"internalType":"uint64","name":"to","type":"uint64"}],"name":"reCalculateImported","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"referer","type":"address"}],"name":"recieve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"recieve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reinvest","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint8","name":"limit","type":"uint8"}],"name":"setDownlineLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint112","name":"_minDeposit","type":"uint112"},{"internalType":"uint112","name":"_minWithdrawal","type":"uint112"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"states","outputs":[{"internalType":"uint128","name":"totalDeposits","type":"uint128"},{"internalType":"uint32","name":"totalUsers","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerCalculation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint112","name":"deposit","type":"uint112"},{"internalType":"uint112","name":"payout","type":"uint112"},{"internalType":"uint32","name":"position","type":"uint32"},{"internalType":"uint8","name":"qualifiedPools","type":"uint8"},{"internalType":"uint8","name":"downlineBonus","type":"uint8"},{"internalType":"address","name":"referer","type":"address"},{"internalType":"uint112","name":"directSum","type":"uint112"},{"internalType":"uint40","name":"lastPayout","type":"uint40"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint112","name":"amount","type":"uint112"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405260198054600160281b600160981b0319166c0de0b6b3a76400000000000000179055601a80546103e86001600160701b03199091161760ff60701b1916601f60701b17905534801561005557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350426202a3006201518064ffffffffff83166019805464ffffffffff19169290910684039290920364ffffffffff161790556040805160a0810182526729a2241af62c000080825260016020830152918101919091526082606082015260006080820181905260049082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001938401805463ffffffff191663ffffffff909216919091179055815160a08101835267d02ab486cedc00008152600391810191909152674563918244f400009181019190915260829281019290925260009282019290925290600490825160029182029290920180546020808601516040808801516060808a01516001600160701b03199096166001600160701b03998a161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b99909216989098021760ff60e81b1916600160e81b92909416919091029290921783556080958601516001909301805463ffffffff191663ffffffff90941693909317909255805160a08101825267d02ab486cedc0000815260049281018390526802629f66e0c53000009181019190915260829381019390935260009383019390935290919082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a0810182526801a055690d9db800008152600a928101929092526805b12aefafa8040000908201526082918101919091526000918101919091526004600382516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680270801d946c9400008152600f92810192909252680f2dc7d47f156000009082015260829181019190915260009181019190915260048082516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680340aad21b3b7000008152601492810192909252681cbb3a3ff08d080000908201526082918101919091526000918101919091526004600582516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252680821ab0d44149800008152601492810192909252684fb0591b9b30380000908201526050918101919091526000918101919091526004600682516002919091029190910180546020808501516040808701516060808901516001600160701b03199096166001600160701b039889161760ff60701b1916600160701b60ff9586160217600160781b600160e81b031916600160781b98909216979097021760ff60e81b1916600160e81b92909416919091029290921783556080948501516001909301805463ffffffff191663ffffffff90941693909317909255805160a081018252681043561a88293000008152601492810192909252689feb795a3aea5800009082015260509181019190915260009181019190915260046007825160029190910291909101805460208085015160408087015160608801516001600160701b03199095166001600160701b039788161760ff60701b1916600160701b60ff9485160217600160781b600160e81b031916600160781b97909116969096029590951760ff60e81b1916600160e81b91909316029190911782556080909301516001909101805463ffffffff191663ffffffff909216919091179055805180820190915260038152603291810191909152601560008251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff1990921691909117929092169190911790556040805180820190915260048152606491810191909152601560018251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff199092169190911792909216919091179055604080518082019091526005815260a091810191909152601560028251910180546020938401516001600160401b031664010000000002600160201b600160601b031963ffffffff90941663ffffffff199092169190911792909216919091179055604080518082019091526006815260d291810191909152601560038251910180546020909301516001600160401b031664010000000002600160201b600160601b031963ffffffff90931663ffffffff19909416939093179190911691909117905550600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916905561303d806109b06000396000f3fe6080604052600436106101c25760003560e01c80639f4216e8116100f7578063b1c2bec111610095578063bebb1f7211610064578063bebb1f7214610938578063ece773841461094d578063f2fde38b14610980578063fdb5a03e146109b3576101c2565b8063b1c2bec114610874578063b8522043146108b4578063b9aa0429146108c9578063bb6f2ca514610905576101c2565b8063a60b73f2116100d1578063a60b73f21461073e578063a87430ba14610764578063a9e10bf2146107ff578063ac4afa3814610807576101c2565b80639f4216e8146106aa578063a041913d146106d4578063a19834161461070f576101c2565b80634bcbc3e611610164578063575cea6b1161013e578063575cea6b1461059e5780637c59f6cb146106215780638da5cb5b1461064c578063936248bf1461067d576101c2565b80634bcbc3e6146104da5780634bd62586146105125780634e53385a1461056d576101c2565b806325fced97116101a057806325fced971461041c5780632afcf4801461044a5780633bc0e4b8146104745780634818a49c146104a7576101c2565b8063017a9105146101c7578063131c1789146102195780631737536a14610268575b600080fd5b3480156101d357600080fd5b506101f1600480360360208110156101ea57600080fd5b50356109bb565b604080516001600160801b03909316835263ffffffff90911660208301528051918290030190f35b34801561022557600080fd5b5061024c6004803603602081101561023c57600080fd5b50356001600160a01b03166109f5565b604080516001600160701b039092168252519081900360200190f35b34801561027457600080fd5b5061041a6004803603606081101561028b57600080fd5b810190602081018135600160201b8111156102a557600080fd5b8201836020820111156102b757600080fd5b803590602001918460208302840111600160201b831117156102d857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561032757600080fd5b82018360208201111561033957600080fd5b803590602001918460208302840111600160201b8311171561035a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103a957600080fd5b8201836020820111156103bb57600080fd5b803590602001918460208302840111600160201b831117156103dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610bc2945050505050565b005b34801561042857600080fd5b50610431610c95565b6040805163ffffffff9092168252519081900360200190f35b34801561045657600080fd5b5061041a6004803603602081101561046d57600080fd5b5035610ca1565b34801561048057600080fd5b5061041a6004803603602081101561049757600080fd5b50356001600160701b0316610d32565b3480156104b357600080fd5b5061024c600480360360208110156104ca57600080fd5b50356001600160a01b0316610f06565b3480156104e657600080fd5b506104ef610f59565b604080516001600160701b03909316835260208301919091528051918290030190f35b34801561051e57600080fd5b506105456004803603602081101561053557600080fd5b50356001600160a01b0316610fde565b604080516001600160701b03909316835263ffffffff90911660208301528051918290030190f35b34801561057957600080fd5b506105826110d7565b604080516001600160801b039092168252519081900360200190f35b3480156105aa57600080fd5b506105d1600480360360208110156105c157600080fd5b50356001600160a01b03166110ed565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561060d5781810151838201526020016105f5565b505050509050019250505060405180910390f35b34801561062d57600080fd5b50610636611166565b6040805160ff9092168252519081900360200190f35b34801561065857600080fd5b50610661611176565b604080516001600160a01b039092168252519081900360200190f35b34801561068957600080fd5b5061041a600480360360208110156106a057600080fd5b503560ff16611186565b3480156106b657600080fd5b50610661600480360360208110156106cd57600080fd5b50356111f3565b3480156106e057600080fd5b5061041a600480360360408110156106f757600080fd5b506001600160701b038135811691602001351661121a565b34801561071b57600080fd5b506107246112ae565b6040805164ffffffffff9092168252519081900360200190f35b61041a6004803603602081101561075457600080fd5b50356001600160a01b03166112bb565b34801561077057600080fd5b506107976004803603602081101561078757600080fd5b50356001600160a01b03166112cf565b604080516001600160701b03998a168152978916602089015263ffffffff9096168787015260ff94851660608801529290931660808601526001600160a01b031660a0850152931660c083015264ffffffffff90921660e08201529051908190036101000190f35b61041a611340565b34801561081357600080fd5b506108316004803603602081101561082a57600080fd5b503561172d565b604080516001600160701b03968716815260ff958616602082015293909516838601529216606082015263ffffffff909116608082015290519081900360a00190f35b34801561088057600080fd5b5061024c6004803603604081101561089757600080fd5b5080356001600160a01b0316906020013564ffffffffff1661177d565b3480156108c057600080fd5b506105d16119b4565b3480156108d557600080fd5b5061041a600480360360408110156108ec57600080fd5b5067ffffffffffffffff81358116916020013516611a16565b34801561091157600080fd5b5061024c6004803603602081101561092857600080fd5b50356001600160a01b0316611b15565b34801561094457600080fd5b5061041a611b76565b34801561095957600080fd5b506105826004803603602081101561097057600080fd5b50356001600160a01b0316611b99565b34801561098c57600080fd5b5061041a600480360360208110156109a357600080fd5b50356001600160a01b0316611c2b565b61041a611d2e565b601481815481106109c857fe5b60009182526020909120600290910201546001600160801b0381169150600160801b900463ffffffff1682565b6001600160a01b0381166000908152600160208190526040822001548190610100900460ff168015610bbb57600060156001830360ff1660048110610a3657fe5b0154600160201b900467ffffffffffffffff16905060005b8260ff168160ff161015610b4857600060ff821615610a945760156001830360ff1660048110610a7a57fe5b0154600160201b900467ffffffffffffffff169050610a98565b5060005b80830367ffffffffffffffff811615610b3e576001600160a01b0388166000908152600160205260409020610b3b90620f424090610b139067ffffffffffffffff85169060040160ff881660058110610aed57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611d7b565b6001600160701b031681610b2357fe5b6001600160701b03891691900463ffffffff611dcf16565b95505b5050600101610a4e565b508160ff1660041415610bb9576001600160a01b0385166000908152600160205260409020610bb690620f424090610b8e9060329060040160ff871660058110610aed57fe5b6001600160701b031681610b9e57fe5b6001600160701b03861691900463ffffffff611dcf16565b92505b505b5092915050565b6000546001600160a01b03163314610c0f576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60005b83518167ffffffffffffffff161015610c8f57610c87848267ffffffffffffffff1681518110610c3e57fe5b6020026020010151848367ffffffffffffffff1681518110610c5c57fe5b6020026020010151848467ffffffffffffffff1681518110610c7a57fe5b6020026020010151611e4d565b600101610c12565b50505050565b60035463ffffffff1681565b6000546001600160a01b03163314610cee576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b610cf6611176565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d2e573d6000803e3d6000fd5b5050565b610d3b33612103565b601a546001600160701b0390811690821611610d885760405162461bcd60e51b8152600401808060200182810382526021815260200180612fe76021913960400191505060405180910390fd5b336000908152600160205260409020546001600160701b03808316600160701b909204161015610dff576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768207061796f757420617661696c61626c650000000000604482015290519081900360640190fd5b3360008181526001602052604080822080546001600160701b03600160701b8083048216889003821602600160701b600160e01b0319909216919091179091559051601460138602831604939291841680156108fc0292909190818181858888f19350505050158015610e76573d6000803e3d6000fd5b50610e7f611176565b6001600160a01b03166108fc8284036001600160701b03169081150290604051600060405180830381858888f19350505050158015610ec2573d6000803e3d6000fd5b50604080516001600160701b0384168152905133917f8e744e2dd83c4621a543ae247f4270575c80f8a1f47342770b3c74b539fe5a25919081900360200190a25050565b6001600160a01b0381166000908152600160205260408120600301546001600160701b031681612710610f4083600563ffffffff611d7b16565b6001600160701b031681610f5057fe5b04949350505050565b60008080805b336000526001602052600560ff82161015610fbf5733600090815260016020526040902060040160ff821660058110610f9457fe5b60028104909101546001600160701b03600e6001938416026101000a90910416929092019101610f5f565b506000610fcb33611b99565b919350506001600160801b031690509091565b6001600160a01b03811660009081526001602090815260408083206002018054825181850281018501909352808352849360609392919083018282801561104e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611030575b509394506000935083925050505b82518163ffffffff1610156110ca576110c060016000858463ffffffff168151811061108457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160701b03848116911663ffffffff611dcf16565b915060010161105c565b5090519092509050915091565b600354600160201b90046001600160801b031681565b6001600160a01b03811660009081526001602090815260409182902060020180548351818402810184019094528084526060939283018282801561115a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161113c575b50505050509050919050565b601a54600160701b900460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b031633146111d3576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b601a805460ff909216600160701b0260ff60701b19909216919091179055565b6002818154811061120057fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314611267576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6019805472ffffffffffffffffffffffffffff00000000001916650100000000006001600160701b0394851602179055601a80546001600160701b03191691909216179055565b60195464ffffffffff1681565b6112c4816122e1565b6112cc611340565b50565b60016020819052600091825260409091208054918101546003909101546001600160701b0380841693600160701b808204831694600160e01b90920463ffffffff169360ff808416946101008504909116936201000090046001600160a01b031692908216910464ffffffffff1688565b601954336000908152600160205260409020546001600160701b036501000000000090920482169160139160149082160216046001600160701b031610158061139d57506019546501000000000090046001600160701b03163410155b6113d85760405162461bcd60e51b8152600401808060200182810382526021815260200180612fc66021913960400191505060405180910390fd5b33600060146113f76001600160701b033416601363ffffffff611d7b16565b6001600160701b03168161140757fe5b6001600160a01b0384166000908152600160205260409020549190049150600160e01b900463ffffffff16151561143c611b76565b80611507576003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b038716600081815260208490526040812080546001600160e01b031693909516600160e01b0292909217845560195493909401805464ffffffffff60701b1916600160701b64ffffffffff958616850190951694909402939093179092556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690911790555b6001600160a01b038084166000908152600160208190526040909120015462010000900416801561153d5761153d8482856125ae565b811561154c5761154c84612103565b6001600160a01b03841660009081526001602052604090205461157e906001600160701b03168463ffffffff611dcf16565b6001600160a01b038516600090815260016020526040902080546001600160701b0319166001600160701b03929092169190911790556115bc611176565b6001600160a01b03166108fc846001600160701b031634039081150290604051600060405180830381858888f193505050501580156115ff573d6000803e3d6000fd5b50604080516001600160701b038516815290516001600160a01b038616917fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe7404919081900360200190a26116518461272b565b61165a846128fc565b6001600160a01b038116156116e9576001600160a01b03811660009081526001602052604090206003015461169e906001600160701b03168463ffffffff611dcf16565b6001600160a01b038216600090815260016020526040902060030180546001600160701b0319166001600160701b03929092169190911790556116e08161272b565b6116e9816128fc565b5050600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b031990921691909117905550565b6004816008811061173a57fe5b6002020180546001909101546001600160701b03808316935060ff600160701b8404811693600160781b810490921692600160e81b909204169063ffffffff1685565b6014546001600160a01b038316600090815260016020819052604082200154909190829060ff16156119aa578382035b8264ffffffffff168164ffffffffff1610156119a857600060148264ffffffffff16815481106117d957fe5b600091825260208083206002909202909101546001600160a01b038a168352600190915260408220546014805463ffffffff600160801b9094048416955061187d93869361186893600160e01b909104821685039091169164ffffffffff891690811061184257fe5b60009182526020909120600290910201546001600160801b03169063ffffffff612c8316565b6001600160701b03169063ffffffff612cd616565b9050600080805b6001600160a01b038b166000908152600160208190526040909120015460ff908116908216101561197c576000620f42406118e760048460ff16600881106118c857fe5b60020201546001600160701b03881690600160e81b900460ff16611d7b565b6001600160701b0316816118f757fe5b04905060148764ffffffffff168154811061190e57fe5b90600052602060002090600202016001018260ff166008811061192d57fe5b60088104919091015460079091166004026101000a900463ffffffff16925082156119735761196e6001600160701b03821663ffffffff80861690612cd616565b840193505b50600101611884565b506119966001600160701b0387168363ffffffff611dcf16565b955050600190930192506117ad915050565b505b9150505b92915050565b60606002805480602002602001604051908101604052809291908181526020018280548015611a0c57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119ee575b5050505050905090565b6000546001600160a01b03163314611a63576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60195464ffffffffff16600101825b8260010167ffffffffffffffff168167ffffffffffffffff161015610c8f57600060028267ffffffffffffffff1681548110611aaa57fe5b6000918252602080832091909101546001600160a01b0316808352600190915260409091208054600160701b600160e01b0319168155600301805464ffffffffff60701b1916600160701b64ffffffffff8716021790559050611b0c81612103565b50600101611a72565b6001600160a01b03811660009081526001602052604081205481906001600160701b03166801a055690d9db800008110611b5257600f9150611b57565b600a91505b612710610f406001600160701b03831660ff851663ffffffff611d7b16565b60195464ffffffffff908116620151800116421115611b9757611b97612d40565b565b6001600160a01b03811660009081526001602052604081206002015463ffffffff811690825b8163ffffffff168163ffffffff161015610bb9576001600160a01b03851660009081526001602052604090206002018054611c1f919063ffffffff8416908110611c0557fe5b6000918252602090912001546001600160a01b0316611b99565b90920191600101611bbf565b6000546001600160a01b03163314611c78576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6001600160a01b038116611cd3576040805162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b97576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60006001600160701b038316611d93575060006119ae565b8282026001600160701b038084169080861690831681611daf57fe5b046001600160701b031614611dc857506001600160701b035b9392505050565b60008282016001600160701b038085169082161015611df257506001600160701b035b836001600160701b0316816001600160701b03161015611dc8576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6000546001600160a01b03163314611e9a576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6001600160a01b03811615611f11576001600160a01b0381811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169589169586179055938252929020909101805462010000600160b01b031916620100009092029190911790555b6003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b03878116600081815260208590526040812080546001600160e01b031694909616600160e01b0293909317855560195494909501805464ffffffffff60701b191664ffffffffff909516600160701b029490941790935560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169092179091558290821615611fe357611fe38483836125ae565b6001600160a01b03841660008181526001602090815260409182902080546001600160701b031981166001600160701b0391821687018216179091558251908516815291517fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe74049281900390910190a261205b8461272b565b612064846128fc565b6001600160a01b038216156120bf576001600160a01b038216600090815260016020526040902060030180546001600160701b038082168401166001600160701b03199091161790556120b68261272b565b6120bf826128fc565b600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b0319909216919091179055505050565b6001600160a01b0381166000908152600160205260408120600301546201518090600160701b900464ffffffffff90811642031604905060018164ffffffffff1610610d2e57600061215483611b15565b90506000612162848461177d565b9050600061216f85610f06565b9050600061217c866109f5565b905060006121b28261219d6001600160701b0388168663ffffffff611dcf16565b6001600160701b03169063ffffffff611dcf16565b90506121d88461219d6001600160701b03841664ffffffffff8a1663ffffffff611d7b16565b6001600160a01b03881660009081526001602052604090205490915061220e90600160701b90046001600160701b031682611dcf565b6001600160a01b03881660008181526001602090815260409182902080546001600160701b03958616600160701b908102600160701b600160e01b03199092169190911782556003909101805464ffffffffff8382048116620151808f0201811690930264ffffffffff60701b1990911617905582518a861681528886169281019290925288851682840152938616606082015292891660808401525190917fad6cad811e3d40811ce42a12d4ede4f664396c38b44dce2d9b5b1e8ef7ebf360919081900360a00190a250505050505050565b33600090815260016020819052604090912001546001600160a01b0382811662010000909204161415612313576112cc565b33600090815260016020526040902054600160e01b900463ffffffff161580159061237057506001600160a01b0381166000908152600160205260408082205433835291205463ffffffff600160e01b9283900481169290910416105b1561237a576112cc565b33600090815260016020819052604090912001546201000090046001600160a01b0316156123ef576040805162461bcd60e51b815260206004820152601c60248201527f526566657265722063616e206f6e6c7920626520736574206f6e636500000000604482015290519081900360640190fd5b6001600160a01b038116600090815260016020526040902054600160e01b900463ffffffff1661245f576040805162461bcd60e51b8152602060048201526016602482015275149959995c995c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b336001600160a01b03821614156124bd576040805162461bcd60e51b815260206004820152601b60248201527f43616e7420736574206f6e6573656c6620617320726566657265720000000000604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208181526040808420600201805480850182559085529184209091018054336001600160a01b031990911681179091558352909120908101805462010000600160b01b0319166201000090930292909217909155546001600160701b0316156112cc5733600090815260016020526040808220546001600160a01b0384168352912060030154612571916001600160701b03918216911663ffffffff611dcf16565b6001600160a01b0391909116600090815260016020526040902060030180546001600160701b0319166001600160701b0392909216919091179055565b6001600160a01b03831660009081526001602081905260409091200154601a548391610100900460ff90811691600160701b900416600019015b6001600160a01b03831615801590612603575060008160ff16115b156127235761261183612103565b6001600160a01b038316600090815260016020526040902061266690859060040160ff85166005811061264057fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611dcf565b6001600160a01b038416600090815260016020526040902060040160ff84166005811061268f57fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0385166000908152602082905260409020015460ff91900481169083168111156126f1578092505b506001600160a01b039283166000908152600160208190526040909120015462010000900490921691600019016125e8565b505050505050565b6001600160a01b03811660009081526001602081905260409091200154600860ff90911610156112cc576001600160a01b03811660009081526001602081905260409091209081015460039091015460ff909116906001600160701b03166004826008811061279657fe5b60020201546001600160a01b0384166000908152600160205260409020546001600160701b0391821691161080159061280e575060048260ff16600881106127da57fe5b600290810291909101546001600160a01b038516600090815260016020526040902090910154600160701b90910460ff1611155b8015612842575060048260ff166008811061282557fe5b60020201546001600160701b03600160781b909104811690821610155b156128f7576001600160a01b03831660009081526001602081905260409091208101805460ff928501831660ff1990911617905560049083166008811061288557fe5b600202016001908101805463ffffffff19811663ffffffff91821684019091161790556040805191840160ff168252516001600160a01b038516917f60e1bbc5f71b269e8eea4974b783c669d335c399505e362c930a83010670a7bc916020918190039190910190a26128f78361272b565b505050565b6001600160a01b03811660009081526001602081905260409091200154610100900460ff166004811015610d2e5760158160ff166004811061293a57fe5b01546001600160a01b0383166000908152600160208190526040909120015463ffffffff90911660ff90911610610d2e576001600160a01b03821660009081526001602081905260408220808201805460ff61010080830482169095011690930261ff001990931692909217909155546001600160701b0316905b8260ff168160ff1611612a21576001600160a01b0384166000908152600160205260409020612a179060040160ff8316600581106129ef57fe5b6002810491909101546001600160701b0385811692600116600e026101000a90910416611dcf565b91506001016129b5565b506001600160a01b038084166000908152600160208190526040909120810154908401918491620100009004165b6001600160a01b03811615612c21576001600160a01b0381166000908152600160205260409020612ab390859060040160ff851660058110612a8d57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690612e9f565b6001600160a01b038216600090815260016020526040902060040160ff841660058110612adc57fe5b60029182820401919006600e026101000a8154816001600160701b0302191690836001600160701b03160217905550612b458460016000846001600160a01b03166001600160a01b031681526020019081526020016000206004018560ff166005811061264057fe5b6001600160a01b038216600090815260016020526040902060040160ff851660058110612b6e57fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0383166000908152602082905260409020015460ff9190048116908416811115612bd0578093505b8260ff168160ff161115612be2578092505b8360ff168360ff161415612bf65750612c21565b506001600160a01b039081166000908152600160208190526040909120015462010000900416612a4f565b6001600160a01b03861660008181526001602081815260409283902090910154825161010090910460ff16815291517fcf2e211ce866f42c8c8dce1304596b0b929b1e58f9315782584468eac4a4eb139281900390910190a2612723866128fc565b60006001600160801b038316612c9b575060006119ae565b8282026001600160801b038084169080861690831681612cb757fe5b046001600160801b031614611dc857506001600160801b039392505050565b600080826001600160701b031611612d23576040805162461bcd60e51b815260206004820152600b60248201526a646976206279207a65726f60a81b604482015290519081900360640190fd5b6000826001600160701b0316846001600160701b031681610f5057fe5b612d48612ec9565b60005b60088160ff161015612d9c5760048160ff1660088110612d6757fe5b600202016001015463ffffffff168260ff831660088110612d8457fe5b63ffffffff9092166020929092020152600101612d4b565b50604080516060810182526003546001600160801b03600160201b82048116835263ffffffff9182166020840190815293830185815260148054600181018255600091909152845160029091027fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec810180549751909516600160801b0263ffffffff60801b19929094166fffffffffffffffffffffffffffffffff1990971696909617169190911782555191929091612e79917fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed01906008612ee8565b50506019805464ffffffffff80821662015180011664ffffffffff199091161790555050565b6000826001600160701b0316826001600160701b03161115612ec3575060006119ae565b50900390565b6040518061010001604052806008906020820280368337509192915050565b600183019183908215612f745791602002820160005b83821115612f4257835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302612efe565b8015612f725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302612f42565b505b50612f80929150612f84565b5090565b61118391905b80821115612f8057805463ffffffff19168155600101612f8a56fe43616c6c6572206973206e6f7420746865206f776e65720000000000000000004d696e696e756d206465706f7369742076616c7565206e6f7420726561636865644d696e696d756d205769746864726177616c20616d6f756e74206e6f74206d6574a264697066735822122050f7a752b33458bee7dd30c1f09c84945627b2ec3b5c6750c1e52de948695d3a64736f6c63430006080033

Deployed Bytecode

0x6080604052600436106101c25760003560e01c80639f4216e8116100f7578063b1c2bec111610095578063bebb1f7211610064578063bebb1f7214610938578063ece773841461094d578063f2fde38b14610980578063fdb5a03e146109b3576101c2565b8063b1c2bec114610874578063b8522043146108b4578063b9aa0429146108c9578063bb6f2ca514610905576101c2565b8063a60b73f2116100d1578063a60b73f21461073e578063a87430ba14610764578063a9e10bf2146107ff578063ac4afa3814610807576101c2565b80639f4216e8146106aa578063a041913d146106d4578063a19834161461070f576101c2565b80634bcbc3e611610164578063575cea6b1161013e578063575cea6b1461059e5780637c59f6cb146106215780638da5cb5b1461064c578063936248bf1461067d576101c2565b80634bcbc3e6146104da5780634bd62586146105125780634e53385a1461056d576101c2565b806325fced97116101a057806325fced971461041c5780632afcf4801461044a5780633bc0e4b8146104745780634818a49c146104a7576101c2565b8063017a9105146101c7578063131c1789146102195780631737536a14610268575b600080fd5b3480156101d357600080fd5b506101f1600480360360208110156101ea57600080fd5b50356109bb565b604080516001600160801b03909316835263ffffffff90911660208301528051918290030190f35b34801561022557600080fd5b5061024c6004803603602081101561023c57600080fd5b50356001600160a01b03166109f5565b604080516001600160701b039092168252519081900360200190f35b34801561027457600080fd5b5061041a6004803603606081101561028b57600080fd5b810190602081018135600160201b8111156102a557600080fd5b8201836020820111156102b757600080fd5b803590602001918460208302840111600160201b831117156102d857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561032757600080fd5b82018360208201111561033957600080fd5b803590602001918460208302840111600160201b8311171561035a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156103a957600080fd5b8201836020820111156103bb57600080fd5b803590602001918460208302840111600160201b831117156103dc57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610bc2945050505050565b005b34801561042857600080fd5b50610431610c95565b6040805163ffffffff9092168252519081900360200190f35b34801561045657600080fd5b5061041a6004803603602081101561046d57600080fd5b5035610ca1565b34801561048057600080fd5b5061041a6004803603602081101561049757600080fd5b50356001600160701b0316610d32565b3480156104b357600080fd5b5061024c600480360360208110156104ca57600080fd5b50356001600160a01b0316610f06565b3480156104e657600080fd5b506104ef610f59565b604080516001600160701b03909316835260208301919091528051918290030190f35b34801561051e57600080fd5b506105456004803603602081101561053557600080fd5b50356001600160a01b0316610fde565b604080516001600160701b03909316835263ffffffff90911660208301528051918290030190f35b34801561057957600080fd5b506105826110d7565b604080516001600160801b039092168252519081900360200190f35b3480156105aa57600080fd5b506105d1600480360360208110156105c157600080fd5b50356001600160a01b03166110ed565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561060d5781810151838201526020016105f5565b505050509050019250505060405180910390f35b34801561062d57600080fd5b50610636611166565b6040805160ff9092168252519081900360200190f35b34801561065857600080fd5b50610661611176565b604080516001600160a01b039092168252519081900360200190f35b34801561068957600080fd5b5061041a600480360360208110156106a057600080fd5b503560ff16611186565b3480156106b657600080fd5b50610661600480360360208110156106cd57600080fd5b50356111f3565b3480156106e057600080fd5b5061041a600480360360408110156106f757600080fd5b506001600160701b038135811691602001351661121a565b34801561071b57600080fd5b506107246112ae565b6040805164ffffffffff9092168252519081900360200190f35b61041a6004803603602081101561075457600080fd5b50356001600160a01b03166112bb565b34801561077057600080fd5b506107976004803603602081101561078757600080fd5b50356001600160a01b03166112cf565b604080516001600160701b03998a168152978916602089015263ffffffff9096168787015260ff94851660608801529290931660808601526001600160a01b031660a0850152931660c083015264ffffffffff90921660e08201529051908190036101000190f35b61041a611340565b34801561081357600080fd5b506108316004803603602081101561082a57600080fd5b503561172d565b604080516001600160701b03968716815260ff958616602082015293909516838601529216606082015263ffffffff909116608082015290519081900360a00190f35b34801561088057600080fd5b5061024c6004803603604081101561089757600080fd5b5080356001600160a01b0316906020013564ffffffffff1661177d565b3480156108c057600080fd5b506105d16119b4565b3480156108d557600080fd5b5061041a600480360360408110156108ec57600080fd5b5067ffffffffffffffff81358116916020013516611a16565b34801561091157600080fd5b5061024c6004803603602081101561092857600080fd5b50356001600160a01b0316611b15565b34801561094457600080fd5b5061041a611b76565b34801561095957600080fd5b506105826004803603602081101561097057600080fd5b50356001600160a01b0316611b99565b34801561098c57600080fd5b5061041a600480360360208110156109a357600080fd5b50356001600160a01b0316611c2b565b61041a611d2e565b601481815481106109c857fe5b60009182526020909120600290910201546001600160801b0381169150600160801b900463ffffffff1682565b6001600160a01b0381166000908152600160208190526040822001548190610100900460ff168015610bbb57600060156001830360ff1660048110610a3657fe5b0154600160201b900467ffffffffffffffff16905060005b8260ff168160ff161015610b4857600060ff821615610a945760156001830360ff1660048110610a7a57fe5b0154600160201b900467ffffffffffffffff169050610a98565b5060005b80830367ffffffffffffffff811615610b3e576001600160a01b0388166000908152600160205260409020610b3b90620f424090610b139067ffffffffffffffff85169060040160ff881660058110610aed57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611d7b565b6001600160701b031681610b2357fe5b6001600160701b03891691900463ffffffff611dcf16565b95505b5050600101610a4e565b508160ff1660041415610bb9576001600160a01b0385166000908152600160205260409020610bb690620f424090610b8e9060329060040160ff871660058110610aed57fe5b6001600160701b031681610b9e57fe5b6001600160701b03861691900463ffffffff611dcf16565b92505b505b5092915050565b6000546001600160a01b03163314610c0f576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60005b83518167ffffffffffffffff161015610c8f57610c87848267ffffffffffffffff1681518110610c3e57fe5b6020026020010151848367ffffffffffffffff1681518110610c5c57fe5b6020026020010151848467ffffffffffffffff1681518110610c7a57fe5b6020026020010151611e4d565b600101610c12565b50505050565b60035463ffffffff1681565b6000546001600160a01b03163314610cee576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b610cf6611176565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610d2e573d6000803e3d6000fd5b5050565b610d3b33612103565b601a546001600160701b0390811690821611610d885760405162461bcd60e51b8152600401808060200182810382526021815260200180612fe76021913960400191505060405180910390fd5b336000908152600160205260409020546001600160701b03808316600160701b909204161015610dff576040805162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f756768207061796f757420617661696c61626c650000000000604482015290519081900360640190fd5b3360008181526001602052604080822080546001600160701b03600160701b8083048216889003821602600160701b600160e01b0319909216919091179091559051601460138602831604939291841680156108fc0292909190818181858888f19350505050158015610e76573d6000803e3d6000fd5b50610e7f611176565b6001600160a01b03166108fc8284036001600160701b03169081150290604051600060405180830381858888f19350505050158015610ec2573d6000803e3d6000fd5b50604080516001600160701b0384168152905133917f8e744e2dd83c4621a543ae247f4270575c80f8a1f47342770b3c74b539fe5a25919081900360200190a25050565b6001600160a01b0381166000908152600160205260408120600301546001600160701b031681612710610f4083600563ffffffff611d7b16565b6001600160701b031681610f5057fe5b04949350505050565b60008080805b336000526001602052600560ff82161015610fbf5733600090815260016020526040902060040160ff821660058110610f9457fe5b60028104909101546001600160701b03600e6001938416026101000a90910416929092019101610f5f565b506000610fcb33611b99565b919350506001600160801b031690509091565b6001600160a01b03811660009081526001602090815260408083206002018054825181850281018501909352808352849360609392919083018282801561104e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611030575b509394506000935083925050505b82518163ffffffff1610156110ca576110c060016000858463ffffffff168151811061108457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020546001600160701b03848116911663ffffffff611dcf16565b915060010161105c565b5090519092509050915091565b600354600160201b90046001600160801b031681565b6001600160a01b03811660009081526001602090815260409182902060020180548351818402810184019094528084526060939283018282801561115a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161113c575b50505050509050919050565b601a54600160701b900460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b031633146111d3576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b601a805460ff909216600160701b0260ff60701b19909216919091179055565b6002818154811061120057fe5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314611267576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6019805472ffffffffffffffffffffffffffff00000000001916650100000000006001600160701b0394851602179055601a80546001600160701b03191691909216179055565b60195464ffffffffff1681565b6112c4816122e1565b6112cc611340565b50565b60016020819052600091825260409091208054918101546003909101546001600160701b0380841693600160701b808204831694600160e01b90920463ffffffff169360ff808416946101008504909116936201000090046001600160a01b031692908216910464ffffffffff1688565b601954336000908152600160205260409020546001600160701b036501000000000090920482169160139160149082160216046001600160701b031610158061139d57506019546501000000000090046001600160701b03163410155b6113d85760405162461bcd60e51b8152600401808060200182810382526021815260200180612fc66021913960400191505060405180910390fd5b33600060146113f76001600160701b033416601363ffffffff611d7b16565b6001600160701b03168161140757fe5b6001600160a01b0384166000908152600160205260409020549190049150600160e01b900463ffffffff16151561143c611b76565b80611507576003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b038716600081815260208490526040812080546001600160e01b031693909516600160e01b0292909217845560195493909401805464ffffffffff60701b1916600160701b64ffffffffff958616850190951694909402939093179092556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b03191690911790555b6001600160a01b038084166000908152600160208190526040909120015462010000900416801561153d5761153d8482856125ae565b811561154c5761154c84612103565b6001600160a01b03841660009081526001602052604090205461157e906001600160701b03168463ffffffff611dcf16565b6001600160a01b038516600090815260016020526040902080546001600160701b0319166001600160701b03929092169190911790556115bc611176565b6001600160a01b03166108fc846001600160701b031634039081150290604051600060405180830381858888f193505050501580156115ff573d6000803e3d6000fd5b50604080516001600160701b038516815290516001600160a01b038616917fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe7404919081900360200190a26116518461272b565b61165a846128fc565b6001600160a01b038116156116e9576001600160a01b03811660009081526001602052604090206003015461169e906001600160701b03168463ffffffff611dcf16565b6001600160a01b038216600090815260016020526040902060030180546001600160701b0319166001600160701b03929092169190911790556116e08161272b565b6116e9816128fc565b5050600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b031990921691909117905550565b6004816008811061173a57fe5b6002020180546001909101546001600160701b03808316935060ff600160701b8404811693600160781b810490921692600160e81b909204169063ffffffff1685565b6014546001600160a01b038316600090815260016020819052604082200154909190829060ff16156119aa578382035b8264ffffffffff168164ffffffffff1610156119a857600060148264ffffffffff16815481106117d957fe5b600091825260208083206002909202909101546001600160a01b038a168352600190915260408220546014805463ffffffff600160801b9094048416955061187d93869361186893600160e01b909104821685039091169164ffffffffff891690811061184257fe5b60009182526020909120600290910201546001600160801b03169063ffffffff612c8316565b6001600160701b03169063ffffffff612cd616565b9050600080805b6001600160a01b038b166000908152600160208190526040909120015460ff908116908216101561197c576000620f42406118e760048460ff16600881106118c857fe5b60020201546001600160701b03881690600160e81b900460ff16611d7b565b6001600160701b0316816118f757fe5b04905060148764ffffffffff168154811061190e57fe5b90600052602060002090600202016001018260ff166008811061192d57fe5b60088104919091015460079091166004026101000a900463ffffffff16925082156119735761196e6001600160701b03821663ffffffff80861690612cd616565b840193505b50600101611884565b506119966001600160701b0387168363ffffffff611dcf16565b955050600190930192506117ad915050565b505b9150505b92915050565b60606002805480602002602001604051908101604052809291908181526020018280548015611a0c57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119ee575b5050505050905090565b6000546001600160a01b03163314611a63576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60195464ffffffffff16600101825b8260010167ffffffffffffffff168167ffffffffffffffff161015610c8f57600060028267ffffffffffffffff1681548110611aaa57fe5b6000918252602080832091909101546001600160a01b0316808352600190915260409091208054600160701b600160e01b0319168155600301805464ffffffffff60701b1916600160701b64ffffffffff8716021790559050611b0c81612103565b50600101611a72565b6001600160a01b03811660009081526001602052604081205481906001600160701b03166801a055690d9db800008110611b5257600f9150611b57565b600a91505b612710610f406001600160701b03831660ff851663ffffffff611d7b16565b60195464ffffffffff908116620151800116421115611b9757611b97612d40565b565b6001600160a01b03811660009081526001602052604081206002015463ffffffff811690825b8163ffffffff168163ffffffff161015610bb9576001600160a01b03851660009081526001602052604090206002018054611c1f919063ffffffff8416908110611c0557fe5b6000918252602090912001546001600160a01b0316611b99565b90920191600101611bbf565b6000546001600160a01b03163314611c78576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6001600160a01b038116611cd3576040805162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f2061646472657373000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611b97576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b60006001600160701b038316611d93575060006119ae565b8282026001600160701b038084169080861690831681611daf57fe5b046001600160701b031614611dc857506001600160701b035b9392505050565b60008282016001600160701b038085169082161015611df257506001600160701b035b836001600160701b0316816001600160701b03161015611dc8576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6000546001600160a01b03163314611e9a576040805162461bcd60e51b81526020600482015260176024820152600080516020612fa6833981519152604482015290519081900360640190fd5b6001600160a01b03811615611f11576001600160a01b0381811660008181526001602081815260408084206002018054808501825590855291842090910180546001600160a01b0319169589169586179055938252929020909101805462010000600160b01b031916620100009092029190911790555b6003805463ffffffff198116600163ffffffff92831681018316919091178084556001600160a01b03878116600081815260208590526040812080546001600160e01b031694909616600160e01b0293909317855560195494909501805464ffffffffff60701b191664ffffffffff909516600160701b029490941790935560028054928301815590527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169092179091558290821615611fe357611fe38483836125ae565b6001600160a01b03841660008181526001602090815260409182902080546001600160701b031981166001600160701b0391821687018216179091558251908516815291517fee1235397c520187c5822e3695d541121e1b177be366da9f84e0e52686fe74049281900390910190a261205b8461272b565b612064846128fc565b6001600160a01b038216156120bf576001600160a01b038216600090815260016020526040902060030180546001600160701b038082168401166001600160701b03199091161790556120b68261272b565b6120bf826128fc565b600380546001600160801b03600160201b80830482166001600160701b039095169490940116909202640100000000600160a01b0319909216919091179055505050565b6001600160a01b0381166000908152600160205260408120600301546201518090600160701b900464ffffffffff90811642031604905060018164ffffffffff1610610d2e57600061215483611b15565b90506000612162848461177d565b9050600061216f85610f06565b9050600061217c866109f5565b905060006121b28261219d6001600160701b0388168663ffffffff611dcf16565b6001600160701b03169063ffffffff611dcf16565b90506121d88461219d6001600160701b03841664ffffffffff8a1663ffffffff611d7b16565b6001600160a01b03881660009081526001602052604090205490915061220e90600160701b90046001600160701b031682611dcf565b6001600160a01b03881660008181526001602090815260409182902080546001600160701b03958616600160701b908102600160701b600160e01b03199092169190911782556003909101805464ffffffffff8382048116620151808f0201811690930264ffffffffff60701b1990911617905582518a861681528886169281019290925288851682840152938616606082015292891660808401525190917fad6cad811e3d40811ce42a12d4ede4f664396c38b44dce2d9b5b1e8ef7ebf360919081900360a00190a250505050505050565b33600090815260016020819052604090912001546001600160a01b0382811662010000909204161415612313576112cc565b33600090815260016020526040902054600160e01b900463ffffffff161580159061237057506001600160a01b0381166000908152600160205260408082205433835291205463ffffffff600160e01b9283900481169290910416105b1561237a576112cc565b33600090815260016020819052604090912001546201000090046001600160a01b0316156123ef576040805162461bcd60e51b815260206004820152601c60248201527f526566657265722063616e206f6e6c7920626520736574206f6e636500000000604482015290519081900360640190fd5b6001600160a01b038116600090815260016020526040902054600160e01b900463ffffffff1661245f576040805162461bcd60e51b8152602060048201526016602482015275149959995c995c88191bd95cc81b9bdd08195e1a5cdd60521b604482015290519081900360640190fd5b336001600160a01b03821614156124bd576040805162461bcd60e51b815260206004820152601b60248201527f43616e7420736574206f6e6573656c6620617320726566657265720000000000604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208181526040808420600201805480850182559085529184209091018054336001600160a01b031990911681179091558352909120908101805462010000600160b01b0319166201000090930292909217909155546001600160701b0316156112cc5733600090815260016020526040808220546001600160a01b0384168352912060030154612571916001600160701b03918216911663ffffffff611dcf16565b6001600160a01b0391909116600090815260016020526040902060030180546001600160701b0319166001600160701b0392909216919091179055565b6001600160a01b03831660009081526001602081905260409091200154601a548391610100900460ff90811691600160701b900416600019015b6001600160a01b03831615801590612603575060008160ff16115b156127235761261183612103565b6001600160a01b038316600090815260016020526040902061266690859060040160ff85166005811061264057fe5b6002810491909101546001909116600e026101000a90046001600160701b031690611dcf565b6001600160a01b038416600090815260016020526040902060040160ff84166005811061268f57fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0385166000908152602082905260409020015460ff91900481169083168111156126f1578092505b506001600160a01b039283166000908152600160208190526040909120015462010000900490921691600019016125e8565b505050505050565b6001600160a01b03811660009081526001602081905260409091200154600860ff90911610156112cc576001600160a01b03811660009081526001602081905260409091209081015460039091015460ff909116906001600160701b03166004826008811061279657fe5b60020201546001600160a01b0384166000908152600160205260409020546001600160701b0391821691161080159061280e575060048260ff16600881106127da57fe5b600290810291909101546001600160a01b038516600090815260016020526040902090910154600160701b90910460ff1611155b8015612842575060048260ff166008811061282557fe5b60020201546001600160701b03600160781b909104811690821610155b156128f7576001600160a01b03831660009081526001602081905260409091208101805460ff928501831660ff1990911617905560049083166008811061288557fe5b600202016001908101805463ffffffff19811663ffffffff91821684019091161790556040805191840160ff168252516001600160a01b038516917f60e1bbc5f71b269e8eea4974b783c669d335c399505e362c930a83010670a7bc916020918190039190910190a26128f78361272b565b505050565b6001600160a01b03811660009081526001602081905260409091200154610100900460ff166004811015610d2e5760158160ff166004811061293a57fe5b01546001600160a01b0383166000908152600160208190526040909120015463ffffffff90911660ff90911610610d2e576001600160a01b03821660009081526001602081905260408220808201805460ff61010080830482169095011690930261ff001990931692909217909155546001600160701b0316905b8260ff168160ff1611612a21576001600160a01b0384166000908152600160205260409020612a179060040160ff8316600581106129ef57fe5b6002810491909101546001600160701b0385811692600116600e026101000a90910416611dcf565b91506001016129b5565b506001600160a01b038084166000908152600160208190526040909120810154908401918491620100009004165b6001600160a01b03811615612c21576001600160a01b0381166000908152600160205260409020612ab390859060040160ff851660058110612a8d57fe5b6002810491909101546001909116600e026101000a90046001600160701b031690612e9f565b6001600160a01b038216600090815260016020526040902060040160ff841660058110612adc57fe5b60029182820401919006600e026101000a8154816001600160701b0302191690836001600160701b03160217905550612b458460016000846001600160a01b03166001600160a01b031681526020019081526020016000206004018560ff166005811061264057fe5b6001600160a01b038216600090815260016020526040902060040160ff851660058110612b6e57fe5b6002810490910180546001600160701b03938416600e60019485160261010090810a91820295909102199091169390931790556001600160a01b0383166000908152602082905260409020015460ff9190048116908416811115612bd0578093505b8260ff168160ff161115612be2578092505b8360ff168360ff161415612bf65750612c21565b506001600160a01b039081166000908152600160208190526040909120015462010000900416612a4f565b6001600160a01b03861660008181526001602081815260409283902090910154825161010090910460ff16815291517fcf2e211ce866f42c8c8dce1304596b0b929b1e58f9315782584468eac4a4eb139281900390910190a2612723866128fc565b60006001600160801b038316612c9b575060006119ae565b8282026001600160801b038084169080861690831681612cb757fe5b046001600160801b031614611dc857506001600160801b039392505050565b600080826001600160701b031611612d23576040805162461bcd60e51b815260206004820152600b60248201526a646976206279207a65726f60a81b604482015290519081900360640190fd5b6000826001600160701b0316846001600160701b031681610f5057fe5b612d48612ec9565b60005b60088160ff161015612d9c5760048160ff1660088110612d6757fe5b600202016001015463ffffffff168260ff831660088110612d8457fe5b63ffffffff9092166020929092020152600101612d4b565b50604080516060810182526003546001600160801b03600160201b82048116835263ffffffff9182166020840190815293830185815260148054600181018255600091909152845160029091027fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec810180549751909516600160801b0263ffffffff60801b19929094166fffffffffffffffffffffffffffffffff1990971696909617169190911782555191929091612e79917fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ed01906008612ee8565b50506019805464ffffffffff80821662015180011664ffffffffff199091161790555050565b6000826001600160701b0316826001600160701b03161115612ec3575060006119ae565b50900390565b6040518061010001604052806008906020820280368337509192915050565b600183019183908215612f745791602002820160005b83821115612f4257835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302612efe565b8015612f725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302612f42565b505b50612f80929150612f84565b5090565b61118391905b80821115612f8057805463ffffffff19168155600101612f8a56fe43616c6c6572206973206e6f7420746865206f776e65720000000000000000004d696e696e756d206465706f7369742076616c7565206e6f7420726561636865644d696e696d756d205769746864726177616c20616d6f756e74206e6f74206d6574a264697066735822122050f7a752b33458bee7dd30c1f09c84945627b2ec3b5c6750c1e52de948695d3a64736f6c63430006080033

Deployed Bytecode Sourcemap

5585:17206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;6806:25:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6806:25:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6806:25:0;;:::i;:::-;;;;-1:-1:-1;;;;;6806:25:0;;;;;;;;;;;;;;;;;;;;;;13267:1169;;5:9:-1;2:2;;;27:1;24;17:12;2:2;13267:1169:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13267:1169:0;-1:-1:-1;;;;;13267:1169:0;;:::i;:::-;;;;-1:-1:-1;;;;;13267:1169:0;;;;;;;;;;;;;;21098:244;;5:9:-1;2:2;;;27:1;24;17:12;2:2;21098:244:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;21098:244:0;;;;;;;;-1:-1:-1;;;11:28;;8:2;;;52:1;49;42:12;8:2;21098:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21098:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21098:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21098:244:0;;;;;;;;-1:-1:-1;21098:244:0;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;21098:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21098:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21098:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21098:244:0;;;;;;;;-1:-1:-1;21098:244:0;;-1:-1:-1;;;;;11:28;;8:2;;;52:1;49;42:12;8:2;21098:244:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;21098:244:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;21098:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21098:244:0;;-1:-1:-1;21098:244:0;;-1:-1:-1;;;;;21098:244:0:i;:::-;;6514:26;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6514:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19592:108;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19592:108:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19592:108:0;;:::i;18198:557::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18198:557:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18198:557:0;-1:-1:-1;;;;;18198:557:0;;:::i;14444:297::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;14444:297:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14444:297:0;-1:-1:-1;;;;;14444:297:0;;:::i;20071:331::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20071:331:0;;;:::i;:::-;;;;-1:-1:-1;;;;;20071:331:0;;;;;;;;;;;;;;;;;;;;;17761:389;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17761:389:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17761:389:0;-1:-1:-1;;;;;17761:389:0;;:::i;:::-;;;;-1:-1:-1;;;;;17761:389:0;;;;;;;;;;;;;;;;;;;;;;6553:25;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6553:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;6553:25:0;;;;;;;;;;;;;;22383:133;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22383:133:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22383:133:0;-1:-1:-1;;;;;22383:133:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;22383:133:0;;;;;;;;;;;;;;;;;10061:31;;5:9:-1;2:2;;;27:1;24;17:12;2:2;10061:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4644:79;;5:9:-1;2:2;;;27:1;24;17:12;2:2;4644:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;4644:79:0;;;;;;;;;;;;;;19948:96;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19948:96:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19948:96:0;;;;:::i;6480:25::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6480:25:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6480:25:0;;:::i;19777:163::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19777:163:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;19777:163:0;;;;;;;;;;:::i;7122:28::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;7122:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9924:129;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9924:129:0;-1:-1:-1;;;;;9924:129:0;;:::i;6435:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6435:38:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6435:38:0;-1:-1:-1;;;;;6435:38:0;;:::i;:::-;;;;-1:-1:-1;;;;;6435:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6435:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8262:1644;;;:::i;6591:20::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6591:20:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6591:20:0;;:::i;:::-;;;;-1:-1:-1;;;;;6591:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12133:1126;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12133:1126:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12133:1126:0;;-1:-1:-1;;;;;12133:1126:0;;;;;;;;:::i;22528:97::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22528:97:0;;;:::i;20753:333::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20753:333:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20753:333:0;;;;;;;;;;;:::i;11776:345::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11776:345:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11776:345:0;-1:-1:-1;;;;;11776:345:0;;:::i;22637:151::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;22637:151:0;;;:::i;20410:331::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20410:331:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20410:331:0;-1:-1:-1;;;;;20410:331:0;;:::i;5083:227::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;5083:227:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;5083:227:0;-1:-1:-1;;;;;5083:227:0;;:::i;19712:53::-;;;:::i;6806:25::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6806:25:0;;;-1:-1:-1;;;;6806:25:0;;;;;:::o;13267:1169::-;-1:-1:-1;;;;;13454:10:0;;13328:7;13454:10;;;:5;:10;;;;;;;:24;;13328:7;;13454:24;;;;;13502:17;;13499:886;;13549:20;13572:15;13604:1;13588:13;:17;13572:34;;;;;;;;;;:46;-1:-1:-1;;;13572:46:0;;;;;-1:-1:-1;13572:46:0;13635:568;13657:13;13653:17;;:1;:17;;;13635:568;;;13697:12;13735:5;;;;13732:150;;13772:15;13792:1;13788;:5;13772:22;;;;;;;;;;:34;-1:-1:-1;;;13772:34:0;;;;;-1:-1:-1;13732:150:0;;;-1:-1:-1;13861:1:0;13732:150;13922:21;;;13965:14;;;;13962:224;;-1:-1:-1;;;;;14107:10:0;;;;;;:5;:10;;;;;14088:75;;14155:7;;14107:45;;;;;;:26;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14107:29:0;;:33;:45::i;:::-;-1:-1:-1;;;;;14107:55:0;;;;;;-1:-1:-1;;;;;14088:18:0;;;14107:55;;14088:75;:18;:75;:::i;:::-;14071:92;;13962:224;-1:-1:-1;;13672:3:0;;13635:568;;;;14222:13;:18;;14239:1;14222:18;14219:153;;;-1:-1:-1;;;;;14296:10:0;;;;;;:5;:10;;;;;14277:79;;14348:7;;14296:49;;14342:2;;14296:26;;:41;;;;;;;;;:49;-1:-1:-1;;;;;14296:59:0;;;;;;-1:-1:-1;;;;;14277:18:0;;;14296:59;;14277:79;:18;:79;:::i;:::-;14260:96;;14219:153;13499:886;;-1:-1:-1;14404:14:0;13267:1169;-1:-1:-1;;13267:1169:0:o;21098:244::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;21224:8:::1;21220:115;21243:6;:13;21239:1;:17;;;21220:115;;;21278:45;21289:6;21296:1;21289:9;;;;;;;;;;;;;;;;21300:7;21308:1;21300:10;;;;;;;;;;;;;;;;21312:7;21320:1;21312:10;;;;;;;;;;;;;;;;21278;:45::i;:::-;21259:3;;21220:115;;;;21098:244:::0;;;:::o;6514:26::-;;;;;;:::o;19592:108::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;19667:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;19659:25:0::1;:33;19685:6;19659:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;19659:33:0;19592:108:::0;:::o;18198:557::-;18260:24;18273:10;18260:12;:24::i;:::-;18314:11;;-1:-1:-1;;;;;18314:11:0;;;18305:20;;;;18297:66;;;;-1:-1:-1;;;18297:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18388:10;18382:17;;;;:5;:17;;;;;:24;-1:-1:-1;;;;;18382:34:0;;;-1:-1:-1;;;18382:24:0;;;;:34;;18374:74;;;;;-1:-1:-1;;;18374:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18531:10;18469:16;18525:17;;;:5;:17;;;;;;:34;;-1:-1:-1;;;;;;;;18525:34:0;;;;;;;;;;;-1:-1:-1;;;;;;;;18525:34:0;;;;;;;;;;18580:38;;18502:2;18497;18488:11;;:16;;;;18531:10;18580:38;;;;;;;;;;;;18469:16;18580:38;;18531:10;18580:38;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18580:38:0;18647:7;:5;:7::i;:::-;-1:-1:-1;;;;;18639:25:0;:44;18674:8;18665:6;:17;-1:-1:-1;;;;;18639:44:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18709:28:0;;;-1:-1:-1;;;;;18709:28:0;;;;;;18718:10;;18709:28;;;;;;;;;;18198:557;;:::o;14444:297::-;-1:-1:-1;;;;;14599:10:0;;14504:7;14599:10;;;:5;:10;;;;;:20;;;-1:-1:-1;;;;;14599:20:0;14504:7;14683:5;14656:24;14599:20;14678:1;14656:24;:21;:24;:::i;:::-;-1:-1:-1;;;;;14656:32:0;;;;;;;;14444:297;-1:-1:-1;;;;14444:297:0:o;20071:331::-;20117:7;;;;20164:139;20192:10;20186:17;;:5;:17;;:40;20182:44;;;;20164:139;;;20261:10;20255:17;;;;:5;:17;;;;;:33;;:36;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20255:36:0;;;;;;;;;;;;20248:43;;;;;20229:3;20164:139;;;;20315:13;20331:28;20348:10;20331:16;:28::i;:::-;20380:3;;-1:-1:-1;;;;;;;20315:44:0;;-1:-1:-1;20071:331:0;;:::o;17761:389::-;-1:-1:-1;;;;;17890:10:0;;17823:7;17890:10;;;:5;:10;;;;;;;;:20;;17861:49;;;;;;;;;;;;;;;;;17823:7;;17861:26;;:49;17890:20;17861:49;;;17890:20;17861:49;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17861:49:0;;;;;;;;;;;;;;;;-1:-1:-1;17861:49:0;;-1:-1:-1;17931:11:0;;-1:-1:-1;17931:11:0;;-1:-1:-1;;;17957:115:0;17980:9;:16;17976:1;:20;;;17957:115;;;18024:36;18032:5;:19;18038:9;18048:1;18038:12;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18032:19:0;;;;;;;;;;;-1:-1:-1;18032:19:0;:27;-1:-1:-1;;;;;18024:7:0;;;;18032:27;18024:36;:7;:36;:::i;:::-;18018:42;-1:-1:-1;17999:3:0;;17957:115;;;-1:-1:-1;18114:16:0;;18100:3;;-1:-1:-1;18114:16:0;-1:-1:-1;17761:389:0;;;:::o;6553:25::-;;;-1:-1:-1;;;6553:25:0;;-1:-1:-1;;;;;6553:25:0;;:::o;22383:133::-;-1:-1:-1;;;;;22488:10:0;;;;;;:5;:10;;;;;;;;;:20;;22481:27;;;;;;;;;;;;;;;;;22443:26;;22481:27;;;22488:20;22481:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22481:27:0;;;;;;;;;;;;;;;;;;;;;;;22383:133;;;:::o;10061:31::-;;;-1:-1:-1;;;10061:31:0;;;;;:::o;4644:79::-;4682:7;4709:6;-1:-1:-1;;;;;4709:6:0;4644:79;;:::o;19948:96::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;20015:13:::1;:21:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;20015:21:0::1;-1:-1:-1::0;;;;20015:21:0;;::::1;::::0;;;::::1;::::0;;19948:96::o;6480:25::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6480:25:0;;-1:-1:-1;6480:25:0;:::o;19777:163::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;19869:10:::1;:24:::0;;-1:-1:-1;;19869:24:0::1;::::0;-1:-1:-1;;;;;19869:24:0;;::::1;;;::::0;;19904:11:::1;:28:::0;;-1:-1:-1;;;;;;19904:28:0::1;::::0;;;::::1;;::::0;;19777:163::o;7122:28::-;;;;;;:::o;9924:129::-;9994:21;10007:7;9994:12;:21::i;:::-;10026:9;:7;:9::i;:::-;9924:129;:::o;6435:38::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6435:38:0;;;;-1:-1:-1;;;6435:38:0;;;;;;-1:-1:-1;;;6435:38:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6435:38:0;;;;;;;;;;:::o;8262:1644::-;8356:10;;8322;8316:17;;;;:5;:17;;;;;:25;-1:-1:-1;;;;;8356:10:0;;;;;;;8349:2;;8344;8316:25;;;:30;:35;;-1:-1:-1;;;;;8315:51:0;;;:78;;;-1:-1:-1;8383:10:0;;;;;-1:-1:-1;;;;;8383:10:0;8370:9;:23;;8315:78;8307:124;;;;-1:-1:-1;;;8307:124:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8469:10;8452:14;8537:2;8508:26;-1:-1:-1;;;;;8516:9:0;8508:22;8531:2;8508:26;:22;:26;:::i;:::-;-1:-1:-1;;;;;8508:31:0;;;;;;-1:-1:-1;;;;;8570:13:0;;8552:15;8570:13;;;:5;:13;;;;;:22;8508:31;;;;-1:-1:-1;;;;8570:22:0;;;;:27;;8618:20;:18;:20::i;:::-;8702:10;8698:206;;8728:12;:14;;-1:-1:-1;;8728:14:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8757:13:0;;-1:-1:-1;8757:13:0;;;;;;;;;;:37;;-1:-1:-1;;;;;8757:37:0;8782:12;;;;-1:-1:-1;;;8757:37:0;;;;;;;8837:14;;8809:24;;;;:47;;-1:-1:-1;;;;8809:47:0;-1:-1:-1;;;8837:14:0;;;;:18;;8809:47;;;;;;;;;;;;;;8871:8;27:10:-1;;23:18;;;45:23;;8871:21:0;;;;;;;-1:-1:-1;;;;;;8871:21:0;;;;;;8698:206;-1:-1:-1;;;;;8934:13:0;;;8916:15;8934:13;;;:5;:13;;;;;;;;:21;;;;;;9088;;9085:88;;9125:36;9138:6;9146:7;9155:5;9125:12;:36::i;:::-;9214:10;9211:61;;;9240:20;9253:6;9240:12;:20::i;:::-;-1:-1:-1;;;;;9308:13:0;;;;;;:5;:13;;;;;:21;:32;;-1:-1:-1;;;;;9308:21:0;9334:5;9308:32;:25;:32;:::i;:::-;-1:-1:-1;;;;;9284:13:0;;;;;;:5;:13;;;;;:56;;-1:-1:-1;;;;;;9284:56:0;-1:-1:-1;;;;;9284:56:0;;;;;;;;;;9393:7;:5;:7::i;:::-;-1:-1:-1;;;;;9385:25:0;:44;9423:5;-1:-1:-1;;;;;9411:17:0;:9;:17;9385:44;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;9455:25:0;;;-1:-1:-1;;;;;9455:25:0;;;;;;-1:-1:-1;;;;;9455:25:0;;;;;;;;;;;;;9501:22;9516:6;9501:14;:22::i;:::-;9534:32;9559:6;9534:24;:32::i;:::-;-1:-1:-1;;;;;9580:21:0;;;9577:202;;-1:-1:-1;;;;;9644:14:0;;;;;;:5;:14;;;;;:24;;;:35;;-1:-1:-1;;;;;9644:24:0;9673:5;9644:35;:28;:35;:::i;:::-;-1:-1:-1;;;;;9617:14:0;;;;;;:5;:14;;;;;:24;;:62;;-1:-1:-1;;;;;;9617:62:0;-1:-1:-1;;;;;9617:62:0;;;;;;;;;;9696:23;9617:14;9696;:23::i;:::-;9734:33;9759:7;9734:24;:33::i;:::-;-1:-1:-1;;9812:10:0;;;-1:-1:-1;;;;;;;;9812:10:0;;;;;-1:-1:-1;;;;;9812:18:0;;;;;;;9799:31;;;;-1:-1:-1;;;;;;9799:31:0;;;;;;;;;-1:-1:-1;8262:1644:0:o;6591:20::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6591:20:0;;;;-1:-1:-1;6591:20:0;-1:-1:-1;;;6591:20:0;;;;;-1:-1:-1;;;6591:20:0;;;;;;-1:-1:-1;;;6591:20:0;;;;;;;;:::o;12133:1126::-;12249:6;:13;-1:-1:-1;;;;;12314:10:0;;12203:7;12314:10;;;:5;:10;;;;;;;:25;;12203:7;;12249:13;12203:7;;12314:25;;:29;12311:903;;12376:13;;;12359:844;12398:6;12392:12;;:3;:12;;;12359:844;;;12436:15;12454:6;12461:3;12454:11;;;;;;;;;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;;;12569:10:0;;;;:5;:10;;;;;;:19;12524:6;:11;;12454:22;-1:-1:-1;;;12454:22:0;;;;;;-1:-1:-1;12516:88:0;;12454:22;;12524:65;;-1:-1:-1;;;12569:19:0;;;;;12558:30;;12524:65;;;;:11;;;;;;;;;;;;;;;;;;;;;;;:25;-1:-1:-1;;;;;12524:25:0;;:65;:33;:65;:::i;:::-;-1:-1:-1;;;;;12516:78:0;;:88;:78;:88;:::i;:::-;12495:109;-1:-1:-1;12627:18:0;;;12760:366;-1:-1:-1;;;;;12782:10:0;;;;;;:5;:10;;;;;;;;:25;;;;;;12778:29;;;;12760:366;;;12837:17;12896:7;12857:36;12872:5;12878:1;12872:8;;;;;;;;;;;;:20;-1:-1:-1;;;;;12857:14:0;;;-1:-1:-1;;;12872:20:0;;;;12857:14;:36::i;:::-;-1:-1:-1;;;;;12857:46:0;;;;;;;12837:66;;12944:6;12951:3;12944:11;;;;;;;;;;;;;;;;;;;;:20;;12965:1;12944:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12995:18:0;;12992:115;;13055:28;-1:-1:-1;;;;;13055:13:0;;:28;;;;;:13;:28;:::i;:::-;13041:42;;;;12992:115;-1:-1:-1;12810:3:0;;12760:366;;;-1:-1:-1;13159:26:0;-1:-1:-1;;;;;13159:14:0;;13174:10;13159:26;:14;:26;:::i;:::-;13146:39;-1:-1:-1;;12407:5:0;;;;;-1:-1:-1;12359:844:0;;-1:-1:-1;;12359:844:0;;;12311:903;13241:10;-1:-1:-1;;12133:1126:0;;;;;:::o;22528:97::-;22572:16;22609:8;22602:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22602:15:0;;;;;;;;;;;;;;;;;;;;;;;22528:97;:::o;20753:333::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;20848:14:::1;::::0;::::1;;::::0;:18:::1;20892:4:::0;20877:202:::1;20903:2;20908:1;20903:6;20899:10;;:1;:10;;;20877:202;;;20931:11;20945:8;20954:1;20945:11;;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;20945:11:0::1;20971:10:::0;;;20945:11;20971:10;;;;;;;:21;;-1:-1:-1;;;;;;;;20971:21:0::1;::::0;;21007::::1;;:28:::0;;-1:-1:-1;;;;21007:28:0::1;-1:-1:-1::0;;;21007:28:0::1;::::0;::::1;;;::::0;;20945:11;-1:-1:-1;21050:17:0::1;20945:11:::0;21050:12:::1;:17::i;:::-;-1:-1:-1::0;20912:3:0::1;;20877:202;;11776:345:::0;-1:-1:-1;;;;;11930:10:0;;11837:7;11930:10;;;:5;:10;;;;;:18;11837:7;;-1:-1:-1;;;;;11930:18:0;11973:8;11962:19;;11959:101;;12005:2;11997:10;;11959:101;;;12046:2;12038:10;;11959:101;12108:5;12087:18;-1:-1:-1;;;;;12087:11:0;;:18;;;;:11;:18;:::i;22637:151::-;22706:14;;;;;;8243:6;22706:32;22688:50;:15;:50;22685:96;;;22754:15;:13;:15::i;:::-;22637:151::o;20410:331::-;-1:-1:-1;;;;;20540:10:0;;20470:7;20540:10;;;:5;:10;;;;;:20;;:27;20579:13;;;;20470:7;20603:110;20625:6;20621:10;;:1;:10;;;20603:110;;;-1:-1:-1;;;;;20677:10:0;;;;;;:5;:10;;;;;:20;;:23;;20660:41;;20677:20;:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20677:23:0;20660:16;:41::i;:::-;20653:48;;;;20634:3;;20603:110;;5083:227;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;5164:22:0;::::1;5156:64;;;::::0;;-1:-1:-1;;;5156:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5257:6;::::0;;5236:38:::1;::::0;-1:-1:-1;;;;;5236:38:0;;::::1;::::0;5257:6;::::1;::::0;5236:38:::1;::::0;::::1;5285:6;:17:::0;;-1:-1:-1;;;;;;5285:17:0::1;-1:-1:-1::0;;;;;5285:17:0;;;::::1;::::0;;;::::1;::::0;;5083:227::o;19712:53::-;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;2421:472;2479:7;-1:-1:-1;;;;;2724:6:0;;2720:47;;-1:-1:-1;2754:1:0;2747:8;;2720:47;2791:5;;;-1:-1:-1;;;;;2812:10:0;;;;:5;;;;;;;;;;;;-1:-1:-1;;;;;2812:10:0;;2807:58;;-1:-1:-1;;;;;;2807:58:0;2884:1;2421:472;-1:-1:-1;;;2421:472:0:o;1442:235::-;1500:7;1532:5;;;-1:-1:-1;;;;;1553:6:0;;;;;;;;1548:54;;-1:-1:-1;;;;;;1548:54:0;1625:1;-1:-1:-1;;;;;1620:6:0;:1;-1:-1:-1;;;;;1620:6:0;;;1612:36;;;;;-1:-1:-1;;;1612:36:0;;;;;;;;;;;;-1:-1:-1;;;1612:36:0;;;;;;;;;;;;;;21354:1021;4856:6;;-1:-1:-1;;;;;4856:6:0;4866:10;4856:20;4848:56;;;;;-1:-1:-1;;;4848:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4848:56:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21467:21:0;::::1;::::0;21464:135:::1;;-1:-1:-1::0;;;;;21504:14:0;;::::1;;::::0;;;:5:::1;:14;::::0;;;;;;;:24:::1;;27:10:-1::0;;23:18;;::::1;45:23:::0;;21504:37:0;;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21504:37:0::1;::::0;;::::1;::::0;;::::1;::::0;;21556:13;;;;;;:21;;::::1;:31:::0;;-1:-1:-1;;;;;;21556:31:0::1;::::0;;;::::1;::::0;;;::::1;::::0;;21464:135:::1;21694:12;:14:::0;;-1:-1:-1;;21694:14:0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;;;;21719:13:0;;::::1;-1:-1:-1::0;21719:13:0;;;::::1;::::0;;;;;;:37;;-1:-1:-1;;;;;21719:37:0::1;21744:12:::0;;;::::1;-1:-1:-1::0;;;21719:37:0::1;::::0;;;::::1;::::0;;21794:14:::1;::::0;21767:24;;;::::1;:41:::0;;-1:-1:-1;;;;21767:41:0::1;21794:14;::::0;;::::1;-1:-1:-1::0;;;21767:41:0::1;::::0;;;::::1;::::0;;;21819:8:::1;27:10:-1::0;;23:18;;::::1;45:23:::0;;21819:21:0;;;::::1;::::0;;-1:-1:-1;;;;;;21819:21:0::1;::::0;;::::1;::::0;;;21627:7;;21856:21;::::1;::::0;21853:88:::1;;21893:36;21906:6;21914:7;21923:5;21893:12;:36::i;:::-;-1:-1:-1::0;;;;;21953:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;;;;:30;;-1:-1:-1;;;;;;21953:30:0;::::1;-1:-1:-1::0;;;;;21953:30:0;;::::1;::::0;::::1;::::0;::::1;;::::0;;;22009:25;;;;::::1;::::0;;;;::::1;::::0;;;;;;;;::::1;22055:22;22070:6;22055:14;:22::i;:::-;22088:32;22113:6;22088:24;:32::i;:::-;-1:-1:-1::0;;;;;22144:21:0;::::1;::::0;22141:177:::1;;-1:-1:-1::0;;;;;22181:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;:24:::1;;:33:::0;;-1:-1:-1;;;;;22181:33:0;;::::1;::::0;::::1;;-1:-1:-1::0;;;;;;22181:33:0;;::::1;;::::0;;22235:23:::1;22187:7:::0;22235:14:::1;:23::i;:::-;22273:33;22298:7;22273:24;:33::i;:::-;22338:10;:19:::0;;-1:-1:-1;;;;;;;;22338:19:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;22338:19:0;;::::1;::::0;;;::::1;;::::0;;::::1;-1:-1:-1::0;;;;;;22338:19:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;21354:1021:0:o;10875:889::-;-1:-1:-1;;;;;10980:10:0;;10939:11;10980:10;;;:5;:10;;;;;:21;;;8243:6;;-1:-1:-1;;;10980:21:0;;10953:69;10980:21;;;10961:15;10954:47;10953:69;;10939:83;;11044:1;11036:4;:9;;;11033:724;;11075:22;11100;11118:3;11100:17;:22::i;:::-;11075:47;;11137:18;11158:24;11172:3;11177:4;11158:13;:24::i;:::-;11137:45;;11197:21;11221;11238:3;11221:16;:21::i;:::-;11197:45;;11257:27;11287:22;11305:3;11287:17;:22::i;:::-;11257:52;-1:-1:-1;11352:11:0;11366:58;11257:52;11366:33;-1:-1:-1;;;;;11366:18:0;;11385:13;11366:33;:18;:33;:::i;:::-;-1:-1:-1;;;;;11366:37:0;;:58;:37;:58;:::i;:::-;11352:72;-1:-1:-1;11446:31:0;11466:10;11447:13;-1:-1:-1;;;;;11447:7:0;;:13;;;;:7;:13;:::i;11446:31::-;-1:-1:-1;;;;;11526:10:0;;;;;;:5;:10;;;;;:17;11440:37;;-1:-1:-1;11526:26:0;;-1:-1:-1;;;11526:17:0;;-1:-1:-1;;;;;11526:17:0;11440:37;11526:21;:26::i;:::-;-1:-1:-1;;;;;11506:10:0;;;;;;:5;:10;;;;;;;;;:46;;-1:-1:-1;;;;;11506:46:0;;;-1:-1:-1;;;11506:46:0;;;-1:-1:-1;;;;;;;;11506:46:0;;;;;;;;;11567:21;;;;:49;;;;;;;;8243:6;11593:22;;11567:49;;;;;;-1:-1:-1;;;;11567:49:0;;;;;;11650:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11506:10;;11650:81;;;;;;;;;;11033:724;;;;;10875:889;;:::o;18763:811::-;18840:10;18834:17;;;;:5;:17;;;;;;;;:25;;-1:-1:-1;;;;;18834:36:0;;;:25;;;;;:36;18831:73;;;18886:7;;18831:73;18933:10;18927:17;;;;:5;:17;;;;;:26;-1:-1:-1;;;18927:26:0;;;;:31;;;;:87;;-1:-1:-1;;;;;;18991:14:0;;;;;;:5;:14;;;;;;:23;18968:10;18962:17;;;;:26;18991:23;-1:-1:-1;;;18991:23:0;;;;;;18962:26;;;;;:52;18927:87;18924:125;;;19031:7;;18924:125;19083:10;19114:1;19077:17;;;:5;:17;;;;;;;;:25;;;;;-1:-1:-1;;;;;19077:25:0;:39;19069:80;;;;;-1:-1:-1;;;19069:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19168:14:0;;19194:1;19168:14;;;:5;:14;;;;;:23;-1:-1:-1;;;19168:23:0;;;;19160:62;;;;;-1:-1:-1;;;19160:62:0;;;;;;;;;;;;-1:-1:-1;;;19160:62:0;;;;;;;;;;;;;;;19241:10;-1:-1:-1;;;;;19241:21:0;;;;19233:61;;;;;-1:-1:-1;;;19233:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19315:14:0;;;;;;:5;:14;;;;;;;;:24;;27:10:-1;;23:18;;;45:23;;19315:41:0;;;;;;;;;;;19345:10;-1:-1:-1;;;;;;19315:41:0;;;;;;;;19367:17;;;;;:25;;;:35;;-1:-1:-1;;;;;;19367:35:0;;;;;;;;;;;;19418:25;-1:-1:-1;;;;;19418:25:0;:29;19415:142;;19525:10;19519:17;;;;:5;:17;;;;;;:25;-1:-1:-1;;;;;19490:14:0;;;;;;:24;;;:55;;-1:-1:-1;;;;;19490:24:0;;;;19519:25;19490:55;:28;:55;:::i;:::-;-1:-1:-1;;;;;19463:14:0;;;;;;;;:5;:14;;;;;:24;;:82;;-1:-1:-1;;;;;;19463:82:0;-1:-1:-1;;;;;19463:82:0;;;;;;;;;;18763:811::o;10101:762::-;-1:-1:-1;;;;;10252:15:0;;10201;10252;;;:5;:15;;;;;;;;:29;;10331:13;;10219:3;;10252:29;;;;;;;;-1:-1:-1;;;10331:13:0;;;-1:-1:-1;;10331:17:0;10369:477;-1:-1:-1;;;;;10375:21:0;;;;;;:49;;;10423:1;10400:20;:24;;;10375:49;10369:477;;;10442:21;10455:7;10442:12;:21::i;:::-;-1:-1:-1;;;;;10525:14:0;;;;;;:5;:14;;;;;:56;;10572:8;;10525:30;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10525:42:0;;:46;:56::i;:::-;-1:-1:-1;;;;;10480:14:0;;;;;;:5;:14;;;;;:30;;:42;;;;;;;;;;;;;;;;:101;;-1:-1:-1;;;;;10480:101:0;;;:42;;;;;;:101;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10617:14:0;;-1:-1:-1;10617:14:0;;;;;;;;;;:28;;;;;;;;;10663:25;;;;10660:89;;;10721:12;10708:25;;10660:89;-1:-1:-1;;;;;;10775:14:0;;;;;;;:5;:14;;;;;;;;:22;;;;;;;;;-1:-1:-1;;10812:22:0;10369:477;;;10101:762;;;;;;:::o;15037:788::-;-1:-1:-1;;;;;15106:10:0;;;;;;:5;:10;;;;;;;;:25;;15134:12;15106:25;;;;:40;15103:705;;;-1:-1:-1;;;;;15192:10:0;;15176:13;15192:10;;;:5;:10;;;;;;;;:25;;;;15267:20;;;;;15192:25;;;;;-1:-1:-1;;;;;15267:20:0;15400:5;15192:25;15400:14;;;;;;;;;;:31;-1:-1:-1;;;;;15378:10:0;;15400:31;15378:10;;;15400:31;15378:10;;;;;:18;-1:-1:-1;;;;;15400:31:0;;;15378:18;;:53;;;;:113;;;15466:5;15472:7;15466:14;;;;;;;;;;;;;;;;;:25;-1:-1:-1;;;;;15435:10:0;;15466:25;15435:10;;;:5;:10;;;;;:20;;;:27;-1:-1:-1;;;15466:25:0;;;;;-1:-1:-1;15435:56:0;15378:113;:159;;;;;15509:5;15515:7;15509:14;;;;;;;;;;;;:28;-1:-1:-1;;;;;;;;15509:28:0;;;;;15495:42;;;;;15378:159;15375:408;;;-1:-1:-1;;;;;15557:10:0;;;;;;15595:1;15557:10;;;;;;;;:25;;:39;;;15585:11;;;15557:39;;-1:-1:-1;;15557:39:0;;;;;;15615:5;;:14;;;;;;;;;;;;:23;;;;:25;;-1:-1:-1;;15615:25:0;;;;;;;;;;;;;;15682:29;;;15699:11;;;15682:29;;;;;-1:-1:-1;;;;;15682:29:0;;;;;;;;;;;;;;;;15748:19;15763:3;15748:14;:19::i;:::-;15103:705;;15037:788;:::o;15837:1912::-;-1:-1:-1;;;;;15924:10:0;;15905:16;15924:10;;;:5;:10;;;;;;;;:24;;;;;;;15977:22;15964:35;;15961:1771;;;16109:15;16125:10;16109:27;;;;;;;;;;:35;-1:-1:-1;;;;;16080:10:0;;16109:35;16080:10;;;16109:35;16080:10;;;;;;;;:25;;16109:35;;;;16080:25;;;;:64;16077:1644;;-1:-1:-1;;;;;16164:10:0;;;;;;16192:1;16164:10;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;-1:-1:-1;;16164:29:0;;;;;;;;;;16287:18;-1:-1:-1;;;;;16287:18:0;;16392:131;16415:10;16410:15;;:1;:15;;;16392:131;;-1:-1:-1;;;;;16473:10:0;;;;;;:5;:10;;;;;16463:40;;16473:26;;:29;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16463:9:0;;;;16473:29;;;;;;;;;;16463:9;:40::i;:::-;16455:48;-1:-1:-1;16428:3:0;;16392:131;;;-1:-1:-1;;;;;;16674:10:0;;;16543:23;16674:10;;;16582:1;16674:10;;;;;;;;:18;;;16569:14;;;;:10;;16674:18;;;;16711:847;-1:-1:-1;;;;;16717:21:0;;;16711:847;;-1:-1:-1;;;;;16835:14:0;;;;;;:5;:14;;;;;:57;;16886:5;;16835:30;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16835:46:0;;:50;:57::i;:::-;-1:-1:-1;;;;;16786:14:0;;;;;;:5;:14;;;;;:30;;:46;;;;;;;;;;;;;;;;;;;;;:106;;;;;-1:-1:-1;;;;;16786:106:0;;;;;-1:-1:-1;;;;;16786:106:0;;;;;;16967:60;17021:5;16967;:14;16973:7;-1:-1:-1;;;;;16967:14:0;-1:-1:-1;;;;;16967:14:0;;;;;;;;;;;;:30;;16998:17;16967:49;;;;;;;;:60;-1:-1:-1;;;;;16915:14:0;;;;;;:5;:14;;;;;:30;;:49;;;;;;;;;;;;;;;;:112;;-1:-1:-1;;;;;16915:112:0;;;:49;;;;;;:112;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17070:14:0;;-1:-1:-1;17070:14:0;;;;;;;;;;:28;;;;;;;;;17124:29;;;;17121:113;;;17201:9;17181:29;;17121:113;17271:14;17259:26;;:9;:26;;;17256:107;;;17330:9;17313:26;;17256:107;17408:17;17390:35;;:14;:35;;;17387:95;;;17453:5;;;17387:95;-1:-1:-1;;;;;;17516:14:0;;;;;;;:5;:14;;;;;;;;:22;;;;;;16711:847;;;-1:-1:-1;;;;;17583:56:0;;17614:10;;;;:5;:10;;;;;;;;;:24;;;;17583:56;;17614:24;;;;;;17583:56;;;;;;;;;;;;;;17676:29;17701:3;17676:24;:29::i;116:476::-;178:7;-1:-1:-1;;;;;423:6:0;;419:47;;-1:-1:-1;453:1:0;446:8;;419:47;490:5;;;-1:-1:-1;;;;;511:10:0;;;;:5;;;;;;;;;;;;-1:-1:-1;;;;;511:10:0;;506:58;;-1:-1:-1;;;;;;542:10:0;116:476;-1:-1:-1;;;116:476:0:o;3391:251::-;3449:7;3481:1;3477;-1:-1:-1;;;;;3477:5:0;;3469:29;;;;;-1:-1:-1;;;3469:29:0;;;;;;;;;;;;-1:-1:-1;;;3469:29:0;;;;;;;;;;;;;;;3509:9;3525:1;-1:-1:-1;;;;;3521:5:0;:1;-1:-1:-1;;;;;3521:5:0;;;;;14749:276;14793:21;;:::i;:::-;14829:7;14825:84;14847:1;14843;:5;;;14825:84;;;14880:5;14886:1;14880:8;;;;;;;;;;;;:17;;;;;14870:4;:7;;;;;;;;;;:27;;;;:7;;;;;;:27;14851:3;;14825:84;;;-1:-1:-1;14931:41:0;;;;;;;;14941:10;;-1:-1:-1;;;;;;;;14941:10:0;;;;14931:41;;14953:12;;;;14931:41;;;;;;;;;;;;14919:6;27:10:-1;;14953:12:0;23:18:-1;;45:23;;-1:-1;14919:54:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14919:54:0;-1:-1:-1;;;;14919:54:0;;;;-1:-1:-1;;14919:54:0;;;;;;;;;;;;;;;14931:41;;14919:54;;;;;;;;;:::i;:::-;-1:-1:-1;;14984:14:0;:33;;;;;;8243:6;14984:33;;-1:-1:-1;;14984:33:0;;;;;;-1:-1:-1;;14749:276:0:o;1980:182::-;2038:7;2068:1;-1:-1:-1;;;;;2063:6:0;:1;-1:-1:-1;;;;;2063:6:0;;;2058:48;;-1:-1:-1;2093:1:0;2086:8;;2058:48;-1:-1:-1;2128:5:0;;;1980:182::o;-1:-1:-1:-;;;;;;;;;;;29:2;21:6;17:15;125:4;109:14;101:6;88:42;-1:-1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://50f7a752b33458bee7dd30c1f09c84945627b2ec3b5c6750c1e52de948695d3a

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.