Contract 0x1daee24fbb54493283f500796734a131e9e09acd

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb207ea40d15af804e531bdb74f7652da53572aebfcebbe65e3fdf4a6d5b8a20aEmergency Withdr...295851162023-05-04 13:11:1025 days 18 hrs ago0x97538821de8611fda363cd8d728d8a409b4b76fc IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00157150827
0x4d1c11788360b2265041321a28f2de7b9a6b98cc161e304faccbe473c37edf8bClaim295439742023-05-03 14:02:3326 days 17 hrs ago0x34523c7d24be4db75b08fb78e52a50e2452edc9b IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003592902527.5
0xa0dd4a8012c9bedbb3d54af323b898a8e190febf5728a5e536adfa19f15df535Change Dev293338952023-04-28 14:29:5131 days 16 hrs ago0x1311dbc93f5c37311b42bb039802bb56fd690f86 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00116456943
0x06aaff19d81e20cd81f875cc25b05bc07a0ca1e7d84ed2aca354609640cb6c8aClaim283355392023-04-05 4:39:1755 days 2 hrs ago0x8de1ea585996ef7e7d38b5e6f86f79f4d7f6f5e6 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003527442 27
0x583ee8d21961bf746edade434e000c8f2696350d06ac23f2581d52ba64c8b95aClaim280999212023-03-30 16:58:1460 days 14 hrs ago0x5f502f53a7a52fd2ec29d2e231d707904cf356eb IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003008969 26.5
0x052d37112641a520a6cd3bf28817e918cfd245eb28f64d4fbf96628ffb20f742Claim280883112023-03-30 10:27:3860 days 20 hrs ago0xc25d524c5f2e2baee1d700ab148a912d827bb12b IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003462119 26.5
0x05ee43e6c697a017aaab15003cdbf0bae63d9885b084bf5fd5f888d0ecb3040dClaim280758232023-03-30 3:24:0661 days 3 hrs ago0xb0b16ee3683ec61ffe4398a47109fae88eeb6141 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003008969 26.5
0x740122324b062da4adc8067e4e4fe51e4a36bf75210bd764e459e7e57c500d95Claim280585862023-03-29 17:40:3861 days 13 hrs ago0xcbbf6aeb066071bf5b4b272724df0f36b3894308 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003462119 26.5
0x464f9e39afab28d1ef11e940461645c39692cc452097b164958ee9041c567c63Claim280585312023-03-29 17:38:3861 days 13 hrs ago0xd31290692bbb478c7b1995b50b6f34267fa43122 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003462119 26.5
0x002342e8afdbddf149194dc4d9b311997cb1a6ac4c22852cd153cd055830ff82Claim280585072023-03-29 17:37:4761 days 13 hrs ago0x06f8590db9d4a444d3dabc35eca56df300d0fdb9 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003462119 26.5
0x1ee89e596c7c8511e07f67c036be5d37e49fd8474cd604e9a268da05c8276a84Claim279282172023-03-26 13:32:1464 days 17 hrs ago0xd89bcf9a80cf367174a83f33aa894e002cc63278 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00295219626
0xdbf78ef8bae8ea00b6e6dc3e95db8568acda32dfcf91441adf7ae94a3e1dd84eClaim278863052023-03-25 11:46:3765 days 19 hrs ago0x2ec2336dbf354e95a49cbfb3e05c42415adcb9d6 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003008969 26.5
0xa92f9ce8df0f62f3867ad1c17bdfe4cbeda144f3126996abe150b827fdd4e3f9Claim278657312023-03-24 23:43:1766 days 7 hrs ago0x1ec72e7d0d437e5fd74d4c858b1fdfac142cda1b IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003546625413 27.146835064
0x5b7988c62215f2dd99e31a63d84e9d07eef03107a15d3e459370407679c809f3Claim278656282023-03-24 23:39:4066 days 7 hrs ago0x9d68bf6376fb7afe2bcc01b494070df71069aba8 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.002101221225 27.425
0x92d6248bc214982fa1eb5cc97425a1cbd2127ba122a9ae0fdbf75f7f903f6b5cClaim278655812023-03-24 23:37:5766 days 7 hrs ago0x9d68bf6376fb7afe2bcc01b494070df71069aba8 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.002101221225 27.425
0xcd7c12aafd44fe6e96cb8ae94ec76f22bad0f9e0972d340e4ebe5e8134f5dbe4Claim274084532023-03-14 1:48:1277 days 5 hrs ago0xd31290692bbb478c7b1995b50b6f34267fa43122 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003097725921 27.2816825
0x9f73f35dae3f81c22ce7c1dd1bd4911c6c00935401c2eca8ce5d64354b605beaClaim269409862023-03-02 21:48:1388 days 9 hrs ago0x3da8cada0f3801d13eb0748ab4f5f6ee0f450690 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00317928828
0x36bd21d10c9fa2134dc490c05b5278980a1b9c988f7b4f46e5ca5a232bf9e308Claim268510212023-02-28 17:38:0990 days 13 hrs ago0xb9f5169c1612ad99f681086f74deabb4be254f0d IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00309778003727.282159105
0xccaa7b05ebd846d2139e1ed17ecdb5f27e35abf02bceda42d0b0e1cea8862df4Claim267776282023-02-26 23:27:2892 days 7 hrs ago0xb1915bea468ba8c82284295ad1b89bc5575284da IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00283865 25
0xb363fa871daadffde1439385ac68f130a79020e855327ba8a018b07f9db528ecClaim261024942023-02-11 2:05:17108 days 5 hrs ago0x8ab4d73558415c4844c19161e39c0a3fd6b7c230 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003008969 26.5
0x708ad3de6454a98fc7c79a3e7196b7e677cda52a886a9f006020fafad52b7f3dClaim260431812023-02-09 16:44:05109 days 14 hrs ago0xb1915bea468ba8c82284295ad1b89bc5575284da IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00283865 25
0x87430f35a369b3dbb53330b127be92274c657f6bc3ee133805dc5741082fcf74Claim259869242023-02-08 8:59:40110 days 22 hrs ago0xd8d9fd806ea1190e4849879b8b2269606be1a08c IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003462119 26.5
0x21751f88ded2c9d33fc55862ccf63f88d7b708f4c558bc05df911fc8fbf63a1bClaim259150882023-02-06 16:36:12112 days 14 hrs ago0x1287ecd56bffe0ca1f07566278dc7062cc39b879 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003008969 26.5
0xa61c5e8c8a557f0d1e806f9ee4245b9986fce3c1e5e6345d518eeca6c16426b5Claim258576052023-02-05 8:19:36113 days 22 hrs ago0x9a7fcfe4a54e8c07108348ddac1808a60dee37c7 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.003052320862 26.8818
0x3f4adef7e28a0493ab8e6723d2e2caf9946d85217b71da2153b747e550bfd9e4Claim258412942023-02-04 23:05:26114 days 8 hrs ago0xb032cf86fcb3eafb04261688c5cdcf3c00718b33 IN  0x1daee24fbb54493283f500796734a131e9e09acd0 AVAX0.00317928828
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Node

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at snowtrace.io on 2022-05-28
*/

/**
 *Submitted for verification at snowtrace.io on 2022-05-26
*/

// SPDX-License-Identifier: MIT

// File @openzeppelin/contracts-old/token/ERC20/[email protected]

pragma solidity ^0.6.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// File @openzeppelin/contracts-old/math/[email protected]

pragma solidity ^0.6.0;

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

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

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

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. 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 mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


// File @openzeppelin/contracts-old/utils/[email protected]

pragma solidity ^0.6.2;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}


// File @openzeppelin/contracts-old/token/ERC20/[email protected]

pragma solidity ^0.6.0;



