Contract 0x6c4e795f3f844010096563449acbccd8681a5e45

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x399ce95bdc84a39fe7866a610855ac761c5facf9634b6b9f2f551e97ffdb8471Init Owner41365422021-12-28 15:29:00845 days 11 hrs ago0x7081685ff3ff16fb6c0df08ac93bdb7299eeefc9 IN  0x6c4e795f3f844010096563449acbccd8681a5e450 ETH0.00083478763 ETH0.762395857
0x8ba62f86f9bb7f7f4b44c14f6efcecb744b5aea9bab8cee32d80edd7b609d4ab0x6080604041360402021-12-28 14:53:11845 days 11 hrs ago0x7081685ff3ff16fb6c0df08ac93bdb7299eeefc9 IN  Create: FeeRateDIP3Impl0 ETH0.034069177762 ETH0.750038857
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x2411ed888fc11346964251e3946c468e9e05fae30b9a57c6672019d3a2cad32d720861682023-03-21 10:16:47397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x1506b54a1c0ea1b2f4a84866ec5776f7f6e7f0b10 ETH
0x2411ed888fc11346964251e3946c468e9e05fae30b9a57c6672019d3a2cad32d720861682023-03-21 10:16:47397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0x96ef3a0539c428d573013ef9aef91a6fa24c38205f96297b6851e94b0da5405f720860812023-03-21 10:16:24397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x1506b54a1c0ea1b2f4a84866ec5776f7f6e7f0b10 ETH
0x96ef3a0539c428d573013ef9aef91a6fa24c38205f96297b6851e94b0da5405f720860812023-03-21 10:16:24397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0xfb8ee54690a4449f3ed541e5d78fb3b2141466582b734729b2795fb80c3fe79b720860492023-03-21 10:16:16397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x1506b54a1c0ea1b2f4a84866ec5776f7f6e7f0b10 ETH
0xfb8ee54690a4449f3ed541e5d78fb3b2141466582b734729b2795fb80c3fe79b720860492023-03-21 10:16:16397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x19e5910f61882ff6605b576922507f1e1a0302fe0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x19e5910f61882ff6605b576922507f1e1a0302fe0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x19e5910f61882ff6605b576922507f1e1a0302fe0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x19e5910f61882ff6605b576922507f1e1a0302fe0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x19e5910f61882ff6605b576922507f1e1a0302fe0 ETH
0x215903645af70621c3320439e7326d42dd7a7857f7be221b839bb2b51eebe7f7720849132023-03-21 10:11:35397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0x5746f224d90c0cf401cc39ea2ae9bc436c5a595adf14f6c842f2bf91adb8f432720837322023-03-21 10:06:35397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x1506b54a1c0ea1b2f4a84866ec5776f7f6e7f0b10 ETH
0x5746f224d90c0cf401cc39ea2ae9bc436c5a595adf14f6c842f2bf91adb8f432720837322023-03-21 10:06:35397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x66892b9956d286001c8d2347a3ebd191bd7ba5cc0 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x66892b9956d286001c8d2347a3ebd191bd7ba5cc0 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x66892b9956d286001c8d2347a3ebd191bd7ba5cc0 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x66892b9956d286001c8d2347a3ebd191bd7ba5cc0 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x66892b9956d286001c8d2347a3ebd191bd7ba5cc0 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x668e7f4d8051511279d3bd6d6854e7d39cc94873 0x6c4e795f3f844010096563449acbccd8681a5e450 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x6a58c68ff5c4e4d90eb6561449cc74a64f818da50 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x6a58c68ff5c4e4d90eb6561449cc74a64f818da50 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x6a58c68ff5c4e4d90eb6561449cc74a64f818da50 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x6a58c68ff5c4e4d90eb6561449cc74a64f818da50 ETH
0xa697d9b2181c795a38fb952ddc5676e9da5a5aa9ae215bfae1740c279ee55730720830962023-03-21 10:04:03397 days 16 hrs ago 0x6c4e795f3f844010096563449acbccd8681a5e45 0x6a58c68ff5c4e4d90eb6561449cc74a64f818da50 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FeeRateDIP3Impl

Compiler Version
v0.6.9+commit.3e3065ac

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan.io on 2021-12-28
*/

// File: contracts/lib/InitializableOwnable.sol

/*

    Copyright 2020 DODO ZOO.
    SPDX-License-Identifier: Apache-2.0

*/

pragma solidity 0.6.9;
pragma experimental ABIEncoderV2;

/**
 * @title Ownable
 * @author DODO Breeder
 *
 * @notice Ownership related functions
 */
contract InitializableOwnable {
    address public _OWNER_;
    address public _NEW_OWNER_;
    bool internal _INITIALIZED_;

    // ============ Events ============

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

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

    // ============ Modifiers ============

    modifier notInitialized() {
        require(!_INITIALIZED_, "DODO_INITIALIZED");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == _OWNER_, "NOT_OWNER");
        _;
    }

    // ============ Functions ============

    function initOwner(address newOwner) public notInitialized {
        _INITIALIZED_ = true;
        _OWNER_ = newOwner;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        emit OwnershipTransferPrepared(_OWNER_, newOwner);
        _NEW_OWNER_ = newOwner;
    }

    function claimOwnership() public {
        require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
        emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
        _OWNER_ = _NEW_OWNER_;
        _NEW_OWNER_ = address(0);
    }
}

// File: contracts/intf/IERC20.sol


