ETH Price: $1,948.53 (-1.63%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Update Merkle Ro...177763392023-07-26 9:24:47942 days ago1690363487IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0004519215.40920315
Update Merkle Ro...174169582023-06-05 21:24:59992 days ago1686000299IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0009818633.47888953
Update Merkle Ro...169498402023-03-31 21:26:111058 days ago1680297971IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0007702226.26243641
Purchase POE169421052023-03-30 19:22:231059 days ago1680204143IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0027123732.05811372
Update Merkle Ro...168857872023-03-22 21:24:471067 days ago1679520287IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0005658119.29266962
Update Merkle Ro...168344492023-03-15 16:21:591074 days ago1678897319IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0014944650.99867091
Purchase POE162353232022-12-21 19:59:471158 days ago1671652787IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0011146413.17448312
Update Merkle Ro...162294602022-12-21 0:21:591159 days ago1671582119IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0003748312.78079898
Update Merkle Ro...162246812022-12-20 8:21:591160 days ago1671524519IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000369912.61270067
Update Merkle Ro...162199052022-12-19 16:21:591160 days ago1671466919IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0004687515.98317812
Update Merkle Ro...162151352022-12-19 0:23:471161 days ago1671409427IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000279059.51497056
Purchase POE161560722022-12-10 18:23:351169 days ago1670696615IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.001272715.04028925
Update Merkle Ro...161554682022-12-10 16:22:111169 days ago1670689331IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0004181514.25799537
Update Merkle Ro...159909052022-11-17 16:22:111192 days ago1668702131IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0005808219.80458004
Update Merkle Ro...159240872022-11-08 8:22:231202 days ago1667895743IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0005453618.59529817
Update Merkle Ro...157833432022-10-19 16:27:591221 days ago1666196879IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0007413825.28931704
Purchase POE157457692022-10-14 10:32:351227 days ago1665743555IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0012226414.44998597
Update Merkle Ro...157331902022-10-12 16:22:111228 days ago1665591731IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0004798516.36170682
Update Merkle Ro...157164812022-10-10 8:22:351231 days ago1665390155IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.0008826330.0953917
Purchase POE156948582022-10-07 7:53:111234 days ago1665129191IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000453775.45822906
Update Merkle Ro...156878582022-10-06 8:25:231235 days ago1665044723IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000118354.03558654
Update Merkle Ro...156854522022-10-06 0:21:591235 days ago1665015719IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000255768.72067697
Purchase POE156558152022-10-01 20:54:351239 days ago1664657675IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.00058787.07384776
Update Merkle Ro...156449262022-09-30 8:22:111241 days ago1664526131IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000267169.10962081
Update Merkle Ro...156353872022-09-29 0:21:591242 days ago1664410919IN
0xC4f97fcf...c7FfDE8bF
0 ETH0.000233817.97243035
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
SlimMerkleMinter

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-04-01
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
/**
 * @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 `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, 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 `from` to `to` 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 from,
        address to,
        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);
}

/**
* @dev to mint POE tokens
 */
interface PoExtended{
    function mint(address) external returns (bool);
}

/**
* @title NFT
* @dev ERC721 contract that holds the bonus NFTs
 */
interface INFT{
    function balanceOf(address account, uint256 id) external view returns (uint256);
}

/**
 * @dev These functions deal with verification of Merkle Trees proofs.
 *
 * The proofs can be generated using the JavaScript library
 * https://github.com/miguelmota/merkletreejs[merkletreejs].
 * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
 *
 * See `test/utils/cryptography/MerkleProof.test.js` for some examples.
 */
library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        bytes32 computedHash = leaf;

        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];

            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }

        // Check if the computed hash (root) is equal to the provided root
        return computedHash == root;
    }
}

/**
* @title PoExtended
* @author Carson Case [carsonpcase@gmail.com]
* @notice PoExtended is a POE token with owner delegated Admins and a merkle claim system
*/

/**
* @title MerkleMinter
* @author Carson Case > carsonpcase@gmail.com
* @author Zane Huffman > @jeffthedunker
* @dev is ownable. For now, by deployer, but can be changed to DAO
 */

