ETH Price: $3,419.38 (-1.64%)
Gas: 7 Gwei

Contract

0x3f356A4f44fd015233f26a6cb07C9e45D0498B97
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60806040144751352022-03-28 14:16:35842 days ago1648476995IN
 Create: Aura
0 ETH0.1496904573.07109769

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Aura

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-03-28
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// Inspired by Solmate: https://github.com/Rari-Capital/solmate
/// Developed by 0xBasset

contract Aura {
    /*///////////////////////////////////////////////////////////////
                                  EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /*///////////////////////////////////////////////////////////////
                             ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    address public impl_;
    address public ruler;
    address public yieldRater;

    uint256 public totalSupply;
    uint256 public startingTime;

    bool public paused;

    ERC721Like public ascended;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    mapping(address => bool) public isMinter;

    mapping(uint256 => Claim) public claims;

    struct Claim { uint128 time; uint128 rate; }

    /*///////////////////////////////////////////////////////////////
                             METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    function name() external pure returns (string memory) {
        return "AURA";
    }

    function symbol() external pure returns (string memory) {
        return "AURA";
    }
    
    function decimals() external pure returns (uint8) {
        return 18;
    }

    /*///////////////////////////////////////////////////////////////
                              ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    
    function initialize(address ascended_, address rater_) external { 
        require(msg.sender == ruler);

        startingTime = 1642092968;
        ascended     = ERC721Like(ascended_);
        yieldRater   = rater_;
    }

    function approve(address spender, uint256 value) external returns (bool) {
        allowance[msg.sender][spender] = value;

        emit Approval(msg.sender, spender, value);

        return true;
    }

    function transfer(address to, uint256 value) external returns (bool) {
        balanceOf[msg.sender] -= value;

        // This is safe because the sum of all user
        // balances can't exceed type(uint256).max!
        unchecked {
            balanceOf[to] += value;
        }

        emit Transfer(msg.sender, to, value);


        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool) {
        if (allowance[from][msg.sender] != type(uint256).max) {
            allowance[from][msg.sender] -= value;
        }

        balanceOf[from] -= value;

        // This is safe because the sum of all user
        // balances can't exceed type(uint256).max!
        unchecked {
            balanceOf[to] += value;
        }

        emit Transfer(from, to, value);

    }

    /*///////////////////////////////////////////////////////////////
                              CLAIM
    //////////////////////////////////////////////////////////////*/

    function claim(uint256 id_) public {
        require(!paused, "claims are paused");

        address owner = ascended.ownerOf(id_);
        require(owner != address(0), "token does not exist");

        (uint256 amount, uint256 rate) = _claimable(id_);
        
        claims[id_].time = uint128(block.timestamp);
        claims[id_].rate = uint128(rate);

        _mint(owner, amount);
    }

    function claimMany(uint256[] calldata ids_) external {
        for (uint256 i = 0; i < ids_.length; i++) {
            claim(ids_[i]);
        }
    }

    function claimable(uint256 id) public view returns (uint256 claimable_) {
        (claimable_ , ) = _claimable(id);
    }

    function _claimable(uint256 id_) internal view returns (uint256 amount, uint256 dailyRate) {
        Claim memory cl = claims[id_];

        if (cl.rate != 0) {
            dailyRate = cl.rate;
        } else {
            // dailyRate = 1 ether;
            dailyRate = IYieldRater(yieldRater).getYieldFor(id_);
        }

        uint256 diff = block.timestamp - (cl.time == 0 ? startingTime : cl.time);
        amount  = dailyRate * diff / 1 days;
    }

    /*///////////////////////////////////////////////////////////////
                            ADMIN PRIVILEGE
    //////////////////////////////////////////////////////////////*/

    function mint(address to, uint256 value) external {
        require(isMinter[msg.sender], "FORBIDDEN TO MINT");
        _mint(to, value);
    }

    function burn(address from, uint256 value) external {
        require(isMinter[msg.sender], "FORBIDDEN TO BURN");
        _burn(from, value);
    }

    /*///////////////////////////////////////////////////////////////
                         Ruler Function
    //////////////////////////////////////////////////////////////*/

    function setMinter(address minter, bool status) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");

        isMinter[minter] = status;
    }

    function setRuler(address ruler_) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");

        ruler = ruler_;
    }

    function setPaused(bool paused_) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");

        paused = paused_;
    }

    function setYieldRateMany(uint256[] calldata ids_, uint256 rate_) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");
        uint256 len = ids_.length;
        for (uint256 i = 0; i < len; i++) {
            claims[ids_[i]].rate = uint128(rate_);   
        }
    }

    function setYieldRate(uint256 id_, uint256 rate_) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");

        claims[id_].rate = uint128(rate_);
    }

    function setYieldRaterAddress(address ratings_) external {
        require(msg.sender == ruler, "NOT ALLOWED TO RULE");

        yieldRater = ratings_;
    }

    /*///////////////////////////////////////////////////////////////
                          INTERNAL UTILS
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 value) internal {
        totalSupply += value;

        // This is safe because the sum of all user
        // balances can't exceed type(uint256).max!
        unchecked {
            balanceOf[to] += value;
        }

        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint256 value) internal {
        balanceOf[from] -= value;

        // This is safe because a user won't ever
        // have a balance larger than totalSupply!
        unchecked {
            totalSupply -= value;
        }

        emit Transfer(from, address(0), value);
    }
}

interface ERC721Like {
    function ownerOf(uint256 id_) external view returns(address);
}

interface IYieldRater {
    function getYieldFor(uint256 id) external pure returns (uint256);
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ascended","outputs":[{"internalType":"contract ERC721Like","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids_","type":"uint256[]"}],"name":"claimMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"claimable","outputs":[{"internalType":"uint256","name":"claimable_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claims","outputs":[{"internalType":"uint128","name":"time","type":"uint128"},{"internalType":"uint128","name":"rate","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"impl_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ascended_","type":"address"},{"internalType":"address","name":"rater_","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ruler","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"paused_","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ruler_","type":"address"}],"name":"setRuler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id_","type":"uint256"},{"internalType":"uint256","name":"rate_","type":"uint256"}],"name":"setYieldRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids_","type":"uint256[]"},{"internalType":"uint256","name":"rate_","type":"uint256"}],"name":"setYieldRateMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ratings_","type":"address"}],"name":"setYieldRaterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"yieldRater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50612436806100206000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb11610104578063a888c2cd116100a2578063cf456ae711610071578063cf456ae71461051b578063d1d58b2514610537578063dd62ed3e14610567578063f9d585ca14610597576101cf565b8063a888c2cd1461046c578063a9059cbb1461049d578063aa271e1a146104cd578063b6db10de146104fd576101cf565b8063925489a8116100de578063925489a8146103f857806395d89b41146104145780639dc29fac14610432578063a51dd75d1461044e576101cf565b80635c975abb1461038e57806370a08231146103ac5780638c6b15ac146103dc576101cf565b8063313ce567116101715780633cca7cbd1161014b5780633cca7cbd1461031e57806340c10f191461033a578063485cc955146103565780634fa4c5d714610372576101cf565b8063313ce567146102c6578063379607f5146102e457806339518b5e14610300576101cf565b80630d290aee116101ad5780630d290aee1461023e57806316c38b3c1461025c57806318160ddd1461027857806323b872dd14610296576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630d18e8ad14610222575b600080fd5b6101dc6105b5565b6040516101e99190611ec2565b60405180910390f35b61020c60048036038101906102079190611b7b565b6105f2565b6040516102199190611e8c565b60405180910390f35b61023c60048036038101906102379190611a4e565b6106e4565b005b6102466107b8565b6040516102539190611e71565b60405180910390f35b61027660048036038101906102719190611c68565b6107dc565b005b610280610889565b60405161028d9190611fad565b60405180910390f35b6102b060048036038101906102ab9190611ae8565b61088f565b6040516102bd9190611e8c565b60405180910390f35b6102ce610ad7565b6040516102db9190611fc8565b60405180910390f35b6102fe60048036038101906102f99190611c95565b610ae0565b005b610308610d09565b6040516103159190611fad565b60405180910390f35b61033860048036038101906103339190611c08565b610d0f565b005b610354600480360381019061034f9190611b7b565b610e32565b005b610370600480360381019061036b9190611aa8565b610ecc565b005b61038c60048036038101906103879190611a4e565b610fb7565b005b61039661108b565b6040516103a39190611e8c565b60405180910390f35b6103c660048036038101906103c19190611a4e565b61109e565b6040516103d39190611fad565b60405180910390f35b6103f660048036038101906103f19190611cef565b6110b6565b005b610412600480360381019061040d9190611bbb565b611197565b005b61041c6111df565b6040516104299190611ec2565b60405180910390f35b61044c60048036038101906104479190611b7b565b61121c565b005b6104566112b6565b6040516104639190611e71565b60405180910390f35b61048660048036038101906104819190611c95565b6112dc565b604051610494929190611f84565b60405180910390f35b6104b760048036038101906104b29190611b7b565b611338565b6040516104c49190611e8c565b60405180910390f35b6104e760048036038101906104e29190611a4e565b61144c565b6040516104f49190611e8c565b60405180910390f35b61050561146c565b6040516105129190611e71565b60405180910390f35b61053560048036038101906105309190611b3b565b611492565b005b610551600480360381019061054c9190611c95565b61157d565b60405161055e9190611fad565b60405180910390f35b610581600480360381019061057c9190611aa8565b611592565b60405161058e9190611fad565b60405180910390f35b61059f6115b7565b6040516105ac9190611ea7565b60405180910390f35b60606040518060400160405280600481526020017f4155524100000000000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d29190611fad565b60405180910390a36001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076b90611ee4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390611ee4565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b60035481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c85781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c091906120e0565b925050819055505b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a1791906120e0565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ac89190611fad565b60405180910390a39392505050565b60006012905090565b600560009054906101000a900460ff1615610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790611f24565b60405180910390fd5b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610b8d9190611fad565b60206040518083038186803b158015610ba557600080fd5b505afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611a7b565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690611f64565b60405180910390fd5b600080610c5b846115dd565b91509150426009600086815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550806009600086815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610d0383836117ef565b50505050565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690611ee4565b60405180910390fd5b600083839050905060005b81811015610e2b578260096000878785818110610dca57610dc9612295565b5b90506020020135815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508080610e23906121ee565b915050610daa565b5050505050565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590611f04565b60405180910390fd5b610ec882826117ef565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2657600080fd5b6361e059a860048190555081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e90611ee4565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611ee4565b60405180910390fd5b806009600084815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050565b60005b828290508110156111da576111c78383838181106111bb576111ba612295565b5b90506020020135610ae0565b80806111d2906121ee565b91505061119a565b505050565b60606040518060400160405280600481526020017f4155524100000000000000000000000000000000000000000000000000000000815250905090565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90611f44565b60405180910390fd5b6112b282826118bf565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461138991906120e0565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161143a9190611fad565b60405180910390a36001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990611ee4565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611588826115dd565b5080915050919050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600960008581526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600081602001516fffffffffffffffffffffffffffffffff16146116d25780602001516fffffffffffffffffffffffffffffffff169150611780565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755ca2c5856040518263ffffffff1660e01b815260040161172d9190611fad565b60206040518083038186803b15801561174557600080fd5b505afa158015611759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177d9190611cc2565b91505b60008082600001516fffffffffffffffffffffffffffffffff16146117bb5781600001516fffffffffffffffffffffffffffffffff166117bf565b6004545b426117ca91906120e0565b90506201518081846117dc9190612086565b6117e69190612055565b93505050915091565b80600360008282546118019190611fff565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118b39190611fad565b60405180910390a35050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190e91906120e0565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119839190611fad565b60405180910390a35050565b60008135905061199e816123bb565b92915050565b6000815190506119b3816123bb565b92915050565b60008083601f8401126119cf576119ce6122c9565b5b8235905067ffffffffffffffff8111156119ec576119eb6122c4565b5b602083019150836020820283011115611a0857611a076122ce565b5b9250929050565b600081359050611a1e816123d2565b92915050565b600081359050611a33816123e9565b92915050565b600081519050611a48816123e9565b92915050565b600060208284031215611a6457611a636122d8565b5b6000611a728482850161198f565b91505092915050565b600060208284031215611a9157611a906122d8565b5b6000611a9f848285016119a4565b91505092915050565b60008060408385031215611abf57611abe6122d8565b5b6000611acd8582860161198f565b9250506020611ade8582860161198f565b9150509250929050565b600080600060608486031215611b0157611b006122d8565b5b6000611b0f8682870161198f565b9350506020611b208682870161198f565b9250506040611b3186828701611a24565b9150509250925092565b60008060408385031215611b5257611b516122d8565b5b6000611b608582860161198f565b9250506020611b7185828601611a0f565b9150509250929050565b60008060408385031215611b9257611b916122d8565b5b6000611ba08582860161198f565b9250506020611bb185828601611a24565b9150509250929050565b60008060208385031215611bd257611bd16122d8565b5b600083013567ffffffffffffffff811115611bf057611bef6122d3565b5b611bfc858286016119b9565b92509250509250929050565b600080600060408486031215611c2157611c206122d8565b5b600084013567ffffffffffffffff811115611c3f57611c3e6122d3565b5b611c4b868287016119b9565b93509350506020611c5e86828701611a24565b9150509250925092565b600060208284031215611c7e57611c7d6122d8565b5b6000611c8c84828501611a0f565b91505092915050565b600060208284031215611cab57611caa6122d8565b5b6000611cb984828501611a24565b91505092915050565b600060208284031215611cd857611cd76122d8565b5b6000611ce684828501611a39565b91505092915050565b60008060408385031215611d0657611d056122d8565b5b6000611d1485828601611a24565b9250506020611d2585828601611a24565b9150509250929050565b611d3881612114565b82525050565b611d4781612126565b82525050565b611d5681612185565b82525050565b6000611d6782611fe3565b611d718185611fee565b9350611d818185602086016121bb565b611d8a816122dd565b840191505092915050565b6000611da2601383611fee565b9150611dad826122ee565b602082019050919050565b6000611dc5601183611fee565b9150611dd082612317565b602082019050919050565b6000611de8601183611fee565b9150611df382612340565b602082019050919050565b6000611e0b601183611fee565b9150611e1682612369565b602082019050919050565b6000611e2e601483611fee565b9150611e3982612392565b602082019050919050565b611e4d81612132565b82525050565b611e5c8161216e565b82525050565b611e6b81612178565b82525050565b6000602082019050611e866000830184611d2f565b92915050565b6000602082019050611ea16000830184611d3e565b92915050565b6000602082019050611ebc6000830184611d4d565b92915050565b60006020820190508181036000830152611edc8184611d5c565b905092915050565b60006020820190508181036000830152611efd81611d95565b9050919050565b60006020820190508181036000830152611f1d81611db8565b9050919050565b60006020820190508181036000830152611f3d81611ddb565b9050919050565b60006020820190508181036000830152611f5d81611dfe565b9050919050565b60006020820190508181036000830152611f7d81611e21565b9050919050565b6000604082019050611f996000830185611e44565b611fa66020830184611e44565b9392505050565b6000602082019050611fc26000830184611e53565b92915050565b6000602082019050611fdd6000830184611e62565b92915050565b600081519050919050565b600082825260208201905092915050565b600061200a8261216e565b91506120158361216e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561204a57612049612237565b5b828201905092915050565b60006120608261216e565b915061206b8361216e565b92508261207b5761207a612266565b5b828204905092915050565b60006120918261216e565b915061209c8361216e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120d5576120d4612237565b5b828202905092915050565b60006120eb8261216e565b91506120f68361216e565b92508282101561210957612108612237565b5b828203905092915050565b600061211f8261214e565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061219082612197565b9050919050565b60006121a2826121a9565b9050919050565b60006121b48261214e565b9050919050565b60005b838110156121d95780820151818401526020810190506121be565b838111156121e8576000848401525b50505050565b60006121f98261216e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561222c5761222b612237565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e4f5420414c4c4f57454420544f2052554c4500000000000000000000000000600082015250565b7f464f5242494444454e20544f204d494e54000000000000000000000000000000600082015250565b7f636c61696d732061726520706175736564000000000000000000000000000000600082015250565b7f464f5242494444454e20544f204255524e000000000000000000000000000000600082015250565b7f746f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b6123c481612114565b81146123cf57600080fd5b50565b6123db81612126565b81146123e657600080fd5b50565b6123f28161216e565b81146123fd57600080fd5b5056fea2646970667358221220309bbe5064d246d9cdff3e193cae64bf56659f99adae2abe532ff7fd5fb4343d64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80635c975abb11610104578063a888c2cd116100a2578063cf456ae711610071578063cf456ae71461051b578063d1d58b2514610537578063dd62ed3e14610567578063f9d585ca14610597576101cf565b8063a888c2cd1461046c578063a9059cbb1461049d578063aa271e1a146104cd578063b6db10de146104fd576101cf565b8063925489a8116100de578063925489a8146103f857806395d89b41146104145780639dc29fac14610432578063a51dd75d1461044e576101cf565b80635c975abb1461038e57806370a08231146103ac5780638c6b15ac146103dc576101cf565b8063313ce567116101715780633cca7cbd1161014b5780633cca7cbd1461031e57806340c10f191461033a578063485cc955146103565780634fa4c5d714610372576101cf565b8063313ce567146102c6578063379607f5146102e457806339518b5e14610300576101cf565b80630d290aee116101ad5780630d290aee1461023e57806316c38b3c1461025c57806318160ddd1461027857806323b872dd14610296576101cf565b806306fdde03146101d4578063095ea7b3146101f25780630d18e8ad14610222575b600080fd5b6101dc6105b5565b6040516101e99190611ec2565b60405180910390f35b61020c60048036038101906102079190611b7b565b6105f2565b6040516102199190611e8c565b60405180910390f35b61023c60048036038101906102379190611a4e565b6106e4565b005b6102466107b8565b6040516102539190611e71565b60405180910390f35b61027660048036038101906102719190611c68565b6107dc565b005b610280610889565b60405161028d9190611fad565b60405180910390f35b6102b060048036038101906102ab9190611ae8565b61088f565b6040516102bd9190611e8c565b60405180910390f35b6102ce610ad7565b6040516102db9190611fc8565b60405180910390f35b6102fe60048036038101906102f99190611c95565b610ae0565b005b610308610d09565b6040516103159190611fad565b60405180910390f35b61033860048036038101906103339190611c08565b610d0f565b005b610354600480360381019061034f9190611b7b565b610e32565b005b610370600480360381019061036b9190611aa8565b610ecc565b005b61038c60048036038101906103879190611a4e565b610fb7565b005b61039661108b565b6040516103a39190611e8c565b60405180910390f35b6103c660048036038101906103c19190611a4e565b61109e565b6040516103d39190611fad565b60405180910390f35b6103f660048036038101906103f19190611cef565b6110b6565b005b610412600480360381019061040d9190611bbb565b611197565b005b61041c6111df565b6040516104299190611ec2565b60405180910390f35b61044c60048036038101906104479190611b7b565b61121c565b005b6104566112b6565b6040516104639190611e71565b60405180910390f35b61048660048036038101906104819190611c95565b6112dc565b604051610494929190611f84565b60405180910390f35b6104b760048036038101906104b29190611b7b565b611338565b6040516104c49190611e8c565b60405180910390f35b6104e760048036038101906104e29190611a4e565b61144c565b6040516104f49190611e8c565b60405180910390f35b61050561146c565b6040516105129190611e71565b60405180910390f35b61053560048036038101906105309190611b3b565b611492565b005b610551600480360381019061054c9190611c95565b61157d565b60405161055e9190611fad565b60405180910390f35b610581600480360381019061057c9190611aa8565b611592565b60405161058e9190611fad565b60405180910390f35b61059f6115b7565b6040516105ac9190611ea7565b60405180910390f35b60606040518060400160405280600481526020017f4155524100000000000000000000000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106d29190611fad565b60405180910390a36001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076b90611ee4565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390611ee4565b60405180910390fd5b80600560006101000a81548160ff02191690831515021790555050565b60035481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109c85781600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109c091906120e0565b925050819055505b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a1791906120e0565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ac89190611fad565b60405180910390a39392505050565b60006012905090565b600560009054906101000a900460ff1615610b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2790611f24565b60405180910390fd5b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b8152600401610b8d9190611fad565b60206040518083038186803b158015610ba557600080fd5b505afa158015610bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611a7b565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4690611f64565b60405180910390fd5b600080610c5b846115dd565b91509150426009600086815260200190815260200160002060000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550806009600086815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550610d0383836117ef565b50505050565b60045481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9690611ee4565b60405180910390fd5b600083839050905060005b81811015610e2b578260096000878785818110610dca57610dc9612295565b5b90506020020135815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508080610e23906121ee565b915050610daa565b5050505050565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ebe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb590611f04565b60405180910390fd5b610ec882826117ef565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2657600080fd5b6361e059a860048190555081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e90611ee4565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff1681565b60066020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611ee4565b60405180910390fd5b806009600084815260200190815260200160002060000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505050565b60005b828290508110156111da576111c78383838181106111bb576111ba612295565b5b90506020020135610ae0565b80806111d2906121ee565b91505061119a565b505050565b60606040518060400160405280600481526020017f4155524100000000000000000000000000000000000000000000000000000000815250905090565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f90611f44565b60405180910390fd5b6112b282826118bf565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915090508060000160009054906101000a90046fffffffffffffffffffffffffffffffff16908060000160109054906101000a90046fffffffffffffffffffffffffffffffff16905082565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461138991906120e0565b9250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161143a9190611fad565b60405180910390a36001905092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611522576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151990611ee4565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000611588826115dd565b5080915050919050565b6007602052816000526040600020602052806000526040600020600091509150505481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600960008581526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600081602001516fffffffffffffffffffffffffffffffff16146116d25780602001516fffffffffffffffffffffffffffffffff169150611780565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663755ca2c5856040518263ffffffff1660e01b815260040161172d9190611fad565b60206040518083038186803b15801561174557600080fd5b505afa158015611759573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177d9190611cc2565b91505b60008082600001516fffffffffffffffffffffffffffffffff16146117bb5781600001516fffffffffffffffffffffffffffffffff166117bf565b6004545b426117ca91906120e0565b90506201518081846117dc9190612086565b6117e69190612055565b93505050915091565b80600360008282546118019190611fff565b9250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118b39190611fad565b60405180910390a35050565b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461190e91906120e0565b9250508190555080600360008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119839190611fad565b60405180910390a35050565b60008135905061199e816123bb565b92915050565b6000815190506119b3816123bb565b92915050565b60008083601f8401126119cf576119ce6122c9565b5b8235905067ffffffffffffffff8111156119ec576119eb6122c4565b5b602083019150836020820283011115611a0857611a076122ce565b5b9250929050565b600081359050611a1e816123d2565b92915050565b600081359050611a33816123e9565b92915050565b600081519050611a48816123e9565b92915050565b600060208284031215611a6457611a636122d8565b5b6000611a728482850161198f565b91505092915050565b600060208284031215611a9157611a906122d8565b5b6000611a9f848285016119a4565b91505092915050565b60008060408385031215611abf57611abe6122d8565b5b6000611acd8582860161198f565b9250506020611ade8582860161198f565b9150509250929050565b600080600060608486031215611b0157611b006122d8565b5b6000611b0f8682870161198f565b9350506020611b208682870161198f565b9250506040611b3186828701611a24565b9150509250925092565b60008060408385031215611b5257611b516122d8565b5b6000611b608582860161198f565b9250506020611b7185828601611a0f565b9150509250929050565b60008060408385031215611b9257611b916122d8565b5b6000611ba08582860161198f565b9250506020611bb185828601611a24565b9150509250929050565b60008060208385031215611bd257611bd16122d8565b5b600083013567ffffffffffffffff811115611bf057611bef6122d3565b5b611bfc858286016119b9565b92509250509250929050565b600080600060408486031215611c2157611c206122d8565b5b600084013567ffffffffffffffff811115611c3f57611c3e6122d3565b5b611c4b868287016119b9565b93509350506020611c5e86828701611a24565b9150509250925092565b600060208284031215611c7e57611c7d6122d8565b5b6000611c8c84828501611a0f565b91505092915050565b600060208284031215611cab57611caa6122d8565b5b6000611cb984828501611a24565b91505092915050565b600060208284031215611cd857611cd76122d8565b5b6000611ce684828501611a39565b91505092915050565b60008060408385031215611d0657611d056122d8565b5b6000611d1485828601611a24565b9250506020611d2585828601611a24565b9150509250929050565b611d3881612114565b82525050565b611d4781612126565b82525050565b611d5681612185565b82525050565b6000611d6782611fe3565b611d718185611fee565b9350611d818185602086016121bb565b611d8a816122dd565b840191505092915050565b6000611da2601383611fee565b9150611dad826122ee565b602082019050919050565b6000611dc5601183611fee565b9150611dd082612317565b602082019050919050565b6000611de8601183611fee565b9150611df382612340565b602082019050919050565b6000611e0b601183611fee565b9150611e1682612369565b602082019050919050565b6000611e2e601483611fee565b9150611e3982612392565b602082019050919050565b611e4d81612132565b82525050565b611e5c8161216e565b82525050565b611e6b81612178565b82525050565b6000602082019050611e866000830184611d2f565b92915050565b6000602082019050611ea16000830184611d3e565b92915050565b6000602082019050611ebc6000830184611d4d565b92915050565b60006020820190508181036000830152611edc8184611d5c565b905092915050565b60006020820190508181036000830152611efd81611d95565b9050919050565b60006020820190508181036000830152611f1d81611db8565b9050919050565b60006020820190508181036000830152611f3d81611ddb565b9050919050565b60006020820190508181036000830152611f5d81611dfe565b9050919050565b60006020820190508181036000830152611f7d81611e21565b9050919050565b6000604082019050611f996000830185611e44565b611fa66020830184611e44565b9392505050565b6000602082019050611fc26000830184611e53565b92915050565b6000602082019050611fdd6000830184611e62565b92915050565b600081519050919050565b600082825260208201905092915050565b600061200a8261216e565b91506120158361216e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561204a57612049612237565b5b828201905092915050565b60006120608261216e565b915061206b8361216e565b92508261207b5761207a612266565b5b828204905092915050565b60006120918261216e565b915061209c8361216e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120d5576120d4612237565b5b828202905092915050565b60006120eb8261216e565b91506120f68361216e565b92508282101561210957612108612237565b5b828203905092915050565b600061211f8261214e565b9050919050565b60008115159050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061219082612197565b9050919050565b60006121a2826121a9565b9050919050565b60006121b48261214e565b9050919050565b60005b838110156121d95780820151818401526020810190506121be565b838111156121e8576000848401525b50505050565b60006121f98261216e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561222c5761222b612237565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e4f5420414c4c4f57454420544f2052554c4500000000000000000000000000600082015250565b7f464f5242494444454e20544f204d494e54000000000000000000000000000000600082015250565b7f636c61696d732061726520706175736564000000000000000000000000000000600082015250565b7f464f5242494444454e20544f204255524e000000000000000000000000000000600082015250565b7f746f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b6123c481612114565b81146123cf57600080fd5b50565b6123db81612126565b81146123e657600080fd5b50565b6123f28161216e565b81146123fd57600080fd5b5056fea2646970667358221220309bbe5064d246d9cdff3e193cae64bf56659f99adae2abe532ff7fd5fb4343d64736f6c63430008070033

Deployed Bytecode Sourcemap

346:7066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1587:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2296:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6412:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;903:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5780:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;991:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2890:515;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1781:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3593:405;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1024:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5929:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4963:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2059:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5632:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1060:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1122:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6229:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4006:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1681:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5117:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;930:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1297:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;2512:370;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1248:40;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;957:25;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5459:165;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4168:123;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1175:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1087:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1587:86;1626:13;1652;;;;;;;;;;;;;;;;;;;1587:86;:::o;2296:208::-;2363:4;2413:5;2380:9;:21;2390:10;2380:21;;;;;;;;;;;;;;;:30;2402:7;2380:30;;;;;;;;;;;;;;;:38;;;;2457:7;2436:36;;2445:10;2436:36;;;2466:5;2436:36;;;;;;:::i;:::-;;;;;;;;2492:4;2485:11;;2296:208;;;;:::o;6412:161::-;6502:5;;;;;;;;;;;6488:19;;:10;:19;;;6480:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6557:8;6544:10;;:21;;;;;;;;;;;;;;;;;;6412:161;:::o;903:20::-;;;;;;;;;;;;:::o;5780:141::-;5855:5;;;;;;;;;;;5841:19;;:10;:19;;;5833:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5906:7;5897:6;;:16;;;;;;;;;;;;;;;;;;5780:141;:::o;991:26::-;;;;:::o;2890:515::-;3005:4;3057:17;3026:9;:15;3036:4;3026:15;;;;;;;;;;;;;;;:27;3042:10;3026:27;;;;;;;;;;;;;;;;:48;3022:117;;3122:5;3091:9;:15;3101:4;3091:15;;;;;;;;;;;;;;;:27;3107:10;3091:27;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;3022:117;3170:5;3151:9;:15;3161:4;3151:15;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;3336:5;3319:9;:13;3329:2;3319:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;3385:2;3370:25;;3379:4;3370:25;;;3389:5;3370:25;;;;;;:::i;:::-;;;;;;;;2890:515;;;;;:::o;1781:78::-;1824:5;1849:2;1842:9;;1781:78;:::o;3593:405::-;3648:6;;;;;;;;;;;3647:7;3639:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;3689:13;3705:8;;;;;;;;;;;:16;;;3722:3;3705:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3689:37;;3762:1;3745:19;;:5;:19;;;;3737:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;3803:14;3819:12;3835:15;3846:3;3835:10;:15::i;:::-;3802:48;;;;3898:15;3871:6;:11;3878:3;3871:11;;;;;;;;;;;:16;;;:43;;;;;;;;;;;;;;;;;;3952:4;3925:6;:11;3932:3;3925:11;;;;;;;;;;;:16;;;:32;;;;;;;;;;;;;;;;;;3970:20;3976:5;3983:6;3970:5;:20::i;:::-;3628:370;;;3593:405;:::o;1024:27::-;;;;:::o;5929:292::-;6037:5;;;;;;;;;;;6023:19;;:10;:19;;;6015:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6077:11;6091:4;;:11;;6077:25;;6118:9;6113:101;6137:3;6133:1;:7;6113:101;;;6193:5;6162:6;:15;6169:4;;6174:1;6169:7;;;;;;;:::i;:::-;;;;;;;;6162:15;;;;;;;;;;;:20;;;:37;;;;;;;;;;;;;;;;;;6142:3;;;;;:::i;:::-;;;;6113:101;;;;6004:217;5929:292;;;:::o;4963:146::-;5032:8;:20;5041:10;5032:20;;;;;;;;;;;;;;;;;;;;;;;;;5024:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5085:16;5091:2;5095:5;5085;:16::i;:::-;4963:146;;:::o;2059:229::-;2157:5;;;;;;;;;;;2143:19;;:10;:19;;;2135:28;;;;;;2191:10;2176:12;:25;;;;2238:9;2212:8;;:36;;;;;;;;;;;;;;;;;;2274:6;2259:10;;:21;;;;;;;;;;;;;;;;;;2059:229;;:::o;5632:140::-;5708:5;;;;;;;;;;;5694:19;;:10;:19;;;5686:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5758:6;5750:5;;:14;;;;;;;;;;;;;;;;;;5632:140;:::o;1060:18::-;;;;;;;;;;;;;:::o;1122:44::-;;;;;;;;;;;;;;;;;:::o;6229:175::-;6321:5;;;;;;;;;;;6307:19;;:10;:19;;;6299:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;6390:5;6363:6;:11;6370:3;6363:11;;;;;;;;;;;:16;;;:33;;;;;;;;;;;;;;;;;;6229:175;;:::o;4006:154::-;4075:9;4070:83;4094:4;;:11;;4090:1;:15;4070:83;;;4127:14;4133:4;;4138:1;4133:7;;;;;;;:::i;:::-;;;;;;;;4127:5;:14::i;:::-;4107:3;;;;;:::i;:::-;;;;4070:83;;;;4006:154;;:::o;1681:88::-;1722:13;1748;;;;;;;;;;;;;;;;;;;1681:88;:::o;5117:150::-;5188:8;:20;5197:10;5188:20;;;;;;;;;;;;;;;;;;;;;;;;;5180:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;5241:18;5247:4;5253:5;5241;:18::i;:::-;5117:150;;:::o;930:20::-;;;;;;;;;;;;;:::o;1297:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2512:370::-;2575:4;2617:5;2592:9;:21;2602:10;2592:21;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;2783:5;2766:9;:13;2776:2;2766:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;2838:2;2817:31;;2826:10;2817:31;;;2842:5;2817:31;;;;;;:::i;:::-;;;;;;;;2870:4;2863:11;;2512:370;;;;:::o;1248:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;957:25::-;;;;;;;;;;;;;:::o;5459:165::-;5549:5;;;;;;;;;;;5535:19;;:10;:19;;;5527:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5610:6;5591:8;:16;5600:6;5591:16;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;5459:165;;:::o;4168:123::-;4220:18;4269:14;4280:2;4269:10;:14::i;:::-;4251:32;;;;;4168:123;;;:::o;1175:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1087:26::-;;;;;;;;;;;;;:::o;4299:468::-;4355:14;4371:17;4401:15;4419:6;:11;4426:3;4419:11;;;;;;;;;;;4401:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4458:1;4447:2;:7;;;:12;;;4443:186;;4488:2;:7;;;4476:19;;;;4443:186;;;4589:10;;;;;;;;;;;4577:35;;;4613:3;4577:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4565:52;;4443:186;4641:12;4686:1;4675:2;:7;;;:12;;;:37;;4705:2;:7;;;4675:37;;;;;4690:12;;4675:37;4656:15;:57;;;;:::i;:::-;4641:72;;4753:6;4746:4;4734:9;:16;;;;:::i;:::-;:25;;;;:::i;:::-;4724:35;;4390:377;;4299:468;;;:::o;6766:316::-;6843:5;6828:11;;:20;;;;;;;:::i;:::-;;;;;;;;7009:5;6992:9;:13;7002:2;6992:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;7064:2;7043:31;;7060:1;7043:31;;;7068:5;7043:31;;;;;;:::i;:::-;;;;;;;;6766:316;;:::o;7090:319::-;7173:5;7154:9;:15;7164:4;7154:15;;;;;;;;;;;;;;;;:24;;;;;;;:::i;:::-;;;;;;;;7334:5;7319:11;;:20;;;;;;;;;;;7391:1;7368:33;;7377:4;7368:33;;;7395:5;7368:33;;;;;;:::i;:::-;;;;;;;;7090:319;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:143::-;1233:5;1264:6;1258:13;1249:22;;1280:33;1307:5;1280:33;:::i;:::-;1176:143;;;;:::o;1325:329::-;1384:6;1433:2;1421:9;1412:7;1408:23;1404:32;1401:119;;;1439:79;;:::i;:::-;1401:119;1559:1;1584:53;1629:7;1620:6;1609:9;1605:22;1584:53;:::i;:::-;1574:63;;1530:117;1325:329;;;;:::o;1660:351::-;1730:6;1779:2;1767:9;1758:7;1754:23;1750:32;1747:119;;;1785:79;;:::i;:::-;1747:119;1905:1;1930:64;1986:7;1977:6;1966:9;1962:22;1930:64;:::i;:::-;1920:74;;1876:128;1660:351;;;;:::o;2017:474::-;2085:6;2093;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:53;2338:7;2329:6;2318:9;2314:22;2293:53;:::i;:::-;2283:63;;2239:117;2395:2;2421:53;2466:7;2457:6;2446:9;2442:22;2421:53;:::i;:::-;2411:63;;2366:118;2017:474;;;;;:::o;2497:619::-;2574:6;2582;2590;2639:2;2627:9;2618:7;2614:23;2610:32;2607:119;;;2645:79;;:::i;:::-;2607:119;2765:1;2790:53;2835:7;2826:6;2815:9;2811:22;2790:53;:::i;:::-;2780:63;;2736:117;2892:2;2918:53;2963:7;2954:6;2943:9;2939:22;2918:53;:::i;:::-;2908:63;;2863:118;3020:2;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2991:118;2497:619;;;;;:::o;3122:468::-;3187:6;3195;3244:2;3232:9;3223:7;3219:23;3215:32;3212:119;;;3250:79;;:::i;:::-;3212:119;3370:1;3395:53;3440:7;3431:6;3420:9;3416:22;3395:53;:::i;:::-;3385:63;;3341:117;3497:2;3523:50;3565:7;3556:6;3545:9;3541:22;3523:50;:::i;:::-;3513:60;;3468:115;3122:468;;;;;:::o;3596:474::-;3664:6;3672;3721:2;3709:9;3700:7;3696:23;3692:32;3689:119;;;3727:79;;:::i;:::-;3689:119;3847:1;3872:53;3917:7;3908:6;3897:9;3893:22;3872:53;:::i;:::-;3862:63;;3818:117;3974:2;4000:53;4045:7;4036:6;4025:9;4021:22;4000:53;:::i;:::-;3990:63;;3945:118;3596:474;;;;;:::o;4076:559::-;4162:6;4170;4219:2;4207:9;4198:7;4194:23;4190:32;4187:119;;;4225:79;;:::i;:::-;4187:119;4373:1;4362:9;4358:17;4345:31;4403:18;4395:6;4392:30;4389:117;;;4425:79;;:::i;:::-;4389:117;4538:80;4610:7;4601:6;4590:9;4586:22;4538:80;:::i;:::-;4520:98;;;;4316:312;4076:559;;;;;:::o;4641:704::-;4736:6;4744;4752;4801:2;4789:9;4780:7;4776:23;4772:32;4769:119;;;4807:79;;:::i;:::-;4769:119;4955:1;4944:9;4940:17;4927:31;4985:18;4977:6;4974:30;4971:117;;;5007:79;;:::i;:::-;4971:117;5120:80;5192:7;5183:6;5172:9;5168:22;5120:80;:::i;:::-;5102:98;;;;4898:312;5249:2;5275:53;5320:7;5311:6;5300:9;5296:22;5275:53;:::i;:::-;5265:63;;5220:118;4641:704;;;;;:::o;5351:323::-;5407:6;5456:2;5444:9;5435:7;5431:23;5427:32;5424:119;;;5462:79;;:::i;:::-;5424:119;5582:1;5607:50;5649:7;5640:6;5629:9;5625:22;5607:50;:::i;:::-;5597:60;;5553:114;5351:323;;;;:::o;5680:329::-;5739:6;5788:2;5776:9;5767:7;5763:23;5759:32;5756:119;;;5794:79;;:::i;:::-;5756:119;5914:1;5939:53;5984:7;5975:6;5964:9;5960:22;5939:53;:::i;:::-;5929:63;;5885:117;5680:329;;;;:::o;6015:351::-;6085:6;6134:2;6122:9;6113:7;6109:23;6105:32;6102:119;;;6140:79;;:::i;:::-;6102:119;6260:1;6285:64;6341:7;6332:6;6321:9;6317:22;6285:64;:::i;:::-;6275:74;;6231:128;6015:351;;;;:::o;6372:474::-;6440:6;6448;6497:2;6485:9;6476:7;6472:23;6468:32;6465:119;;;6503:79;;:::i;:::-;6465:119;6623:1;6648:53;6693:7;6684:6;6673:9;6669:22;6648:53;:::i;:::-;6638:63;;6594:117;6750:2;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6721:118;6372:474;;;;;:::o;6852:118::-;6939:24;6957:5;6939:24;:::i;:::-;6934:3;6927:37;6852:118;;:::o;6976:109::-;7057:21;7072:5;7057:21;:::i;:::-;7052:3;7045:34;6976:109;;:::o;7091:167::-;7196:55;7245:5;7196:55;:::i;:::-;7191:3;7184:68;7091:167;;:::o;7264:364::-;7352:3;7380:39;7413:5;7380:39;:::i;:::-;7435:71;7499:6;7494:3;7435:71;:::i;:::-;7428:78;;7515:52;7560:6;7555:3;7548:4;7541:5;7537:16;7515:52;:::i;:::-;7592:29;7614:6;7592:29;:::i;:::-;7587:3;7583:39;7576:46;;7356:272;7264:364;;;;:::o;7634:366::-;7776:3;7797:67;7861:2;7856:3;7797:67;:::i;:::-;7790:74;;7873:93;7962:3;7873:93;:::i;:::-;7991:2;7986:3;7982:12;7975:19;;7634:366;;;:::o;8006:::-;8148:3;8169:67;8233:2;8228:3;8169:67;:::i;:::-;8162:74;;8245:93;8334:3;8245:93;:::i;:::-;8363:2;8358:3;8354:12;8347:19;;8006:366;;;:::o;8378:::-;8520:3;8541:67;8605:2;8600:3;8541:67;:::i;:::-;8534:74;;8617:93;8706:3;8617:93;:::i;:::-;8735:2;8730:3;8726:12;8719:19;;8378:366;;;:::o;8750:::-;8892:3;8913:67;8977:2;8972:3;8913:67;:::i;:::-;8906:74;;8989:93;9078:3;8989:93;:::i;:::-;9107:2;9102:3;9098:12;9091:19;;8750:366;;;:::o;9122:::-;9264:3;9285:67;9349:2;9344:3;9285:67;:::i;:::-;9278:74;;9361:93;9450:3;9361:93;:::i;:::-;9479:2;9474:3;9470:12;9463:19;;9122:366;;;:::o;9494:118::-;9581:24;9599:5;9581:24;:::i;:::-;9576:3;9569:37;9494:118;;:::o;9618:::-;9705:24;9723:5;9705:24;:::i;:::-;9700:3;9693:37;9618:118;;:::o;9742:112::-;9825:22;9841:5;9825:22;:::i;:::-;9820:3;9813:35;9742:112;;:::o;9860:222::-;9953:4;9991:2;9980:9;9976:18;9968:26;;10004:71;10072:1;10061:9;10057:17;10048:6;10004:71;:::i;:::-;9860:222;;;;:::o;10088:210::-;10175:4;10213:2;10202:9;10198:18;10190:26;;10226:65;10288:1;10277:9;10273:17;10264:6;10226:65;:::i;:::-;10088:210;;;;:::o;10304:258::-;10415:4;10453:2;10442:9;10438:18;10430:26;;10466:89;10552:1;10541:9;10537:17;10528:6;10466:89;:::i;:::-;10304:258;;;;:::o;10568:313::-;10681:4;10719:2;10708:9;10704:18;10696:26;;10768:9;10762:4;10758:20;10754:1;10743:9;10739:17;10732:47;10796:78;10869:4;10860:6;10796:78;:::i;:::-;10788:86;;10568:313;;;;:::o;10887:419::-;11053:4;11091:2;11080:9;11076:18;11068:26;;11140:9;11134:4;11130:20;11126:1;11115:9;11111:17;11104:47;11168:131;11294:4;11168:131;:::i;:::-;11160:139;;10887:419;;;:::o;11312:::-;11478:4;11516:2;11505:9;11501:18;11493:26;;11565:9;11559:4;11555:20;11551:1;11540:9;11536:17;11529:47;11593:131;11719:4;11593:131;:::i;:::-;11585:139;;11312:419;;;:::o;11737:::-;11903:4;11941:2;11930:9;11926:18;11918:26;;11990:9;11984:4;11980:20;11976:1;11965:9;11961:17;11954:47;12018:131;12144:4;12018:131;:::i;:::-;12010:139;;11737:419;;;:::o;12162:::-;12328:4;12366:2;12355:9;12351:18;12343:26;;12415:9;12409:4;12405:20;12401:1;12390:9;12386:17;12379:47;12443:131;12569:4;12443:131;:::i;:::-;12435:139;;12162:419;;;:::o;12587:::-;12753:4;12791:2;12780:9;12776:18;12768:26;;12840:9;12834:4;12830:20;12826:1;12815:9;12811:17;12804:47;12868:131;12994:4;12868:131;:::i;:::-;12860:139;;12587:419;;;:::o;13012:332::-;13133:4;13171:2;13160:9;13156:18;13148:26;;13184:71;13252:1;13241:9;13237:17;13228:6;13184:71;:::i;:::-;13265:72;13333:2;13322:9;13318:18;13309:6;13265:72;:::i;:::-;13012:332;;;;;:::o;13350:222::-;13443:4;13481:2;13470:9;13466:18;13458:26;;13494:71;13562:1;13551:9;13547:17;13538:6;13494:71;:::i;:::-;13350:222;;;;:::o;13578:214::-;13667:4;13705:2;13694:9;13690:18;13682:26;;13718:67;13782:1;13771:9;13767:17;13758:6;13718:67;:::i;:::-;13578:214;;;;:::o;13879:99::-;13931:6;13965:5;13959:12;13949:22;;13879:99;;;:::o;13984:169::-;14068:11;14102:6;14097:3;14090:19;14142:4;14137:3;14133:14;14118:29;;13984:169;;;;:::o;14159:305::-;14199:3;14218:20;14236:1;14218:20;:::i;:::-;14213:25;;14252:20;14270:1;14252:20;:::i;:::-;14247:25;;14406:1;14338:66;14334:74;14331:1;14328:81;14325:107;;;14412:18;;:::i;:::-;14325:107;14456:1;14453;14449:9;14442:16;;14159:305;;;;:::o;14470:185::-;14510:1;14527:20;14545:1;14527:20;:::i;:::-;14522:25;;14561:20;14579:1;14561:20;:::i;:::-;14556:25;;14600:1;14590:35;;14605:18;;:::i;:::-;14590:35;14647:1;14644;14640:9;14635:14;;14470:185;;;;:::o;14661:348::-;14701:7;14724:20;14742:1;14724:20;:::i;:::-;14719:25;;14758:20;14776:1;14758:20;:::i;:::-;14753:25;;14946:1;14878:66;14874:74;14871:1;14868:81;14863:1;14856:9;14849:17;14845:105;14842:131;;;14953:18;;:::i;:::-;14842:131;15001:1;14998;14994:9;14983:20;;14661:348;;;;:::o;15015:191::-;15055:4;15075:20;15093:1;15075:20;:::i;:::-;15070:25;;15109:20;15127:1;15109:20;:::i;:::-;15104:25;;15148:1;15145;15142:8;15139:34;;;15153:18;;:::i;:::-;15139:34;15198:1;15195;15191:9;15183:17;;15015:191;;;;:::o;15212:96::-;15249:7;15278:24;15296:5;15278:24;:::i;:::-;15267:35;;15212:96;;;:::o;15314:90::-;15348:7;15391:5;15384:13;15377:21;15366:32;;15314:90;;;:::o;15410:118::-;15447:7;15487:34;15480:5;15476:46;15465:57;;15410:118;;;:::o;15534:126::-;15571:7;15611:42;15604:5;15600:54;15589:65;;15534:126;;;:::o;15666:77::-;15703:7;15732:5;15721:16;;15666:77;;;:::o;15749:86::-;15784:7;15824:4;15817:5;15813:16;15802:27;;15749:86;;;:::o;15841:144::-;15909:9;15942:37;15973:5;15942:37;:::i;:::-;15929:50;;15841:144;;;:::o;15991:126::-;16041:9;16074:37;16105:5;16074:37;:::i;:::-;16061:50;;15991:126;;;:::o;16123:113::-;16173:9;16206:24;16224:5;16206:24;:::i;:::-;16193:37;;16123:113;;;:::o;16242:307::-;16310:1;16320:113;16334:6;16331:1;16328:13;16320:113;;;16419:1;16414:3;16410:11;16404:18;16400:1;16395:3;16391:11;16384:39;16356:2;16353:1;16349:10;16344:15;;16320:113;;;16451:6;16448:1;16445:13;16442:101;;;16531:1;16522:6;16517:3;16513:16;16506:27;16442:101;16291:258;16242:307;;;:::o;16555:233::-;16594:3;16617:24;16635:5;16617:24;:::i;:::-;16608:33;;16663:66;16656:5;16653:77;16650:103;;;16733:18;;:::i;:::-;16650:103;16780:1;16773:5;16769:13;16762:20;;16555:233;;;:::o;16794:180::-;16842:77;16839:1;16832:88;16939:4;16936:1;16929:15;16963:4;16960:1;16953:15;16980:180;17028:77;17025:1;17018:88;17125:4;17122:1;17115:15;17149:4;17146:1;17139:15;17166:180;17214:77;17211:1;17204:88;17311:4;17308:1;17301:15;17335:4;17332:1;17325:15;17352:117;17461:1;17458;17451:12;17475:117;17584:1;17581;17574:12;17598:117;17707:1;17704;17697:12;17721:117;17830:1;17827;17820:12;17844:117;17953:1;17950;17943:12;17967:102;18008:6;18059:2;18055:7;18050:2;18043:5;18039:14;18035:28;18025:38;;17967:102;;;:::o;18075:169::-;18215:21;18211:1;18203:6;18199:14;18192:45;18075:169;:::o;18250:167::-;18390:19;18386:1;18378:6;18374:14;18367:43;18250:167;:::o;18423:::-;18563:19;18559:1;18551:6;18547:14;18540:43;18423:167;:::o;18596:::-;18736:19;18732:1;18724:6;18720:14;18713:43;18596:167;:::o;18769:170::-;18909:22;18905:1;18897:6;18893:14;18886:46;18769:170;:::o;18945:122::-;19018:24;19036:5;19018:24;:::i;:::-;19011:5;19008:35;18998:63;;19057:1;19054;19047:12;18998:63;18945:122;:::o;19073:116::-;19143:21;19158:5;19143:21;:::i;:::-;19136:5;19133:32;19123:60;;19179:1;19176;19169:12;19123:60;19073:116;:::o;19195:122::-;19268:24;19286:5;19268:24;:::i;:::-;19261:5;19258:35;19248:63;;19307:1;19304;19297:12;19248:63;19195:122;:::o

Swarm Source

ipfs://309bbe5064d246d9cdff3e193cae64bf56659f99adae2abe532ff7fd5fb4343d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.