/**
 * @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);

    function decimals() external view returns (uint8);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    /**
     * @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);
}

// File: contracts/lib/SafeMath.sol



/**
 * @title SafeMath
 * @author DODO Breeder
 *
 * @notice Math operations with safety checks that revert on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "MUL_ERROR");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "DIVIDING_ERROR");
        return a / b;
    }

    function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 quotient = div(a, b);
        uint256 remainder = a - quotient * b;
        if (remainder > 0) {
            return quotient + 1;
        } else {
            return quotient;
        }
    }

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

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

    function sqrt(uint256 x) internal pure returns (uint256 y) {
        uint256 z = x / 2 + 1;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

// File: contracts/DODOFee/FeeRateDIP3Impl.sol


interface ICrowdPooling {
    function _QUOTE_RESERVE_() external view returns (uint256);
    function getShares(address user) external view returns (uint256);
}

interface IFee {
    function getUserFee(address user) external view returns (uint256);
}

interface IQuota {
    function getUserQuota(address user) external view returns (int);
}

interface IPool {
    function version() external pure returns (string memory);
    function _LP_FEE_RATE_() external view returns (uint256);
    function _BASE_RESERVE_() external view returns (uint);
    function _QUOTE_RESERVE_() external view returns (uint);
    function _K_() external view returns (uint);
}

contract FeeRateDIP3Impl is InitializableOwnable {
    using SafeMath for uint256;

    // ============ Storage  ============

    uint256 public _LP_MT_RATIO_ = 25;

    struct CPPoolInfo {
        address quoteToken;
        int globalQuota;
        address feeAddr;
        address quotaAddr;
    }

    mapping(address => CPPoolInfo) cpPools;
    mapping(address => uint256) public specPoolList;


    // ============ Ownable Functions ============
    
    function addCpPoolInfo(address cpPool, address quoteToken, int globalQuota, address feeAddr, address quotaAddr) external onlyOwner {
        CPPoolInfo memory cpPoolInfo =  CPPoolInfo({
            quoteToken: quoteToken,
            feeAddr: feeAddr,
            quotaAddr: quotaAddr,
            globalQuota: globalQuota
        });
        cpPools[cpPool] = cpPoolInfo;
    }

    function setCpPoolInfo(address cpPool, address quoteToken, int globalQuota, address feeAddr, address quotaAddr) external onlyOwner {
        cpPools[cpPool].quoteToken = quoteToken;
        cpPools[cpPool].feeAddr = feeAddr;
        cpPools[cpPool].quotaAddr = quotaAddr;
        cpPools[cpPool].globalQuota = globalQuota;
    }

    function setLpMtRatio(uint256 newLpMtRatio) external onlyOwner {
        _LP_MT_RATIO_ = newLpMtRatio;
    }


    function setSpecPoolList (address poolAddr, uint256 mtFeeRate) public onlyOwner {
        specPoolList[poolAddr] = mtFeeRate;
    }

    // ============ View Functions ============

    function getFeeRate(address pool, address user) external view returns (uint256) {
        try IPool(pool).version() returns (string memory poolVersion) {
            bytes32 hashPoolVersion = keccak256(abi.encodePacked(poolVersion));
            if(_kjudge(hashPoolVersion)) {
                uint k = IPool(pool)._K_();
                uint baseReserve = IPool(pool)._BASE_RESERVE_();
                uint quoteReserve = IPool(pool)._QUOTE_RESERVE_();
                require(!(k==0 && (baseReserve ==0 || quoteReserve == 0)), "KJUDGE_ERROR");
            }

            if(specPoolList[pool] != 0) {
                return specPoolList[pool];
            }

            if(_cp(hashPoolVersion)) {
                CPPoolInfo memory cpPoolInfo = cpPools[pool];
                address quoteToken = cpPoolInfo.quoteToken;
                if(quoteToken == address(0)) {
                    return 0;
                }else {
                    uint256 userInput = IERC20(quoteToken).balanceOf(pool).sub(ICrowdPooling(pool)._QUOTE_RESERVE_());
                    uint256 userStake = ICrowdPooling(pool).getShares(user);
                    address feeAddr = cpPoolInfo.feeAddr;
                    address quotaAddr = cpPoolInfo.quotaAddr;
                    int curQuota = cpPoolInfo.globalQuota;
                    if(quotaAddr != address(0))
                        curQuota = IQuota(quotaAddr).getUserQuota(user);

                    require(curQuota == -1 || (curQuota != -1 && int(userInput.add(userStake)) <= curQuota), "DODOFeeImpl: EXCEED_YOUR_QUOTA");

                    if(feeAddr == address(0)) {
                        return 0;
                    } else {
                        return IFee(feeAddr).getUserFee(user);
                    }
                }
            } else if(_dip3dvm(hashPoolVersion) || _dip3dsp(hashPoolVersion)) {
                uint256 lpFeeRate = IPool(pool)._LP_FEE_RATE_();
                uint256 mtFeeRate = lpFeeRate.mul(_LP_MT_RATIO_).div(100);
                if(lpFeeRate.add(mtFeeRate) >= 10**18) {
                    return 0;
                } else {
                    return mtFeeRate;
                }
            } else {
                return 0;
            }
        } catch (bytes memory) {
            return 0;
        }
    }

    function getCPInfoByUser(address pool, address user) external view returns (bool isHaveCap, int curQuota, uint256 userFee) {
        CPPoolInfo memory cpPoolInfo = cpPools[pool];
        if(cpPoolInfo.quoteToken == address(0)) {
            isHaveCap = false;
            curQuota = -1;
            userFee = 0;
        }else {
            address quotaAddr = cpPoolInfo.quotaAddr;
            curQuota = cpPoolInfo.globalQuota;
            if(quotaAddr != address(0))
                curQuota = IQuota(quotaAddr).getUserQuota(user);
        
            if(curQuota == -1) {
                isHaveCap = false;
            }else {
                isHaveCap = true;
                uint256 userStake = ICrowdPooling(pool).getShares(user);
                curQuota = int(uint256(curQuota).sub(userStake));
            }

            address feeAddr = cpPoolInfo.feeAddr;
            if(feeAddr == address(0)) {
                userFee =  0;
            } else {
                userFee = IFee(feeAddr).getUserFee(user);
            }
        }
    }

    function _cp(bytes32 _hashPoolVersion) internal pure returns (bool) {
        return (_hashPoolVersion == keccak256(abi.encodePacked("CP 1.0.0")) || _hashPoolVersion == keccak256(abi.encodePacked("CP 2.0.0")));
    }

    function _dip3dvm(bytes32 _hashPoolVersion) internal pure returns (bool){
        return (_hashPoolVersion == keccak256(abi.encodePacked("DVM 1.0.2")) || _hashPoolVersion == keccak256(abi.encodePacked("DVM 1.0.3")));
    }

    function _dip3dsp(bytes32 _hashPoolVersion) internal pure returns (bool){
        return (_hashPoolVersion == keccak256(abi.encodePacked("DSP 1.0.1")) || _hashPoolVersion == keccak256(abi.encodePacked("DSP 1.0.2")));
    }

    function _kjudge(bytes32 _hashPoolVersion) internal pure returns (bool) {
        return (_hashPoolVersion == keccak256(abi.encodePacked("DVM 1.0.2")) || _hashPoolVersion == keccak256(abi.encodePacked("DSP 1.0.1")) || _hashPoolVersion == keccak256(abi.encodePacked("DPP 1.0.0")));
    }
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","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"},{"inputs":[],"name":"_LP_MT_RATIO_","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"cpPool","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"int256","name":"globalQuota","type":"int256"},{"internalType":"address","name":"feeAddr","type":"address"},{"internalType":"address","name":"quotaAddr","type":"address"}],"name":"addCpPoolInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"getCPInfoByUser","outputs":[{"internalType":"bool","name":"isHaveCap","type":"bool"},{"internalType":"int256","name":"curQuota","type":"int256"},{"internalType":"uint256","name":"userFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pool","type":"address"},{"internalType":"address","name":"user","type":"address"}],"name":"getFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"initOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"cpPool","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"int256","name":"globalQuota","type":"int256"},{"internalType":"address","name":"feeAddr","type":"address"},{"internalType":"address","name":"quotaAddr","type":"address"}],"name":"setCpPoolInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLpMtRatio","type":"uint256"}],"name":"setLpMtRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"poolAddr","type":"address"},{"internalType":"uint256","name":"mtFeeRate","type":"uint256"}],"name":"setSpecPoolList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"specPoolList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052601960025534801561001557600080fd5b50611577806100256000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638456db151161008c578063a1e281de11610066578063a1e281de14610183578063b1efb8f414610196578063f2fde38b1461019e578063fae783d8146101b1576100cf565b80638456db1514610148578063848cc303146101505780638614c55214610170576100cf565b806301ea364b146100d45780630d009297146100e957806316048bc4146100fc57806344c194021461011a5780634e71e0c81461012d5780635454b84214610135575b600080fd5b6100e76100e23660046111d8565b6101d3565b005b6100e76100f7366004611128565b610222565b610104610282565b604051610111919061137a565b60405180910390f35b6100e7610128366004611177565b610291565b6100e7610315565b6100e7610143366004611177565b6103a3565b61010461045f565b61016361015e366004611143565b61046e565b6040516101119190611508565b61016361017e366004611128565b610bb7565b6100e76101913660046112b5565b610bc9565b610163610bf8565b6100e76101ac366004611128565b610bfe565b6101c46101bf366004611143565b610c83565b6040516101119392919061138e565b6000546001600160a01b031633146102065760405162461bcd60e51b81526004016101fd9061149f565b60405180910390fd5b6001600160a01b03909116600090815260046020526040902055565b600154600160a01b900460ff161561024c5760405162461bcd60e51b81526004016101fd9061143e565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146102bb5760405162461bcd60e51b81526004016101fd9061149f565b6001600160a01b03948516600090815260036020819052604090912080549587166001600160a01b031996871617815560028101805494881694871694909417909355820180549190951693169290921790925560010155565b6001546001600160a01b0316331461033f5760405162461bcd60e51b81526004016101fd906113a6565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103cd5760405162461bcd60e51b81526004016101fd9061149f565b6103d56110ea565b50604080516080810182526001600160a01b039586168152602080820195865293861681830190815292861660608201908152968616600090815260039485905291909120905181549086166001600160a01b0319918216178255935160018201559051600282018054918616918516919091179055935193018054939092169216919091179055565b6001546001600160a01b031681565b6000826001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160006040518083038186803b1580156104a957600080fd5b505afa9250505080156104de57506040513d6000823e601f3d908101601f191682016040526104db919081019061121a565b60015b61051c573d80801561050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b506000915050610bb1565b60008160405160200161052f91906112cd565b60405160208183030381529060405280519060200120905061055081610ee6565b156106e9576000856001600160a01b031663ec2fd46d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611202565b90506000866001600160a01b0316637d7215046040518163ffffffff1660e01b815260040160206040518083038186803b15801561060557600080fd5b505afa158015610619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063d9190611202565b90506000876001600160a01b031663bbf5ce786040518163ffffffff1660e01b815260040160206040518083038186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190611202565b9050821580156106c857508115806106c8575080155b156106e55760405162461bcd60e51b81526004016101fd906113cd565b5050505b6001600160a01b03851660009081526004602052604090205415610728575050506001600160a01b038216600090815260046020526040902054610bb1565b61073181610f70565b15610ab85761073e6110ea565b506001600160a01b03808616600090815260036020818152604092839020835160808101855281548616808252600183015493820193909352600282015486169481019490945290910154909216606082015290806107a4576000945050505050610bb1565b60006108a2886001600160a01b031663bbf5ce786040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611202565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610846908d9060040161137a565b60206040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611202565b9063ffffffff610fae16565b90506000886001600160a01b031663f04da65b896040518263ffffffff1660e01b81526004016108d2919061137a565b60206040518083038186803b1580156108ea57600080fd5b505afa1580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109229190611202565b60408501516060860151602087015192935090916001600160a01b038216156109c4576040516398a299e560e01b81526001600160a01b038316906398a299e590610971908e9060040161137a565b60206040518083038186803b15801561098957600080fd5b505afa15801561099d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c19190611202565b90505b8060001914806109f0575080600019141580156109f05750806109ed868663ffffffff610fd616565b13155b610a0c5760405162461bcd60e51b81526004016101fd90611468565b6001600160a01b038316610a2c5760009950505050505050505050610bb1565b60405163060f58c360e01b81526001600160a01b0384169063060f58c390610a58908e9060040161137a565b60206040518083038186803b158015610a7057600080fd5b505afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190611202565b9950505050505050505050610bb1565b610ac181611002565b80610ad05750610ad081611040565b15610baa576000856001600160a01b031663ab44a7a36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190611202565b90506000610b726064610b666002548561107e90919063ffffffff16565b9063ffffffff6110b816565b9050670de0b6b3a7640000610b8d838363ffffffff610fd616565b10610b9f576000945050505050610bb1565b9350610bb192505050565b6000925050505b92915050565b60046020526000908152604090205481565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526004016101fd9061149f565b600255565b60025481565b6000546001600160a01b03163314610c285760405162461bcd60e51b81526004016101fd9061149f565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000610c906110ea565b506001600160a01b03808616600090815260036020818152604092839020835160808101855281548616808252600183015493820193909352600282015486169481019490945290910154909216606082015290610cfa5760009350600019925060009150610ede565b6060810151602082015193506001600160a01b03811615610d94576040516398a299e560e01b81526001600160a01b038216906398a299e590610d4190899060040161137a565b60206040518083038186803b158015610d5957600080fd5b505afa158015610d6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d919190611202565b93505b836000191415610da75760009450610e40565b60405163f04da65b60e01b8152600195506000906001600160a01b0389169063f04da65b90610dda908a9060040161137a565b60206040518083038186803b158015610df257600080fd5b505afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190611202565b9050610e3c858263ffffffff610fae16565b9450505b60408201516001600160a01b038116610e5c5760009350610edb565b60405163060f58c360e01b81526001600160a01b0382169063060f58c390610e88908a9060040161137a565b60206040518083038186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed89190611202565b93505b50505b509250925092565b6000604051602001610ef7906112fe565b60405160208183030381529060405280519060200120821480610f3d5750604051602001610f249061133c565b6040516020818303038152906040528051906020012082145b80610bb15750604051602001610f5290611351565b60405160208183030381529060405280519060200120821492915050565b6000604051602001610f8190611328565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f5290611366565b600082821115610fd05760405162461bcd60e51b81526004016101fd9061141b565b50900390565b600082820183811015610ffb5760405162461bcd60e51b81526004016101fd906114c2565b9392505050565b6000604051602001611013906112fe565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f5290611313565b60006040516020016110519061133c565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f52906112e9565b60008261108d57506000610bb1565b8282028284828161109a57fe5b0414610ffb5760405162461bcd60e51b81526004016101fd906114e5565b60008082116110d95760405162461bcd60e51b81526004016101fd906113f3565b8183816110e257fe5b049392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b80356001600160a01b0381168114610bb157600080fd5b600060208284031215611139578081fd5b610ffb8383611111565b60008060408385031215611155578081fd5b61115f8484611111565b915061116e8460208501611111565b90509250929050565b600080600080600060a0868803121561118e578081fd5b6111988787611111565b94506111a78760208801611111565b9350604086013592506111bd8760608801611111565b91506111cc8760808801611111565b90509295509295909350565b600080604083850312156111ea578182fd5b6111f48484611111565b946020939093013593505050565b600060208284031215611213578081fd5b5051919050565b60006020828403121561122b578081fd5b815167ffffffffffffffff80821115611242578283fd5b81840185601f820112611253578384fd5b8051925081831115611263578384fd5b604051601f8401601f191681016020018381118282101715611283578586fd5b60405283815281840160200187101561129a578485fd5b6112ab846020830160208501611511565b9695505050505050565b6000602082840312156112c6578081fd5b5035919050565b600082516112df818460208701611511565b9190910192915050565b682229a810189718171960b91b815260090190565b68222b2690189718171960b91b815260090190565b6844564d20312e302e3360b81b815260090190565b670435020312e302e360c41b815260080190565b6844535020312e302e3160b81b815260090190565b68044505020312e302e360bc1b815260090190565b670435020322e302e360c41b815260080190565b6001600160a01b0391909116815260200190565b92151583526020830191909152604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600c908201526b25a52aa223a2afa2a92927a960a11b604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252601e908201527f444f444f466565496d706c3a204558434545445f594f55525f51554f54410000604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b60005b8381101561152c578181015183820152602001611514565b8381111561153b576000848401525b5050505056fea2646970667358221220ec2fbf939f1e8743f40231a24124a06ea7cccb5d7220a8f98ae207db756dfc6a64736f6c63430006090033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638456db151161008c578063a1e281de11610066578063a1e281de14610183578063b1efb8f414610196578063f2fde38b1461019e578063fae783d8146101b1576100cf565b80638456db1514610148578063848cc303146101505780638614c55214610170576100cf565b806301ea364b146100d45780630d009297146100e957806316048bc4146100fc57806344c194021461011a5780634e71e0c81461012d5780635454b84214610135575b600080fd5b6100e76100e23660046111d8565b6101d3565b005b6100e76100f7366004611128565b610222565b610104610282565b604051610111919061137a565b60405180910390f35b6100e7610128366004611177565b610291565b6100e7610315565b6100e7610143366004611177565b6103a3565b61010461045f565b61016361015e366004611143565b61046e565b6040516101119190611508565b61016361017e366004611128565b610bb7565b6100e76101913660046112b5565b610bc9565b610163610bf8565b6100e76101ac366004611128565b610bfe565b6101c46101bf366004611143565b610c83565b6040516101119392919061138e565b6000546001600160a01b031633146102065760405162461bcd60e51b81526004016101fd9061149f565b60405180910390fd5b6001600160a01b03909116600090815260046020526040902055565b600154600160a01b900460ff161561024c5760405162461bcd60e51b81526004016101fd9061143e565b6001805460ff60a01b1916600160a01b179055600080546001600160a01b039092166001600160a01b0319909216919091179055565b6000546001600160a01b031681565b6000546001600160a01b031633146102bb5760405162461bcd60e51b81526004016101fd9061149f565b6001600160a01b03948516600090815260036020819052604090912080549587166001600160a01b031996871617815560028101805494881694871694909417909355820180549190951693169290921790925560010155565b6001546001600160a01b0316331461033f5760405162461bcd60e51b81526004016101fd906113a6565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103cd5760405162461bcd60e51b81526004016101fd9061149f565b6103d56110ea565b50604080516080810182526001600160a01b039586168152602080820195865293861681830190815292861660608201908152968616600090815260039485905291909120905181549086166001600160a01b0319918216178255935160018201559051600282018054918616918516919091179055935193018054939092169216919091179055565b6001546001600160a01b031681565b6000826001600160a01b03166354fd4d506040518163ffffffff1660e01b815260040160006040518083038186803b1580156104a957600080fd5b505afa9250505080156104de57506040513d6000823e601f3d908101601f191682016040526104db919081019061121a565b60015b61051c573d80801561050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b506000915050610bb1565b60008160405160200161052f91906112cd565b60405160208183030381529060405280519060200120905061055081610ee6565b156106e9576000856001600160a01b031663ec2fd46d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561059057600080fd5b505afa1580156105a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c89190611202565b90506000866001600160a01b0316637d7215046040518163ffffffff1660e01b815260040160206040518083038186803b15801561060557600080fd5b505afa158015610619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061063d9190611202565b90506000876001600160a01b031663bbf5ce786040518163ffffffff1660e01b815260040160206040518083038186803b15801561067a57600080fd5b505afa15801561068e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b29190611202565b9050821580156106c857508115806106c8575080155b156106e55760405162461bcd60e51b81526004016101fd906113cd565b5050505b6001600160a01b03851660009081526004602052604090205415610728575050506001600160a01b038216600090815260046020526040902054610bb1565b61073181610f70565b15610ab85761073e6110ea565b506001600160a01b03808616600090815260036020818152604092839020835160808101855281548616808252600183015493820193909352600282015486169481019490945290910154909216606082015290806107a4576000945050505050610bb1565b60006108a2886001600160a01b031663bbf5ce786040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e257600080fd5b505afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611202565b6040516370a0823160e01b81526001600160a01b038516906370a0823190610846908d9060040161137a565b60206040518083038186803b15801561085e57600080fd5b505afa158015610872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108969190611202565b9063ffffffff610fae16565b90506000886001600160a01b031663f04da65b896040518263ffffffff1660e01b81526004016108d2919061137a565b60206040518083038186803b1580156108ea57600080fd5b505afa1580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109229190611202565b60408501516060860151602087015192935090916001600160a01b038216156109c4576040516398a299e560e01b81526001600160a01b038316906398a299e590610971908e9060040161137a565b60206040518083038186803b15801561098957600080fd5b505afa15801561099d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c19190611202565b90505b8060001914806109f0575080600019141580156109f05750806109ed868663ffffffff610fd616565b13155b610a0c5760405162461bcd60e51b81526004016101fd90611468565b6001600160a01b038316610a2c5760009950505050505050505050610bb1565b60405163060f58c360e01b81526001600160a01b0384169063060f58c390610a58908e9060040161137a565b60206040518083038186803b158015610a7057600080fd5b505afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190611202565b9950505050505050505050610bb1565b610ac181611002565b80610ad05750610ad081611040565b15610baa576000856001600160a01b031663ab44a7a36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190611202565b90506000610b726064610b666002548561107e90919063ffffffff16565b9063ffffffff6110b816565b9050670de0b6b3a7640000610b8d838363ffffffff610fd616565b10610b9f576000945050505050610bb1565b9350610bb192505050565b6000925050505b92915050565b60046020526000908152604090205481565b6000546001600160a01b03163314610bf35760405162461bcd60e51b81526004016101fd9061149f565b600255565b60025481565b6000546001600160a01b03163314610c285760405162461bcd60e51b81526004016101fd9061149f565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000610c906110ea565b506001600160a01b03808616600090815260036020818152604092839020835160808101855281548616808252600183015493820193909352600282015486169481019490945290910154909216606082015290610cfa5760009350600019925060009150610ede565b6060810151602082015193506001600160a01b03811615610d94576040516398a299e560e01b81526001600160a01b038216906398a299e590610d4190899060040161137a565b60206040518083038186803b158015610d5957600080fd5b505afa158015610d6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d919190611202565b93505b836000191415610da75760009450610e40565b60405163f04da65b60e01b8152600195506000906001600160a01b0389169063f04da65b90610dda908a9060040161137a565b60206040518083038186803b158015610df257600080fd5b505afa158015610e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2a9190611202565b9050610e3c858263ffffffff610fae16565b9450505b60408201516001600160a01b038116610e5c5760009350610edb565b60405163060f58c360e01b81526001600160a01b0382169063060f58c390610e88908a9060040161137a565b60206040518083038186803b158015610ea057600080fd5b505afa158015610eb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed89190611202565b93505b50505b509250925092565b6000604051602001610ef7906112fe565b60405160208183030381529060405280519060200120821480610f3d5750604051602001610f249061133c565b6040516020818303038152906040528051906020012082145b80610bb15750604051602001610f5290611351565b60405160208183030381529060405280519060200120821492915050565b6000604051602001610f8190611328565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f5290611366565b600082821115610fd05760405162461bcd60e51b81526004016101fd9061141b565b50900390565b600082820183811015610ffb5760405162461bcd60e51b81526004016101fd906114c2565b9392505050565b6000604051602001611013906112fe565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f5290611313565b60006040516020016110519061133c565b60405160208183030381529060405280519060200120821480610bb15750604051602001610f52906112e9565b60008261108d57506000610bb1565b8282028284828161109a57fe5b0414610ffb5760405162461bcd60e51b81526004016101fd906114e5565b60008082116110d95760405162461bcd60e51b81526004016101fd906113f3565b8183816110e257fe5b049392505050565b60408051608081018252600080825260208201819052918101829052606081019190915290565b80356001600160a01b0381168114610bb157600080fd5b600060208284031215611139578081fd5b610ffb8383611111565b60008060408385031215611155578081fd5b61115f8484611111565b915061116e8460208501611111565b90509250929050565b600080600080600060a0868803121561118e578081fd5b6111988787611111565b94506111a78760208801611111565b9350604086013592506111bd8760608801611111565b91506111cc8760808801611111565b90509295509295909350565b600080604083850312156111ea578182fd5b6111f48484611111565b946020939093013593505050565b600060208284031215611213578081fd5b5051919050565b60006020828403121561122b578081fd5b815167ffffffffffffffff80821115611242578283fd5b81840185601f820112611253578384fd5b8051925081831115611263578384fd5b604051601f8401601f191681016020018381118282101715611283578586fd5b60405283815281840160200187101561129a578485fd5b6112ab846020830160208501611511565b9695505050505050565b6000602082840312156112c6578081fd5b5035919050565b600082516112df818460208701611511565b9190910192915050565b682229a810189718171960b91b815260090190565b68222b2690189718171960b91b815260090190565b6844564d20312e302e3360b81b815260090190565b670435020312e302e360c41b815260080190565b6844535020312e302e3160b81b815260090190565b68044505020312e302e360bc1b815260090190565b670435020322e302e360c41b815260080190565b6001600160a01b0391909116815260200190565b92151583526020830191909152604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600c908201526b25a52aa223a2afa2a92927a960a11b604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252601e908201527f444f444f466565496d706c3a204558434545445f594f55525f51554f54410000604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b60005b8381101561152c578181015183820152602001611514565b8381111561153b576000848401525b5050505056fea2646970667358221220ec2fbf939f1e8743f40231a24124a06ea7cccb5d7220a8f98ae207db756dfc6a64736f6c63430006090033

Deployed ByteCode Sourcemap

6117:5947:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7454:133;;;;;;;;;:::i;:::-;;965:127;;;;;;;;;:::i;332:22::-;;;:::i;:::-;;;;;;;;;;;;;;;;6993:333;;;;;;;;;:::i;1271:228::-;;;:::i;6599:386::-;;;;;;;;;:::i;361:26::-;;;:::i;7646:2347::-;;;;;;;;;:::i;:::-;;;;;;;;6483:47;;;;;;;;;:::i;7334:110::-;;;;;;;;;:::i;6253:33::-;;;:::i;1100:163::-;;;;;;;;;:::i;10001:1074::-;;;;;;;;;:::i;:::-;;;;;;;;;;7454:133;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7545:22:0;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:34;7454:133::o;965:127::-;754:13;;-1:-1:-1;;;754:13:0;;;;753:14;745:43;;;;-1:-1:-1;;;745:43:0;;;;;;;;;1051:4:::1;1035:20:::0;;-1:-1:-1;;;;1035:20:0::1;-1:-1:-1::0;;;1035:20:0::1;::::0;;;1066:18;;-1:-1:-1;;;;;1066:18:0;;::::1;-1:-1:-1::0;;;;;;1066:18:0;;::::1;::::0;;;::::1;::::0;;965:127::o;332:22::-;;;-1:-1:-1;;;;;332:22:0;;:::o;6993:333::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;-1:-1:-1;;;;;7135:15:0;;::::1;;::::0;;;:7:::1;:15;::::0;;;;;;;:39;;;;::::1;-1:-1:-1::0;;;;;;7135:39:0;;::::1;;::::0;;7185:23:::1;::::0;::::1;:33:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;7229:25;::::1;:37:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;7135:39;7277:27:::1;:41:::0;6993:333::o;1271:228::-;1337:11;;-1:-1:-1;;;;;1337:11:0;1323:10;:25;1315:51;;;;-1:-1:-1;;;1315:51:0;;;;;;;;;1412:11;;;1403:7;;1382:42;;-1:-1:-1;;;;;1412:11:0;;;;1403:7;;;;1382:42;;;1445:11;;;;1435:21;;-1:-1:-1;;;;;;1435:21:0;;;-1:-1:-1;;;;;1445:11:0;;1435:21;;;;1467:24;;;1271:228::o;6599:386::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;6741:28:::1;;:::i;:::-;-1:-1:-1::0;6773:165:0::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6773:165:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;;;::::1;::::0;;;;;;6949:15;;::::1;-1:-1:-1::0;6949:15:0;;;:7:::1;:15:::0;;;;;;;;:28;;;;;;::::1;-1:-1:-1::0;;;;;;6949:28:0;;::::1;;::::0;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;6599:386::o;361:26::-;;;-1:-1:-1;;;;;361:26:0;;:::o;7646:2347::-;7717:7;7747:4;-1:-1:-1;;;;;7741:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7741:21:0;;;;;;;;;;;;;;;;7737:2249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9973:1;9966:8;;;;;7737:2249;7814:23;7867:11;7850:29;;;;;;;;;;;;;;;;;;;;;;7840:40;;;;;;7814:66;;7898:24;7906:15;7898:7;:24::i;:::-;7895:317;;;7943:6;7958:4;-1:-1:-1;;;;;7952:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7943:26;;7988:16;8013:4;-1:-1:-1;;;;;8007:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7988:47;;8054:17;8080:4;-1:-1:-1;;;;;8074:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8054:49;-1:-1:-1;8132:4:0;;:46;;;;-1:-1:-1;8141:15:0;;;:36;;-1:-1:-1;8160:17:0;;8141:36;8130:49;8122:74;;;;-1:-1:-1;;;8122:74:0;;;;;;;;;7895:317;;;;-1:-1:-1;;;;;8231:18:0;;;;;;:12;:18;;;;;;:23;8228:88;;-1:-1:-1;;;;;;;;8282:18:0;;;;;;:12;:18;;;;;;8275:25;;8228:88;8335:20;8339:15;8335:3;:20::i;:::-;8332:1586;;;8376:28;;:::i;:::-;-1:-1:-1;;;;;;8407:13:0;;;;;;;:7;:13;;;;;;;;;8376:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8503:24;8500:958;;8559:1;8552:8;;;;;;;;8500:958;8608:17;8628:77;8681:4;-1:-1:-1;;;;;8667:35:0;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8628:34;;-1:-1:-1;;;8628:34:0;;-1:-1:-1;;;;;8628:28:0;;;;;:34;;8657:4;;8628:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;:77;:38;:77;:::i;:::-;8608:97;;8728:17;8762:4;-1:-1:-1;;;;;8748:29:0;;8778:4;8748:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8824:18;;;;8885:20;;;;8943:22;;;;8728:55;;-1:-1:-1;8824:18:0;;-1:-1:-1;;;;;8991:23:0;;;8988:100;;9052:36;;-1:-1:-1;;;9052:36:0;;-1:-1:-1;;;;;9052:30:0;;;;;:36;;9083:4;;9052:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9041:47;;8988:100;9121:8;-1:-1:-1;;9121:14:0;:79;;;;9140:8;-1:-1:-1;;9140:14:0;;:59;;;;-1:-1:-1;9191:8:0;9162:24;:9;9176;9162:24;:13;:24;:::i;:::-;9158:41;;9140:59;9113:122;;;;-1:-1:-1;;;9113:122:0;;;;;;;;;-1:-1:-1;;;;;9263:21:0;;9260:179;;9320:1;9313:8;;;;;;;;;;;;;9260:179;9385:30;;-1:-1:-1;;;9385:30:0;;-1:-1:-1;;;;;9385:24:0;;;;;:30;;9410:4;;9385:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9378:37;;;;;;;;;;;;;8332:1586;9482:25;9491:15;9482:8;:25::i;:::-;:54;;;;9511:25;9520:15;9511:8;:25::i;:::-;9479:439;;;9557:17;9583:4;-1:-1:-1;;;;;9577:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9557:47;;9623:17;9643:37;9676:3;9643:28;9657:13;;9643:9;:13;;:28;;;;:::i;:::-;:32;:37;:32;:37;:::i;:::-;9623:57;-1:-1:-1;9730:6:0;9702:24;:9;9623:57;9702:24;:13;:24;:::i;:::-;:34;9699:155;;9768:1;9761:8;;;;;;;;9699:155;9825:9;-1:-1:-1;9818:16:0;;-1:-1:-1;;;9818:16:0;9479:439;9901:1;9894:8;;;;7737:2249;7646:2347;;;;:::o;6483:47::-;;;;;;;;;;;;;:::o;7334:110::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;7408:13:::1;:28:::0;7334:110::o;6253:33::-;;;;:::o;1100:163::-;870:7;;-1:-1:-1;;;;;870:7:0;856:10;:21;848:43;;;;-1:-1:-1;;;848:43:0;;;;;;;;;1204:7:::1;::::0;;1178:44:::1;::::0;-1:-1:-1;;;;;1178:44:0;;::::1;::::0;1204:7;::::1;::::0;1178:44:::1;::::0;::::1;1233:11;:22:::0;;-1:-1:-1;;;;;;1233:22:0::1;-1:-1:-1::0;;;;;1233:22:0;;;::::1;::::0;;;::::1;::::0;;1100:163::o;10001:1074::-;10077:14;10093:12;10107:15;10135:28;;:::i;:::-;-1:-1:-1;;;;;;10166:13:0;;;;;;;:7;:13;;;;;;;;;10135:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10190:878;;10257:5;10245:17;;-1:-1:-1;;10277:13:0;;10315:1;10305:11;;10190:878;;;10368:20;;;;10414:22;;;;;-1:-1:-1;;;;;;10454:23:0;;;10451:92;;10507:36;;-1:-1:-1;;;10507:36:0;;-1:-1:-1;;;;;10507:30:0;;;;;:36;;10538:4;;10507:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10496:47;;10451:92;10571:8;-1:-1:-1;;10571:14:0;10568:268;;;10618:5;10606:17;;10568:268;;;10718:35;;-1:-1:-1;;;10718:35:0;;10675:4;;-1:-1:-1;10698:17:0;;-1:-1:-1;;;;;10718:29:0;;;;;:35;;10748:4;;10718:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10698:55;-1:-1:-1;10787:32:0;10795:8;10698:55;10787:32;:21;:32;:::i;:::-;10772:48;;10568:268;;10870:18;;;;-1:-1:-1;;;;;10906:21:0;;10903:154;;10959:1;10948:12;;10903:154;;;11011:30;;-1:-1:-1;;;11011:30:0;;-1:-1:-1;;;;;11011:24:0;;;;;:30;;11036:4;;11011:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11001:40;;10903:154;10190:878;;;10001:1074;;;;;;:::o;11773:288::-;11839:4;11894:29;;;;;;;;;;;;;;;;;;;;;11884:40;;;;;;11864:16;:60;:124;;;;11958:29;;;;;;;;;;;;;;;;;;;;;11948:40;;;;;;11928:16;:60;11864:124;:188;;;;12022:29;;;;;;;;;;;;;;;;;;;;;12012:40;;;;;;11992:16;:60;11856:197;11773:288;-1:-1:-1;;11773:288:0:o;11083:218::-;11145:4;11200:28;;;;;;;;;;;;;;;;;;;;;11190:39;;;;;;11170:16;:59;:122;;;;11263:28;;;;;;;;4858:137;4916:7;4949:1;4944;:6;;4936:28;;;;-1:-1:-1;;;4936:28:0;;;;;;;;;-1:-1:-1;4982:5:0;;;4858:137::o;5003:161::-;5061:7;5093:5;;;5117:6;;;;5109:28;;;;-1:-1:-1;;;5109:28:0;;;;;;;;;5155:1;5003:161;-1:-1:-1;;;5003:161:0:o;11309:224::-;11376:4;11430:29;;;;;;;;;;;;;;;;;;;;;11420:40;;;;;;11400:16;:60;:124;;;;11494:29;;;;;;;;11541:224;11608:4;11662:29;;;;;;;;;;;;;;;;;;;;;11652:40;;;;;;11632:16;:60;:124;;;;11726:29;;;;;;;;4179:226;4237:7;4261:6;4257:47;;-1:-1:-1;4291:1:0;4284:8;;4257:47;4328:5;;;4332:1;4328;:5;:1;4352:5;;;;;:10;4344:32;;;;-1:-1:-1;;;4344:32:0;;;;;;;;4413:141;4471:7;4503:1;4499;:5;4491:32;;;;-1:-1:-1;;;4491:32:0;;;;;;;;;4545:1;4541;:5;;;;;;;4413:141;-1:-1:-1;;;4413:141:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;72:20;;-1:-1;;;;;19314:54;;19795:35;;19785:2;;19844:1;;19834:12;1147:241;;1251:2;1239:9;1230:7;1226:23;1222:32;1219:2;;;-1:-1;;1257:12;1219:2;1319:53;1364:7;1340:22;1319:53;;1395:366;;;1516:2;1504:9;1495:7;1491:23;1487:32;1484:2;;;-1:-1;;1522:12;1484:2;1584:53;1629:7;1605:22;1584:53;;;1574:63;;1692:53;1737:7;1674:2;1717:9;1713:22;1692:53;;;1682:63;;1478:283;;;;;;1768:741;;;;;;1939:3;1927:9;1918:7;1914:23;1910:33;1907:2;;;-1:-1;;1946:12;1907:2;2008:53;2053:7;2029:22;2008:53;;;1998:63;;2116:53;2161:7;2098:2;2141:9;2137:22;2116:53;;;2106:63;;2206:2;2248:9;2244:22;208:20;2214:62;;2331:53;2376:7;2313:2;2356:9;2352:22;2331:53;;;2321:63;;2440:53;2485:7;2421:3;2465:9;2461:22;2440:53;;;2430:63;;1901:608;;;;;;;;;2516:366;;;2637:2;2625:9;2616:7;2612:23;2608:32;2605:2;;;-1:-1;;2643:12;2605:2;2705:53;2750:7;2726:22;2705:53;;;2695:63;2795:2;2834:22;;;;936:20;;-1:-1;;;2599:283;2889:261;;3003:2;2991:9;2982:7;2978:23;2974:32;2971:2;;;-1:-1;;3009:12;2971:2;-1:-1;354:13;;2965:185;-1:-1;2965:185;3157:362;;3282:2;3270:9;3261:7;3257:23;3253:32;3250:2;;;-1:-1;;3288:12;3250:2;3339:17;3333:24;3377:18;;3369:6;3366:30;3363:2;;;-1:-1;;3399:12;3363:2;3486:6;3475:9;3471:22;530:3;523:4;515:6;511:17;507:27;497:2;;-1:-1;;538:12;497:2;578:6;572:13;558:27;;3377:18;18336:6;18333:30;18330:2;;;-1:-1;;18366:12;18330:2;17999;17993:9;18439;18420:17;;-1:-1;;18416:33;18025:17;;3282:2;18025:17;18085:34;;;18121:22;;;18082:62;18079:2;;;-1:-1;;18147:12;18079:2;17999;18166:22;671:21;;;771:16;;;3282:2;771:16;768:25;-1:-1;765:2;;;-1:-1;;796:12;765:2;816:39;848:6;3282:2;747:5;743:16;3282:2;713:6;709:17;816:39;;;3419:84;3244:275;-1:-1;;;;;;3244:275;3526:241;;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;-1:-1;;3636:12;3598:2;-1:-1;936:20;;3592:175;-1:-1;3592:175;10239:275;;4555:5;18617:12;4667:52;4712:6;4707:3;4700:4;4693:5;4689:16;4667:52;;;4731:16;;;;;10375:139;-1:-1;;10375:139;10521:381;-1:-1;;;5357:32;;5342:1;5408:11;;10710:192;10909:381;-1:-1;;;5709:32;;5694:1;5760:11;;11098:192;11297:381;-1:-1;;;6382:32;;6367:1;6433:11;;11486:192;11685:381;-1:-1;;;7057:31;;7042:1;7107:11;;11874:192;12073:381;-1:-1;;;7408:32;;7393:1;7459:11;;12262:192;12461:381;-1:-1;;;8741:32;;8726:1;8792:11;;12650:192;12849:381;-1:-1;;;9093:31;;9078:1;9143:11;;13038:192;13237:222;-1:-1;;;;;19314:54;;;;4115:37;;13364:2;13349:18;;13335:124;13466:428;19148:13;;19141:21;4229:34;;13797:2;13782:18;;4344:36;;;;13880:2;13865:18;;4344:36;13641:2;13626:18;;13612:282;13901:416;14101:2;14115:47;;;4984:2;14086:18;;;18762:19;-1:-1;;;18802:14;;;5000:36;5055:12;;;14072:245;14324:416;14524:2;14538:47;;;6010:2;14509:18;;;18762:19;-1:-1;;;18802:14;;;6026:35;6080:12;;;14495:245;14747:416;14947:2;14961:47;;;6683:2;14932:18;;;18762:19;-1:-1;;;18802:14;;;6699:37;6755:12;;;14918:245;15170:416;15370:2;15384:47;;;7709:1;15355:18;;;18762:19;-1:-1;;;18802:14;;;7724:32;7775:12;;;15341:245;15593:416;15793:2;15807:47;;;8026:2;15778:18;;;18762:19;-1:-1;;;18802:14;;;8042:39;8100:12;;;15764:245;16016:416;16216:2;16230:47;;;8351:2;16201:18;;;18762:19;8387:32;18802:14;;;8367:53;8439:12;;;16187:245;16439:416;16639:2;16653:47;;;9393:1;16624:18;;;18762:19;-1:-1;;;18802:14;;;9408:32;9459:12;;;16610:245;16862:416;17062:2;17076:47;;;9710:1;17047:18;;;18762:19;-1:-1;;;18802:14;;;9725:32;9776:12;;;17033:245;17285:416;17485:2;17499:47;;;10027:1;17470:18;;;18762:19;-1:-1;;;18802:14;;;10042:32;10093:12;;;17456:245;17708:222;4344:36;;;17835:2;17820:18;;17806:124;19460:268;19525:1;19532:101;19546:6;19543:1;19540:13;19532:101;;;19613:11;;;19607:18;19594:11;;;19587:39;19568:2;19561:10;19532:101;;;19648:6;19645:1;19642:13;19639:2;;;19525:1;19704:6;19699:3;19695:16;19688:27;19639:2;;19509:219;;;

Metadata Hash

ec2fbf939f1e8743f40231a24124a06ea7cccb5d7220a8f98ae207db756dfc6a
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.