contract SlimMerkleMinter is Ownable{
    using MerkleProof for bytes32[];
    /// @dev the merkle root which CAN be updated
    bytes32 public merkleRoot;

    
    mapping(address => bool) admins;

    //Treasury address
    address payable public treasury;

    //Base commission rate for refferals. Decimal expressed as an interger with decimal at 10^3 place (1 = 0.1%, 10 = 1%).
    uint256 public baseCommission;

    //xGDAO address
    address public xGDAO;

    //POE address
    address public POEContract;

    //Cost to sign up
    uint256 public basePrice;

    //NFT bonus address
    address public bonusNFTAddress;

    //Free if a users holds this much xGDAO or more
    uint256 public minXGDAOFree;

    //Nft bonus info
    struct nftBonus{
        uint128 id;
        //Decimal expressed as an interger with decimal at 10^18 place.
        uint128 multiplier;
    }

    //Array of NFT bonus info
    nftBonus[] bonusNFTs; 

    /**
    * @notice arrays must have the same length 
    * @param _treasury address to receive payments
    * @param _basePrice for starting price
    * @param _bonusNFTAddress to look up bonus NFTs
    * @param _commission base referral commission before bonus
    * @param _bonusNFTIDs ids of bonus NFTs (length must match multipliers)
    * @param _bonusNFTMultipliers multipliers of bonus NFTs (length must match IDs) 100% is 10^18
     */
    constructor(
        address payable _treasury,
        address _xGDAOAddress,
        uint256 _basePrice,
        address _bonusNFTAddress,
        uint256 _commission,
        uint128[] memory _bonusNFTIDs,
        uint128[] memory _bonusNFTMultipliers
        ) 
        Ownable()
        {
        bonusNFTAddress = _bonusNFTAddress;
        _addBonusNFTs(_bonusNFTIDs, _bonusNFTMultipliers);

        treasury = _treasury;
        xGDAO = _xGDAOAddress;
        basePrice = _basePrice;
        baseCommission = _commission;

    }

    /// @dev some functions only callable by approved Admins
    modifier onlyAdmin(){
        require(admins[msg.sender], "must be approved by owner to call this function");
        _;
    }

     /// @dev only owner can add Admins
    function addAdmin(address _admin) external onlyOwner{
        require(admins[_admin] != true, "Admin is already approved");
        admins[_admin] = true;
    }

    /// @dev owner can remove them too
    function removeAdmin(address _admin) external onlyOwner{
        require(admins[_admin] != false, "Admin is already not-approved");
        admins[_admin] = false;
    }

    /// @dev A Admin can forefit their minting status (useful for contracts)
    function forefitAdminRole()external{
        require(admins[msg.sender] == true, "msg.sender must be an approved Admin");
        admins[msg.sender] = false;
    }

    /// @dev set xGDAO address
    function setXGDAOAddress(address _new) external onlyAdmin{
        xGDAO = _new;
    }

    /// @dev set POE Contract address
    function setPOEContractAddress(address _new) external onlyAdmin{
        POEContract = _new;
    }

    /// @dev set minXGDAO. If zero, no free amount
    function setMinXGDAOFree(uint _new) external onlyAdmin{
        minXGDAOFree = _new;
    }

    function updateMerkleRoot(bytes32 _new) external onlyAdmin{
        merkleRoot = _new;
    }
    /**
    * @notice purchase function. Can only be called once by an address
    * @param _referrer must have an auth token. Pass 0 address if no referrer
     */
    function purchasePOE(address payable _referrer, /*bytes32 _hashedRef,*/ bytes32[] memory proof) external payable{
		
        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));
        require(proof.verify(merkleRoot,leaf), "Address not eligible for claim");

        address payable referrer = _referrer;

        uint256 price = basePrice;
        if(minXGDAOFree != 0 && IERC20(xGDAO).balanceOf(msg.sender) >= minXGDAOFree){
            price = 0;
        }

        require(msg.sender != _referrer, "You cannot use yourself as a referrer");
        require(msg.value == price, "You must pay the exact price to purchase. Call the getPrice() function to see the price in wei");

        if(price > 0){
            //Give commisson if there's a referrer
            if(referrer != address(0))
            {
                //Calculate commission and subtract from price to avoid rounding errors
                uint256 commission = getCommission(price, referrer);
                referrer.transfer(commission);
                treasury.transfer(price-commission);
                //If not, treasury gets all the price
            }else{
                treasury.transfer(price);
            }
        }

        //Mint a POE
        PoExtended(POEContract).mint(msg.sender);
    }

    /**
    * @notice for owner to change base commission
    * @param _new is new commission
     */
    function changeBaseCommission(uint256 _new) external onlyOwner {
        baseCommission = _new;
    }

    /**
    * @notice for owner to change the price curve contract address
    * @param _new is the new address
     */
    function setBasePrice(uint256 _new) external onlyAdmin{
        basePrice = _new;
    }
    
    /**
    * @notice for owner to add some new bonus NFTs
    * @dev see _addBonusNFTs
    * @param _bonusNFTIDs array of IDs
    * @param  _bonusNFTMultipliers array of multipliers
     */
    function addBonusNFTs(uint128[] memory _bonusNFTIDs, uint128[] memory _bonusNFTMultipliers) public onlyOwner{
        _addBonusNFTs(_bonusNFTIDs, _bonusNFTMultipliers);
    }
	
    /**
    * @notice function returns the commission based on base commission rate, NFT bonus, and price
    * @param _price is passed in, but should be calculated with getPrice()
    * @param _referrer is to look up NFT bonuses
    * @return the commission ammount
     */
    function getCommission(uint256 _price, address _referrer) internal view returns(uint256){
        uint128 bonus = getNFTBonus(_referrer);
        uint256 commission;
        if(bonus > 0){
            commission = baseCommission + ((baseCommission * bonus) / 1000);
        }else{
            commission = baseCommission;
        }      
        return((_price * commission) / 1000);
    }

    /**
    * @notice function to get the NFT bonus of a person
    * @param _referrer is the referrer address
    * @return the sum of bonuses they own
     */
    function getNFTBonus(address _referrer) public view returns(uint128){
        uint128 bonus = 0;
        INFT nft = INFT(bonusNFTAddress);
        //Loop through nfts and add up bonuses that the referrer owns
        for(uint8 i = 0; i < bonusNFTs.length; i++){
            if(nft.balanceOf(_referrer, bonusNFTs[i].id) > 0){
                bonus += bonusNFTs[i].multiplier;
            }
        }
        return bonus;
    }

    /**
    * @notice private function to add new NFTs as bonuses 
    * @param _bonusNFTIDs array of ids matching multipliers
    * @param _bonusNFTMultipliers array of multipliers matching ids
     */
    function _addBonusNFTs(uint128[] memory _bonusNFTIDs, uint128[] memory _bonusNFTMultipliers) private{
        require(_bonusNFTIDs.length == _bonusNFTMultipliers.length, "The array parameters must have the same length");
        //Add all the NFTs
        for(uint8 i = 0; i < _bonusNFTIDs.length; i++){
            bonusNFTs.push(
                nftBonus(_bonusNFTIDs[i],_bonusNFTMultipliers[i])
            );
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"address","name":"_xGDAOAddress","type":"address"},{"internalType":"uint256","name":"_basePrice","type":"uint256"},{"internalType":"address","name":"_bonusNFTAddress","type":"address"},{"internalType":"uint256","name":"_commission","type":"uint256"},{"internalType":"uint128[]","name":"_bonusNFTIDs","type":"uint128[]"},{"internalType":"uint128[]","name":"_bonusNFTMultipliers","type":"uint128[]"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"POEContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128[]","name":"_bonusNFTIDs","type":"uint128[]"},{"internalType":"uint128[]","name":"_bonusNFTMultipliers","type":"uint128[]"}],"name":"addBonusNFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"baseCommission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bonusNFTAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_new","type":"uint256"}],"name":"changeBaseCommission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forefitAdminRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_referrer","type":"address"}],"name":"getNFTBonus","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minXGDAOFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_referrer","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"purchasePOE","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_new","type":"uint256"}],"name":"setBasePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_new","type":"uint256"}],"name":"setMinXGDAOFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setPOEContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_new","type":"address"}],"name":"setXGDAOAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_new","type":"bytes32"}],"name":"updateMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"xGDAO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604051620030bd380380620030bd8339818101604052810190620000379190620004af565b620000576200004b6200014760201b60201c565b6200014f60201b60201c565b83600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000aa82826200021360201b60201c565b86600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460078190555082600481905550505050505050506200089b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80518251146200025a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200025190620005c7565b60405180910390fd5b60005b82518160ff161015620003a057600a6040518060400160405280858460ff168151811062000290576200028f62000761565b5b60200260200101516fffffffffffffffffffffffffffffffff168152602001848460ff1681518110620002c857620002c762000761565b5b60200260200101516fffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050508080620003979062000703565b9150506200025d565b505050565b6000620003bc620003b68462000612565b620005e9565b90508083825260208201905082856020860282011115620003e257620003e1620007c4565b5b60005b85811015620004165781620003fb888262000481565b845260208401935060208301925050600181019050620003e5565b5050509392505050565b600081519050620004318162000833565b92915050565b60008151905062000448816200084d565b92915050565b600082601f830112620004665762000465620007bf565b5b815162000478848260208601620003a5565b91505092915050565b600081519050620004928162000867565b92915050565b600081519050620004a98162000881565b92915050565b600080600080600080600060e0888a031215620004d157620004d0620007ce565b5b6000620004e18a828b0162000437565b9750506020620004f48a828b0162000420565b9650506040620005078a828b0162000498565b95505060606200051a8a828b0162000420565b94505060806200052d8a828b0162000498565b93505060a088015167ffffffffffffffff811115620005515762000550620007c9565b5b6200055f8a828b016200044e565b92505060c088015167ffffffffffffffff811115620005835762000582620007c9565b5b620005918a828b016200044e565b91505092959891949750929550565b6000620005af602e8362000641565b9150620005bc82620007e4565b604082019050919050565b60006020820190508181036000830152620005e281620005a0565b9050919050565b6000620005f562000608565b9050620006038282620006cd565b919050565b6000604051905090565b600067ffffffffffffffff82111562000630576200062f62000790565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006200065f8262000696565b9050919050565b6000620006738262000696565b9050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b620006d882620007d3565b810181811067ffffffffffffffff82111715620006fa57620006f962000790565b5b80604052505050565b60006200071082620006c0565b915060ff82141562000727576200072662000732565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f54686520617272617920706172616d6574657273206d7573742068617665207460008201527f68652073616d65206c656e677468000000000000000000000000000000000000602082015250565b6200083e8162000652565b81146200084a57600080fd5b50565b620008588162000666565b81146200086457600080fd5b50565b62000872816200067a565b81146200087e57600080fd5b50565b6200088c81620006b6565b81146200089857600080fd5b50565b61281280620008ab6000396000f3fe6080604052600436106101405760003560e01c80638c229c01116100b6578063e03481e11161006f578063e03481e1146103ed578063eb81ceee14610418578063f2fde38b14610441578063f974fbf71461046a578063f9ff8da114610495578063fed1fee0146104ac57610140565b80638c229c01146102f15780638da5cb5b1461031c578063abafcf3b14610347578063bbff2e7c14610370578063c7876ea414610399578063de4b3262146103c457610140565b806361d027b31161010857806361d027b3146102165780637048027514610241578063715018a61461026a57806383cefc7214610281578063851dfeef1461029d5780638678e2a2146102c857610140565b80631785f53c146101455780632eb4a7ab1461016e5780633ae2909d146101995780634783f0ef146101c2578063490f25d3146101eb575b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190611a94565b6104e9565b005b34801561017a57600080fd5b50610183610654565b6040516101909190611ed5565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190611bef565b61065a565b005b3480156101ce57600080fd5b506101e960048036038101906101e49190611bc2565b6106f0565b005b3480156101f757600080fd5b50610200610786565b60405161020d919061204b565b60405180910390f35b34801561022257600080fd5b5061022b61078c565b6040516102389190611e91565b60405180910390f35b34801561024d57600080fd5b5061026860048036038101906102639190611a94565b6107b2565b005b34801561027657600080fd5b5061027f61091d565b005b61029b60048036038101906102969190611ac1565b6109a5565b005b3480156102a957600080fd5b506102b2610dd8565b6040516102bf919061204b565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611a94565b610dde565b005b3480156102fd57600080fd5b50610306610eae565b6040516103139190611e76565b60405180910390f35b34801561032857600080fd5b50610331610ed4565b60405161033e9190611e76565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190611a94565b610efd565b005b34801561037c57600080fd5b5061039760048036038101906103929190611b1d565b610fcd565b005b3480156103a557600080fd5b506103ae611057565b6040516103bb919061204b565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e69190611bef565b61105d565b005b3480156103f957600080fd5b506104026110f3565b60405161040f9190611e76565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190611bef565b611119565b005b34801561044d57600080fd5b5061046860048036038101906104639190611a94565b61119f565b005b34801561047657600080fd5b5061047f611297565b60405161048c9190611e76565b60405180910390f35b3480156104a157600080fd5b506104aa6112bd565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190611a94565b6113aa565b6040516104e09190612030565b60405180910390f35b6104f161152a565b73ffffffffffffffffffffffffffffffffffffffff1661050f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055c90611f70565b60405180910390fd5b60001515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f090611f50565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60015481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90611fd0565b60405180910390fd5b8060098190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390611fd0565b60405180910390fd5b8060018190555050565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107ba61152a565b73ffffffffffffffffffffffffffffffffffffffff166107d8610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461082e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082590611f70565b60405180910390fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b990611ff0565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61092561152a565b73ffffffffffffffffffffffffffffffffffffffff16610943610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099090611f70565b60405180910390fd5b6109a36000611532565b565b6000336040516020016109b89190611e2f565b6040516020818303038152906040528051906020012090506109e760015482846115f69092919063ffffffff16565b610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612010565b60405180910390fd5b600083905060006007549050600060095414158015610af15750600954600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a9e9190611e76565b60206040518083038186803b158015610ab657600080fd5b505afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611c1c565b10155b15610afb57600090505b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190611f90565b60405180910390fd5b803414610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390611fb0565b60405180910390fd5b6000811115610d2357600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610cb8576000610bf582846116ac565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c3d573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284610c86919061221b565b9081150290604051600060405180830381858888f19350505050158015610cb1573d6000803e3d6000fd5b5050610d22565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d20573d6000803e3d6000fd5b505b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b8152600401610d7e9190611e76565b602060405180830381600087803b158015610d9857600080fd5b505af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190611b95565b505050505050565b60045481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190611fd0565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090611fd0565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fd561152a565b73ffffffffffffffffffffffffffffffffffffffff16610ff3610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090611f70565b60405180910390fd5b6110538282611740565b5050565b60075481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e090611fd0565b60405180910390fd5b8060078190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61112161152a565b73ffffffffffffffffffffffffffffffffffffffff1661113f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90611f70565b60405180910390fd5b8060048190555050565b6111a761152a565b73ffffffffffffffffffffffffffffffffffffffff166111c5610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290611f70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290611f30565b60405180910390fd5b61129481611532565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790611ef0565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600080600090506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b600a805490508160ff16101561151f5760008273ffffffffffffffffffffffffffffffffffffffff1662fdd58e87600a8560ff16815481106114205761141f61241e565b5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611467929190611eac565b60206040518083038186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b79190611c1c565b111561150c57600a8160ff16815481106114d4576114d361241e565b5b9060005260206000200160000160109054906101000a90046fffffffffffffffffffffffffffffffff168361150991906120f4565b92505b808061151790612368565b9150506113db565b508192505050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060005b855181101561169e57600086828151811061161d5761161c61241e565b5b6020026020010151905080831161165e578281604051602001611641929190611e4a565b60405160208183030381529060405280519060200120925061168a565b8083604051602001611671929190611e4a565b6040516020818303038152906040528051906020012092505b5080806116969061231f565b9150506115ff565b508381149150509392505050565b6000806116b8836113aa565b9050600080826fffffffffffffffffffffffffffffffff161115611717576103e8826fffffffffffffffffffffffffffffffff166004546116f991906121c1565b6117039190612190565b600454611710919061213a565b905061171d565b60045490505b6103e8818661172c91906121c1565b6117369190612190565b9250505092915050565b8051825114611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b90611f10565b60405180910390fd5b60005b82518160ff1610156118c057600a6040518060400160405280858460ff16815181106117b6576117b561241e565b5b60200260200101516fffffffffffffffffffffffffffffffff168152602001848460ff16815181106117eb576117ea61241e565b5b60200260200101516fffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505080806118b890612368565b915050611787565b505050565b60006118d86118d38461208b565b612066565b905080838252602082019050828560208602820111156118fb576118fa612481565b5b60005b8581101561192b57816119118882611a40565b8452602084019350602083019250506001810190506118fe565b5050509392505050565b6000611948611943846120b7565b612066565b9050808382526020820190508285602086028201111561196b5761196a612481565b5b60005b8581101561199b57816119818882611a55565b84526020840193506020830192505060018101905061196e565b5050509392505050565b6000813590506119b481612752565b92915050565b6000813590506119c981612769565b92915050565b600082601f8301126119e4576119e361247c565b5b81356119f48482602086016118c5565b91505092915050565b600082601f830112611a1257611a1161247c565b5b8135611a22848260208601611935565b91505092915050565b600081519050611a3a81612780565b92915050565b600081359050611a4f81612797565b92915050565b600081359050611a64816127ae565b92915050565b600081359050611a79816127c5565b92915050565b600081519050611a8e816127c5565b92915050565b600060208284031215611aaa57611aa961248b565b5b6000611ab8848285016119a5565b91505092915050565b60008060408385031215611ad857611ad761248b565b5b6000611ae6858286016119ba565b925050602083013567ffffffffffffffff811115611b0757611b06612486565b5b611b13858286016119cf565b9150509250929050565b60008060408385031215611b3457611b3361248b565b5b600083013567ffffffffffffffff811115611b5257611b51612486565b5b611b5e858286016119fd565b925050602083013567ffffffffffffffff811115611b7f57611b7e612486565b5b611b8b858286016119fd565b9150509250929050565b600060208284031215611bab57611baa61248b565b5b6000611bb984828501611a2b565b91505092915050565b600060208284031215611bd857611bd761248b565b5b6000611be684828501611a40565b91505092915050565b600060208284031215611c0557611c0461248b565b5b6000611c1384828501611a6a565b91505092915050565b600060208284031215611c3257611c3161248b565b5b6000611c4084828501611a7f565b91505092915050565b611c5281612261565b82525050565b611c618161224f565b82525050565b611c78611c738261224f565b612392565b82525050565b611c878161227f565b82525050565b611c9e611c998261227f565b6123a4565b82525050565b6000611cb16024836120e3565b9150611cbc826124ae565b604082019050919050565b6000611cd4602e836120e3565b9150611cdf826124fd565b604082019050919050565b6000611cf76026836120e3565b9150611d028261254c565b604082019050919050565b6000611d1a601d836120e3565b9150611d258261259b565b602082019050919050565b6000611d3d6020836120e3565b9150611d48826125c4565b602082019050919050565b6000611d606025836120e3565b9150611d6b826125ed565b604082019050919050565b6000611d83605e836120e3565b9150611d8e8261263c565b606082019050919050565b6000611da6602f836120e3565b9150611db1826126b1565b604082019050919050565b6000611dc96019836120e3565b9150611dd482612700565b602082019050919050565b6000611dec601e836120e3565b9150611df782612729565b602082019050919050565b611e0b81612289565b82525050565b611e1a816122dc565b82525050565b611e29816122c5565b82525050565b6000611e3b8284611c67565b60148201915081905092915050565b6000611e568285611c8d565b602082019150611e668284611c8d565b6020820191508190509392505050565b6000602082019050611e8b6000830184611c58565b92915050565b6000602082019050611ea66000830184611c49565b92915050565b6000604082019050611ec16000830185611c58565b611ece6020830184611e11565b9392505050565b6000602082019050611eea6000830184611c7e565b92915050565b60006020820190508181036000830152611f0981611ca4565b9050919050565b60006020820190508181036000830152611f2981611cc7565b9050919050565b60006020820190508181036000830152611f4981611cea565b9050919050565b60006020820190508181036000830152611f6981611d0d565b9050919050565b60006020820190508181036000830152611f8981611d30565b9050919050565b60006020820190508181036000830152611fa981611d53565b9050919050565b60006020820190508181036000830152611fc981611d76565b9050919050565b60006020820190508181036000830152611fe981611d99565b9050919050565b6000602082019050818103600083015261200981611dbc565b9050919050565b6000602082019050818103600083015261202981611ddf565b9050919050565b60006020820190506120456000830184611e02565b92915050565b60006020820190506120606000830184611e20565b92915050565b6000612070612081565b905061207c82826122ee565b919050565b6000604051905090565b600067ffffffffffffffff8211156120a6576120a561244d565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156120d2576120d161244d565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006120ff82612289565b915061210a83612289565b9250826fffffffffffffffffffffffffffffffff0382111561212f5761212e6123c0565b5b828201905092915050565b6000612145826122c5565b9150612150836122c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612185576121846123c0565b5b828201905092915050565b600061219b826122c5565b91506121a6836122c5565b9250826121b6576121b56123ef565b5b828204905092915050565b60006121cc826122c5565b91506121d7836122c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122105761220f6123c0565b5b828202905092915050565b6000612226826122c5565b9150612231836122c5565b925082821015612244576122436123c0565b5b828203905092915050565b600061225a826122a5565b9050919050565b600061226c826122a5565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006122e782612289565b9050919050565b6122f782612490565b810181811067ffffffffffffffff821117156123165761231561244d565b5b80604052505050565b600061232a826122c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561235d5761235c6123c0565b5b600182019050919050565b6000612373826122cf565b915060ff821415612387576123866123c0565b5b600182019050919050565b600061239d826123ae565b9050919050565b6000819050919050565b60006123b9826124a1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f6d73672e73656e646572206d75737420626520616e20617070726f766564204160008201527f646d696e00000000000000000000000000000000000000000000000000000000602082015250565b7f54686520617272617920706172616d6574657273206d7573742068617665207460008201527f68652073616d65206c656e677468000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f41646d696e20697320616c7265616479206e6f742d617070726f766564000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f596f752063616e6e6f742075736520796f757273656c6620617320612072656660008201527f6572726572000000000000000000000000000000000000000000000000000000602082015250565b7f596f75206d757374207061792074686520657861637420707269636520746f2060008201527f70757263686173652e2043616c6c20746865206765745072696365282920667560208201527f6e6374696f6e20746f207365652074686520707269636520696e207765690000604082015250565b7f6d75737420626520617070726f766564206279206f776e657220746f2063616c60008201527f6c20746869732066756e6374696f6e0000000000000000000000000000000000602082015250565b7f41646d696e20697320616c726561647920617070726f76656400000000000000600082015250565b7f41646472657373206e6f7420656c696769626c6520666f7220636c61696d0000600082015250565b61275b8161224f565b811461276657600080fd5b50565b61277281612261565b811461277d57600080fd5b50565b61278981612273565b811461279457600080fd5b50565b6127a08161227f565b81146127ab57600080fd5b50565b6127b781612289565b81146127c257600080fd5b50565b6127ce816122c5565b81146127d957600080fd5b5056fea26469706673582212205e499de09df590f021285270e307b3ec6ed146af453114dfe03990249ae87d8464736f6c634300080700330000000000000000000000007f651fa68337208ed54e92dde8a52c5d8b629a5c000000000000000000000000306978da6ebee060375f35418744f85c1cb6b3530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d07dc4262bcdbf85190c01c996b4c06a461d243000000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000063e7b0000000000000000000000000000000000000000000000000000000000063e8500000000000000000000000000000000000000000000000000000000000640900000000000000000000000000000000000000000000000000000000000063e9a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000c8