/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure (when the token
 * contract returns false). Tokens that return no value (and instead revert or
 * throw on failure) are also supported, non-reverting calls are assumed to be
 * successful.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        // safeApprove should only be called when setting an initial allowance,
        // or when resetting it to zero. To increase and decrease it, use
        // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
        // solhint-disable-next-line max-line-length
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    /**
     * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
     * on the return value: the return value is optional (but if data is returned, it must not be false).
     * @param token The token targeted by the call.
     * @param data The call data (encoded using abi.encode or one of its variants).
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
        // we're implementing it ourselves.

        // A Solidity high level call has three parts:
        //  1. The target address is checked to verify it contains contract code
        //  2. The call itself is made, and success asserted
        //  3. The return value is decoded, which in turn checks the size of the returned data.
        // solhint-disable-next-line max-line-length
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}


// File contracts/distribution/Node.sol

pragma experimental ABIEncoderV2;
pragma solidity 0.6.12;

contract Node {
    using SafeERC20 for IERC20;
    using SafeMath for uint256;

    IERC20 public constant TOKEN = IERC20(0x03d15E0451e54Eec95ac5AcB5B0a7ce69638c62A);
    uint256[] public tierAllocPoints = [1 ether, 1 ether, 1 ether];
    uint256[] public tierAmounts = [0.0000018 ether, 1 ether, 1 ether];
    struct User {
        uint256 total_deposits;
        uint256 total_claims;
        uint256 last_distPoints;
    }

    event CreateNode(uint256 timestamp, address account, uint256 num);

    address private dev;
    
    mapping(address => User) public users;
    mapping(address => mapping(uint256 => uint256)) public nodes;
    mapping(uint256 => uint256) public totalNodes;
    address[] public userIndices;

    uint256 public total_deposited;
    uint256 public total_claimed;
    uint256 public total_rewards;
    uint256 public treasury_rewards;
    uint256 public treasuryFeePercent;
    uint256 public totalDistributeRewards;
    uint256 public totalDistributePoints;
    uint256 public maxReturnPercent;
    uint256 public dripRate;
    uint256 public lastDripTime;
    uint256 public startTime;
    bool public enabled;
    uint256 public constant MULTIPLIER = 10e18;


    constructor(uint256 _startTime) public {
        maxReturnPercent = 500; 
        dripRate = 2100000; 
        treasuryFeePercent = 25; 

        lastDripTime = _startTime > block.timestamp ? _startTime : block.timestamp;
        startTime = _startTime;
        enabled = true;
        dev = msg.sender;
    }

    receive() external payable {
        revert("Do not send AVAX.");
    }

    modifier onlyDev() {
        require(msg.sender == dev, "Caller is not the dev!");
        _;
    }

    function changeDev(address payable newDev) external onlyDev {
        require(newDev != address(0), "Zero address");
        dev = newDev;
    }

    function claimTreasuryRewards() external {
        if (treasury_rewards > 0) {
            TOKEN.safeTransfer(dev, treasury_rewards);
            treasury_rewards = 0;
        }   
    }

    function setStartTime(uint256 _startTime) external onlyDev {
        startTime = _startTime;
    }
    
    function setEnabled(bool _enabled) external onlyDev {
        enabled = _enabled;
    }

    function setTreasuryFeePercent(uint256 percent) external onlyDev {
        treasuryFeePercent = percent;
    }

    function setDripRate(uint256 rate) external onlyDev {
        dripRate = rate;
    }
    
    function setLastDripTime(uint256 timestamp) external onlyDev {
        lastDripTime = timestamp;
    }

    function setMaxReturnPercent(uint256 percent) external onlyDev {
        maxReturnPercent = percent;
    }

    function setTierValues(uint256[] memory _tierAllocPoints, uint256[] memory _tierAmounts) external onlyDev {
        require(_tierAllocPoints.length == _tierAmounts.length, "Length mismatch");
        tierAllocPoints = _tierAllocPoints;
        tierAmounts = _tierAmounts;
    }

    function setUser(address _addr, User memory _user) external onlyDev {
        total_deposited = total_deposited.sub(users[_addr].total_deposits).add(_user.total_deposits);
        total_claimed = total_claimed.sub(users[_addr].total_claims).add(_user.total_claims);
        users[_addr].total_deposits = _user.total_deposits;
        users[_addr].total_claims = _user.total_claims;
    }

    function setNodes(address _user, uint256[] memory _nodes) external onlyDev {
        for(uint256 i = 0; i < _nodes.length; i++) {
            totalNodes[i] = totalNodes[i].sub(nodes[_user][i]).add( _nodes[i]);
            nodes[_user][i] = _nodes[i];
        }
    }

    function totalAllocPoints() public view returns (uint256) {
        uint256 total = 0;
        for (uint256 i = 0; i < tierAllocPoints.length; i++) {
            total = total.add(tierAllocPoints[i].mul(totalNodes[i]));
        }
        return total;
    }

    function allocPoints(address account) public view returns (uint256) {
        uint256 total = 0;
        for (uint256 i = 0; i < tierAllocPoints.length; i++) {
            total = total.add(tierAllocPoints[i].mul(nodes[account][i]));
        }
        return total;
    }

    function getDistributionRewards(address account) public view returns (uint256) {
        if (isMaxPayout(account)) return 0;

        uint256 newDividendPoints = totalDistributePoints.sub(users[account].last_distPoints);
        uint256 distribute = allocPoints(account).mul(newDividendPoints).div(MULTIPLIER);
        return distribute > total_rewards ? total_rewards : distribute;
    }
    
    function getTotalRewards(address _sender) public view returns (uint256) {
        if (users[_sender].total_deposits == 0) 
            return 0;
        
        uint256 rewards = getDistributionRewards(_sender).add(getRewardDrip().mul(allocPoints(_sender)).div(totalAllocPoints()));
        uint256 totalClaims = users[_sender].total_claims;
        uint256 maxPay = maxPayout(_sender);

        // Payout remaining if exceeds max payout
        return totalClaims.add(rewards) > maxPay ? maxPay.sub(totalClaims) : rewards;
    }


    function create(uint256 nodeTier, uint256 numNodes) external {
        address _sender = msg.sender;
        require(enabled && block.timestamp >= startTime, "Disabled");
        require(nodeTier < tierAllocPoints.length && nodeTier < tierAmounts.length, "Invalid nodeTier");

        claim();

        if (users[_sender].total_deposits == 0) {
            userIndices.push(_sender); // New user
            users[_sender].last_distPoints = totalDistributePoints;
        } 
        if (users[_sender].total_deposits != 0 && isMaxPayout(_sender)) {
            users[_sender].last_distPoints = totalDistributePoints;
        }

        uint256 tierPrice = tierAmounts[nodeTier].mul(numNodes);
        
        require(TOKEN.balanceOf(_sender) >= tierPrice, "Insufficient balance");
        require(TOKEN.allowance(_sender, address(this)) >= tierPrice, "Insufficient allowance");
        TOKEN.safeTransferFrom(_sender, address(this), tierPrice);

        users[_sender].total_deposits = users[_sender].total_deposits.add(tierPrice);
        
        total_deposited = total_deposited.add(tierPrice);
        treasury_rewards = treasury_rewards.add(
            tierPrice.mul(treasuryFeePercent).div(100)
        );
        
        nodes[_sender][nodeTier] = nodes[_sender][nodeTier].add(numNodes);
        totalNodes[nodeTier] = totalNodes[nodeTier].add(numNodes);

        emit CreateNode(block.timestamp, _sender, numNodes);
    }

    function claim() public {
        dripRewards();

        address _sender = msg.sender;
        uint256 _rewards = getDistributionRewards(_sender);
        
        if (_rewards > 0) {
            
            total_rewards = total_rewards.sub(_rewards);
            uint256 totalClaims = users[_sender].total_claims;
            uint256 maxPay = maxPayout(_sender);

            // Payout remaining if exceeds max payout
            if(totalClaims.add(_rewards) > maxPay) {
                _rewards = maxPay.sub(totalClaims);
            }

            users[_sender].total_claims = users[_sender].total_claims.add(_rewards);
            total_claimed = total_claimed.add(_rewards);

            IERC20(TOKEN).safeTransfer(_sender, _rewards);
            
            users[_sender].last_distPoints = totalDistributePoints;
        }
    }

       function _compound(uint256 nodeTier, uint256 numNodes) internal {
        address _sender = msg.sender;
        require(enabled && block.timestamp >= startTime, "Disabled");
        require(nodeTier < tierAllocPoints.length && nodeTier < tierAmounts.length, "Invalid nodeTier");

        if (users[_sender].total_deposits == 0) {
            userIndices.push(_sender); // New user
            users[_sender].last_distPoints = totalDistributePoints;
        } 
        if (users[_sender].total_deposits != 0 && isMaxPayout(_sender)) {
            users[_sender].last_distPoints = totalDistributePoints;
        }

        uint256 tierPrice = tierAmounts[nodeTier].mul(numNodes);
        
        require(TOKEN.balanceOf(_sender) >= tierPrice, "Insufficient balance");
        require(TOKEN.allowance(_sender, address(this)) >= tierPrice, "Insufficient allowance");
        TOKEN.safeTransferFrom(_sender, address(this), tierPrice);

        users[_sender].total_deposits = users[_sender].total_deposits.add(tierPrice);
        
        total_deposited = total_deposited.add(tierPrice);
        treasury_rewards = treasury_rewards.add(
            tierPrice.mul(treasuryFeePercent).div(100)
        );
        
        nodes[_sender][nodeTier] = nodes[_sender][nodeTier].add(numNodes);
        totalNodes[nodeTier] = totalNodes[nodeTier].add(numNodes);

        emit CreateNode(block.timestamp, _sender, numNodes);
    }

    function compound() public {
      uint256 rewardsPending = getTotalRewards(msg.sender);  
      require(rewardsPending >= tierAmounts[0], "Not enough to compound");  
      uint256 numPossible = rewardsPending.div(tierAmounts[0]);
      claim();
      _compound(0, numPossible);
    }


    function maxPayout(address _sender) public view returns (uint256) {
        return users[_sender].total_deposits.mul(maxReturnPercent).div(100);
    }

    function isMaxPayout(address _sender) public view returns (bool) {
        return users[_sender].total_claims >= maxPayout(_sender);
    }

    function _disperse(uint256 amount) internal {
        if (amount > 0 ) {
            totalDistributePoints = totalDistributePoints.add(amount.mul(MULTIPLIER).div(totalAllocPoints()));
            totalDistributeRewards = totalDistributeRewards.add(amount);
            total_rewards = total_rewards.add(amount);
        }
    }

    function dripRewards() public {
        uint256 drip = getRewardDrip();

        if (drip > 0) {
            _disperse(drip);
            lastDripTime = block.timestamp;
        }
    }

    function getRewardDrip() public view returns (uint256) {
        if (lastDripTime < block.timestamp) {
            uint256 poolBalance = getBalancePool();
            uint256 secondsPassed = block.timestamp.sub(lastDripTime);
            uint256 drip = secondsPassed.mul(poolBalance).div(dripRate);

            if (drip > poolBalance) {
                drip = poolBalance;
            }

            return drip;
        }
        return 0;
    }

    function getDayDripEstimate(address _user) external view returns (uint256) {
        return
            allocPoints(_user) > 0 && !isMaxPayout(_user)
                ? getBalancePool()
                    .mul(86400)
                    .mul(allocPoints(_user))
                    .div(totalAllocPoints())
                    .div(dripRate)
                : 0;
    }

    function total_users() external view returns (uint256) {
        return userIndices.length;
    }

    function numNodes(address _sender, uint256 _nodeId) external view returns (uint256) {
        return nodes[_sender][_nodeId];
    }

    function getNodes(address _sender) external view returns (uint256[] memory) {
        uint256[] memory userNodes = new uint256[](tierAllocPoints.length);
        for (uint256 i = 0; i < tierAllocPoints.length; i++) {
            userNodes[i] = userNodes[i].add(nodes[_sender][i]);
        }
        return userNodes;
    }
    
    function getTotalNodes() external view returns (uint256[] memory) {
        uint256[] memory totals = new uint256[](tierAllocPoints.length);
        for (uint256 i = 0; i < tierAllocPoints.length; i++) {
            totals[i] = totals[i].add(totalNodes[i]);
        }
        return totals;
    }

    function getBalance() public view returns (uint256) {
        return IERC20(TOKEN).balanceOf(address(this));
    }

     function getBalancePool() public view returns (uint256) {
        return getBalance().sub(total_rewards).sub(treasury_rewards);
    }

    function emergencyWithdraw(IERC20 token, uint256 amnt) external onlyDev {
        token.safeTransfer(dev, amnt);
    }
}

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"CreateNode","type":"event"},{"inputs":[],"name":"MULTIPLIER","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"allocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimTreasuryRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nodeTier","type":"uint256"},{"internalType":"uint256","name":"numNodes","type":"uint256"}],"name":"create","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dripRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dripRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalancePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getDayDripEstimate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getDistributionRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDrip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalNodes","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"isMaxPayout","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDripTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"}],"name":"maxPayout","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxReturnPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256","name":"_nodeId","type":"uint256"}],"name":"numNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setDripRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"setLastDripTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setMaxReturnPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256[]","name":"_nodes","type":"uint256[]"}],"name":"setNodes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_tierAllocPoints","type":"uint256[]"},{"internalType":"uint256[]","name":"_tierAmounts","type":"uint256[]"}],"name":"setTierValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"setTreasuryFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"},{"components":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"internalType":"struct Node.User","name":"_user","type":"tuple"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tierAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDistributeRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalNodes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_deposited","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"total_users","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeePercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury_rewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIndices","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"total_deposits","type":"uint256"},{"internalType":"uint256","name":"total_claims","type":"uint256"},{"internalType":"uint256","name":"last_distPoints","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052670de0b6b3a7640000608081815260a082905260c0919091526200002d906000906003620000e7565b50604080516060810182526501a3185c50008152670de0b6b3a7640000602082018190529181019190915262000068906001906003620000e7565b503480156200007657600080fd5b506040516200251a3803806200251a833981016040819052620000999162000159565b6101f4600e5562200b20600f556019600b55428111620000ba5742620000bc565b805b6010556011556012805460ff19166001179055600280546001600160a01b0319163317905562000172565b82805482825590600052602060002090810192821562000130579160200282015b828111156200013057825182906001600160401b031690559160200191906001019062000108565b506200013e92915062000142565b5090565b5b808211156200013e576000815560010162000143565b6000602082840312156200016b578081fd5b5051919050565b61239880620001826000396000f3fe6080604052600436106102cd5760003560e01c80635c75dcbc116101755780639f7b4579116100dc578063d326159211610095578063e7cc62bd1161006f578063e7cc62bd1461082a578063f65f4eaf1461083f578063f69e204614610854578063fba1f7b014610869576102f3565b8063d3261592146107e0578063de560cca146107f5578063e300e98b1461080a576102f3565b80639f7b457914610727578063a87430ba14610747578063ab4e278514610776578063adf1b67e1461078b578063bcb11639146107ab578063c7ce9560146107cb576102f3565b8063740c8af71161012e578063740c8af71461068857806378e979251461069d57806382bfefc8146106b257806388a8c95c146106c757806394ac42cc146106e757806395ccea6714610707576102f3565b80635c75dcbc146105e95780635fb11d7e146105fe5780635fbb48dc1461061e57806363584ecd1461063e578063648acb09146106535780636af904c614610673576102f3565b80632ae2707111610234578063486af96a116101ed5780635083f17b116101c75780635083f17b1461057f57806356e1221c1461059f5780635b0d2d8c146105bf5780635b2f3c8e146105d4576102f3565b8063486af96a146105285780634b3dd5b5146105555780634e71d92d1461056a576102f3565b80632ae27071146104685780632bcf161c14610488578063328d8f72146104a857806335771fe0146104c85780633e0a322d146104e857806344886d7014610508576102f3565b80631fa36cbe116102865780631fa36cbe146103a4578063211aea02146103b95780632365d7bc146103e6578063238dafe0146104065780632702dfe714610428578063277e531614610448576102f3565b8063059f8b16146102f857806305c4744b1461032357806305d6bbf41461033a57806312065fe01461034f5780631d1c7b4e146103645780631ed5c6c214610384576102f3565b366102f35760405162461bcd60e51b81526004016102ea90612126565b60405180910390fd5b600080fd5b34801561030457600080fd5b5061030d61087e565b60405161031a91906122ae565b60405180910390f35b34801561032f57600080fd5b5061033861088a565b005b34801561034657600080fd5b5061030d6108cb565b34801561035b57600080fd5b5061030d6108d1565b34801561037057600080fd5b5061030d61037f366004611ea2565b610961565b34801561039057600080fd5b5061033861039f366004611ea2565b610973565b3480156103b057600080fd5b5061030d6109a2565b3480156103c557600080fd5b506103d96103d4366004611ea2565b610a05565b60405161031a9190611f0f565b3480156103f257600080fd5b5061030d610401366004611ea2565b610a2c565b34801561041257600080fd5b5061041b610a4a565b60405161031a9190611fbe565b34801561043457600080fd5b50610338610443366004611d86565b610a53565b34801561045457600080fd5b5061030d610463366004611d1c565b610b16565b34801561047457600080fd5b50610338610483366004611e13565b610b9e565b34801561049457600080fd5b5061030d6104a3366004611d1c565b610c15565b3480156104b457600080fd5b506103386104c3366004611e6a565b610cba565b3480156104d457600080fd5b5061030d6104e3366004611ea2565b610cf7565b3480156104f457600080fd5b50610338610503366004611ea2565b610d04565b34801561051457600080fd5b5061041b610523366004611d1c565b610d33565b34801561053457600080fd5b50610548610543366004611d1c565b610d63565b60405161031a9190611f7a565b34801561056157600080fd5b5061030d610e2e565b34801561057657600080fd5b50610338610e97565b34801561058b57600080fd5b5061033861059a366004611d38565b610fa0565b3480156105ab57600080fd5b506103386105ba366004611ea2565b61107a565b3480156105cb57600080fd5b5061030d6110a9565b3480156105e057600080fd5b506103386110c5565b3480156105f557600080fd5b5061030d6110e8565b34801561060a57600080fd5b5061030d610619366004611d1c565b6110ee565b34801561062a57600080fd5b50610338610639366004611ea2565b611140565b34801561064a57600080fd5b5061054861116f565b34801561065f57600080fd5b5061033861066e366004611ea2565b611209565b34801561067f57600080fd5b5061030d611238565b34801561069457600080fd5b5061030d61123e565b3480156106a957600080fd5b5061030d611244565b3480156106be57600080fd5b506103d961124a565b3480156106d357600080fd5b506103386106e2366004611d1c565b611262565b3480156106f357600080fd5b5061030d610702366004611d1c565b6112d4565b34801561071357600080fd5b50610338610722366004611de8565b611330565b34801561073357600080fd5b50610338610742366004611ed2565b611374565b34801561075357600080fd5b50610767610762366004611d1c565b611759565b60405161031a939291906122d6565b34801561078257600080fd5b5061030d61177a565b34801561079757600080fd5b5061030d6107a6366004611de8565b611780565b3480156107b757600080fd5b5061030d6107c6366004611de8565b61179d565b3480156107d757600080fd5b5061030d6117c5565b3480156107ec57600080fd5b5061030d6117cb565b34801561080157600080fd5b5061030d6117d1565b34801561081657600080fd5b5061030d610825366004611d1c565b6117d7565b34801561083657600080fd5b5061030d611806565b34801561084b57600080fd5b5061030d61180c565b34801561086057600080fd5b50610338611812565b34801561087557600080fd5b5061030d611899565b678ac7230489e8000081565b600a54156108c957600254600a546108c3917303d15e0451e54eec95ac5acb5b0a7ce69638c62a916001600160a01b039091169061189f565b6000600a555b565b60095481565b6040516370a0823160e01b81526000907303d15e0451e54eec95ac5acb5b0a7ce69638c62a906370a082319061090b903090600401611f0f565b60206040518083038186803b15801561092357600080fd5b505afa158015610937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095b9190611eba565b90505b90565b60056020526000908152604090205481565b6002546001600160a01b0316331461099d5760405162461bcd60e51b81526004016102ea90611ffc565b601055565b600080805b6000548110156109ff5760008181526005602052604081205481546109f5926109ee9291859081106109d557fe5b90600052602060002001546118f590919063ffffffff16565b8390611936565b91506001016109a7565b50905090565b60068181548110610a1257fe5b6000918252602090912001546001600160a01b0316905081565b60008181548110610a3957fe5b600091825260209091200154905081565b60125460ff1681565b6002546001600160a01b03163314610a7d5760405162461bcd60e51b81526004016102ea90611ffc565b80516001600160a01b038316600090815260036020526040902054600754610ab09291610aaa919061195b565b90611936565b6007556020808201516001600160a01b03841660009081526003909252604090912060010154600854610ae89291610aaa919061195b565b60085580516001600160a01b0390921660009081526003602090815260409091209283550151600190910155565b6000610b2182610d33565b15610b2e57506000610b99565b6001600160a01b038216600090815260036020526040812060020154600d54610b569161195b565b90506000610b7f678ac7230489e80000610b7984610b73886110ee565b906118f5565b9061199d565b90506009548111610b905780610b94565b6009545b925050505b919050565b6002546001600160a01b03163314610bc85760405162461bcd60e51b81526004016102ea90611ffc565b8051825114610be95760405162461bcd60e51b81526004016102ea906121e2565b8151610bfc906000906020850190611c3c565b508051610c10906001906020840190611c3c565b505050565b6001600160a01b038116600090815260036020526040812054610c3a57506000610b99565b6000610c67610c5e610c4a6109a2565b610b79610c56876110ee565b610b73610e2e565b610aaa85610b16565b6001600160a01b038416600090815260036020526040812060010154919250610c8f856117d7565b905080610c9c8385611936565b11610ca75782610cb1565b610cb1818361195b565b95945050505050565b6002546001600160a01b03163314610ce45760405162461bcd60e51b81526004016102ea90611ffc565b6012805460ff1916911515919091179055565b60018181548110610a3957fe5b6002546001600160a01b03163314610d2e5760405162461bcd60e51b81526004016102ea90611ffc565b601155565b6000610d3e826117d7565b6001600160a01b03831660009081526003602052604090206001015410159050919050565b600054606090819067ffffffffffffffff81118015610d8157600080fd5b50604051908082528060200260200182016040528015610dab578160200160208202803683370190505b50905060005b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091529020548251610e089190849084908110610df257fe5b602002602001015161193690919063ffffffff16565b828281518110610e1457fe5b6020908102919091010152600101610db1565b5092915050565b6000426010541015610e91576000610e446110a9565b90506000610e5d6010544261195b90919063ffffffff16565b90506000610e7a600f54610b7985856118f590919063ffffffff16565b905082811115610e875750815b925061095e915050565b50600090565b610e9f6110c5565b336000610eab82610b16565b90508015610f9c57600954610ec0908261195b565b6009556001600160a01b03821660009081526003602052604081206001015490610ee9846117d7565b905080610ef68385611936565b1115610f0957610f06818361195b565b92505b6001600160a01b038416600090815260036020526040902060010154610f2f9084611936565b6001600160a01b038516600090815260036020526040902060010155600854610f589084611936565b600855610f7a7303d15e0451e54eec95ac5acb5b0a7ce69638c62a858561189f565b5050600d546001600160a01b0383166000908152600360205260409020600201555b5050565b6002546001600160a01b03163314610fca5760405162461bcd60e51b81526004016102ea90611ffc565b60005b8151811015610c1057611026828281518110610fe557fe5b6020908102919091018101516001600160a01b038616600090815260048352604080822086835284528082205460059094529020549091610aaa919061195b565b600082815260056020526040902055815182908290811061104357fe5b6020908102919091018101516001600160a01b03851660009081526004835260408082208583529093529190912055600101610fcd565b6002546001600160a01b031633146110a45760405162461bcd60e51b81526004016102ea90611ffc565b600b55565b600061095b600a546110bf6009546110bf6108d1565b9061195b565b60006110cf610e2e565b905080156110e5576110e0816119df565b426010555b50565b600b5481565b600080805b600054811015610e27576001600160a01b03841660009081526004602090815260408083208484529091528120548154611136926109ee9291859081106109d557fe5b91506001016110f3565b6002546001600160a01b0316331461116a5760405162461bcd60e51b81526004016102ea90611ffc565b600f55565b600054606090819067ffffffffffffffff8111801561118d57600080fd5b506040519080825280602002602001820160405280156111b7578160200160208202803683370190505b50905060005b6000548110156109ff576111ea6005600083815260200190815260200160002054838381518110610df257fe5b8282815181106111f657fe5b60209081029190910101526001016111bd565b6002546001600160a01b031633146112335760405162461bcd60e51b81526004016102ea90611ffc565b600e55565b60085481565b600e5481565b60115481565b7303d15e0451e54eec95ac5acb5b0a7ce69638c62a81565b6002546001600160a01b0316331461128c5760405162461bcd60e51b81526004016102ea90611ffc565b6001600160a01b0381166112b25760405162461bcd60e51b81526004016102ea90612151565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000806112e0836110ee565b1180156112f357506112f182610d33565b155b6112fe57600061132a565b61132a600f54610b7961130f6109a2565b610b7961131b876110ee565b610b7362015180610b736110a9565b92915050565b6002546001600160a01b0316331461135a5760405162461bcd60e51b81526004016102ea90611ffc565b600254610f9c906001600160a01b0384811691168361189f565b601254339060ff16801561138a57506011544210155b6113a65760405162461bcd60e51b81526004016102ea9061220b565b600054831080156113b8575060015483105b6113d45760405162461bcd60e51b81526004016102ea90612177565b6113dc610e97565b6001600160a01b0381166000908152600360205260409020546114595760068054600181019091557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038316908117909155600d54600091825260036020526040909120600201555b6001600160a01b03811660009081526003602052604090205415801590611484575061148481610d33565b156114a957600d546001600160a01b0382166000908152600360205260409020600201555b60006114bc83600186815481106109d557fe5b6040516370a0823160e01b815290915081907303d15e0451e54eec95ac5acb5b0a7ce69638c62a906370a08231906114f8908690600401611f0f565b60206040518083038186803b15801561151057600080fd5b505afa158015611524573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115489190611eba565b10156115665760405162461bcd60e51b81526004016102ea906120c3565b604051636eb1769f60e11b815281907303d15e0451e54eec95ac5acb5b0a7ce69638c62a9063dd62ed3e906115a19086903090600401611f23565b60206040518083038186803b1580156115b957600080fd5b505afa1580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f19190611eba565b101561160f5760405162461bcd60e51b81526004016102ea90612093565b61162f7303d15e0451e54eec95ac5acb5b0a7ce69638c62a833084611a34565b6001600160a01b0382166000908152600360205260409020546116529082611936565b6001600160a01b0383166000908152600360205260409020556007546116789082611936565b600755600b5461169d9061169490606490610b799085906118f5565b600a5490611936565b600a556001600160a01b03821660009081526004602090815260408083208784529091529020546116ce9084611936565b6001600160a01b03831660009081526004602090815260408083208884528252808320939093556005905220546117059084611936565b6000858152600560205260409081902091909155517fddc82401ab579d868e816af720a563cdf9f9d0350abb3fa3266bcf33dd4f48ab9061174b904290859087906122b7565b60405180910390a150505050565b60036020526000908152604090208054600182015460029092015490919083565b600a5481565b600460209081526000928352604080842090915290825290205481565b6001600160a01b03919091166000908152600460209081526040808320938352929052205490565b600d5481565b600f5481565b60075481565b600e546001600160a01b038216600090815260036020526040812054909161132a91606491610b7991906118f5565b60065490565b600c5481565b600061181d33610c15565b9050600160008154811061182d57fe5b90600052602060002001548110156118575760405162461bcd60e51b81526004016102ea9061202c565b6000611884600160008154811061186a57fe5b90600052602060002001548361199d90919063ffffffff16565b905061188e610e97565b610f9c600082611a5b565b60105481565b610c108363a9059cbb60e01b84846040516024016118be929190611f61565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611abb565b6000826119045750600061132a565b8282028284828161191157fe5b041461192f5760405162461bcd60e51b81526004016102ea906121a1565b9392505050565b60008282018381101561192f5760405162461bcd60e51b81526004016102ea9061205c565b600061192f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ba0565b600061192f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bcc565b80156110e557611a0e611a056119f36109a2565b610b7984678ac7230489e800006118f5565b600d5490611936565b600d55600c54611a1e9082611936565b600c55600954611a2e9082611936565b60095550565b611a55846323b872dd60e01b8585856040516024016118be93929190611f3d565b50505050565b601254339060ff168015611a7157506011544210155b611a8d5760405162461bcd60e51b81526004016102ea9061220b565b60005483108015611a9f575060015483105b6113dc5760405162461bcd60e51b81526004016102ea90612177565b611acd826001600160a01b0316611c03565b611ae95760405162461bcd60e51b81526004016102ea90612277565b60006060836001600160a01b031683604051611b059190611ef3565b6000604051808303816000865af19150503d8060008114611b42576040519150601f19603f3d011682016040523d82523d6000602084013e611b47565b606091505b509150915081611b695760405162461bcd60e51b81526004016102ea906120f1565b805115611a555780806020019051810190611b849190611e86565b611a555760405162461bcd60e51b81526004016102ea9061222d565b60008184841115611bc45760405162461bcd60e51b81526004016102ea9190611fc9565b505050900390565b60008183611bed5760405162461bcd60e51b81526004016102ea9190611fc9565b506000838581611bf957fe5b0495945050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610b94575050151592915050565b828054828255906000526020600020908101928215611c77579160200282015b82811115611c77578251825591602001919060010190611c5c565b50611c83929150611c87565b5090565b5b80821115611c835760008155600101611c88565b600082601f830112611cac578081fd5b813567ffffffffffffffff811115611cc2578182fd5b6020808202611cd28282016122ec565b83815293508184018583018287018401881015611cee57600080fd5b600092505b84831015611d11578035825260019290920191908301908301611cf3565b505050505092915050565b600060208284031215611d2d578081fd5b813561192f8161233f565b60008060408385031215611d4a578081fd5b8235611d558161233f565b9150602083013567ffffffffffffffff811115611d70578182fd5b611d7c85828601611c9c565b9150509250929050565b6000808284036080811215611d99578283fd5b8335611da48161233f565b92506060601f1982011215611db7578182fd5b50611dc260606122ec565b602084013581526040840135602082015260608401356040820152809150509250929050565b60008060408385031215611dfa578182fd5b8235611e058161233f565b946020939093013593505050565b60008060408385031215611e25578182fd5b823567ffffffffffffffff80821115611e3c578384fd5b611e4886838701611c9c565b93506020850135915080821115611e5d578283fd5b50611d7c85828601611c9c565b600060208284031215611e7b578081fd5b813561192f81612354565b600060208284031215611e97578081fd5b815161192f81612354565b600060208284031215611eb3578081fd5b5035919050565b600060208284031215611ecb578081fd5b5051919050565b60008060408385031215611ee4578182fd5b50508035926020909101359150565b60008251611f05818460208701612313565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b81811015611fb257835183529284019291840191600101611f96565b50909695505050505050565b901515815260200190565b6000602082528251806020840152611fe8816040850160208701612313565b601f01601f19169190910160400192915050565b60208082526016908201527543616c6c6572206973206e6f7420746865206465762160501b604082015260600190565b602080825260169082015275139bdd08195b9bdd59da081d1bc818dbdb5c1bdd5b9960521b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b602080825260169082015275496e73756666696369656e7420616c6c6f77616e636560501b604082015260600190565b602080825260149082015273496e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601190820152702237903737ba1039b2b7321020ab20ac1760791b604082015260600190565b6020808252600c908201526b5a65726f206164647265737360a01b604082015260600190565b60208082526010908201526f24b73b30b634b2103737b232aa34b2b960811b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252600f908201526e098cadccee8d040dad2e6dac2e8c6d608b1b604082015260600190565b602080825260089082015267111a5cd8589b195960c21b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b90815260200190565b9283526001600160a01b03919091166020830152604082015260600190565b9283526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561230b57600080fd5b604052919050565b60005b8381101561232e578181015183820152602001612316565b83811115611a555750506000910152565b6001600160a01b03811681146110e557600080fd5b80151581146110e557600080fdfea2646970667358221220418d98a1a2395fd3971e276fb9b2bfefa73525650b0030435e9e6c10f628e97a64736f6c634300060c00330000000000000000000000000000000000000000000000000000000062921cd0

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

0000000000000000000000000000000000000000000000000000000062921cd0

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1653742800

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000062921cd0


Deployed ByteCode Sourcemap

14979:12337:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16578:27;;-1:-1:-1;;;16578:27:0;;;;;;;:::i;:::-;;;;;;;;14979:12337;;;;16161:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16886:191;;;;;;;;;;;;;:::i;:::-;;15802:28;;;;;;;;;;;;;:::i;26925:116::-;;;;;;;;;;;;;:::i;15641:45::-;;;;;;;;;;-1:-1:-1;15641:45:0;;;;;:::i;:::-;;:::i;17512:104::-;;;;;;;;;;-1:-1:-1;17512:104:0;;;;;:::i;:::-;;:::i;18708:263::-;;;;;;;;;;;;;:::i;15693:28::-;;;;;;;;;;-1:-1:-1;15693:28:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15156:62::-;;;;;;;;;;-1:-1:-1;15156:62:0;;;;;:::i;:::-;;:::i;16135:19::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18029:392::-;;;;;;;;;;-1:-1:-1;18029:392:0;;;;;:::i;:::-;;:::i;19264:394::-;;;;;;;;;;-1:-1:-1;19264:394:0;;;;;:::i;:::-;;:::i;17740:281::-;;;;;;;;;;-1:-1:-1;17740:281:0;;;;;:::i;:::-;;:::i;19670:540::-;;;;;;;;;;-1:-1:-1;19670:540:0;;;;;:::i;:::-;;:::i;17197:89::-;;;;;;;;;;-1:-1:-1;17197:89:0;;;;;:::i;:::-;;:::i;15225:66::-;;;;;;;;;;-1:-1:-1;15225:66:0;;;;;:::i;:::-;;:::i;17085:100::-;;;;;;;;;;-1:-1:-1;17085:100:0;;;;;:::i;:::-;;:::i;24485:140::-;;;;;;;;;;-1:-1:-1;24485:140:0;;;;;:::i;:::-;;:::i;26275:328::-;;;;;;;;;;-1:-1:-1;26275:328:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25174:460::-;;;;;;;;;;;;;:::i;21693:864::-;;;;;;;;;;;;;:::i;18429:271::-;;;;;;;;;;-1:-1:-1;18429:271:0;;;;;:::i;:::-;;:::i;17294:112::-;;;;;;;;;;-1:-1:-1;17294:112:0;;;;;:::i;:::-;;:::i;27050:135::-;;;;;;;;;;;;;:::i;24974:192::-;;;;;;;;;;;;;:::i;15875:33::-;;;;;;;;;;;;;:::i;18979:277::-;;;;;;;;;;-1:-1:-1;18979:277:0;;;;;:::i;:::-;;:::i;17414:86::-;;;;;;;;;;-1:-1:-1;17414:86:0;;;;;:::i;:::-;;:::i;26615:302::-;;;;;;;;;;;;;:::i;17624:108::-;;;;;;;;;;-1:-1:-1;17624:108:0;;;;;:::i;:::-;;:::i;15767:28::-;;;;;;;;;;;;;:::i;16002:31::-;;;;;;;;;;;;;:::i;16104:24::-;;;;;;;;;;;;;:::i;15068:81::-;;;;;;;;;;;;;:::i;16731:147::-;;;;;;;;;;-1:-1:-1;16731:147:0;;;;;:::i;:::-;;:::i;25642:377::-;;;;;;;;;;-1:-1:-1;25642:377:0;;;;;:::i;:::-;;:::i;27193:120::-;;;;;;;;;;-1:-1:-1;27193:120:0;;;;;:::i;:::-;;:::i;20220:1465::-;;;;;;;;;;-1:-1:-1;20220:1465:0;;;;;:::i;:::-;;:::i;15530:37::-;;;;;;;;;;-1:-1:-1;15530:37:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;15837:31::-;;;;;;;;;;;;;:::i;15574:60::-;;;;;;;;;;-1:-1:-1;15574:60:0;;;;;:::i;:::-;;:::i;26134:133::-;;;;;;;;;;-1:-1:-1;26134:133:0;;;;;:::i;:::-;;:::i;15959:36::-;;;;;;;;;;;;;:::i;16040:23::-;;;;;;;;;;;;;:::i;15730:30::-;;;;;;;;;;;;;:::i;24325:152::-;;;;;;;;;;-1:-1:-1;24325:152:0;;;;;:::i;:::-;;:::i;26027:99::-;;;;;;;;;;;;;:::i;15915:37::-;;;;;;;;;;;;;:::i;24024:291::-;;;;;;;;;;;;;:::i;16070:27::-;;;;;;;;;;;;;:::i;16161:42::-;16198:5;16161:42;:::o;16886:191::-;16942:16;;:20;16938:129;;16998:3;;17003:16;;16979:41;;15106:42;;-1:-1:-1;;;;;16998:3:0;;;;16979:18;:41::i;:::-;17054:1;17035:16;:20;16938:129;16886:191::o;15802:28::-;;;;:::o;26925:116::-;26995:38;;-1:-1:-1;;;26995:38:0;;26968:7;;15106:42;;26995:23;;:38;;27027:4;;26995:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26988:45;;26925:116;;:::o;15641:45::-;;;;;;;;;;;;;:::o;17512:104::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17584:12:::1;:24:::0;17512:104::o;18708:263::-;18757:7;;;18805:136;18829:15;:22;18825:26;;18805:136;;;18914:13;;;;:10;:13;;;;;;18891:18;;18881:48;;18891:37;;18914:13;18925:1;;18891:18;;;;;;;;;;;;;;:22;;:37;;;;:::i;:::-;18881:5;;:9;:48::i;:::-;18873:56;-1:-1:-1;18853:3:0;;18805:136;;;-1:-1:-1;18958:5:0;-1:-1:-1;18708:263:0;:::o;15693:28::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15693:28:0;;-1:-1:-1;15693:28:0;:::o;15156:62::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15156:62:0;:::o;16135:19::-;;;;;;:::o;18029:392::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;18179:20;;-1:-1:-1;;;;;18146:12:0;::::1;18179:20;18146:12:::0;;;:5:::1;:12;::::0;;;;:27;18126:15:::1;::::0;:74:::1;::::0;18179:20;18126:48:::1;::::0;:15;:19:::1;:48::i;:::-;:52:::0;::::1;:74::i;:::-;18108:15;:92:::0;18276:18:::1;::::0;;::::1;::::0;-1:-1:-1;;;;;18245:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;;:25:::1;;::::0;18227:13:::1;::::0;:68:::1;::::0;18276:18;18227:44:::1;::::0;:13;:17:::1;:44::i;:68::-;18211:13;:84:::0;18336:20;;-1:-1:-1;;;;;18306:12:0;;::::1;18336:20;18306:12:::0;;;:5:::1;:12;::::0;;;;;;;:50;;;18395:18:::1;::::0;18367:25:::1;::::0;;::::1;:46:::0;18029:392::o;19264:394::-;19334:7;19358:20;19370:7;19358:11;:20::i;:::-;19354:34;;;-1:-1:-1;19387:1:0;19380:8;;19354:34;-1:-1:-1;;;;;19455:14:0;;19401:25;19455:14;;;:5;:14;;;;;:30;;;19429:21;;:57;;:25;:57::i;:::-;19401:85;;19497:18;19518:59;16198:5;19518:43;19543:17;19518:20;19530:7;19518:11;:20::i;:::-;:24;;:43::i;:::-;:47;;:59::i;:::-;19497:80;;19608:13;;19595:10;:26;:55;;19640:10;19595:55;;;19624:13;;19595:55;19588:62;;;;19264:394;;;;:::o;17740:281::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17892:12:::1;:19;17865:16;:23;:46;17857:74;;;;-1:-1:-1::0;;;17857:74:0::1;;;;;;;:::i;:::-;17942:34:::0;;::::1;::::0;:15:::1;::::0;:34:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;17987:26:0;;::::1;::::0;:11:::1;::::0;:26:::1;::::0;::::1;::::0;::::1;:::i;:::-;;17740:281:::0;;:::o;19670:540::-;-1:-1:-1;;;;;19757:14:0;;19733:7;19757:14;;;:5;:14;;;;;:29;19753:62;;-1:-1:-1;19814:1:0;19807:8;;19753:62;19836:15;19854:102;19890:65;19936:18;:16;:18::i;:::-;19890:41;19910:20;19922:7;19910:11;:20::i;:::-;19890:15;:13;:15::i;:65::-;19854:31;19877:7;19854:22;:31::i;:102::-;-1:-1:-1;;;;;19989:14:0;;19967:19;19989:14;;;:5;:14;;;;;:27;;;19836:120;;-1:-1:-1;20044:18:0;19995:7;20044:9;:18::i;:::-;20027:35;-1:-1:-1;20027:35:0;20133:24;:11;20149:7;20133:15;:24::i;:::-;:33;:69;;20195:7;20133:69;;;20169:23;:6;20180:11;20169:10;:23::i;:::-;20126:76;19670:540;-1:-1:-1;;;;;19670:540:0:o;17197:89::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17260:7:::1;:18:::0;;-1:-1:-1;;17260:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17197:89::o;15225:66::-;;;;;;;;;;17085:100;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17155:9:::1;:22:::0;17085:100::o;24485:140::-;24544:4;24599:18;24609:7;24599:9;:18::i;:::-;-1:-1:-1;;;;;24568:14:0;;;;;;:5;:14;;;;;:27;;;:49;;;-1:-1:-1;24485:140:0;;;:::o;26275:328::-;26405:15;:22;26333:16;;;;26391:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26391:37:0;;26362:66;;26444:9;26439:130;26463:15;:22;26459:26;;26439:130;;;-1:-1:-1;;;;;26539:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;26522:12;;:35;;26539:17;26522:9;;26554:1;;26522:12;;;;;;;;;;;;:16;;:35;;;;:::i;:::-;26507:9;26517:1;26507:12;;;;;;;;;;;;;;;;;:50;26487:3;;26439:130;;;-1:-1:-1;26586:9:0;26275:328;-1:-1:-1;;26275:328:0:o;25174:460::-;25220:7;25259:15;25244:12;;:30;25240:368;;;25291:19;25313:16;:14;:16::i;:::-;25291:38;;25344:21;25368:33;25388:12;;25368:15;:19;;:33;;;;:::i;:::-;25344:57;;25416:12;25431:44;25466:8;;25431:30;25449:11;25431:13;:17;;:30;;;;:::i;:44::-;25416:59;;25503:11;25496:4;:18;25492:77;;;-1:-1:-1;25542:11:0;25492:77;25592:4;-1:-1:-1;25585:11:0;;-1:-1:-1;;25585:11:0;25240:368;-1:-1:-1;25625:1:0;25174:460;:::o;21693:864::-;21728:13;:11;:13::i;:::-;21772:10;21754:15;21812:31;21772:10;21812:22;:31::i;:::-;21793:50;-1:-1:-1;21868:12:0;;21864:686;;21927:13;;:27;;21945:8;21927:17;:27::i;:::-;21911:13;:43;-1:-1:-1;;;;;21991:14:0;;21969:19;21991:14;;;:5;:14;;;;;:27;;;;22050:18;21997:7;22050:9;:18::i;:::-;22033:35;-1:-1:-1;22033:35:0;22143:25;:11;22159:8;22143:15;:25::i;:::-;:34;22140:108;;;22209:23;:6;22220:11;22209:10;:23::i;:::-;22198:34;;22140:108;-1:-1:-1;;;;;22294:14:0;;;;;;:5;:14;;;;;:27;;;:41;;22326:8;22294:31;:41::i;:::-;-1:-1:-1;;;;;22264:14:0;;;;;;:5;:14;;;;;:27;;:71;22366:13;;:27;;22384:8;22366:17;:27::i;:::-;22350:13;:43;22410:45;15106:42;22437:7;22446:8;22410:26;:45::i;:::-;-1:-1:-1;;22517:21:0;;-1:-1:-1;;;;;22484:14:0;;;;;;:5;:14;;;;;:30;;:54;21864:686;21693:864;;:::o;18429:271::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;18519:9:::1;18515:178;18538:6;:13;18534:1;:17;18515:178;;;18589:50;18629:6;18636:1;18629:9;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18607:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;18589:10:::1;:13:::0;;;;;;18629:9;;18589:34:::1;::::0;:13;:17:::1;:34::i;:50::-;18573:13;::::0;;;:10:::1;:13;::::0;;;;:66;18672:9;;:6;;18584:1;;18672:9;::::1;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;18654:12:0;::::1;;::::0;;;:5:::1;:12:::0;;;;;;:15;;;;;;;;;;:27;18553:3:::1;;18515:178;;17294:112:::0;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17370:18:::1;:28:::0;17294:112::o;27050:135::-;27097:7;27124:53;27160:16;;27124:31;27141:13;;27124:12;:10;:12::i;:::-;:16;;:31::i;24974:192::-;25015:12;25030:15;:13;:15::i;:::-;25015:30;-1:-1:-1;25062:8:0;;25058:101;;25087:15;25097:4;25087:9;:15::i;:::-;25132;25117:12;:30;25058:101;24974:192;:::o;15875:33::-;;;;:::o;18979:277::-;19038:7;;;19086:140;19110:15;:22;19106:26;;19086:140;;;-1:-1:-1;;;;;19195:14:0;;;;;;:5;:14;;;;;;;;:17;;;;;;;;;19172:18;;19162:52;;19172:41;;19195:17;19210:1;;19172:18;;;;;19162:52;19154:60;-1:-1:-1;19134:3:0;;19086:140;;17414:86;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17477:8:::1;:15:::0;17414:86::o;26615:302::-;26732:15;:22;26663:16;;;;26718:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26718:37:0;;26692:63;;26771:9;26766:120;26790:15;:22;26786:26;;26766:120;;;26846:28;26860:10;:13;26871:1;26860:13;;;;;;;;;;;;26846:6;26853:1;26846:9;;;;;;;:28;26834:6;26841:1;26834:9;;;;;;;;;;;;;;;;;:40;26814:3;;26766:120;;17624:108;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;17698:16:::1;:26:::0;17624:108::o;15767:28::-;;;;:::o;16002:31::-;;;;:::o;16104:24::-;;;;:::o;15068:81::-;15106:42;15068:81;:::o;16731:147::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16810:20:0;::::1;16802:45;;;;-1:-1:-1::0;;;16802:45:0::1;;;;;;;:::i;:::-;16858:3;:12:::0;;-1:-1:-1;;;;;;16858:12:0::1;-1:-1:-1::0;;;;;16858:12:0;;;::::1;::::0;;;::::1;::::0;;16731:147::o;25642:377::-;25708:7;25769:1;25748:18;25760:5;25748:11;:18::i;:::-;:22;:45;;;;;25775:18;25787:5;25775:11;:18::i;:::-;25774:19;25748:45;:263;;26010:1;25748:263;;;25813:177;25981:8;;25813:141;25935:18;:16;:18::i;:::-;25813:95;25889:18;25901:5;25889:11;:18::i;:::-;25813:49;25856:5;25813:16;:14;:16::i;:177::-;25728:283;25642:377;-1:-1:-1;;25642:377:0:o;27193:120::-;16673:3;;-1:-1:-1;;;;;16673:3:0;16659:10;:17;16651:52;;;;-1:-1:-1;;;16651:52:0;;;;;;;:::i;:::-;27295:3:::1;::::0;27276:29:::1;::::0;-1:-1:-1;;;;;27276:18:0;;::::1;::::0;27295:3:::1;27300:4:::0;27276:18:::1;:29::i;20220:1465::-:0;20339:7;;20310:10;;20339:7;;:39;;;;;20369:9;;20350:15;:28;;20339:39;20331:60;;;;-1:-1:-1;;;20331:60:0;;;;;;;:::i;:::-;20421:15;:22;20410:33;;:66;;;;-1:-1:-1;20458:11:0;:18;20447:29;;20410:66;20402:95;;;;-1:-1:-1;;;20402:95:0;;;;;;;:::i;:::-;20510:7;:5;:7::i;:::-;-1:-1:-1;;;;;20534:14:0;;;;;;:5;:14;;;;;:29;20530:173;;20585:11;:25;;;;;;;;;;;;-1:-1:-1;;;;;;20585:25:0;-1:-1:-1;;;;;20585:25:0;;;;;;;;20670:21;;-1:-1:-1;20637:14:0;;;:5;20585:25;20637:14;;;;;:30;;:54;20530:173;-1:-1:-1;;;;;20718:14:0;;;;;;:5;:14;;;;;:29;:34;;;;:58;;;20756:20;20768:7;20756:11;:20::i;:::-;20714:145;;;20826:21;;-1:-1:-1;;;;;20793:14:0;;;;;;:5;:14;;;;;:30;;:54;20714:145;20871:17;20891:35;20917:8;20891:11;20903:8;20891:21;;;;;;;:35;20955:24;;-1:-1:-1;;;20955:24:0;;20871:55;;-1:-1:-1;20871:55:0;;15106:42;;20955:15;;:24;;20971:7;;20955:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;20947:70;;;;-1:-1:-1;;;20947:70:0;;;;;;;:::i;:::-;21036:39;;-1:-1:-1;;;21036:39:0;;21079:9;;15106:42;;21036:15;;:39;;21052:7;;21069:4;;21036:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;21028:87;;;;-1:-1:-1;;;21028:87:0;;;;;;;:::i;:::-;21126:57;15106:42;21149:7;21166:4;21173:9;21126:22;:57::i;:::-;-1:-1:-1;;;;;21228:14:0;;;;;;:5;:14;;;;;:29;:44;;21262:9;21228:33;:44::i;:::-;-1:-1:-1;;;;;21196:14:0;;;;;;:5;:14;;;;;:76;21311:15;;:30;;21331:9;21311:19;:30::i;:::-;21293:15;:48;21420:18;;21371:88;;21406:42;;21444:3;;21406:33;;:9;;:13;:33::i;:42::-;21371:16;;;:20;:88::i;:::-;21352:16;:107;-1:-1:-1;;;;;21507:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;;:38;;21536:8;21507:28;:38::i;:::-;-1:-1:-1;;;;;21480:14:0;;;;;;:5;:14;;;;;;;;:24;;;;;;;;:65;;;;21579:10;:20;;;;:34;;21604:8;21579:24;:34::i;:::-;21556:20;;;;:10;:20;;;;;;;:57;;;;21631:46;;;;;21642:15;;21659:7;;21668:8;;21631:46;:::i;:::-;;;;;;;;20220:1465;;;;:::o;15530:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15837:31::-;;;;:::o;15574:60::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;26134:133::-;-1:-1:-1;;;;;26236:14:0;;;;26209:7;26236:14;;;:5;:14;;;;;;;;:23;;;;;;;;;26134:133::o;15959:36::-;;;;:::o;16040:23::-;;;;:::o;15730:30::-;;;;:::o;24325:152::-;24443:16;;-1:-1:-1;;;;;24409:14:0;;24382:7;24409:14;;;:5;:14;;;;;:29;24382:7;;24409:60;;24465:3;;24409:51;;:29;:33;:51::i;26027:99::-;26100:11;:18;26027:99;:::o;15915:37::-;;;;:::o;24024:291::-;24060:22;24085:27;24101:10;24085:15;:27::i;:::-;24060:52;;24149:11;24161:1;24149:14;;;;;;;;;;;;;;;;24131;:32;;24123:67;;;;-1:-1:-1;;;24123:67:0;;;;;;;:::i;:::-;24201:19;24223:34;24242:11;24254:1;24242:14;;;;;;;;;;;;;;;;24223;:18;;:34;;;;:::i;:::-;24201:56;;24266:7;:5;:7::i;:::-;24282:25;24292:1;24295:11;24282:9;:25::i;16070:27::-;;;;:::o;11706:177::-;11789:86;11809:5;11839:23;;;11864:2;11868:5;11816:58;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;11816:58:0;;;;;;;;;;;;;;-1:-1:-1;;;;;11816:58:0;-1:-1:-1;;;;;;11816:58:0;;;;;;;;;;11789:19;:86::i;5170:471::-;5228:7;5473:6;5469:47;;-1:-1:-1;5503:1:0;5496:8;;5469:47;5540:5;;;5544:1;5540;:5;:1;5564:5;;;;;:10;5556:56;;;;-1:-1:-1;;;5556:56:0;;;;;;;:::i;:::-;5632:1;5170:471;-1:-1:-1;;;5170:471:0:o;3840:181::-;3898:7;3930:5;;;3954:6;;;;3946:46;;;;-1:-1:-1;;;3946:46:0;;;;;;;:::i;4296:136::-;4354:7;4381:43;4385:1;4388;4381:43;;;;;;;;;;;;;;;;;:3;:43::i;6109:132::-;6167:7;6194:39;6198:1;6201;6194:39;;;;;;;;;;;;;;;;;:3;:39::i;24633:333::-;24692:10;;24688:271;;24744:73;24770:46;24797:18;:16;:18::i;:::-;24770:22;:6;16198:5;24770:10;:22::i;:46::-;24744:21;;;:25;:73::i;:::-;24720:21;:97;24857:22;;:34;;24884:6;24857:26;:34::i;:::-;24832:22;:59;24922:13;;:25;;24940:6;24922:17;:25::i;:::-;24906:13;:41;24633:333;:::o;11891:205::-;11992:96;12012:5;12042:27;;;12071:4;12077:2;12081:5;12019:68;;;;;;;;;;:::i;11992:96::-;11891:205;;;;:::o;22568:1448::-;22690:7;;22661:10;;22690:7;;:39;;;;;22720:9;;22701:15;:28;;22690:39;22682:60;;;;-1:-1:-1;;;22682:60:0;;;;;;;:::i;:::-;22772:15;:22;22761:33;;:66;;;;-1:-1:-1;22809:11:0;:18;22798:29;;22761:66;22753:95;;;;-1:-1:-1;;;22753:95:0;;;;;;;:::i;13750:1115::-;14355:27;14363:5;-1:-1:-1;;;;;14355:25:0;;:27::i;:::-;14347:71;;;;-1:-1:-1;;;14347:71:0;;;;;;;:::i;:::-;14492:12;14506:23;14541:5;-1:-1:-1;;;;;14533:19:0;14553:4;14533:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14491:67;;;;14577:7;14569:52;;;;-1:-1:-1;;;14569:52:0;;;;;;;:::i;:::-;14638:17;;:21;14634:224;;14780:10;14769:30;;;;;;;;;;;;:::i;:::-;14761:85;;;;-1:-1:-1;;;14761:85:0;;;;;;;:::i;4727:192::-;4813:7;4849:12;4841:6;;;;4833:29;;;;-1:-1:-1;;;4833:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;4885:5:0;;;4727:192::o;6729:345::-;6815:7;6917:12;6910:5;6902:28;;;;-1:-1:-1;;;6902:28:0;;;;;;;;:::i;:::-;;6941:9;6957:1;6953;:5;;;;;;;6729:345;-1:-1:-1;;;;;6729:345:0:o;9085:619::-;9145:4;9613:20;;9456:66;9653:23;;;;;;:42;;-1:-1:-1;;9680:15:0;;;9085:619;-1:-1:-1;;9085:619:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;-1:-1;;438:12;397:2;485:6;472:20;24307:18;24299:6;24296:30;24293:2;;;-1:-1;;24329:12;24293:2;24374:4;;24366:6;24362:17;507:80;24374:4;24362:17;24427:15;507:80;:::i;:::-;615:21;;;498:89;-1:-1;672:14;;;647:17;;;752:27;;;;;749:36;-1:-1;746:2;;;798:1;;788:12;746:2;823:1;814:10;;808:206;833:6;830:1;827:13;808:206;;;2190:20;;901:50;;855:1;848:9;;;;;965:14;;;;993;;808:206;;;812:14;;;;;390:630;;;;:::o;2401:241::-;;2505:2;2493:9;2484:7;2480:23;2476:32;2473:2;;;-1:-1;;2511:12;2473:2;85:6;72:20;97:33;124:5;97:33;:::i;2913:502::-;;;3059:2;3047:9;3038:7;3034:23;3030:32;3027:2;;;-1:-1;;3065:12;3027:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3117:63;-1:-1;3245:2;3230:18;;3217:32;3269:18;3258:30;;3255:2;;;-1:-1;;3291:12;3255:2;3321:78;3391:7;3382:6;3371:9;3367:22;3321:78;:::i;:::-;3311:88;;;3021:394;;;;;:::o;3422:409::-;;;3552:9;3543:7;3539:23;3564:3;3539:23;3535:33;3532:2;;;-1:-1;;3571:12;3532:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;3623:63;-1:-1;1590:4;-1:-1;;1569:19;;1565:30;1562:2;;;-1:-1;;1598:12;1562:2;;1626:20;1590:4;1626:20;:::i;:::-;3723:2;3787:9;3783:22;2190:20;1720:16;1713:75;1911:22;3787:9;1911:22;2190:20;3723:2;1876:5;1872:16;1865:75;1590:4;3787:9;2066:22;2190:20;1911:22;2031:5;2027:16;2020:75;3731:84;;;;3526:305;;;;;:::o;3838:366::-;;;3959:2;3947:9;3938:7;3934:23;3930:32;3927:2;;;-1:-1;;3965:12;3927:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4017:63;4117:2;4156:22;;;;2190:20;;-1:-1;;;3921:283::o;4211:638::-;;;4382:2;4370:9;4361:7;4357:23;4353:32;4350:2;;;-1:-1;;4388:12;4350:2;4446:17;4433:31;4484:18;;4476:6;4473:30;4470:2;;;-1:-1;;4506:12;4470:2;4536:78;4606:7;4597:6;4586:9;4582:22;4536:78;:::i;:::-;4526:88;;4679:2;4668:9;4664:18;4651:32;4637:46;;4484:18;4695:6;4692:30;4689:2;;;-1:-1;;4725:12;4689:2;;4755:78;4825:7;4816:6;4805:9;4801:22;4755:78;:::i;4856:235::-;;4957:2;4945:9;4936:7;4932:23;4928:32;4925:2;;;-1:-1;;4963:12;4925:2;1105:6;1092:20;1117:30;1141:5;1117:30;:::i;5098:257::-;;5210:2;5198:9;5189:7;5185:23;5181:32;5178:2;;;-1:-1;;5216:12;5178:2;1240:6;1234:13;1252:30;1276:5;1252:30;:::i;5761:241::-;;5865:2;5853:9;5844:7;5840:23;5836:32;5833:2;;;-1:-1;;5871:12;5833:2;-1:-1;2190:20;;5827:175;-1:-1;5827:175::o;6009:263::-;;6124:2;6112:9;6103:7;6099:23;6095:32;6092:2;;;-1:-1;;6130:12;6092:2;-1:-1;2338:13;;6086:186;-1:-1;6086:186::o;6279:366::-;;;6400:2;6388:9;6379:7;6375:23;6371:32;6368:2;;;-1:-1;;6406:12;6368:2;-1:-1;;2190:20;;;6558:2;6597:22;;;2190:20;;-1:-1;6362:283::o;13767:271::-;;8103:5;24720:12;8214:52;8259:6;8254:3;8247:4;8240:5;8236:16;8214:52;:::i;:::-;8278:16;;;;;13901:137;-1:-1;;13901:137::o;14045:222::-;-1:-1;;;;;26114:54;;;;7054:37;;14172:2;14157:18;;14143:124::o;14519:349::-;-1:-1;;;;;26114:54;;;7054:37;;26114:54;;14854:2;14839:18;;6913:58;14682:2;14667:18;;14653:215::o;14875:444::-;-1:-1;;;;;26114:54;;;7054:37;;26114:54;;;;15222:2;15207:18;;7054:37;15305:2;15290:18;;13598:37;;;;15058:2;15043:18;;15029:290::o;15326:333::-;-1:-1;;;;;26114:54;;;;7054:37;;15645:2;15630:18;;13598:37;15481:2;15466:18;;15452:207::o;15666:370::-;15843:2;15857:47;;;24720:12;;15828:18;;;25252:19;;;15666:370;;15843:2;24574:14;;;;25292;;;;15666:370;7542:260;7567:6;7564:1;7561:13;7542:260;;;7628:13;;13598:37;;25107:14;;;;6806;;;;7589:1;7582:9;7542:260;;;-1:-1;15910:116;;15814:222;-1:-1;;;;;;15814:222::o;16043:210::-;25915:13;;25908:21;7897:34;;16164:2;16149:18;;16135:118::o;16515:310::-;;16662:2;16683:17;16676:47;8610:5;24720:12;25264:6;16662:2;16651:9;16647:18;25252:19;8704:52;8749:6;25292:14;16651:9;25292:14;16662:2;8730:5;8726:16;8704:52;:::i;:::-;1569:19;27265:14;-1:-1;;27261:28;8768:39;;;;25292:14;8768:39;;16633:192;-1:-1;;16633:192::o;16832:416::-;17032:2;17046:47;;;9044:2;17017:18;;;25252:19;-1:-1;;;25292:14;;;9060:45;9124:12;;;17003:245::o;17255:416::-;17455:2;17469:47;;;9375:2;17440:18;;;25252:19;-1:-1;;;25292:14;;;9391:45;9455:12;;;17426:245::o;17678:416::-;17878:2;17892:47;;;9706:2;17863:18;;;25252:19;9742:29;25292:14;;;9722:50;9791:12;;;17849:245::o;18101:416::-;18301:2;18315:47;;;10042:2;18286:18;;;25252:19;-1:-1;;;25292:14;;;10058:45;10122:12;;;18272:245::o;18524:416::-;18724:2;18738:47;;;10373:2;18709:18;;;25252:19;-1:-1;;;25292:14;;;10389:43;10451:12;;;18695:245::o;18947:416::-;19147:2;19161:47;;;19132:18;;;25252:19;10738:34;25292:14;;;10718:55;10792:12;;;19118:245::o;19370:416::-;19570:2;19584:47;;;11043:2;19555:18;;;25252:19;-1:-1;;;25292:14;;;11059:40;11118:12;;;19541:245::o;19793:416::-;19993:2;20007:47;;;11369:2;19978:18;;;25252:19;-1:-1;;;25292:14;;;11385:35;11439:12;;;19964:245::o;20216:416::-;20416:2;20430:47;;;11690:2;20401:18;;;25252:19;-1:-1;;;25292:14;;;11706:39;11764:12;;;20387:245::o;20639:416::-;20839:2;20853:47;;;12015:2;20824:18;;;25252:19;12051:34;25292:14;;;12031:55;-1:-1;;;12106:12;;;12099:25;12143:12;;;20810:245::o;21062:416::-;21262:2;21276:47;;;12394:2;21247:18;;;25252:19;-1:-1;;;25292:14;;;12410:38;12467:12;;;21233:245::o;21485:416::-;21685:2;21699:47;;;12718:1;21670:18;;;25252:19;-1:-1;;;25292:14;;;12733:31;12783:12;;;21656:245::o;21908:416::-;22108:2;22122:47;;;13034:2;22093:18;;;25252:19;13070:34;25292:14;;;13050:55;-1:-1;;;13125:12;;;13118:34;13171:12;;;22079:245::o;22331:416::-;22531:2;22545:47;;;13422:2;22516:18;;;25252:19;13458:33;25292:14;;;13438:54;13511:12;;;22502:245::o;22754:222::-;13598:37;;;22881:2;22866:18;;22852:124::o;22983:444::-;13598:37;;;-1:-1;;;;;26114:54;;;;23330:2;23315:18;;7054:37;23413:2;23398:18;;13598:37;23166:2;23151:18;;23137:290::o;23434:444::-;13598:37;;;23781:2;23766:18;;13598:37;;;;23864:2;23849:18;;13598:37;23617:2;23602:18;;23588:290::o;23885:256::-;23947:2;23941:9;23973:17;;;24048:18;24033:34;;24069:22;;;24030:62;24027:2;;;24105:1;;24095:12;24027:2;23947;24114:22;23925:216;;-1:-1;23925:216::o;26921:268::-;26986:1;26993:101;27007:6;27004:1;27001:13;26993:101;;;27074:11;;;27068:18;27055:11;;;27048:39;27029:2;27022:10;26993:101;;;27109:6;27106:1;27103:13;27100:2;;;-1:-1;;26986:1;27156:16;;27149:27;26970:219::o;27302:117::-;-1:-1;;;;;26114:54;;27361:35;;27351:2;;27410:1;;27400:12;27566:111;27647:5;25915:13;25908:21;27625:5;27622:32;27612:2;;27668:1;;27658:12

Swarm Source

ipfs://418d98a1a2395fd3971e276fb9b2bfefa73525650b0030435e9e6c10f628e97a
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.