Deployed Bytecode

0x6080604052600436106101405760003560e01c80638c229c01116100b6578063e03481e11161006f578063e03481e1146103ed578063eb81ceee14610418578063f2fde38b14610441578063f974fbf71461046a578063f9ff8da114610495578063fed1fee0146104ac57610140565b80638c229c01146102f15780638da5cb5b1461031c578063abafcf3b14610347578063bbff2e7c14610370578063c7876ea414610399578063de4b3262146103c457610140565b806361d027b31161010857806361d027b3146102165780637048027514610241578063715018a61461026a57806383cefc7214610281578063851dfeef1461029d5780638678e2a2146102c857610140565b80631785f53c146101455780632eb4a7ab1461016e5780633ae2909d146101995780634783f0ef146101c2578063490f25d3146101eb575b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190611a94565b6104e9565b005b34801561017a57600080fd5b50610183610654565b6040516101909190611ed5565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190611bef565b61065a565b005b3480156101ce57600080fd5b506101e960048036038101906101e49190611bc2565b6106f0565b005b3480156101f757600080fd5b50610200610786565b60405161020d919061204b565b60405180910390f35b34801561022257600080fd5b5061022b61078c565b6040516102389190611e91565b60405180910390f35b34801561024d57600080fd5b5061026860048036038101906102639190611a94565b6107b2565b005b34801561027657600080fd5b5061027f61091d565b005b61029b60048036038101906102969190611ac1565b6109a5565b005b3480156102a957600080fd5b506102b2610dd8565b6040516102bf919061204b565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611a94565b610dde565b005b3480156102fd57600080fd5b50610306610eae565b6040516103139190611e76565b60405180910390f35b34801561032857600080fd5b50610331610ed4565b60405161033e9190611e76565b60405180910390f35b34801561035357600080fd5b5061036e60048036038101906103699190611a94565b610efd565b005b34801561037c57600080fd5b5061039760048036038101906103929190611b1d565b610fcd565b005b3480156103a557600080fd5b506103ae611057565b6040516103bb919061204b565b60405180910390f35b3480156103d057600080fd5b506103eb60048036038101906103e69190611bef565b61105d565b005b3480156103f957600080fd5b506104026110f3565b60405161040f9190611e76565b60405180910390f35b34801561042457600080fd5b5061043f600480360381019061043a9190611bef565b611119565b005b34801561044d57600080fd5b5061046860048036038101906104639190611a94565b61119f565b005b34801561047657600080fd5b5061047f611297565b60405161048c9190611e76565b60405180910390f35b3480156104a157600080fd5b506104aa6112bd565b005b3480156104b857600080fd5b506104d360048036038101906104ce9190611a94565b6113aa565b6040516104e09190612030565b60405180910390f35b6104f161152a565b73ffffffffffffffffffffffffffffffffffffffff1661050f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055c90611f70565b60405180910390fd5b60001515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f090611f50565b60405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60015481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd90611fd0565b60405180910390fd5b8060098190555050565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390611fd0565b60405180910390fd5b8060018190555050565b60095481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6107ba61152a565b73ffffffffffffffffffffffffffffffffffffffff166107d8610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461082e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082590611f70565b60405180910390fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b990611ff0565b60405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61092561152a565b73ffffffffffffffffffffffffffffffffffffffff16610943610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099090611f70565b60405180910390fd5b6109a36000611532565b565b6000336040516020016109b89190611e2f565b6040516020818303038152906040528051906020012090506109e760015482846115f69092919063ffffffff16565b610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90612010565b60405180910390fd5b600083905060006007549050600060095414158015610af15750600954600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610a9e9190611e76565b60206040518083038186803b158015610ab657600080fd5b505afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611c1c565b10155b15610afb57600090505b8473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6190611f90565b60405180910390fd5b803414610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390611fb0565b60405180910390fd5b6000811115610d2357600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610cb8576000610bf582846116ac565b90508273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610c3d573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8284610c86919061221b565b9081150290604051600060405180830381858888f19350505050158015610cb1573d6000803e3d6000fd5b5050610d22565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d20573d6000803e3d6000fd5b505b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b8152600401610d7e9190611e76565b602060405180830381600087803b158015610d9857600080fd5b505af1158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd09190611b95565b505050505050565b60045481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190611fd0565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090611fd0565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610fd561152a565b73ffffffffffffffffffffffffffffffffffffffff16610ff3610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611049576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104090611f70565b60405180910390fd5b6110538282611740565b5050565b60075481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166110e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e090611fd0565b60405180910390fd5b8060078190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61112161152a565b73ffffffffffffffffffffffffffffffffffffffff1661113f610ed4565b73ffffffffffffffffffffffffffffffffffffffff1614611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90611f70565b60405180910390fd5b8060048190555050565b6111a761152a565b73ffffffffffffffffffffffffffffffffffffffff166111c5610ed4565b73ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290611f70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290611f30565b60405180910390fd5b61129481611532565b50565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60011515600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134790611ef0565b60405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600080600090506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060005b600a805490508160ff16101561151f5760008273ffffffffffffffffffffffffffffffffffffffff1662fdd58e87600a8560ff16815481106114205761141f61241e565b5b9060005260206000200160000160009054906101000a90046fffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b8152600401611467929190611eac565b60206040518083038186803b15801561147f57600080fd5b505afa158015611493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b79190611c1c565b111561150c57600a8160ff16815481106114d4576114d361241e565b5b9060005260206000200160000160109054906101000a90046fffffffffffffffffffffffffffffffff168361150991906120f4565b92505b808061151790612368565b9150506113db565b508192505050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008082905060005b855181101561169e57600086828151811061161d5761161c61241e565b5b6020026020010151905080831161165e578281604051602001611641929190611e4a565b60405160208183030381529060405280519060200120925061168a565b8083604051602001611671929190611e4a565b6040516020818303038152906040528051906020012092505b5080806116969061231f565b9150506115ff565b508381149150509392505050565b6000806116b8836113aa565b9050600080826fffffffffffffffffffffffffffffffff161115611717576103e8826fffffffffffffffffffffffffffffffff166004546116f991906121c1565b6117039190612190565b600454611710919061213a565b905061171d565b60045490505b6103e8818661172c91906121c1565b6117369190612190565b9250505092915050565b8051825114611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b90611f10565b60405180910390fd5b60005b82518160ff1610156118c057600a6040518060400160405280858460ff16815181106117b6576117b561241e565b5b60200260200101516fffffffffffffffffffffffffffffffff168152602001848460ff16815181106117eb576117ea61241e565b5b60200260200101516fffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550505080806118b890612368565b915050611787565b505050565b60006118d86118d38461208b565b612066565b905080838252602082019050828560208602820111156118fb576118fa612481565b5b60005b8581101561192b57816119118882611a40565b8452602084019350602083019250506001810190506118fe565b5050509392505050565b6000611948611943846120b7565b612066565b9050808382526020820190508285602086028201111561196b5761196a612481565b5b60005b8581101561199b57816119818882611a55565b84526020840193506020830192505060018101905061196e565b5050509392505050565b6000813590506119b481612752565b92915050565b6000813590506119c981612769565b92915050565b600082601f8301126119e4576119e361247c565b5b81356119f48482602086016118c5565b91505092915050565b600082601f830112611a1257611a1161247c565b5b8135611a22848260208601611935565b91505092915050565b600081519050611a3a81612780565b92915050565b600081359050611a4f81612797565b92915050565b600081359050611a64816127ae565b92915050565b600081359050611a79816127c5565b92915050565b600081519050611a8e816127c5565b92915050565b600060208284031215611aaa57611aa961248b565b5b6000611ab8848285016119a5565b91505092915050565b60008060408385031215611ad857611ad761248b565b5b6000611ae6858286016119ba565b925050602083013567ffffffffffffffff811115611b0757611b06612486565b5b611b13858286016119cf565b9150509250929050565b60008060408385031215611b3457611b3361248b565b5b600083013567ffffffffffffffff811115611b5257611b51612486565b5b611b5e858286016119fd565b925050602083013567ffffffffffffffff811115611b7f57611b7e612486565b5b611b8b858286016119fd565b9150509250929050565b600060208284031215611bab57611baa61248b565b5b6000611bb984828501611a2b565b91505092915050565b600060208284031215611bd857611bd761248b565b5b6000611be684828501611a40565b91505092915050565b600060208284031215611c0557611c0461248b565b5b6000611c1384828501611a6a565b91505092915050565b600060208284031215611c3257611c3161248b565b5b6000611c4084828501611a7f565b91505092915050565b611c5281612261565b82525050565b611c618161224f565b82525050565b611c78611c738261224f565b612392565b82525050565b611c878161227f565b82525050565b611c9e611c998261227f565b6123a4565b82525050565b6000611cb16024836120e3565b9150611cbc826124ae565b604082019050919050565b6000611cd4602e836120e3565b9150611cdf826124fd565b604082019050919050565b6000611cf76026836120e3565b9150611d028261254c565b604082019050919050565b6000611d1a601d836120e3565b9150611d258261259b565b602082019050919050565b6000611d3d6020836120e3565b9150611d48826125c4565b602082019050919050565b6000611d606025836120e3565b9150611d6b826125ed565b604082019050919050565b6000611d83605e836120e3565b9150611d8e8261263c565b606082019050919050565b6000611da6602f836120e3565b9150611db1826126b1565b604082019050919050565b6000611dc96019836120e3565b9150611dd482612700565b602082019050919050565b6000611dec601e836120e3565b9150611df782612729565b602082019050919050565b611e0b81612289565b82525050565b611e1a816122dc565b82525050565b611e29816122c5565b82525050565b6000611e3b8284611c67565b60148201915081905092915050565b6000611e568285611c8d565b602082019150611e668284611c8d565b6020820191508190509392505050565b6000602082019050611e8b6000830184611c58565b92915050565b6000602082019050611ea66000830184611c49565b92915050565b6000604082019050611ec16000830185611c58565b611ece6020830184611e11565b9392505050565b6000602082019050611eea6000830184611c7e565b92915050565b60006020820190508181036000830152611f0981611ca4565b9050919050565b60006020820190508181036000830152611f2981611cc7565b9050919050565b60006020820190508181036000830152611f4981611cea565b9050919050565b60006020820190508181036000830152611f6981611d0d565b9050919050565b60006020820190508181036000830152611f8981611d30565b9050919050565b60006020820190508181036000830152611fa981611d53565b9050919050565b60006020820190508181036000830152611fc981611d76565b9050919050565b60006020820190508181036000830152611fe981611d99565b9050919050565b6000602082019050818103600083015261200981611dbc565b9050919050565b6000602082019050818103600083015261202981611ddf565b9050919050565b60006020820190506120456000830184611e02565b92915050565b60006020820190506120606000830184611e20565b92915050565b6000612070612081565b905061207c82826122ee565b919050565b6000604051905090565b600067ffffffffffffffff8211156120a6576120a561244d565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156120d2576120d161244d565b5b602082029050602081019050919050565b600082825260208201905092915050565b60006120ff82612289565b915061210a83612289565b9250826fffffffffffffffffffffffffffffffff0382111561212f5761212e6123c0565b5b828201905092915050565b6000612145826122c5565b9150612150836122c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612185576121846123c0565b5b828201905092915050565b600061219b826122c5565b91506121a6836122c5565b9250826121b6576121b56123ef565b5b828204905092915050565b60006121cc826122c5565b91506121d7836122c5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156122105761220f6123c0565b5b828202905092915050565b6000612226826122c5565b9150612231836122c5565b925082821015612244576122436123c0565b5b828203905092915050565b600061225a826122a5565b9050919050565b600061226c826122a5565b9050919050565b60008115159050919050565b6000819050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006122e782612289565b9050919050565b6122f782612490565b810181811067ffffffffffffffff821117156123165761231561244d565b5b80604052505050565b600061232a826122c5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561235d5761235c6123c0565b5b600182019050919050565b6000612373826122cf565b915060ff821415612387576123866123c0565b5b600182019050919050565b600061239d826123ae565b9050919050565b6000819050919050565b60006123b9826124a1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f6d73672e73656e646572206d75737420626520616e20617070726f766564204160008201527f646d696e00000000000000000000000000000000000000000000000000000000602082015250565b7f54686520617272617920706172616d6574657273206d7573742068617665207460008201527f68652073616d65206c656e677468000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f41646d696e20697320616c7265616479206e6f742d617070726f766564000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f596f752063616e6e6f742075736520796f757273656c6620617320612072656660008201527f6572726572000000000000000000000000000000000000000000000000000000602082015250565b7f596f75206d757374207061792074686520657861637420707269636520746f2060008201527f70757263686173652e2043616c6c20746865206765745072696365282920667560208201527f6e6374696f6e20746f207365652074686520707269636520696e207765690000604082015250565b7f6d75737420626520617070726f766564206279206f776e657220746f2063616c60008201527f6c20746869732066756e6374696f6e0000000000000000000000000000000000602082015250565b7f41646d696e20697320616c726561647920617070726f76656400000000000000600082015250565b7f41646472657373206e6f7420656c696769626c6520666f7220636c61696d0000600082015250565b61275b8161224f565b811461276657600080fd5b50565b61277281612261565b811461277d57600080fd5b50565b61278981612273565b811461279457600080fd5b50565b6127a08161227f565b81146127ab57600080fd5b50565b6127b781612289565b81146127c257600080fd5b50565b6127ce816122c5565b81146127d957600080fd5b5056fea26469706673582212205e499de09df590f021285270e307b3ec6ed146af453114dfe03990249ae87d8464736f6c63430008070033

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

0000000000000000000000007f651fa68337208ed54e92dde8a52c5d8b629a5c000000000000000000000000306978da6ebee060375f35418744f85c1cb6b3530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d07dc4262bcdbf85190c01c996b4c06a461d243000000000000000000000000000000000000000000000000000000000000000fa00000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000063e7b0000000000000000000000000000000000000000000000000000000000063e8500000000000000000000000000000000000000000000000000000000000640900000000000000000000000000000000000000000000000000000000000063e9a000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000c8

-----Decoded View---------------
Arg [0] : _treasury (address): 0x7F651fa68337208eD54E92dDE8a52C5d8B629A5c
Arg [1] : _xGDAOAddress (address): 0x306978DA6ebEe060375f35418744F85C1CB6b353
Arg [2] : _basePrice (uint256): 0
Arg [3] : _bonusNFTAddress (address): 0xd07dc4262BCDbf85190C01c996b4C06a461d2430
Arg [4] : _commission (uint256): 250
Arg [5] : _bonusNFTIDs (uint128[]): 409211,409221,409744,409242
Arg [6] : _bonusNFTMultipliers (uint128[]): 50,100,150,200

-----Encoded View---------------
17 Constructor Arguments found :
Arg [0] : 0000000000000000000000007f651fa68337208ed54e92dde8a52c5d8b629a5c
Arg [1] : 000000000000000000000000306978da6ebee060375f35418744f85c1cb6b353
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 000000000000000000000000d07dc4262bcdbf85190c01c996b4c06a461d2430
Arg [4] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [5] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [8] : 0000000000000000000000000000000000000000000000000000000000063e7b
Arg [9] : 0000000000000000000000000000000000000000000000000000000000063e85
Arg [10] : 0000000000000000000000000000000000000000000000000000000000064090
Arg [11] : 0000000000000000000000000000000000000000000000000000000000063e9a
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000096
Arg [16] : 00000000000000000000000000000000000000000000000000000000000000c8


Deployed Bytecode Sourcemap

8401:7679:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10858:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8533:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11617:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11717:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9116:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8637:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10647:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2375:94;;;;;;;;;;;;;:::i;:::-;;11986:1316;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8801:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11322:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8908:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1724:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11457:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13949:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8966:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13651:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8860:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13416:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2624:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9024:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11116:166;;;;;;;;;;;;;:::i;:::-;;14987:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10858:172;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10950:5:::1;10932:23;;:6;:14;10939:6;10932:14;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;10924:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11017:5;11000:6;:14;11007:6;11000:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10858:172:::0;:::o;8533:25::-;;;;:::o;11617:92::-;10508:6;:18;10515:10;10508:18;;;;;;;;;;;;;;;;;;;;;;;;;10500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11697:4:::1;11682:12;:19;;;;11617:92:::0;:::o;11717:94::-;10508:6;:18;10515:10;10508:18;;;;;;;;;;;;;;;;;;;;;;;;;10500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11799:4:::1;11786:10;:17;;;;11717:94:::0;:::o;9116:27::-;;;;:::o;8637:31::-;;;;;;;;;;;;;:::o;10647:163::-;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10736:4:::1;10718:22;;:6;:14;10725:6;10718:14;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;;10710:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10798:4;10781:6;:14;10788:6;10781:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10647:163:::0;:::o;2375:94::-;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2440:21:::1;2458:1;2440:9;:21::i;:::-;2375:94::o:0;11986:1316::-;12113:12;12155:10;12138:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;12128:39;;;;;;12113:54;;12186:29;12199:10;;12210:4;12186:5;:12;;:29;;;;;:::i;:::-;12178:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12263:24;12290:9;12263:36;;12312:13;12328:9;;12312:25;;12367:1;12351:12;;:17;;:72;;;;;12411:12;;12379:5;;;;;;;;;;;12372:23;;;12396:10;12372:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;;12351:72;12348:112;;;12447:1;12439:9;;12348:112;12494:9;12480:23;;:10;:23;;;;12472:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12577:5;12564:9;:18;12556:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;12705:1;12697:5;:9;12694:526;;;12797:1;12777:22;;:8;:22;;;12774:435;;12922:18;12943:30;12957:5;12964:8;12943:13;:30::i;:::-;12922:51;;12992:8;:17;;:29;13010:10;12992:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13040:8;;;;;;;;;;;:17;;:35;13064:10;13058:5;:16;;;;:::i;:::-;13040:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12814:332;12774:435;;;13169:8;;;;;;;;;;;:17;;:24;13187:5;13169:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12774:435;12694:526;13265:11;;;;;;;;;;;13254:28;;;13283:10;13254:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12098:1204;;;11986:1316;;:::o;8801:29::-;;;;:::o;11322:88::-;10508:6;:18;10515:10;10508:18;;;;;;;;;;;;;;;;;;;;;;;;;10500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11398:4:::1;11390:5;;:12;;;;;;;;;;;;;;;;;;11322:88:::0;:::o;8908:26::-;;;;;;;;;;;;;:::o;1724:87::-;1770:7;1797:6;;;;;;;;;;;1790:13;;1724:87;:::o;11457:100::-;10508:6;:18;10515:10;10508:18;;;;;;;;;;;;;;;;;;;;;;;;;10500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11545:4:::1;11531:11;;:18;;;;;;;;;;;;;;;;;;11457:100:::0;:::o;13949:176::-;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14068:49:::1;14082:12;14096:20;14068:13;:49::i;:::-;13949:176:::0;;:::o;8966:24::-;;;;:::o;13651:89::-;10508:6;:18;10515:10;10508:18;;;;;;;;;;;;;;;;;;;;;;;;;10500:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;13728:4:::1;13716:9;:16;;;;13651:89:::0;:::o;8860:20::-;;;;;;;;;;;;;:::o;13416:103::-;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13507:4:::1;13490:14;:21;;;;13416:103:::0;:::o;2624:192::-;1955:12;:10;:12::i;:::-;1944:23;;:7;:5;:7::i;:::-;:23;;;1936:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2733:1:::1;2713:22;;:8;:22;;;;2705:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2789:19;2799:8;2789:9;:19::i;:::-;2624:192:::0;:::o;9024:30::-;;;;;;;;;;;;;:::o;11116:166::-;11192:4;11170:26;;:6;:18;11177:10;11170:18;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;11162:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11269:5;11248:6;:18;11255:10;11248:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;11116:166::o;14987:436::-;15047:7;15066:13;15082:1;15066:17;;15094:8;15110:15;;;;;;;;;;;15094:32;;15212:7;15208:185;15229:9;:16;;;;15225:1;:20;;;15208:185;;;15313:1;15269:3;:13;;;15283:9;15294;15304:1;15294:12;;;;;;;;;;:::i;:::-;;;;;;;;;:15;;;;;;;;;;;;15269:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;15266:116;;;15343:9;15353:1;15343:12;;;;;;;;;;:::i;:::-;;;;;;;;;:23;;;;;;;;;;;;15334:32;;;;;:::i;:::-;;;15266:116;15247:3;;;;;:::i;:::-;;;;15208:185;;;;15410:5;15403:12;;;;14987:436;;;:::o;600:98::-;653:7;680:10;673:17;;600:98;:::o;2824:173::-;2880:16;2899:6;;;;;;;;;;;2880:25;;2925:8;2916:6;;:17;;;;;;;;;;;;;;;;;;2980:8;2949:40;;2970:8;2949:40;;;;;;;;;;;;2869:128;2824:173;:::o;7203:830::-;7328:4;7345:20;7368:4;7345:27;;7390:9;7385:525;7409:5;:12;7405:1;:16;7385:525;;;7443:20;7466:5;7472:1;7466:8;;;;;;;;:::i;:::-;;;;;;;;7443:31;;7511:12;7495;:28;7491:408;;7665:12;7679;7648:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7638:55;;;;;;7623:70;;7491:408;;;7855:12;7869;7838:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7828:55;;;;;;7813:70;;7491:408;7428:482;7423:3;;;;;:::i;:::-;;;;7385:525;;;;8021:4;8005:12;:20;7998:27;;;7203:830;;;;;:::o;14415:398::-;14495:7;14514:13;14530:22;14542:9;14530:11;:22::i;:::-;14514:38;;14563:18;14603:1;14595:5;:9;;;14592:161;;;14678:4;14669:5;14652:22;;:14;;:22;;;;:::i;:::-;14651:31;;;;:::i;:::-;14633:14;;:50;;;;:::i;:::-;14620:63;;14592:161;;;14727:14;;14714:27;;14592:161;14800:4;14786:10;14777:6;:19;;;;:::i;:::-;14776:28;;;;:::i;:::-;14769:36;;;;14415:398;;;;:::o;15639:436::-;15781:20;:27;15758:12;:19;:50;15750:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;15902:7;15898:170;15919:12;:19;15915:1;:23;;;15898:170;;;15959:9;15992:49;;;;;;;;16001:12;16014:1;16001:15;;;;;;;;;;:::i;:::-;;;;;;;;15992:49;;;;;;16017:20;16038:1;16017:23;;;;;;;;;;:::i;:::-;;;;;;;;15992:49;;;;;15959:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15940:3;;;;;:::i;:::-;;;;15898:170;;;;15639:436;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1497:139;;;;:::o;1642:155::-;1696:5;1734:6;1721:20;1712:29;;1750:41;1785:5;1750:41;:::i;:::-;1642:155;;;;:::o;1820:370::-;1891:5;1940:3;1933:4;1925:6;1921:17;1917:27;1907:122;;1948:79;;:::i;:::-;1907:122;2065:6;2052:20;2090:94;2180:3;2172:6;2165:4;2157:6;2153:17;2090:94;:::i;:::-;2081:103;;1897:293;1820:370;;;;:::o;2213:::-;2284:5;2333:3;2326:4;2318:6;2314:17;2310:27;2300:122;;2341:79;;:::i;:::-;2300:122;2458:6;2445:20;2483:94;2573:3;2565:6;2558:4;2550:6;2546:17;2483:94;:::i;:::-;2474:103;;2290:293;2213:370;;;;:::o;2589:137::-;2643:5;2674:6;2668:13;2659:22;;2690:30;2714:5;2690:30;:::i;:::-;2589:137;;;;:::o;2732:139::-;2778:5;2816:6;2803:20;2794:29;;2832:33;2859:5;2832:33;:::i;:::-;2732:139;;;;:::o;2877:::-;2923:5;2961:6;2948:20;2939:29;;2977:33;3004:5;2977:33;:::i;:::-;2877:139;;;;:::o;3022:::-;3068:5;3106:6;3093:20;3084:29;;3122:33;3149:5;3122:33;:::i;:::-;3022:139;;;;:::o;3167:143::-;3224:5;3255:6;3249:13;3240:22;;3271:33;3298:5;3271:33;:::i;:::-;3167:143;;;;:::o;3316:329::-;3375:6;3424:2;3412:9;3403:7;3399:23;3395:32;3392:119;;;3430:79;;:::i;:::-;3392:119;3550:1;3575:53;3620:7;3611:6;3600:9;3596:22;3575:53;:::i;:::-;3565:63;;3521:117;3316:329;;;;:::o;3651:700::-;3752:6;3760;3809:2;3797:9;3788:7;3784:23;3780:32;3777:119;;;3815:79;;:::i;:::-;3777:119;3935:1;3960:61;4013:7;4004:6;3993:9;3989:22;3960:61;:::i;:::-;3950:71;;3906:125;4098:2;4087:9;4083:18;4070:32;4129:18;4121:6;4118:30;4115:117;;;4151:79;;:::i;:::-;4115:117;4256:78;4326:7;4317:6;4306:9;4302:22;4256:78;:::i;:::-;4246:88;;4041:303;3651:700;;;;;:::o;4357:894::-;4475:6;4483;4532:2;4520:9;4511:7;4507:23;4503:32;4500:119;;;4538:79;;:::i;:::-;4500:119;4686:1;4675:9;4671:17;4658:31;4716:18;4708:6;4705:30;4702:117;;;4738:79;;:::i;:::-;4702:117;4843:78;4913:7;4904:6;4893:9;4889:22;4843:78;:::i;:::-;4833:88;;4629:302;4998:2;4987:9;4983:18;4970:32;5029:18;5021:6;5018:30;5015:117;;;5051:79;;:::i;:::-;5015:117;5156:78;5226:7;5217:6;5206:9;5202:22;5156:78;:::i;:::-;5146:88;;4941:303;4357:894;;;;;:::o;5257:345::-;5324:6;5373:2;5361:9;5352:7;5348:23;5344:32;5341:119;;;5379:79;;:::i;:::-;5341:119;5499:1;5524:61;5577:7;5568:6;5557:9;5553:22;5524:61;:::i;:::-;5514:71;;5470:125;5257:345;;;;:::o;5608:329::-;5667:6;5716:2;5704:9;5695:7;5691:23;5687:32;5684:119;;;5722:79;;:::i;:::-;5684:119;5842:1;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5813:117;5608:329;;;;:::o;5943:::-;6002:6;6051:2;6039:9;6030:7;6026:23;6022:32;6019:119;;;6057:79;;:::i;:::-;6019:119;6177:1;6202:53;6247:7;6238:6;6227:9;6223:22;6202:53;:::i;:::-;6192:63;;6148:117;5943:329;;;;:::o;6278:351::-;6348:6;6397:2;6385:9;6376:7;6372:23;6368:32;6365:119;;;6403:79;;:::i;:::-;6365:119;6523:1;6548:64;6604:7;6595:6;6584:9;6580:22;6548:64;:::i;:::-;6538:74;;6494:128;6278:351;;;;:::o;6635:142::-;6738:32;6764:5;6738:32;:::i;:::-;6733:3;6726:45;6635:142;;:::o;6783:118::-;6870:24;6888:5;6870:24;:::i;:::-;6865:3;6858:37;6783:118;;:::o;6907:157::-;7012:45;7032:24;7050:5;7032:24;:::i;:::-;7012:45;:::i;:::-;7007:3;7000:58;6907:157;;:::o;7070:118::-;7157:24;7175:5;7157:24;:::i;:::-;7152:3;7145:37;7070:118;;:::o;7194:157::-;7299:45;7319:24;7337:5;7319:24;:::i;:::-;7299:45;:::i;:::-;7294:3;7287:58;7194:157;;:::o;7357:366::-;7499:3;7520:67;7584:2;7579:3;7520:67;:::i;:::-;7513:74;;7596:93;7685:3;7596:93;:::i;:::-;7714:2;7709:3;7705:12;7698:19;;7357:366;;;:::o;7729:::-;7871:3;7892:67;7956:2;7951:3;7892:67;:::i;:::-;7885:74;;7968:93;8057:3;7968:93;:::i;:::-;8086:2;8081:3;8077:12;8070:19;;7729:366;;;:::o;8101:::-;8243:3;8264:67;8328:2;8323:3;8264:67;:::i;:::-;8257:74;;8340:93;8429:3;8340:93;:::i;:::-;8458:2;8453:3;8449:12;8442:19;;8101:366;;;:::o;8473:::-;8615:3;8636:67;8700:2;8695:3;8636:67;:::i;:::-;8629:74;;8712:93;8801:3;8712:93;:::i;:::-;8830:2;8825:3;8821:12;8814:19;;8473:366;;;:::o;8845:::-;8987:3;9008:67;9072:2;9067:3;9008:67;:::i;:::-;9001:74;;9084:93;9173:3;9084:93;:::i;:::-;9202:2;9197:3;9193:12;9186:19;;8845:366;;;:::o;9217:::-;9359:3;9380:67;9444:2;9439:3;9380:67;:::i;:::-;9373:74;;9456:93;9545:3;9456:93;:::i;:::-;9574:2;9569:3;9565:12;9558:19;;9217:366;;;:::o;9589:::-;9731:3;9752:67;9816:2;9811:3;9752:67;:::i;:::-;9745:74;;9828:93;9917:3;9828:93;:::i;:::-;9946:2;9941:3;9937:12;9930:19;;9589:366;;;:::o;9961:::-;10103:3;10124:67;10188:2;10183:3;10124:67;:::i;:::-;10117:74;;10200:93;10289:3;10200:93;:::i;:::-;10318:2;10313:3;10309:12;10302:19;;9961:366;;;:::o;10333:::-;10475:3;10496:67;10560:2;10555:3;10496:67;:::i;:::-;10489:74;;10572:93;10661:3;10572:93;:::i;:::-;10690:2;10685:3;10681:12;10674:19;;10333:366;;;:::o;10705:::-;10847:3;10868:67;10932:2;10927:3;10868:67;:::i;:::-;10861:74;;10944:93;11033:3;10944:93;:::i;:::-;11062:2;11057:3;11053:12;11046:19;;10705:366;;;:::o;11077:118::-;11164:24;11182:5;11164:24;:::i;:::-;11159:3;11152:37;11077:118;;:::o;11201:131::-;11288:37;11319:5;11288:37;:::i;:::-;11283:3;11276:50;11201:131;;:::o;11338:118::-;11425:24;11443:5;11425:24;:::i;:::-;11420:3;11413:37;11338:118;;:::o;11462:256::-;11574:3;11589:75;11660:3;11651:6;11589:75;:::i;:::-;11689:2;11684:3;11680:12;11673:19;;11709:3;11702:10;;11462:256;;;;:::o;11724:397::-;11864:3;11879:75;11950:3;11941:6;11879:75;:::i;:::-;11979:2;11974:3;11970:12;11963:19;;11992:75;12063:3;12054:6;11992:75;:::i;:::-;12092:2;12087:3;12083:12;12076:19;;12112:3;12105:10;;11724:397;;;;;:::o;12127:222::-;12220:4;12258:2;12247:9;12243:18;12235:26;;12271:71;12339:1;12328:9;12324:17;12315:6;12271:71;:::i;:::-;12127:222;;;;:::o;12355:254::-;12464:4;12502:2;12491:9;12487:18;12479:26;;12515:87;12599:1;12588:9;12584:17;12575:6;12515:87;:::i;:::-;12355:254;;;;:::o;12615:332::-;12736:4;12774:2;12763:9;12759:18;12751:26;;12787:71;12855:1;12844:9;12840:17;12831:6;12787:71;:::i;:::-;12868:72;12936:2;12925:9;12921:18;12912:6;12868:72;:::i;:::-;12615:332;;;;;:::o;12953:222::-;13046:4;13084:2;13073:9;13069:18;13061:26;;13097:71;13165:1;13154:9;13150:17;13141:6;13097:71;:::i;:::-;12953:222;;;;:::o;13181:419::-;13347:4;13385:2;13374:9;13370:18;13362:26;;13434:9;13428:4;13424:20;13420:1;13409:9;13405:17;13398:47;13462:131;13588:4;13462:131;:::i;:::-;13454:139;;13181:419;;;:::o;13606:::-;13772:4;13810:2;13799:9;13795:18;13787:26;;13859:9;13853:4;13849:20;13845:1;13834:9;13830:17;13823:47;13887:131;14013:4;13887:131;:::i;:::-;13879:139;;13606:419;;;:::o;14031:::-;14197:4;14235:2;14224:9;14220:18;14212:26;;14284:9;14278:4;14274:20;14270:1;14259:9;14255:17;14248:47;14312:131;14438:4;14312:131;:::i;:::-;14304:139;;14031:419;;;:::o;14456:::-;14622:4;14660:2;14649:9;14645:18;14637:26;;14709:9;14703:4;14699:20;14695:1;14684:9;14680:17;14673:47;14737:131;14863:4;14737:131;:::i;:::-;14729:139;;14456:419;;;:::o;14881:::-;15047:4;15085:2;15074:9;15070:18;15062:26;;15134:9;15128:4;15124:20;15120:1;15109:9;15105:17;15098:47;15162:131;15288:4;15162:131;:::i;:::-;15154:139;;14881:419;;;:::o;15306:::-;15472:4;15510:2;15499:9;15495:18;15487:26;;15559:9;15553:4;15549:20;15545:1;15534:9;15530:17;15523:47;15587:131;15713:4;15587:131;:::i;:::-;15579:139;;15306:419;;;:::o;15731:::-;15897:4;15935:2;15924:9;15920:18;15912:26;;15984:9;15978:4;15974:20;15970:1;15959:9;15955:17;15948:47;16012:131;16138:4;16012:131;:::i;:::-;16004:139;;15731:419;;;:::o;16156:::-;16322:4;16360:2;16349:9;16345:18;16337:26;;16409:9;16403:4;16399:20;16395:1;16384:9;16380:17;16373:47;16437:131;16563:4;16437:131;:::i;:::-;16429:139;;16156:419;;;:::o;16581:::-;16747:4;16785:2;16774:9;16770:18;16762:26;;16834:9;16828:4;16824:20;16820:1;16809:9;16805:17;16798:47;16862:131;16988:4;16862:131;:::i;:::-;16854:139;;16581:419;;;:::o;17006:::-;17172:4;17210:2;17199:9;17195:18;17187:26;;17259:9;17253:4;17249:20;17245:1;17234:9;17230:17;17223:47;17287:131;17413:4;17287:131;:::i;:::-;17279:139;;17006:419;;;:::o;17431:222::-;17524:4;17562:2;17551:9;17547:18;17539:26;;17575:71;17643:1;17632:9;17628:17;17619:6;17575:71;:::i;:::-;17431:222;;;;:::o;17659:::-;17752:4;17790:2;17779:9;17775:18;17767:26;;17803:71;17871:1;17860:9;17856:17;17847:6;17803:71;:::i;:::-;17659:222;;;;:::o;17887:129::-;17921:6;17948:20;;:::i;:::-;17938:30;;17977:33;18005:4;17997:6;17977:33;:::i;:::-;17887:129;;;:::o;18022:75::-;18055:6;18088:2;18082:9;18072:19;;18022:75;:::o;18103:311::-;18180:4;18270:18;18262:6;18259:30;18256:56;;;18292:18;;:::i;:::-;18256:56;18342:4;18334:6;18330:17;18322:25;;18402:4;18396;18392:15;18384:23;;18103:311;;;:::o;18420:::-;18497:4;18587:18;18579:6;18576:30;18573:56;;;18609:18;;:::i;:::-;18573:56;18659:4;18651:6;18647:17;18639:25;;18719:4;18713;18709:15;18701:23;;18420:311;;;:::o;18737:169::-;18821:11;18855:6;18850:3;18843:19;18895:4;18890:3;18886:14;18871:29;;18737:169;;;;:::o;18912:273::-;18952:3;18971:20;18989:1;18971:20;:::i;:::-;18966:25;;19005:20;19023:1;19005:20;:::i;:::-;19000:25;;19127:1;19091:34;19087:42;19084:1;19081:49;19078:75;;;19133:18;;:::i;:::-;19078:75;19177:1;19174;19170:9;19163:16;;18912:273;;;;:::o;19191:305::-;19231:3;19250:20;19268:1;19250:20;:::i;:::-;19245:25;;19284:20;19302:1;19284:20;:::i;:::-;19279:25;;19438:1;19370:66;19366:74;19363:1;19360:81;19357:107;;;19444:18;;:::i;:::-;19357:107;19488:1;19485;19481:9;19474:16;;19191:305;;;;:::o;19502:185::-;19542:1;19559:20;19577:1;19559:20;:::i;:::-;19554:25;;19593:20;19611:1;19593:20;:::i;:::-;19588:25;;19632:1;19622:35;;19637:18;;:::i;:::-;19622:35;19679:1;19676;19672:9;19667:14;;19502:185;;;;:::o;19693:348::-;19733:7;19756:20;19774:1;19756:20;:::i;:::-;19751:25;;19790:20;19808:1;19790:20;:::i;:::-;19785:25;;19978:1;19910:66;19906:74;19903:1;19900:81;19895:1;19888:9;19881:17;19877:105;19874:131;;;19985:18;;:::i;:::-;19874:131;20033:1;20030;20026:9;20015:20;;19693:348;;;;:::o;20047:191::-;20087:4;20107:20;20125:1;20107:20;:::i;:::-;20102:25;;20141:20;20159:1;20141:20;:::i;:::-;20136:25;;20180:1;20177;20174:8;20171:34;;;20185:18;;:::i;:::-;20171:34;20230:1;20227;20223:9;20215:17;;20047:191;;;;:::o;20244:96::-;20281:7;20310:24;20328:5;20310:24;:::i;:::-;20299:35;;20244:96;;;:::o;20346:104::-;20391:7;20420:24;20438:5;20420:24;:::i;:::-;20409:35;;20346:104;;;:::o;20456:90::-;20490:7;20533:5;20526:13;20519:21;20508:32;;20456:90;;;:::o;20552:77::-;20589:7;20618:5;20607:16;;20552:77;;;:::o;20635:118::-;20672:7;20712:34;20705:5;20701:46;20690:57;;20635:118;;;:::o;20759:126::-;20796:7;20836:42;20829:5;20825:54;20814:65;;20759:126;;;:::o;20891:77::-;20928:7;20957:5;20946:16;;20891:77;;;:::o;20974:86::-;21009:7;21049:4;21042:5;21038:16;21027:27;;20974:86;;;:::o;21066:113::-;21116:9;21149:24;21167:5;21149:24;:::i;:::-;21136:37;;21066:113;;;:::o;21185:281::-;21268:27;21290:4;21268:27;:::i;:::-;21260:6;21256:40;21398:6;21386:10;21383:22;21362:18;21350:10;21347:34;21344:62;21341:88;;;21409:18;;:::i;:::-;21341:88;21449:10;21445:2;21438:22;21228:238;21185:281;;:::o;21472:233::-;21511:3;21534:24;21552:5;21534:24;:::i;:::-;21525:33;;21580:66;21573:5;21570:77;21567:103;;;21650:18;;:::i;:::-;21567:103;21697:1;21690:5;21686:13;21679:20;;21472:233;;;:::o;21711:167::-;21748:3;21771:22;21787:5;21771:22;:::i;:::-;21762:31;;21815:4;21808:5;21805:15;21802:41;;;21823:18;;:::i;:::-;21802:41;21870:1;21863:5;21859:13;21852:20;;21711:167;;;:::o;21884:100::-;21923:7;21952:26;21972:5;21952:26;:::i;:::-;21941:37;;21884:100;;;:::o;21990:79::-;22029:7;22058:5;22047:16;;21990:79;;;:::o;22075:94::-;22114:7;22143:20;22157:5;22143:20;:::i;:::-;22132:31;;22075:94;;;:::o;22175:180::-;22223:77;22220:1;22213:88;22320:4;22317:1;22310:15;22344:4;22341:1;22334:15;22361:180;22409:77;22406:1;22399:88;22506:4;22503:1;22496:15;22530:4;22527:1;22520:15;22547:180;22595:77;22592:1;22585:88;22692:4;22689:1;22682:15;22716:4;22713:1;22706:15;22733:180;22781:77;22778:1;22771:88;22878:4;22875:1;22868:15;22902:4;22899:1;22892:15;22919:117;23028:1;23025;23018:12;23042:117;23151:1;23148;23141:12;23165:117;23274:1;23271;23264:12;23288:117;23397:1;23394;23387:12;23411:102;23452:6;23503:2;23499:7;23494:2;23487:5;23483:14;23479:28;23469:38;;23411:102;;;:::o;23519:94::-;23552:8;23600:5;23596:2;23592:14;23571:35;;23519:94;;;:::o;23619:223::-;23759:34;23755:1;23747:6;23743:14;23736:58;23828:6;23823:2;23815:6;23811:15;23804:31;23619:223;:::o;23848:233::-;23988:34;23984:1;23976:6;23972:14;23965:58;24057:16;24052:2;24044:6;24040:15;24033:41;23848:233;:::o;24087:225::-;24227:34;24223:1;24215:6;24211:14;24204:58;24296:8;24291:2;24283:6;24279:15;24272:33;24087:225;:::o;24318:179::-;24458:31;24454:1;24446:6;24442:14;24435:55;24318:179;:::o;24503:182::-;24643:34;24639:1;24631:6;24627:14;24620:58;24503:182;:::o;24691:224::-;24831:34;24827:1;24819:6;24815:14;24808:58;24900:7;24895:2;24887:6;24883:15;24876:32;24691:224;:::o;24921:318::-;25061:34;25057:1;25049:6;25045:14;25038:58;25130:34;25125:2;25117:6;25113:15;25106:59;25199:32;25194:2;25186:6;25182:15;25175:57;24921:318;:::o;25245:234::-;25385:34;25381:1;25373:6;25369:14;25362:58;25454:17;25449:2;25441:6;25437:15;25430:42;25245:234;:::o;25485:175::-;25625:27;25621:1;25613:6;25609:14;25602:51;25485:175;:::o;25666:180::-;25806:32;25802:1;25794:6;25790:14;25783:56;25666:180;:::o;25852:122::-;25925:24;25943:5;25925:24;:::i;:::-;25918:5;25915:35;25905:63;;25964:1;25961;25954:12;25905:63;25852:122;:::o;25980:138::-;26061:32;26087:5;26061:32;:::i;:::-;26054:5;26051:43;26041:71;;26108:1;26105;26098:12;26041:71;25980:138;:::o;26124:116::-;26194:21;26209:5;26194:21;:::i;:::-;26187:5;26184:32;26174:60;;26230:1;26227;26220:12;26174:60;26124:116;:::o;26246:122::-;26319:24;26337:5;26319:24;:::i;:::-;26312:5;26309:35;26299:63;;26358:1;26355;26348:12;26299:63;26246:122;:::o;26374:::-;26447:24;26465:5;26447:24;:::i;:::-;26440:5;26437:35;26427:63;;26486:1;26483;26476:12;26427:63;26374:122;:::o;26502:::-;26575:24;26593:5;26575:24;:::i;:::-;26568:5;26565:35;26555:63;;26614:1;26611;26604:12;26555:63;26502:122;:::o

Swarm Source

ipfs://5e499de09df590f021285270e307b3ec6ed146af453114dfe03990249ae87d84

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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