ETH Price: $2,757.65 (+0.89%)
Gas: 0.74 Gwei

Contract

0xAe8b43F205e422DDD25829A3D946B4A58a1539aB
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint159072642022-11-06 0:02:23838 days ago1667692943IN
0xAe8b43F2...58a1539aB
0 ETH0.0008679710.84299372

Advanced mode:
Parent Transaction Hash Block
From
To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC72E

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: ERC721E.sol
// SPDX-License-Identifier: CC-BY-ND-4.0

pragma solidity ^0.8.17;

import "./IERC721E.sol";
import "./ModernTypes.sol";

contract protected {
    mapping (address => bool) is_auth;
    function authorized(address addy) public view returns(bool) {
        return is_auth[addy];
    }
    function set_authorized(address addy, bool booly) public onlyAuth {
        is_auth[addy] = booly;
    }
    modifier onlyAuth() {
        require( is_auth[msg.sender] || msg.sender==owner, "not owner");
        _;
    }
    address owner;
    modifier onlyOwner() {
        require(msg.sender==owner, "not owner");
        _;
    }
    bool locked;
    modifier safe() {
        require(!locked, "reentrant");
        locked = true;
        _;
        locked = false;
    }

    function change_owner(address new_owner) public onlyAuth {
        owner = new_owner;
    }
    receive() external payable {}
    fallback() external payable {}
}

contract ERC72E is IERC721E, protected {

    // Metadata
    string public name;
    string public symbol;
    uint public totalSupply;
    string baseURI;

    // Properties
    uint next_id;

    // ID to owner
    mapping(uint => address) public ownership;
    // Owner to ID
    /*
    owned[address] -> [1,2,3,4,5...]
    index[3] -> 2
    owned[address][2] -> 3
    */ 
    mapping(address => uint[]) public owned;
    mapping(uint => uint) public index;

    // Tokenomics
    uint public price;
    mapping(address => 
            mapping(uint => 
            mapping(address => bool))) 
            public allowed;
    
    mapping(address => mapping(address => bool)) allowedAll;

    mapping(uint => address) masterAllowed;

    // Metadata

    struct METADATA {
        string name;
        string description;
        string image;
        string external_url;
        mapping(string => string) attribute;
        string[] attribute_keys;
    }

    mapping(uint => METADATA) metadata;

    constructor(string memory name_,
                string memory symbol_,
                uint totalSupply_) {

        // Setting ownership
        owner = msg.sender;
        is_auth[owner] = true;
        // Setting metadata
        name = name_;
        symbol = symbol_;
        totalSupply = totalSupply_;

    }

    function setTokenMetadata(uint id, 
                              string memory _name,
                              string memory _description,
                              string memory _image,
                              string memory _external_url,
                              string[] memory _traits,
                              string[] memory _values) public onlyAuth {
        require(id < totalSupply, "id out of bounds");
        require(_traits.length == _values.length, "traits/values mismatch");
        metadata[id].name = _name;
        metadata[id].description = _description;
        metadata[id].image = _image;
        metadata[id].external_url = _external_url;
        for (uint i=0; i<_traits.length; i++) {
            metadata[id].attribute[_traits[i]] = _values[i];
            metadata[id].attribute_keys.push(_traits[i]);
        }
    }

    function getTokenMetadata(uint id) public view returns (string memory _metadata_) {
        // Ensure exists
        require(id < totalSupply, "id out of bounds");
        require(bytes(metadata[id].name).length > 0, "no metadata");
        // Start
        string memory _metadata = "{";
        _metadata = string.concat(_metadata, '"name": "');
        _metadata = string.concat(_metadata, metadata[id].name);
        _metadata = string.concat(_metadata, '", "description": "');
        _metadata = string.concat(_metadata, metadata[id].description);
        _metadata = string.concat(_metadata, '", "image": "');
        _metadata = string.concat(_metadata, metadata[id].image);
        _metadata = string.concat(_metadata, '", "external_url": "');
        _metadata = string.concat(_metadata, metadata[id].external_url);
        _metadata = string.concat(_metadata, '", "attributes": [');
        for (uint i = 0; i < metadata[id].attribute_keys.length; i++) {
            _metadata = string.concat(_metadata, '{"trait_type": "');
            _metadata = string.concat(_metadata, metadata[id].attribute_keys[i]);
            _metadata = string.concat(_metadata, '", "value": "');
            _metadata = string.concat(_metadata, metadata[id].attribute[metadata[id].attribute_keys[i]]);
            _metadata = string.concat(_metadata, '"}');
            if (i < metadata[id].attribute_keys.length - 1) {
                _metadata = string.concat(_metadata, ',');
            }
        }
        _metadata = string.concat(_metadata, ']}');
        return _metadata;
    }
    function mint(uint quantity) 
                  public safe payable 
                  returns (bool success) {
        // In bounds
        require(quantity > 0, "quantity must be > 0");
        require((next_id + quantity) <= totalSupply, "quantity must be <= totalSupply");
        require(msg.value >= price * quantity, "insufficient funds");
        if(quantity == 1) {
            _setOwnership(next_id, msg.sender);
            return true;
        } else {
            for (uint i = 0; i < quantity; i++) {
                _setOwnership(next_id, msg.sender);
            }
            return true;
        }
    }

    function transfer(address to, uint id) public safe returns (bool) {
        if (!(ownership[id]== msg.sender)) {
            revert ("Not owner");
        }
        // Give new ownership
        ownership[id] = to;
        owned[to].push(id);
        // Getting index of id from previous owner
        uint idIndex = index[id];
        // Getting index and id of the last id in the previous owner list
        uint lastIndex = owned[msg.sender].length - 1;
        uint lastId = owned[msg.sender][lastIndex];
        // Swapping the indexes
        owned[msg.sender][lastIndex] = id;
        owned[msg.sender][idIndex] = lastId;
        // Deleting last index to remove the ownership completely
        delete owned[msg.sender][lastIndex];
        // Emitting event
        emit Transfer(msg.sender, to, id);
        return true;
    }

    function tokenURI(uint id) public view returns (string memory URI) {
        require(id < totalSupply, "id out of bounds");
        return string(abi.encodePacked(baseURI, id));
    }

    function setBaseURI(string memory uri) public returns (bool success) {
        baseURI = uri;
        return true;
    }

    // Internals
    function _setOwnership(uint id, address addy) internal {
        ownership[id] = addy;
        owned[addy].push(id);
        index[id] = owned[addy].length - 1;
    }

    // Admin 
    function setPrice(uint price_) public onlyAuth {
        price = price_;
    }

    // ERC721 Compatibility

    // event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId) {
    // event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId) {
    // event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved) {
    
    function balanceOf(address _owner) public view returns (uint256) {
        return owned[_owner].length;
    }

    function ownerOf(uint256 _tokenId) public view returns (address) {
        return ownership[_tokenId];
    }
    function safeTransferFrom(address _from, 
                              address _to, 
                              uint256 _tokenId, 
                              bytes memory data) 
                              public payable {
        // REVIEW Bypassing it basically
        delete data;
        transferFrom(_from, _to, _tokenId);
    }
    function safeTransferFrom(address _from, 
                              address _to, 
                              uint256 _tokenId) 
                              public payable {
        // REVIEW Bypassing it basically
        transferFrom(_from, _to, _tokenId);
    }
    function transferFrom(address _from, 
                          address _to, 
                          uint256 _tokenId) 
                          public payable {
        // Check if the sender is the owner or the approved
        if (!(ownership[_tokenId]== msg.sender || 
              allowed[_from][_tokenId][msg.sender] ||
              allowedAll[_from][msg.sender])) {
            revert ("Not owner neither approved");
        }
        // Delete approval
        delete allowed[_from][_tokenId][msg.sender];
        // Give new ownership
        ownership[_tokenId] = _to;
        owned[_to].push(_tokenId);
        // Getting index of id from previous owner
        uint idIndex = index[_tokenId];
        // Getting index and id of the last id in the previous owner list
        uint lastIndex = owned[_from].length - 1;
        uint lastId = owned[_from][lastIndex];
        // Swapping the indexes
        owned[_from][lastIndex] = _tokenId;
        owned[_from][idIndex] = lastId;
        // Deleting last index to remove the ownership completely
        delete owned[_from][lastIndex];
        // Emitting event
        emit Transfer(_from, _to, _tokenId);
    }

    function approve(address _approved, 
                     uint256 _tokenId)
                     public payable {
        if (!(ownership[_tokenId]==msg.sender)) {
            revert("Not owned");
        }
        masterAllowed[_tokenId] = _approved;
        // TODO Remember to reset this on transfers
        emit Approval(msg.sender, _approved, _tokenId);
    }

    function approveOwned(address _approved, 
                     uint256 _tokenId) 
                     public payable {
        if (!(ownership[_tokenId]==msg.sender)) {
            revert("Not owned");
        }
        // Setting allowance
        allowed[msg.sender][_tokenId][_approved] = true;
        emit Approval(msg.sender, _approved, _tokenId);
    }
    
    function disapproveOwned(address _disapproved, 
                        uint256 _tokenId) 
                        public payable {
        if (!(ownership[_tokenId]==msg.sender)) {
            revert("Not owned");
        }
        // Setting allowance
        allowed[msg.sender][_tokenId][_disapproved] = false;
    }
    

    function setApprovalForAll(address _operator, 
                               bool _approved) 
                               public {
        if (_approved) {
            allowedAll[msg.sender][_operator] = true;
        } else {
            allowedAll[msg.sender][_operator] = false;
        }
        emit ApprovalForAll(msg.sender, _operator, _approved);
    }
    function getApproved(uint256 _tokenId) 
                         public view returns (address) {
        return masterAllowed[_tokenId];
    }

    function getApprovedOwned(uint256 _tokenId, 
                              address _owner,
                              address _spender)
                              public view returns (bool) {
        return allowed[_owner][_tokenId][_spender];
    }
    
    function isApprovedForAll(address _owner, 
                              address _operator) 
                              public view returns (bool) {
        return allowedAll[_owner][_operator];
    }

}

File 2 of 3: IERC721E.sol
// SPDX-License-Identifier: CC-BY-ND-4.0

pragma solidity ^0.8.17;

/// @title ERC-721 Non-Fungible Token Standard

interface IERC721 {
    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
    function balanceOf(address _owner) external view returns (uint256);
    function ownerOf(uint256 _tokenId) external view returns (address);
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external payable;
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    function approve(address _approved, uint256 _tokenId) external payable;
    function setApprovalForAll(address _operator, bool _approved) external;
    function getApproved(uint256 _tokenId) external view returns (address);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}


interface IERC721E is IERC721 {
    function setTokenMetadata(uint id, 
                              string memory _name,
                              string memory _description,
                              string memory _image,
                              string memory _external_url,
                              string[] memory _traits,
                              string[] memory _values) external;
    function getTokenMetadata(uint id) external returns (string memory metadata);
    function mint(uint quantity) external payable returns (bool success);
    function transfer(address to, uint id) external returns (bool success);
    function tokenURI(uint id) external returns (string memory URI);
    function setBaseURI(string memory uri) external returns (bool success);
    function getApprovedOwned(uint256 _tokenId, 
                              address _owner,
                              address _spender)
                              external view returns (bool);
    function approveOwned(address _approved, uint256 _tokenId) 
                          external payable;
    function disapproveOwned(address _disapproved, uint256 _tokenId) 
                             external payable;
}

File 3 of 3: ModernTypes.sol
// SPDX-License-Identifier: CC-BY-ND-4.0

pragma solidity ^0.8.15;

contract ModernTypes {

    // Compare two strings
    function STRING_IS(string memory a, string memory b) public pure returns (bool equal) {
        return keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b));
    }

    // ANCHOR Concatenate two strings
    function STRING_CONCAT(string memory a, string memory b) public pure returns (string memory _concat) {
        return string.concat(a, b);
    }

    // ANCHOR Concatenate a list of strings
    function STRING_JOIN(string[] memory all) public pure returns (string memory _joint) {
        string memory joint = "";
        for (uint i = 0; i < all.length; i++) {
            joint = string.concat(joint, all[i]);
        }
        return joint;
    }

    // ANCHOR String A contains String B?
    function STRING_CONTAINS(string memory what, string memory where)
        public
        pure
        returns (bool found)
    {
        // Transforming the strings into byte arrays
        bytes memory whatBytes = bytes(what);
        bytes memory whereBytes = bytes(where);
        // Ensuring that the strings are comparable
        require(whereBytes.length >= whatBytes.length);
        // Parsing all the combinations
        for (uint256 i = 0; i <= whereBytes.length - whatBytes.length; i++) {
            bool flag = true;
            // Each cycle compare the bytes we are taking into consideration
            for (uint256 j = 0; j < whatBytes.length; j++) {
                if (whereBytes[i + j] != whatBytes[j]) {
                    // This cycle does not contains what is needed
                    flag = false;
                    break;
                }
            }
            // Each cycle, check if has been found an occurrence
            if (flag) {
                return true;
            }
        }
        // If no occurrence has been found, return false
        return false;
    }

    // ANCHOR String to Address conversion
    function STRING_TO_ADDRESS(string memory _a)
        internal
        pure
        returns (address _parsedAddress)
    {
        bytes memory tmp = bytes(_a);
        uint160 iaddr = 0;
        uint160 b1;
        uint160 b2;
        for (uint256 i = 2; i < 2 + 2 * 20; i += 2) {
            iaddr *= 256;
            b1 = uint160(uint8(tmp[i]));
            b2 = uint160(uint8(tmp[i + 1]));
            if ((b1 >= 97) && (b1 <= 102)) {
                b1 -= 87;
            } else if ((b1 >= 65) && (b1 <= 70)) {
                b1 -= 55;
            } else if ((b1 >= 48) && (b1 <= 57)) {
                b1 -= 48;
            }
            if ((b2 >= 97) && (b2 <= 102)) {
                b2 -= 87;
            } else if ((b2 >= 65) && (b2 <= 70)) {
                b2 -= 55;
            } else if ((b2 >= 48) && (b2 <= 57)) {
                b2 -= 48;
            }
            iaddr += (b1 * 16 + b2);
        }
        return address(iaddr);
    }

    // ANCHOR Address to string conversion
    function ADDRESS_TO_STRING(address x) internal pure returns (string memory) {
        bytes memory s = new bytes(40);
        for (uint i = 0; i < 20; i++) {
            bytes1 b = bytes1(uint8(uint(uint160(x)) / (2**(8*(19 - i)))));
            bytes1 hi = bytes1(uint8(b) / 16);
            bytes1 lo = bytes1(uint8(b) - 16 * uint8(hi));
            s[2*i] = char(hi);
            s[2*i+1] = char(lo);            
        }
        return string(s);   
    }


    // ANCHOR Address to Bytes32
    function ADDRESS_TO_BYTES32(address a) public pure returns (bytes32 addr) {
        return bytes32(uint256(uint160(a)) << 96);
    }

    // ANCHOR Bytes32 to Address
    function BYTES_TO_ADDRESS(bytes32 data) public pure returns (address addr) {
        return address(uint160(uint256(data)));
    }

    // ANCHOR String to Uint
    function STRING_TO_UINT(string memory a) public pure returns (uint256 result) {
        bytes memory b = bytes(a);
        uint256 i;
        result = 0;
        for (i = 0; i < b.length; i++) {
            uint256 c = uint256(uint8(b[i]));
            if (c >= 48 && c <= 57) {
                result = result * 10 + (c - 48);
            }
        }
    }

    // ANCHOR Uint to string conversion
    function UINT_TO_STRING(uint _i) internal pure returns (string memory _uintAsString) {
        if (_i == 0) {
            return "0";
        }
        uint j = _i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len;
        while (_i != 0) {
            k = k-1;
            uint8 temp = (48 + uint8(_i - _i / 10 * 10));
            bytes1 b1 = bytes1(temp);
            bstr[k] = b1;
            _i /= 10;
        }
        return string(bstr);
    }

    // SECTION Helpers

    function char(bytes1 b) internal pure returns (bytes1 c) {
        if (uint8(b) < 10) return bytes1(uint8(b) + 0x30);
        else return bytes1(uint8(b) + 0x57);
    }

    // !SECTION

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"totalSupply_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_approved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"approveOwned","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_owner","type":"address"}],"name":"change_owner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_disapproved","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"disapproveOwned","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"getApprovedOwned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getTokenMetadata","outputs":[{"internalType":"string","name":"_metadata_","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"index","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"owned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownership","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"bool","name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setBaseURI","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price_","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"_image","type":"string"},{"internalType":"string","name":"_external_url","type":"string"},{"internalType":"string[]","name":"_traits","type":"string[]"},{"internalType":"string[]","name":"_values","type":"string[]"}],"name":"setTokenMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addy","type":"address"},{"internalType":"bool","name":"booly","type":"bool"}],"name":"set_authorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"URI","type":"string"}],"stateMutability":"view","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":"id","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":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b506040516200253638038062002536833981016040819052620000349162000150565b600180546001600160a01b0319163390811782556000908152602081905260409020805460ff1916909117905560026200006f848262000252565b5060036200007e838262000252565b50600455506200031e9050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000b357600080fd5b81516001600160401b0380821115620000d057620000d06200008b565b604051601f8301601f19908116603f01168101908282118183101715620000fb57620000fb6200008b565b816040528381526020925086838588010111156200011857600080fd5b600091505b838210156200013c57858201830151818301840152908201906200011d565b600093810190920192909252949350505050565b6000806000606084860312156200016657600080fd5b83516001600160401b03808211156200017e57600080fd5b6200018c87838801620000a1565b94506020860151915080821115620001a357600080fd5b50620001b286828701620000a1565b925050604084015190509250925092565b600181811c90821680620001d857607f821691505b602082108103620001f957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024d57600081815260208120601f850160051c81016020861015620002285750805b601f850160051c820191505b81811015620002495782815560010162000234565b5050505b505050565b81516001600160401b038111156200026e576200026e6200008b565b62000286816200027f8454620001c3565b84620001ff565b602080601f831160018114620002be5760008415620002a55750858301515b600019600386901b1c1916600185901b17855562000249565b600085815260208120601f198616915b82811015620002ef57888601518255948401946001909101908401620002ce565b50858210156200030e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612208806200032e6000396000f3fe6080604052600436106101b95760003560e01c80637b7c4519116100eb578063a0f45b691161008f578063b918161111610061578063b91816111461055e578063c87b56dd14610597578063e985e9c5146105b7578063ffa481f8146105d757005b8063a0f45b69146104d5578063a22cb4651461050b578063a9059cbb1461052b578063b88d4fde1461054b57005b806393892a0f116100c857806393892a0f1461044757806395d89b4114610497578063a035b1fe146104ac578063a0712d68146104c257005b80637b7c4519146103f45780637bb7e6641461040757806391b7f5ed1461042757005b80632bfe87421161015d578063603168011161012f57806360316801146103485780636352211e1461036857806365b5e52f1461039e57806370a08231146103be57005b80632bfe8742146102b8578063335932fc146102d857806342842e0e1461030557806355f804b31461031857005b80631194444211610196578063119444421461024e57806318160ddd1461026157806323b872dd14610285578063253c8bd41461029857005b806306fdde03146101c2578063081812fc146101ed578063095ea7b31461023b57005b366101c057005b005b3480156101ce57600080fd5b506101d7610618565b6040516101e491906117ff565b60405180910390f35b3480156101f957600080fd5b50610223610208366004611832565b6000908152600d60205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101e4565b6101c0610249366004611867565b6106a6565b6101c061025c366004611867565b61073e565b34801561026d57600080fd5b5061027760045481565b6040519081526020016101e4565b6101c0610293366004611891565b6107d7565b3480156102a457600080fd5b506101c06102b33660046118cd565b610a7a565b3480156102c457600080fd5b506101c06102d33660046118ef565b610ae0565b3480156102e457600080fd5b506102776102f3366004611832565b60096020526000908152604090205481565b6101c0610313366004611891565b610b4f565b34801561032457600080fd5b506103386103333660046119ea565b610b5f565b60405190151581526020016101e4565b34801561035457600080fd5b506101d7610363366004611832565b610b76565b34801561037457600080fd5b50610223610383366004611832565b6000908152600760205260409020546001600160a01b031690565b3480156103aa57600080fd5b506102776103b9366004611867565b610f47565b3480156103ca57600080fd5b506102776103d93660046118cd565b6001600160a01b031660009081526008602052604090205490565b6101c0610402366004611867565b610f78565b34801561041357600080fd5b506101c0610422366004611ac6565b610fe7565b34801561043357600080fd5b506101c0610442366004611832565b6111ef565b34801561045357600080fd5b50610338610462366004611bc6565b6001600160a01b039182166000908152600b602090815260408083209583529481528482209290931681529152205460ff1690565b3480156104a357600080fd5b506101d7611238565b3480156104b857600080fd5b50610277600a5481565b6103386104d0366004611832565b611245565b3480156104e157600080fd5b506102236104f0366004611832565b6007602052600090815260409020546001600160a01b031681565b34801561051757600080fd5b506101c06105263660046118ef565b6113f3565b34801561053757600080fd5b50610338610546366004611867565b61149e565b6101c0610559366004611c02565b6116dc565b34801561056a57600080fd5b506103386105793660046118cd565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105a357600080fd5b506101d76105b2366004611832565b6116f0565b3480156105c357600080fd5b506103386105d2366004611c7e565b61173d565b3480156105e357600080fd5b506103386105f2366004611cb1565b600b60209081526000938452604080852082529284528284209052825290205460ff1681565b6002805461062590611ce4565b80601f016020809104026020016040519081016040528092919081815260200182805461065190611ce4565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b505050505081565b6000818152600760205260409020546001600160a01b031633146106e55760405162461bcd60e51b81526004016106dc90611d1e565b60405180910390fd5b6000818152600d602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a45050565b6000818152600760205260409020546001600160a01b031633146107745760405162461bcd60e51b81526004016106dc90611d1e565b336000818152600b6020908152604080832085845282528083206001600160a01b0387168085529252808320805460ff1916600117905551849391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600760205260409020546001600160a01b031633148061082757506001600160a01b0383166000908152600b60209081526040808320848452825280832033845290915290205460ff165b8061085557506001600160a01b0383166000908152600c6020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260206004820152601a60248201527f4e6f74206f776e6572206e65697468657220617070726f76656400000000000060448201526064016106dc565b6001600160a01b038381166000818152600b6020908152604080832086845282528083203384528252808320805460ff191690558583526007825280832080546001600160a01b03191695881695861790559382526008808252848320805460018181018355918552838520018790558684526009835285842054948452915292812054919290916109339190611d57565b6001600160a01b0386166000908152600860205260408120805492935090918390811061096257610962611d6a565b906000526020600020015490508360086000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106109a6576109a6611d6a565b90600052602060002001819055508060086000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106109eb576109eb611d6a565b60009182526020808320909101929092556001600160a01b0388168152600890915260409020805483908110610a2357610a23611d6a565b906000526020600020016000905583856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b3360009081526020819052604090205460ff1680610aa257506001546001600160a01b031633145b610abe5760405162461bcd60e51b81526004016106dc90611d80565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680610b0857506001546001600160a01b031633145b610b245760405162461bcd60e51b81526004016106dc90611d80565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b610b5a8383836107d7565b505050565b60006005610b6d8382611df1565b50600192915050565b60606004548210610b995760405162461bcd60e51b81526004016106dc90611eb1565b6000828152600e602052604081208054610bb290611ce4565b905011610bef5760405162461bcd60e51b815260206004820152600b60248201526a6e6f206d6574616461746160a81b60448201526064016106dc565b6000604051806040016040528060018152602001607b60f81b815250905080604051602001610c1e9190611edb565b60408051601f198184030181528282526000868152600e6020908152929020909350610c4c92849201611f7b565b604051602081830303815290604052905080604051602001610c6e9190611fa2565b60408051601f198184030181528282526000868152600e6020908152929020909350610ca292849260019092019101611f7b565b604051602081830303815290604052905080604051602001610cc49190611fd9565b60408051601f198184030181528282526000868152600e6020908152929020909350610cf892849260029092019101611f7b565b604051602081830303815290604052905080604051602001610d1a919061200a565b60408051601f198184030181528282526000868152600e6020908152929020909350610d4e92849260039092019101611f7b565b604051602081830303815290604052905080604051602001610d709190612042565b604051602081830303815290604052905060005b6000848152600e6020526040902060050154811015610f1e5781604051602001610dae9190612078565b60408051601f198184030181529181526000868152600e602052206005018054919350839183908110610de357610de3611d6a565b90600052602060002001604051602001610dfe929190611f7b565b604051602081830303815290604052915081604051602001610e2091906120ac565b60408051601f198184030181529181526000868152600e60205220600581018054929450849260049092019184908110610e5c57610e5c611d6a565b90600052602060002001604051610e7391906120dd565b9081526020016040518091039020604051602001610e92929190611f7b565b604051602081830303815290604052915081604051602001610eb491906120e9565b60408051601f198184030181529181526000868152600e6020522060050154909250610ee290600190611d57565b811015610f0c5781604051602001610efa919061210f565b60405160208183030381529060405291505b80610f1681612134565b915050610d84565b5080604051602001610f30919061214d565b60408051601f198184030181529190529392505050565b60086020528160005260406000208181548110610f6357600080fd5b90600052602060002001600091509150505481565b6000818152600760205260409020546001600160a01b03163314610fae5760405162461bcd60e51b81526004016106dc90611d1e565b336000908152600b602090815260408083209383529281528282206001600160a01b03949094168252929092529020805460ff19169055565b3360009081526020819052604090205460ff168061100f57506001546001600160a01b031633145b61102b5760405162461bcd60e51b81526004016106dc90611d80565b600454871061104c5760405162461bcd60e51b81526004016106dc90611eb1565b80518251146110965760405162461bcd60e51b81526020600482015260166024820152750e8e4c2d2e8e65eecc2d8eacae640dad2e6dac2e8c6d60531b60448201526064016106dc565b6000878152600e602052604090206110ae8782611df1565b506000878152600e602052604090206001016110ca8682611df1565b506000878152600e602052604090206002016110e68582611df1565b506000878152600e602052604090206003016111028482611df1565b5060005b82518110156111e55781818151811061112157611121611d6a565b6020026020010151600e60008a815260200190815260200160002060040184838151811061115157611151611d6a565b60200260200101516040516111669190612173565b908152602001604051809103902090816111809190611df1565b50600e60008981526020019081526020016000206005018382815181106111a9576111a9611d6a565b602090810291909101810151825460018101845560009384529190922001906111d29082611df1565b50806111dd81612134565b915050611106565b5050505050505050565b3360009081526020819052604090205460ff168061121757506001546001600160a01b031633145b6112335760405162461bcd60e51b81526004016106dc90611d80565b600a55565b6003805461062590611ce4565b600154600090600160a01b900460ff161561128e5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b179055816112e55760405162461bcd60e51b815260206004820152601460248201527307175616e74697479206d757374206265203e20360641b60448201526064016106dc565b600454826006546112f6919061218f565b11156113445760405162461bcd60e51b815260206004820152601f60248201527f7175616e74697479206d757374206265203c3d20746f74616c537570706c790060448201526064016106dc565b81600a5461135291906121a2565b3410156113965760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016106dc565b816001036113b2576113aa6006543361176d565b5060016113e1565b60005b828110156113db576113c96006543361176d565b806113d381612134565b9150506113b5565b50600190505b6001805460ff60a01b19169055919050565b801561142c57336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611458565b336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff191690555b60405181151581526001600160a01b0383169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a35050565b600154600090600160a01b900460ff16156114e75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b1790556000828152600760205260409020546001600160a01b0316331461154c5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016106dc565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0388169081179091558352600880835281842080546001818101835591865284862001879055868552600984528285205433865291909352908320549092916115b891611d57565b33600090815260086020526040812080549293509091839081106115de576115de611d6a565b906000526020600020015490508460086000336001600160a01b03166001600160a01b03168152602001908152602001600020838154811061162257611622611d6a565b600091825260208083209091019290925533815260089091526040902080548291908590811061165457611654611d6a565b600091825260208083209091019290925533815260089091526040902080548390811061168357611683611d6a565b6000918252602082200181905560405186916001600160a01b0389169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450506001805460ff60a01b19168155949350505050565b5060606116ea8484846107d7565b50505050565b606060045482106117135760405162461bcd60e51b81526004016106dc90611eb1565b6005826040516020016117279291906121b9565b6040516020818303038152906040529050919050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052205460ff165b92915050565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558084526008835290832080546001818101835582865293852001869055925290546117c59190611d57565b6000928352600960205260409092209190915550565b60005b838110156117f65781810151838201526020016117de565b50506000910152565b602081526000825180602084015261181e8160408501602087016117db565b601f01601f19169190910160400192915050565b60006020828403121561184457600080fd5b5035919050565b80356001600160a01b038116811461186257600080fd5b919050565b6000806040838503121561187a57600080fd5b6118838361184b565b946020939093013593505050565b6000806000606084860312156118a657600080fd5b6118af8461184b565b92506118bd6020850161184b565b9150604084013590509250925092565b6000602082840312156118df57600080fd5b6118e88261184b565b9392505050565b6000806040838503121561190257600080fd5b61190b8361184b565b91506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561196a5761196a61192b565b604052919050565b600067ffffffffffffffff83111561198c5761198c61192b565b61199f601f8401601f1916602001611941565b90508281528383830111156119b357600080fd5b828260208301376000602084830101529392505050565b600082601f8301126119db57600080fd5b6118e883833560208501611972565b6000602082840312156119fc57600080fd5b813567ffffffffffffffff811115611a1357600080fd5b611a1f848285016119ca565b949350505050565b600082601f830112611a3857600080fd5b8135602067ffffffffffffffff80831115611a5557611a5561192b565b8260051b611a64838201611941565b9384528581018301938381019088861115611a7e57600080fd5b84880192505b85831015611aba57823584811115611a9c5760008081fd5b611aaa8a87838c01016119ca565b8352509184019190840190611a84565b98975050505050505050565b600080600080600080600060e0888a031215611ae157600080fd5b87359650602088013567ffffffffffffffff80821115611b0057600080fd5b611b0c8b838c016119ca565b975060408a0135915080821115611b2257600080fd5b611b2e8b838c016119ca565b965060608a0135915080821115611b4457600080fd5b611b508b838c016119ca565b955060808a0135915080821115611b6657600080fd5b611b728b838c016119ca565b945060a08a0135915080821115611b8857600080fd5b611b948b838c01611a27565b935060c08a0135915080821115611baa57600080fd5b50611bb78a828b01611a27565b91505092959891949750929550565b600080600060608486031215611bdb57600080fd5b83359250611beb6020850161184b565b9150611bf96040850161184b565b90509250925092565b60008060008060808587031215611c1857600080fd5b611c218561184b565b9350611c2f6020860161184b565b925060408501359150606085013567ffffffffffffffff811115611c5257600080fd5b8501601f81018713611c6357600080fd5b611c7287823560208401611972565b91505092959194509250565b60008060408385031215611c9157600080fd5b611c9a8361184b565b9150611ca86020840161184b565b90509250929050565b600080600060608486031215611cc657600080fd5b611ccf8461184b565b925060208401359150611bf96040850161184b565b600181811c90821680611cf857607f821691505b602082108103611d1857634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260099082015268139bdd081bdddb995960ba1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561176757611767611d41565b634e487b7160e01b600052603260045260246000fd5b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b601f821115610b5a57600081815260208120601f850160051c81016020861015611dca5750805b601f850160051c820191505b81811015611de957828155600101611dd6565b505050505050565b815167ffffffffffffffff811115611e0b57611e0b61192b565b611e1f81611e198454611ce4565b84611da3565b602080601f831160018114611e545760008415611e3c5750858301515b600019600386901b1c1916600185901b178555611de9565b600085815260208120601f198616915b82811015611e8357888601518255948401946001909101908401611e64565b5085821015611ea15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f6964206f7574206f6620626f756e647360801b604082015260600190565b60008251611eed8184602087016117db565b68113730b6b2911d101160b91b920191825250600901919050565b60008154611f1581611ce4565b60018281168015611f2d5760018114611f4257611f71565b60ff1984168752821515830287019450611f71565b8560005260208060002060005b85811015611f685781548a820152908401908201611f4f565b50505082870194505b5050505092915050565b60008351611f8d8184602088016117db565b611f9981840185611f08565b95945050505050565b60008251611fb48184602087016117db565b72111610113232b9b1b934b83a34b7b7111d101160691b920191825250601301919050565b60008251611feb8184602087016117db565b6c1116101134b6b0b3b2911d101160991b920191825250600d01919050565b6000825161201c8184602087016117db565b731116101132bc3a32b93730b62fbab936111d101160611b920191825250601401919050565b600082516120548184602087016117db565b71222c202261747472696275746573223a205b60701b920191825250601201919050565b6000825161208a8184602087016117db565b6f3d913a3930b4ba2fba3cb832911d101160811b920191825250601001919050565b600082516120be8184602087016117db565b6c111610113b30b63ab2911d101160991b920191825250600d01919050565b60006118e88284611f08565b600082516120fb8184602087016117db565b61227d60f01b920191825250600201919050565b600082516121218184602087016117db565b600b60fa1b920191825250600101919050565b60006001820161214657612146611d41565b5060010190565b6000825161215f8184602087016117db565b615d7d60f01b920191825250600201919050565b600082516121858184602087016117db565b9190910192915050565b8082018082111561176757611767611d41565b808202811582820484141761176757611767611d41565b60006121c58285611f08565b928352505060200191905056fea2646970667358221220a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000004546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055465657374000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101b95760003560e01c80637b7c4519116100eb578063a0f45b691161008f578063b918161111610061578063b91816111461055e578063c87b56dd14610597578063e985e9c5146105b7578063ffa481f8146105d757005b8063a0f45b69146104d5578063a22cb4651461050b578063a9059cbb1461052b578063b88d4fde1461054b57005b806393892a0f116100c857806393892a0f1461044757806395d89b4114610497578063a035b1fe146104ac578063a0712d68146104c257005b80637b7c4519146103f45780637bb7e6641461040757806391b7f5ed1461042757005b80632bfe87421161015d578063603168011161012f57806360316801146103485780636352211e1461036857806365b5e52f1461039e57806370a08231146103be57005b80632bfe8742146102b8578063335932fc146102d857806342842e0e1461030557806355f804b31461031857005b80631194444211610196578063119444421461024e57806318160ddd1461026157806323b872dd14610285578063253c8bd41461029857005b806306fdde03146101c2578063081812fc146101ed578063095ea7b31461023b57005b366101c057005b005b3480156101ce57600080fd5b506101d7610618565b6040516101e491906117ff565b60405180910390f35b3480156101f957600080fd5b50610223610208366004611832565b6000908152600d60205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101e4565b6101c0610249366004611867565b6106a6565b6101c061025c366004611867565b61073e565b34801561026d57600080fd5b5061027760045481565b6040519081526020016101e4565b6101c0610293366004611891565b6107d7565b3480156102a457600080fd5b506101c06102b33660046118cd565b610a7a565b3480156102c457600080fd5b506101c06102d33660046118ef565b610ae0565b3480156102e457600080fd5b506102776102f3366004611832565b60096020526000908152604090205481565b6101c0610313366004611891565b610b4f565b34801561032457600080fd5b506103386103333660046119ea565b610b5f565b60405190151581526020016101e4565b34801561035457600080fd5b506101d7610363366004611832565b610b76565b34801561037457600080fd5b50610223610383366004611832565b6000908152600760205260409020546001600160a01b031690565b3480156103aa57600080fd5b506102776103b9366004611867565b610f47565b3480156103ca57600080fd5b506102776103d93660046118cd565b6001600160a01b031660009081526008602052604090205490565b6101c0610402366004611867565b610f78565b34801561041357600080fd5b506101c0610422366004611ac6565b610fe7565b34801561043357600080fd5b506101c0610442366004611832565b6111ef565b34801561045357600080fd5b50610338610462366004611bc6565b6001600160a01b039182166000908152600b602090815260408083209583529481528482209290931681529152205460ff1690565b3480156104a357600080fd5b506101d7611238565b3480156104b857600080fd5b50610277600a5481565b6103386104d0366004611832565b611245565b3480156104e157600080fd5b506102236104f0366004611832565b6007602052600090815260409020546001600160a01b031681565b34801561051757600080fd5b506101c06105263660046118ef565b6113f3565b34801561053757600080fd5b50610338610546366004611867565b61149e565b6101c0610559366004611c02565b6116dc565b34801561056a57600080fd5b506103386105793660046118cd565b6001600160a01b031660009081526020819052604090205460ff1690565b3480156105a357600080fd5b506101d76105b2366004611832565b6116f0565b3480156105c357600080fd5b506103386105d2366004611c7e565b61173d565b3480156105e357600080fd5b506103386105f2366004611cb1565b600b60209081526000938452604080852082529284528284209052825290205460ff1681565b6002805461062590611ce4565b80601f016020809104026020016040519081016040528092919081815260200182805461065190611ce4565b801561069e5780601f106106735761010080835404028352916020019161069e565b820191906000526020600020905b81548152906001019060200180831161068157829003601f168201915b505050505081565b6000818152600760205260409020546001600160a01b031633146106e55760405162461bcd60e51b81526004016106dc90611d1e565b60405180910390fd5b6000818152600d602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051839233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a45050565b6000818152600760205260409020546001600160a01b031633146107745760405162461bcd60e51b81526004016106dc90611d1e565b336000818152600b6020908152604080832085845282528083206001600160a01b0387168085529252808320805460ff1916600117905551849391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600760205260409020546001600160a01b031633148061082757506001600160a01b0383166000908152600b60209081526040808320848452825280832033845290915290205460ff165b8061085557506001600160a01b0383166000908152600c6020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260206004820152601a60248201527f4e6f74206f776e6572206e65697468657220617070726f76656400000000000060448201526064016106dc565b6001600160a01b038381166000818152600b6020908152604080832086845282528083203384528252808320805460ff191690558583526007825280832080546001600160a01b03191695881695861790559382526008808252848320805460018181018355918552838520018790558684526009835285842054948452915292812054919290916109339190611d57565b6001600160a01b0386166000908152600860205260408120805492935090918390811061096257610962611d6a565b906000526020600020015490508360086000886001600160a01b03166001600160a01b0316815260200190815260200160002083815481106109a6576109a6611d6a565b90600052602060002001819055508060086000886001600160a01b03166001600160a01b0316815260200190815260200160002084815481106109eb576109eb611d6a565b60009182526020808320909101929092556001600160a01b0388168152600890915260409020805483908110610a2357610a23611d6a565b906000526020600020016000905583856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b3360009081526020819052604090205460ff1680610aa257506001546001600160a01b031633145b610abe5760405162461bcd60e51b81526004016106dc90611d80565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526020819052604090205460ff1680610b0857506001546001600160a01b031633145b610b245760405162461bcd60e51b81526004016106dc90611d80565b6001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055565b610b5a8383836107d7565b505050565b60006005610b6d8382611df1565b50600192915050565b60606004548210610b995760405162461bcd60e51b81526004016106dc90611eb1565b6000828152600e602052604081208054610bb290611ce4565b905011610bef5760405162461bcd60e51b815260206004820152600b60248201526a6e6f206d6574616461746160a81b60448201526064016106dc565b6000604051806040016040528060018152602001607b60f81b815250905080604051602001610c1e9190611edb565b60408051601f198184030181528282526000868152600e6020908152929020909350610c4c92849201611f7b565b604051602081830303815290604052905080604051602001610c6e9190611fa2565b60408051601f198184030181528282526000868152600e6020908152929020909350610ca292849260019092019101611f7b565b604051602081830303815290604052905080604051602001610cc49190611fd9565b60408051601f198184030181528282526000868152600e6020908152929020909350610cf892849260029092019101611f7b565b604051602081830303815290604052905080604051602001610d1a919061200a565b60408051601f198184030181528282526000868152600e6020908152929020909350610d4e92849260039092019101611f7b565b604051602081830303815290604052905080604051602001610d709190612042565b604051602081830303815290604052905060005b6000848152600e6020526040902060050154811015610f1e5781604051602001610dae9190612078565b60408051601f198184030181529181526000868152600e602052206005018054919350839183908110610de357610de3611d6a565b90600052602060002001604051602001610dfe929190611f7b565b604051602081830303815290604052915081604051602001610e2091906120ac565b60408051601f198184030181529181526000868152600e60205220600581018054929450849260049092019184908110610e5c57610e5c611d6a565b90600052602060002001604051610e7391906120dd565b9081526020016040518091039020604051602001610e92929190611f7b565b604051602081830303815290604052915081604051602001610eb491906120e9565b60408051601f198184030181529181526000868152600e6020522060050154909250610ee290600190611d57565b811015610f0c5781604051602001610efa919061210f565b60405160208183030381529060405291505b80610f1681612134565b915050610d84565b5080604051602001610f30919061214d565b60408051601f198184030181529190529392505050565b60086020528160005260406000208181548110610f6357600080fd5b90600052602060002001600091509150505481565b6000818152600760205260409020546001600160a01b03163314610fae5760405162461bcd60e51b81526004016106dc90611d1e565b336000908152600b602090815260408083209383529281528282206001600160a01b03949094168252929092529020805460ff19169055565b3360009081526020819052604090205460ff168061100f57506001546001600160a01b031633145b61102b5760405162461bcd60e51b81526004016106dc90611d80565b600454871061104c5760405162461bcd60e51b81526004016106dc90611eb1565b80518251146110965760405162461bcd60e51b81526020600482015260166024820152750e8e4c2d2e8e65eecc2d8eacae640dad2e6dac2e8c6d60531b60448201526064016106dc565b6000878152600e602052604090206110ae8782611df1565b506000878152600e602052604090206001016110ca8682611df1565b506000878152600e602052604090206002016110e68582611df1565b506000878152600e602052604090206003016111028482611df1565b5060005b82518110156111e55781818151811061112157611121611d6a565b6020026020010151600e60008a815260200190815260200160002060040184838151811061115157611151611d6a565b60200260200101516040516111669190612173565b908152602001604051809103902090816111809190611df1565b50600e60008981526020019081526020016000206005018382815181106111a9576111a9611d6a565b602090810291909101810151825460018101845560009384529190922001906111d29082611df1565b50806111dd81612134565b915050611106565b5050505050505050565b3360009081526020819052604090205460ff168061121757506001546001600160a01b031633145b6112335760405162461bcd60e51b81526004016106dc90611d80565b600a55565b6003805461062590611ce4565b600154600090600160a01b900460ff161561128e5760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b179055816112e55760405162461bcd60e51b815260206004820152601460248201527307175616e74697479206d757374206265203e20360641b60448201526064016106dc565b600454826006546112f6919061218f565b11156113445760405162461bcd60e51b815260206004820152601f60248201527f7175616e74697479206d757374206265203c3d20746f74616c537570706c790060448201526064016106dc565b81600a5461135291906121a2565b3410156113965760405162461bcd60e51b8152602060048201526012602482015271696e73756666696369656e742066756e647360701b60448201526064016106dc565b816001036113b2576113aa6006543361176d565b5060016113e1565b60005b828110156113db576113c96006543361176d565b806113d381612134565b9150506113b5565b50600190505b6001805460ff60a01b19169055919050565b801561142c57336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff19166001179055611458565b336000908152600c602090815260408083206001600160a01b03861684529091529020805460ff191690555b60405181151581526001600160a01b0383169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a35050565b600154600090600160a01b900460ff16156114e75760405162461bcd60e51b81526020600482015260096024820152681c99595b9d1c985b9d60ba1b60448201526064016106dc565b6001805460ff60a01b1916600160a01b1790556000828152600760205260409020546001600160a01b0316331461154c5760405162461bcd60e51b81526020600482015260096024820152682737ba1037bbb732b960b91b60448201526064016106dc565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0388169081179091558352600880835281842080546001818101835591865284862001879055868552600984528285205433865291909352908320549092916115b891611d57565b33600090815260086020526040812080549293509091839081106115de576115de611d6a565b906000526020600020015490508460086000336001600160a01b03166001600160a01b03168152602001908152602001600020838154811061162257611622611d6a565b600091825260208083209091019290925533815260089091526040902080548291908590811061165457611654611d6a565b600091825260208083209091019290925533815260089091526040902080548390811061168357611683611d6a565b6000918252602082200181905560405186916001600160a01b0389169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a450506001805460ff60a01b19168155949350505050565b5060606116ea8484846107d7565b50505050565b606060045482106117135760405162461bcd60e51b81526004016106dc90611eb1565b6005826040516020016117279291906121b9565b6040516020818303038152906040529050919050565b6001600160a01b038083166000908152600c602090815260408083209385168352929052205460ff165b92915050565b600082815260076020908152604080832080546001600160a01b0319166001600160a01b0386169081179091558084526008835290832080546001818101835582865293852001869055925290546117c59190611d57565b6000928352600960205260409092209190915550565b60005b838110156117f65781810151838201526020016117de565b50506000910152565b602081526000825180602084015261181e8160408501602087016117db565b601f01601f19169190910160400192915050565b60006020828403121561184457600080fd5b5035919050565b80356001600160a01b038116811461186257600080fd5b919050565b6000806040838503121561187a57600080fd5b6118838361184b565b946020939093013593505050565b6000806000606084860312156118a657600080fd5b6118af8461184b565b92506118bd6020850161184b565b9150604084013590509250925092565b6000602082840312156118df57600080fd5b6118e88261184b565b9392505050565b6000806040838503121561190257600080fd5b61190b8361184b565b91506020830135801515811461192057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561196a5761196a61192b565b604052919050565b600067ffffffffffffffff83111561198c5761198c61192b565b61199f601f8401601f1916602001611941565b90508281528383830111156119b357600080fd5b828260208301376000602084830101529392505050565b600082601f8301126119db57600080fd5b6118e883833560208501611972565b6000602082840312156119fc57600080fd5b813567ffffffffffffffff811115611a1357600080fd5b611a1f848285016119ca565b949350505050565b600082601f830112611a3857600080fd5b8135602067ffffffffffffffff80831115611a5557611a5561192b565b8260051b611a64838201611941565b9384528581018301938381019088861115611a7e57600080fd5b84880192505b85831015611aba57823584811115611a9c5760008081fd5b611aaa8a87838c01016119ca565b8352509184019190840190611a84565b98975050505050505050565b600080600080600080600060e0888a031215611ae157600080fd5b87359650602088013567ffffffffffffffff80821115611b0057600080fd5b611b0c8b838c016119ca565b975060408a0135915080821115611b2257600080fd5b611b2e8b838c016119ca565b965060608a0135915080821115611b4457600080fd5b611b508b838c016119ca565b955060808a0135915080821115611b6657600080fd5b611b728b838c016119ca565b945060a08a0135915080821115611b8857600080fd5b611b948b838c01611a27565b935060c08a0135915080821115611baa57600080fd5b50611bb78a828b01611a27565b91505092959891949750929550565b600080600060608486031215611bdb57600080fd5b83359250611beb6020850161184b565b9150611bf96040850161184b565b90509250925092565b60008060008060808587031215611c1857600080fd5b611c218561184b565b9350611c2f6020860161184b565b925060408501359150606085013567ffffffffffffffff811115611c5257600080fd5b8501601f81018713611c6357600080fd5b611c7287823560208401611972565b91505092959194509250565b60008060408385031215611c9157600080fd5b611c9a8361184b565b9150611ca86020840161184b565b90509250929050565b600080600060608486031215611cc657600080fd5b611ccf8461184b565b925060208401359150611bf96040850161184b565b600181811c90821680611cf857607f821691505b602082108103611d1857634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260099082015268139bdd081bdddb995960ba1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8181038181111561176757611767611d41565b634e487b7160e01b600052603260045260246000fd5b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b601f821115610b5a57600081815260208120601f850160051c81016020861015611dca5750805b601f850160051c820191505b81811015611de957828155600101611dd6565b505050505050565b815167ffffffffffffffff811115611e0b57611e0b61192b565b611e1f81611e198454611ce4565b84611da3565b602080601f831160018114611e545760008415611e3c5750858301515b600019600386901b1c1916600185901b178555611de9565b600085815260208120601f198616915b82811015611e8357888601518255948401946001909101908401611e64565b5085821015611ea15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526010908201526f6964206f7574206f6620626f756e647360801b604082015260600190565b60008251611eed8184602087016117db565b68113730b6b2911d101160b91b920191825250600901919050565b60008154611f1581611ce4565b60018281168015611f2d5760018114611f4257611f71565b60ff1984168752821515830287019450611f71565b8560005260208060002060005b85811015611f685781548a820152908401908201611f4f565b50505082870194505b5050505092915050565b60008351611f8d8184602088016117db565b611f9981840185611f08565b95945050505050565b60008251611fb48184602087016117db565b72111610113232b9b1b934b83a34b7b7111d101160691b920191825250601301919050565b60008251611feb8184602087016117db565b6c1116101134b6b0b3b2911d101160991b920191825250600d01919050565b6000825161201c8184602087016117db565b731116101132bc3a32b93730b62fbab936111d101160611b920191825250601401919050565b600082516120548184602087016117db565b71222c202261747472696275746573223a205b60701b920191825250601201919050565b6000825161208a8184602087016117db565b6f3d913a3930b4ba2fba3cb832911d101160811b920191825250601001919050565b600082516120be8184602087016117db565b6c111610113b30b63ab2911d101160991b920191825250600d01919050565b60006118e88284611f08565b600082516120fb8184602087016117db565b61227d60f01b920191825250600201919050565b600082516121218184602087016117db565b600b60fa1b920191825250600101919050565b60006001820161214657612146611d41565b5060010190565b6000825161215f8184602087016117db565b615d7d60f01b920191825250600201919050565b600082516121858184602087016117db565b9190910192915050565b8082018082111561176757611767611d41565b808202811582820484141761176757611767611d41565b60006121c58285611f08565b928352505060200191905056fea2646970667358221220a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a64736f6c63430008110033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000004546573740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055465657374000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Test
Arg [1] : symbol_ (string): Teest
Arg [2] : totalSupply_ (uint256): 100

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 5465737400000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 5465657374000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

932:10279:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;994:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10592:142;;;;;;;;;;-1:-1:-1;10592:142:0;;;;;:::i;:::-;10678:7;10704:23;;;:13;:23;;;;;;-1:-1:-1;;;;;10704:23:0;;10592:142;;;;-1:-1:-1;;;;;1019:32:3;;;1001:51;;989:2;974:18;10592:142:0;855:203:3;9151:365:0;;;;;;:::i;:::-;;:::i;9522:360::-;;;;;;:::i;:::-;;:::i;1044:23::-;;;;;;;;;;;;;;;;;;;1646:25:3;;;1634:2;1619:18;1044:23:0;1500:177:3;7965:1180:0;;;;;;:::i;:::-;;:::i;768:91::-;;;;;;;;;;-1:-1:-1;768:91:0;;;;;:::i;:::-;;:::i;288:104::-;;;;;;;;;;-1:-1:-1;288:104:0;;;;;:::i;:::-;;:::i;1358:34::-;;;;;;;;;;-1:-1:-1;1358:34:0;;;;;:::i;:::-;;;;;;;;;;;;;;7688:272;;;;;;:::i;:::-;;:::i;6373:120::-;;;;;;;;;;-1:-1:-1;6373:120:0;;;;;:::i;:::-;;:::i;:::-;;;4101:14:3;;4094:22;4076:41;;4064:2;4049:18;6373:120:0;3936:187:3;3136:1575:0;;;;;;;;;;-1:-1:-1;3136:1575:0;;;;;:::i;:::-;;:::i;7227:108::-;;;;;;;;;;-1:-1:-1;7227:108:0;;;;;:::i;:::-;7283:7;7309:19;;;:9;:19;;;;;;-1:-1:-1;;;;;7309:19:0;;7227:108;1313:39;;;;;;;;;;-1:-1:-1;1313:39:0;;;;;:::i;:::-;;:::i;7112:109::-;;;;;;;;;;-1:-1:-1;7112:109:0;;;;;:::i;:::-;-1:-1:-1;;;;;7194:13:0;7168:7;7194:13;;;:5;:13;;;;;:20;;7112:109;9892:320;;;;;;:::i;:::-;;:::i;2260:870::-;;;;;;;;;;-1:-1:-1;2260:870:0;;;;;:::i;:::-;;:::i;6702:78::-;;;;;;;;;;-1:-1:-1;6702:78:0;;;;;:::i;:::-;;:::i;10740:255::-;;;;;;;;;;-1:-1:-1;10740:255:0;;;;;:::i;:::-;-1:-1:-1;;;;;10953:15:0;;;10930:4;10953:15;;;:7;:15;;;;;;;;:25;;;;;;;;;:35;;;;;;;;;;;;;10740:255;1018:20;;;;;;;;;;;;;:::i;1417:17::-;;;;;;;;;;;;;;;;4716:621;;;;;;:::i;:::-;;:::i;1150:41::-;;;;;;;;;;-1:-1:-1;1150:41:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1150:41:0;;;10223:364;;;;;;;;;;-1:-1:-1;10223:364:0;;;;;:::i;:::-;;:::i;5343:835::-;;;;;;;;;;-1:-1:-1;5343:835:0;;;;;:::i;:::-;;:::i;7340:343::-;;;;;;:::i;:::-;;:::i;186:97::-;;;;;;;;;;-1:-1:-1;186:97:0;;;;;:::i;:::-;-1:-1:-1;;;;;263:13:0;240:4;263:13;;;;;;;;;;;;;;186:97;6184:183;;;;;;;;;;-1:-1:-1;6184:183:0;;;;;:::i;:::-;;:::i;11005:203::-;;;;;;;;;;-1:-1:-1;11005:203:0;;;;;:::i;:::-;;:::i;1440:115::-;;;;;;;;;;-1:-1:-1;1440:115:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;994:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9151:365::-;9279:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;9279:19:0;9300:10;9279:31;9273:84;;9327:19;;-1:-1:-1;;;9327:19:0;;;;;;;:::i;:::-;;;;;;;;9273:84;9366:23;;;;:13;:23;;;;;;:35;;-1:-1:-1;;;;;;9366:35:0;-1:-1:-1;;;;;9366:35:0;;;;;;;;9468:41;;9366:23;;9477:10;;9468:41;;9366:23;9468:41;9151:365;;:::o;9522:360::-;9656:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;9656:19:0;9677:10;9656:31;9650:84;;9704:19;;-1:-1:-1;;;9704:19:0;;;;;;;:::i;9650:84::-;9780:10;9772:19;;;;:7;:19;;;;;;;;:29;;;;;;;;-1:-1:-1;;;;;9772:40:0;;;;;;;;;;:47;;-1:-1:-1;;9772:47:0;9815:4;9772:47;;;9834:41;9792:8;;9772:40;;9834:41;;;9522:360;;:::o;7965:1180::-;8205:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;8205:19:0;8227:10;8205:32;;:87;;-1:-1:-1;;;;;;8256:14:0;;;;;;:7;:14;;;;;;;;:24;;;;;;;;8281:10;8256:36;;;;;;;;;;8205:87;:134;;;-1:-1:-1;;;;;;8310:17:0;;;;;;:10;:17;;;;;;;;8328:10;8310:29;;;;;;;;;;8205:134;8199:205;;8356:37;;-1:-1:-1;;;8356:37:0;;9093:2:3;8356:37:0;;;9075:21:3;9132:2;9112:18;;;9105:30;9171:28;9151:18;;;9144:56;9217:18;;8356:37:0;8891:350:3;8199:205:0;-1:-1:-1;;;;;8447:14:0;;;;;;;:7;:14;;;;;;;;:24;;;;;;;;8472:10;8447:36;;;;;;;8440:43;;-1:-1:-1;;8440:43:0;;;8523:19;;;:9;:19;;;;;:25;;-1:-1:-1;;;;;;8523:25:0;;;;;;;;;8558:10;;;:5;:10;;;;;;:25;;-1:-1:-1;8558:25:0;;;;;;;;;;;;;;;8659:15;;;:5;:15;;;;;;8775:12;;;;;;;;:19;8659:15;;8447:14;;8775:23;;-1:-1:-1;8775:23:0;:::i;:::-;-1:-1:-1;;;;;8822:12:0;;8808:11;8822:12;;;:5;:12;;;;;:23;;8758:40;;-1:-1:-1;8808:11:0;;8758:40;;8822:23;;;;;;:::i;:::-;;;;;;;;;8808:37;;8913:8;8887:5;:12;8893:5;-1:-1:-1;;;;;8887:12:0;-1:-1:-1;;;;;8887:12:0;;;;;;;;;;;;8900:9;8887:23;;;;;;;;:::i;:::-;;;;;;;;:34;;;;8955:6;8931:5;:12;8937:5;-1:-1:-1;;;;;8931:12:0;-1:-1:-1;;;;;8931:12:0;;;;;;;;;;;;8944:7;8931:21;;;;;;;;:::i;:::-;;;;;;;;;;;;:30;;;;-1:-1:-1;;;;;9044:12:0;;;;:5;:12;;;;;;:23;;9057:9;;9044:23;;;;;;:::i;:::-;;;;;;;;9037:30;;;9129:8;9124:3;-1:-1:-1;;;;;9108:30:0;9117:5;-1:-1:-1;;;;;9108:30:0;;;;;;;;;;;8129:1016;;;7965:1180;;;:::o;768:91::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;835:5:::1;:17:::0;;-1:-1:-1;;;;;;835:17:0::1;-1:-1:-1::0;;;;;835:17:0;;;::::1;::::0;;;::::1;::::0;;768:91::o;288:104::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;364:13:0;;;::::1;:7;:13:::0;;;::::1;::::0;;;;;;:21;;-1:-1:-1;;364:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;288:104::o;7688:272::-;7919:34;7932:5;7939:3;7944:8;7919:12;:34::i;:::-;7688:272;;;:::o;6373:120::-;6428:12;6452:7;:13;6462:3;6452:7;:13;:::i;:::-;-1:-1:-1;6482:4:0;;6373:120;-1:-1:-1;;6373:120:0:o;3136:1575::-;3192:24;3266:11;;3261:2;:16;3253:45;;;;-1:-1:-1;;;3253:45:0;;;;;;;:::i;:::-;3350:1;3322:12;;;:8;:12;;;;;3316:31;;;;;:::i;:::-;;;:35;3308:59;;;;-1:-1:-1;;;3308:59:0;;12731:2:3;3308:59:0;;;12713:21:3;12770:2;12750:18;;;12743:30;-1:-1:-1;;;12789:18:3;;;12782:41;12840:18;;3308:59:0;12529:335:3;3308:59:0;3394:23;:29;;;;;;;;;;;;;-1:-1:-1;;;3394:29:0;;;;;3459:9;3445:37;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3445:37:0;;;;;;;;;3529:12;;;;:8;3445:37;3529:12;;;;;;3445:37;;-1:-1:-1;3504:43:0;;3445:37;;3504:43;;:::i;:::-;;;;;;;;;;;;;3492:55;;3583:9;3569:47;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3569:47:0;;;;;;;;;3663:12;;;;:8;3569:47;3663:12;;;;;;3569:47;;-1:-1:-1;3638:50:0;;3569:47;;3663:24;;;;;3638:50;;:::i;:::-;;;;;;;;;;;;;3626:62;;3724:9;3710:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3710:41:0;;;;;;;;;3798:12;;;;:8;3710:41;3798:12;;;;;;3710:41;;-1:-1:-1;3773:44:0;;3710:41;;3798:18;;;;;3773:44;;:::i;:::-;;;;;;;;;;;;;3761:56;;3853:9;3839:48;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3839:48:0;;;;;;;;;3934:12;;;;:8;3839:48;3934:12;;;;;;3839:48;;-1:-1:-1;3909:51:0;;3839:48;;3934:25;;;;;3909:51;;:::i;:::-;;;;;;;;;;;;;3897:63;;3996:9;3982:46;;;;;;;;:::i;:::-;;;;;;;;;;;;;3970:58;;4043:6;4038:589;4059:12;;;;:8;:12;;;;;:27;;:34;4055:38;;4038:589;;;4140:9;4126:44;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4126:44:0;;;;;;;;;4221:12;;;;:8;4126:44;4221:12;;:27;;:30;;4126:44;;-1:-1:-1;4126:44:0;;4249:1;;4221:30;;;;;;:::i;:::-;;;;;;;;4196:56;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4184:68;;4292:9;4278:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4278:41:0;;;;;;;;;4370:12;;;;:8;4278:41;4370:12;;4393:27;;;:30;;4278:41;;-1:-1:-1;4278:41:0;;4370:22;;;;;4421:1;;4393:30;;;;;;:::i;:::-;;;;;;;;4370:54;;;;;;:::i;:::-;;;;;;;;;;;;;4345:80;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4333:92;;4465:9;4451:30;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4451:30:0;;;;;;;;;4503:12;;;;:8;4451:30;4503:12;;:27;;:34;4451:30;;-1:-1:-1;4503:38:0;;4540:1;;4503:38;:::i;:::-;4499:1;:42;4495:122;;;4587:9;4573:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;4561:41;;4495:122;4095:3;;;;:::i;:::-;;;;4038:589;;;;4662:9;4648:30;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4648:30:0;;;;;;;;;;3136:1575;-1:-1:-1;;;3136:1575:0:o;1313:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9892:320::-;10038:19;;;;:9;:19;;;;;;-1:-1:-1;;;;;10038:19:0;10059:10;10038:31;10032:84;;10086:19;;-1:-1:-1;;;10086:19:0;;;;;;;:::i;10032:84::-;10162:10;10200:5;10154:19;;;:7;:19;;;;;;;;:29;;;;;;;;;-1:-1:-1;;;;;10154:43:0;;;;;;;;;;;;:51;;-1:-1:-1;;10154:51:0;;;9892:320::o;2260:870::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;2665:11:::1;;2660:2;:16;2652:45;;;;-1:-1:-1::0;;;2652:45:0::1;;;;;;;:::i;:::-;2733:7;:14;2715:7;:14;:32;2707:67;;;::::0;-1:-1:-1;;;2707:67:0;;19276:2:3;2707:67:0::1;::::0;::::1;19258:21:3::0;19315:2;19295:18;;;19288:30;-1:-1:-1;;;19334:18:3;;;19327:52;19396:18;;2707:67:0::1;19074:346:3::0;2707:67:0::1;2784:12;::::0;;;:8:::1;:12;::::0;;;;:25:::1;2804:5:::0;2784:12;:25:::1;:::i;:::-;-1:-1:-1::0;2819:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:24:::1;;:39;2846:12:::0;2819:24;:39:::1;:::i;:::-;-1:-1:-1::0;2868:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:18:::1;;:27;2889:6:::0;2868:18;:27:::1;:::i;:::-;-1:-1:-1::0;2905:12:0::1;::::0;;;:8:::1;:12;::::0;;;;:25:::1;;:41;2933:13:::0;2905:25;:41:::1;:::i;:::-;;2961:6;2956:168;2973:7;:14;2971:1;:16;2956:168;;;3045:7;3053:1;3045:10;;;;;;;;:::i;:::-;;;;;;;3008:8;:12;3017:2;3008:12;;;;;;;;;;;:22;;3031:7;3039:1;3031:10;;;;;;;;:::i;:::-;;;;;;;3008:34;;;;;;:::i;:::-;;;;;;;;;;;;;:47;;;;;;:::i;:::-;;3069:8;:12;3078:2;3069:12;;;;;;;;;;;:27;;3102:7;3110:1;3102:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;3069:44;;::::1;::::0;::::1;::::0;;-1:-1:-1;3069:44:0;;;;;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;2989:3:0;::::1;::::0;::::1;:::i;:::-;;;;2956:168;;;;2260:870:::0;;;;;;;:::o;6702:78::-;444:10;436:7;:19;;;;;;;;;;;;;;:40;;-1:-1:-1;471:5:0;;-1:-1:-1;;;;;471:5:0;459:10;:17;436:40;427:63;;;;-1:-1:-1;;;427:63:0;;;;;;;:::i;:::-;6759:5:::1;:14:::0;6702:78::o;1018:20::-;;;;;;;:::i;4716:621::-;677:6;;4812:12;;-1:-1:-1;;;677:6:0;;;;676:7;668:29;;;;-1:-1:-1;;;668:29:0;;19921:2:3;668:29:0;;;19903:21:3;19960:1;19940:18;;;19933:29;-1:-1:-1;;;19978:18:3;;;19971:39;20027:18;;668:29:0;19719:332:3;668:29:0;716:4;707:13;;-1:-1:-1;;;;707:13:0;-1:-1:-1;;;707:13:0;;;4865:12;4857:45:::1;;;::::0;-1:-1:-1;;;4857:45:0;;20258:2:3;4857:45:0::1;::::0;::::1;20240:21:3::0;20297:2;20277:18;;;20270:30;-1:-1:-1;;;20316:18:3;;;20309:50;20376:18;;4857:45:0::1;20056:344:3::0;4857:45:0::1;4944:11;;4931:8;4921:7;;:18;;;;:::i;:::-;4920:35;;4912:79;;;::::0;-1:-1:-1;;;4912:79:0;;20737:2:3;4912:79:0::1;::::0;::::1;20719:21:3::0;20776:2;20756:18;;;20749:30;20815:33;20795:18;;;20788:61;20866:18;;4912:79:0::1;20535:355:3::0;4912:79:0::1;5030:8;5022:5;;:16;;;;:::i;:::-;5009:9;:29;;5001:60;;;::::0;-1:-1:-1;;;5001:60:0;;21270:2:3;5001:60:0::1;::::0;::::1;21252:21:3::0;21309:2;21289:18;;;21282:30;-1:-1:-1;;;21328:18:3;;;21321:48;21386:18;;5001:60:0::1;21068:342:3::0;5001:60:0::1;5074:8;5086:1;5074:13:::0;5071:260:::1;;5103:34;5117:7;;5126:10;5103:13;:34::i;:::-;-1:-1:-1::0;5158:4:0::1;5151:11;;5071:260;5198:6;5193:103;5214:8;5210:1;:12;5193:103;;;5247:34;5261:7;;5270:10;5247:13;:34::i;:::-;5224:3:::0;::::1;::::0;::::1;:::i;:::-;;;;5193:103;;;;5316:4;5309:11;;5071:260;741:6:::0;:14;;-1:-1:-1;;;;741:14:0;;;4716:621;;-1:-1:-1;4716:621:0:o;10223:364::-;10370:9;10366:152;;;10406:10;10395:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10395:33:0;;;;;;;;;:40;;-1:-1:-1;;10395:40:0;10431:4;10395:40;;;10366:152;;;10477:10;10502:5;10466:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10466:33:0;;;;;;;;;:41;;-1:-1:-1;;10466:41:0;;;10366:152;10532:48;;4101:14:3;;4094:22;4076:41;;-1:-1:-1;;;;;10532:48:0;;;10547:10;;10532:48;;4064:2:3;4049:18;10532:48:0;;;;;;;10223:364;;:::o;5343:835::-;677:6;;5403:4;;-1:-1:-1;;;677:6:0;;;;676:7;668:29;;;;-1:-1:-1;;;668:29:0;;19921:2:3;668:29:0;;;19903:21:3;19960:1;19940:18;;;19933:29;-1:-1:-1;;;19978:18:3;;;19971:39;20027:18;;668:29:0;19719:332:3;668:29:0;716:4;707:13;;-1:-1:-1;;;;707:13:0;-1:-1:-1;;;707:13:0;;;;5425;;;:9:::1;:13;::::0;;;;;-1:-1:-1;;;;;5425:13:0::1;5441:10;5425:26;5419:80;;5468:20;::::0;-1:-1:-1;;;5468:20:0;;21617:2:3;5468:20:0::1;::::0;::::1;21599:21:3::0;21656:1;21636:18;;;21629:29;-1:-1:-1;;;21674:18:3;;;21667:39;21723:18;;5468:20:0::1;21415:332:3::0;5419:80:0::1;5538:13;::::0;;;:9:::1;:13;::::0;;;;;;;:18;;-1:-1:-1;;;;;;5538:18:0::1;-1:-1:-1::0;;;;;5538:18:0;::::1;::::0;;::::1;::::0;;;5566:9;;:5:::1;:9:::0;;;;;;:18;;-1:-1:-1;5566:18:0;;::::1;::::0;;;;;;;;::::1;::::0;;;5660:9;;;:5:::1;:9:::0;;;;;;5776:10:::1;5770:17:::0;;;;;;;;;:24;5660:9;;5538:13;5770:28:::1;::::0;::::1;:::i;:::-;5828:10;5808:11;5822:17:::0;;;:5:::1;:17;::::0;;;;:28;;5753:45;;-1:-1:-1;5808:11:0;;5753:45;;5822:28;::::1;;;;;:::i;:::-;;;;;;;;;5808:42;;5923:2;5892:5;:17;5898:10;-1:-1:-1::0;;;;;5892:17:0::1;-1:-1:-1::0;;;;;5892:17:0::1;;;;;;;;;;;;5910:9;5892:28;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;:33:::0;;;;5941:10:::1;5935:17:::0;;:5:::1;:17:::0;;;;;;:26;;5964:6;;5935:17;5953:7;;5935:26;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;:35:::0;;;;6059:10:::1;6053:17:::0;;:5:::1;:17:::0;;;;;;:28;;6071:9;;6053:28;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;6046:35:::0;;;6122:28:::1;::::0;6147:2;;-1:-1:-1;;;;;6122:28:0;::::1;::::0;6131:10:::1;::::0;6122:28:::1;::::0;::::1;-1:-1:-1::0;;6167:4:0::1;741:14:::0;;-1:-1:-1;;;;741:14:0;;;6167:4;5343:835;-1:-1:-1;;;;5343:835:0:o;7340:343::-;-1:-1:-1;7621:11:0;7642:34;7655:5;7662:3;7667:8;7642:12;:34::i;:::-;7340:343;;;;:::o;6184:183::-;6232:17;6274:11;;6269:2;:16;6261:45;;;;-1:-1:-1;;;6261:45:0;;;;;;;:::i;:::-;6347:7;6356:2;6330:29;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6316:44;;6184:183;;;:::o;11005:203::-;-1:-1:-1;;;;;11172:18:0;;;11149:4;11172:18;;;:10;:18;;;;;;;;:29;;;;;;;;;;;;11005:203;;;;;:::o;6516:166::-;6581:13;;;;:9;:13;;;;;;;;:20;;-1:-1:-1;;;;;;6581:20:0;-1:-1:-1;;;;;6581:20:0;;;;;;;;6611:11;;;:5;:11;;;;;:20;;-1:-1:-1;6611:20:0;;;;;;;;;;;;;;;6653:11;;:18;;:22;;-1:-1:-1;6653:22:0;:::i;:::-;6641:9;;;;:5;:9;;;;;;:34;;;;-1:-1:-1;6516:166:0:o;14:250:3:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:3;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:3;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:3:o;670:180::-;729:6;782:2;770:9;761:7;757:23;753:32;750:52;;;798:1;795;788:12;750:52;-1:-1:-1;821:23:3;;670:180;-1:-1:-1;670:180:3:o;1063:173::-;1131:20;;-1:-1:-1;;;;;1180:31:3;;1170:42;;1160:70;;1226:1;1223;1216:12;1160:70;1063:173;;;:::o;1241:254::-;1309:6;1317;1370:2;1358:9;1349:7;1345:23;1341:32;1338:52;;;1386:1;1383;1376:12;1338:52;1409:29;1428:9;1409:29;:::i;:::-;1399:39;1485:2;1470:18;;;;1457:32;;-1:-1:-1;;;1241:254:3:o;1682:328::-;1759:6;1767;1775;1828:2;1816:9;1807:7;1803:23;1799:32;1796:52;;;1844:1;1841;1834:12;1796:52;1867:29;1886:9;1867:29;:::i;:::-;1857:39;;1915:38;1949:2;1938:9;1934:18;1915:38;:::i;:::-;1905:48;;2000:2;1989:9;1985:18;1972:32;1962:42;;1682:328;;;;;:::o;2015:186::-;2074:6;2127:2;2115:9;2106:7;2102:23;2098:32;2095:52;;;2143:1;2140;2133:12;2095:52;2166:29;2185:9;2166:29;:::i;:::-;2156:39;2015:186;-1:-1:-1;;;2015:186:3:o;2206:347::-;2271:6;2279;2332:2;2320:9;2311:7;2307:23;2303:32;2300:52;;;2348:1;2345;2338:12;2300:52;2371:29;2390:9;2371:29;:::i;:::-;2361:39;;2450:2;2439:9;2435:18;2422:32;2497:5;2490:13;2483:21;2476:5;2473:32;2463:60;;2519:1;2516;2509:12;2463:60;2542:5;2532:15;;;2206:347;;;;;:::o;2558:127::-;2619:10;2614:3;2610:20;2607:1;2600:31;2650:4;2647:1;2640:15;2674:4;2671:1;2664:15;2690:275;2761:2;2755:9;2826:2;2807:13;;-1:-1:-1;;2803:27:3;2791:40;;2861:18;2846:34;;2882:22;;;2843:62;2840:88;;;2908:18;;:::i;:::-;2944:2;2937:22;2690:275;;-1:-1:-1;2690:275:3:o;2970:407::-;3035:5;3069:18;3061:6;3058:30;3055:56;;;3091:18;;:::i;:::-;3129:57;3174:2;3153:15;;-1:-1:-1;;3149:29:3;3180:4;3145:40;3129:57;:::i;:::-;3120:66;;3209:6;3202:5;3195:21;3249:3;3240:6;3235:3;3231:16;3228:25;3225:45;;;3266:1;3263;3256:12;3225:45;3315:6;3310:3;3303:4;3296:5;3292:16;3279:43;3369:1;3362:4;3353:6;3346:5;3342:18;3338:29;3331:40;2970:407;;;;;:::o;3382:222::-;3425:5;3478:3;3471:4;3463:6;3459:17;3455:27;3445:55;;3496:1;3493;3486:12;3445:55;3518:80;3594:3;3585:6;3572:20;3565:4;3557:6;3553:17;3518:80;:::i;3609:322::-;3678:6;3731:2;3719:9;3710:7;3706:23;3702:32;3699:52;;;3747:1;3744;3737:12;3699:52;3787:9;3774:23;3820:18;3812:6;3809:30;3806:50;;;3852:1;3849;3842:12;3806:50;3875;3917:7;3908:6;3897:9;3893:22;3875:50;:::i;:::-;3865:60;3609:322;-1:-1:-1;;;;3609:322:3:o;4128:943::-;4181:5;4234:3;4227:4;4219:6;4215:17;4211:27;4201:55;;4252:1;4249;4242:12;4201:55;4288:6;4275:20;4314:4;4337:18;4374:2;4370;4367:10;4364:36;;;4380:18;;:::i;:::-;4426:2;4423:1;4419:10;4449:28;4473:2;4469;4465:11;4449:28;:::i;:::-;4511:15;;;4581;;;4577:24;;;4542:12;;;;4613:15;;;4610:35;;;4641:1;4638;4631:12;4610:35;4677:2;4669:6;4665:15;4654:26;;4689:353;4705:6;4700:3;4697:15;4689:353;;;4791:3;4778:17;4827:2;4814:11;4811:19;4808:109;;;4871:1;4900:2;4896;4889:14;4808:109;4942:57;4995:3;4990:2;4976:11;4968:6;4964:24;4960:33;4942:57;:::i;:::-;4930:70;;-1:-1:-1;4722:12:3;;;;5020;;;;4689:353;;;5060:5;4128:943;-1:-1:-1;;;;;;;;4128:943:3:o;5076:1485::-;5299:6;5307;5315;5323;5331;5339;5347;5400:3;5388:9;5379:7;5375:23;5371:33;5368:53;;;5417:1;5414;5407:12;5368:53;5453:9;5440:23;5430:33;;5514:2;5503:9;5499:18;5486:32;5537:18;5578:2;5570:6;5567:14;5564:34;;;5594:1;5591;5584:12;5564:34;5617:50;5659:7;5650:6;5639:9;5635:22;5617:50;:::i;:::-;5607:60;;5720:2;5709:9;5705:18;5692:32;5676:48;;5749:2;5739:8;5736:16;5733:36;;;5765:1;5762;5755:12;5733:36;5788:52;5832:7;5821:8;5810:9;5806:24;5788:52;:::i;:::-;5778:62;;5893:2;5882:9;5878:18;5865:32;5849:48;;5922:2;5912:8;5909:16;5906:36;;;5938:1;5935;5928:12;5906:36;5961:52;6005:7;5994:8;5983:9;5979:24;5961:52;:::i;:::-;5951:62;;6066:3;6055:9;6051:19;6038:33;6022:49;;6096:2;6086:8;6083:16;6080:36;;;6112:1;6109;6102:12;6080:36;6135:52;6179:7;6168:8;6157:9;6153:24;6135:52;:::i;:::-;6125:62;;6240:3;6229:9;6225:19;6212:33;6196:49;;6270:2;6260:8;6257:16;6254:36;;;6286:1;6283;6276:12;6254:36;6309:62;6363:7;6352:8;6341:9;6337:24;6309:62;:::i;:::-;6299:72;;6424:3;6413:9;6409:19;6396:33;6380:49;;6454:2;6444:8;6441:16;6438:36;;;6470:1;6467;6460:12;6438:36;;6493:62;6547:7;6536:8;6525:9;6521:24;6493:62;:::i;:::-;6483:72;;;5076:1485;;;;;;;;;;:::o;6566:328::-;6643:6;6651;6659;6712:2;6700:9;6691:7;6687:23;6683:32;6680:52;;;6728:1;6725;6718:12;6680:52;6764:9;6751:23;6741:33;;6793:38;6827:2;6816:9;6812:18;6793:38;:::i;:::-;6783:48;;6850:38;6884:2;6873:9;6869:18;6850:38;:::i;:::-;6840:48;;6566:328;;;;;:::o;6899:667::-;6994:6;7002;7010;7018;7071:3;7059:9;7050:7;7046:23;7042:33;7039:53;;;7088:1;7085;7078:12;7039:53;7111:29;7130:9;7111:29;:::i;:::-;7101:39;;7159:38;7193:2;7182:9;7178:18;7159:38;:::i;:::-;7149:48;;7244:2;7233:9;7229:18;7216:32;7206:42;;7299:2;7288:9;7284:18;7271:32;7326:18;7318:6;7315:30;7312:50;;;7358:1;7355;7348:12;7312:50;7381:22;;7434:4;7426:13;;7422:27;-1:-1:-1;7412:55:3;;7463:1;7460;7453:12;7412:55;7486:74;7552:7;7547:2;7534:16;7529:2;7525;7521:11;7486:74;:::i;:::-;7476:84;;;6899:667;;;;;;;:::o;7571:260::-;7639:6;7647;7700:2;7688:9;7679:7;7675:23;7671:32;7668:52;;;7716:1;7713;7706:12;7668:52;7739:29;7758:9;7739:29;:::i;:::-;7729:39;;7787:38;7821:2;7810:9;7806:18;7787:38;:::i;:::-;7777:48;;7571:260;;;;;:::o;7836:328::-;7913:6;7921;7929;7982:2;7970:9;7961:7;7957:23;7953:32;7950:52;;;7998:1;7995;7988:12;7950:52;8021:29;8040:9;8021:29;:::i;:::-;8011:39;;8097:2;8086:9;8082:18;8069:32;8059:42;;8120:38;8154:2;8143:9;8139:18;8120:38;:::i;8169:380::-;8248:1;8244:12;;;;8291;;;8312:61;;8366:4;8358:6;8354:17;8344:27;;8312:61;8419:2;8411:6;8408:14;8388:18;8385:38;8382:161;;8465:10;8460:3;8456:20;8453:1;8446:31;8500:4;8497:1;8490:15;8528:4;8525:1;8518:15;8382:161;;8169:380;;;:::o;8554:332::-;8756:2;8738:21;;;8795:1;8775:18;;;8768:29;-1:-1:-1;;;8828:2:3;8813:18;;8806:39;8877:2;8862:18;;8554:332::o;9246:127::-;9307:10;9302:3;9298:20;9295:1;9288:31;9338:4;9335:1;9328:15;9362:4;9359:1;9352:15;9378:128;9445:9;;;9466:11;;;9463:37;;;9480:18;;:::i;9511:127::-;9572:10;9567:3;9563:20;9560:1;9553:31;9603:4;9600:1;9593:15;9627:4;9624:1;9617:15;9643:332;9845:2;9827:21;;;9884:1;9864:18;;;9857:29;-1:-1:-1;;;9917:2:3;9902:18;;9895:39;9966:2;9951:18;;9643:332::o;10106:545::-;10208:2;10203:3;10200:11;10197:448;;;10244:1;10269:5;10265:2;10258:17;10314:4;10310:2;10300:19;10384:2;10372:10;10368:19;10365:1;10361:27;10355:4;10351:38;10420:4;10408:10;10405:20;10402:47;;;-1:-1:-1;10443:4:3;10402:47;10498:2;10493:3;10489:12;10486:1;10482:20;10476:4;10472:31;10462:41;;10553:82;10571:2;10564:5;10561:13;10553:82;;;10616:17;;;10597:1;10586:13;10553:82;;;10557:3;;;10106:545;;;:::o;10827:1352::-;10953:3;10947:10;10980:18;10972:6;10969:30;10966:56;;;11002:18;;:::i;:::-;11031:97;11121:6;11081:38;11113:4;11107:11;11081:38;:::i;:::-;11075:4;11031:97;:::i;:::-;11183:4;;11247:2;11236:14;;11264:1;11259:663;;;;11966:1;11983:6;11980:89;;;-1:-1:-1;12035:19:3;;;12029:26;11980:89;-1:-1:-1;;10784:1:3;10780:11;;;10776:24;10772:29;10762:40;10808:1;10804:11;;;10759:57;12082:81;;11229:944;;11259:663;10053:1;10046:14;;;10090:4;10077:18;;-1:-1:-1;;11295:20:3;;;11413:236;11427:7;11424:1;11421:14;11413:236;;;11516:19;;;11510:26;11495:42;;11608:27;;;;11576:1;11564:14;;;;11443:19;;11413:236;;;11417:3;11677:6;11668:7;11665:19;11662:201;;;11738:19;;;11732:26;-1:-1:-1;;11821:1:3;11817:14;;;11833:3;11813:24;11809:37;11805:42;11790:58;11775:74;;11662:201;-1:-1:-1;;;;;11909:1:3;11893:14;;;11889:22;11876:36;;-1:-1:-1;10827:1352:3:o;12184:340::-;12386:2;12368:21;;;12425:2;12405:18;;;12398:30;-1:-1:-1;;;12459:2:3;12444:18;;12437:46;12515:2;12500:18;;12184:340::o;12869:468::-;13090:3;13128:6;13122:13;13144:66;13203:6;13198:3;13191:4;13183:6;13179:17;13144:66;:::i;:::-;-1:-1:-1;;;13232:16:3;;13257:45;;;-1:-1:-1;13329:1:3;13318:13;;12869:468;-1:-1:-1;12869:468:3:o;13342:722::-;13392:3;13433:5;13427:12;13462:36;13488:9;13462:36;:::i;:::-;13517:1;13534:18;;;13561:133;;;;13708:1;13703:355;;;;13527:531;;13561:133;-1:-1:-1;;13594:24:3;;13582:37;;13667:14;;13660:22;13648:35;;13639:45;;;-1:-1:-1;13561:133:3;;13703:355;13734:5;13731:1;13724:16;13763:4;13808:2;13805:1;13795:16;13833:1;13847:165;13861:6;13858:1;13855:13;13847:165;;;13939:14;;13926:11;;;13919:35;13982:16;;;;13876:10;;13847:165;;;13851:3;;;14041:6;14036:3;14032:16;14025:23;;13527:531;;;;;13342:722;;;;:::o;14069:369::-;14245:3;14283:6;14277:13;14299:66;14358:6;14353:3;14346:4;14338:6;14334:17;14299:66;:::i;:::-;14381:51;14424:6;14419:3;14415:16;14407:6;14381:51;:::i;:::-;14374:58;14069:369;-1:-1:-1;;;;;14069:369:3:o;14443:490::-;14665:3;14703:6;14697:13;14719:66;14778:6;14773:3;14766:4;14758:6;14754:17;14719:66;:::i;:::-;-1:-1:-1;;;14807:16:3;;14832:65;;;-1:-1:-1;14924:2:3;14913:14;;14443:490;-1:-1:-1;14443:490:3:o;14938:478::-;15160:3;15198:6;15192:13;15214:66;15273:6;15268:3;15261:4;15253:6;15249:17;15214:66;:::i;:::-;-1:-1:-1;;;15302:16:3;;15327:53;;;-1:-1:-1;15407:2:3;15396:14;;14938:478;-1:-1:-1;14938:478:3:o;15421:491::-;15643:3;15681:6;15675:13;15697:66;15756:6;15751:3;15744:4;15736:6;15732:17;15697:66;:::i;:::-;-1:-1:-1;;;15785:16:3;;15810:66;;;-1:-1:-1;15903:2:3;15892:14;;15421:491;-1:-1:-1;15421:491:3:o;15917:488::-;16139:3;16177:6;16171:13;16193:66;16252:6;16247:3;16240:4;16232:6;16228:17;16193:66;:::i;:::-;-1:-1:-1;;;16281:16:3;;16306:63;;;-1:-1:-1;16396:2:3;16385:14;;15917:488;-1:-1:-1;15917:488:3:o;16410:484::-;16632:3;16670:6;16664:13;16686:66;16745:6;16740:3;16733:4;16725:6;16721:17;16686:66;:::i;:::-;-1:-1:-1;;;16774:16:3;;16799:59;;;-1:-1:-1;16885:2:3;16874:14;;16410:484;-1:-1:-1;16410:484:3:o;16899:478::-;17121:3;17159:6;17153:13;17175:66;17234:6;17229:3;17222:4;17214:6;17210:17;17175:66;:::i;:::-;-1:-1:-1;;;17263:16:3;;17288:53;;;-1:-1:-1;17368:2:3;17357:14;;16899:478;-1:-1:-1;16899:478:3:o;17382:197::-;17510:3;17535:38;17569:3;17561:6;17535:38;:::i;17584:452::-;17805:3;17843:6;17837:13;17859:66;17918:6;17913:3;17906:4;17898:6;17894:17;17859:66;:::i;:::-;-1:-1:-1;;;17947:16:3;;17972:29;;;-1:-1:-1;18028:1:3;18017:13;;17584:452;-1:-1:-1;17584:452:3:o;18041:441::-;18262:3;18300:6;18294:13;18316:66;18375:6;18370:3;18363:4;18355:6;18351:17;18316:66;:::i;:::-;-1:-1:-1;;;18404:16:3;;18429:18;;;-1:-1:-1;18474:1:3;18463:13;;18041:441;-1:-1:-1;18041:441:3:o;18487:135::-;18526:3;18547:17;;;18544:43;;18567:18;;:::i;:::-;-1:-1:-1;18614:1:3;18603:13;;18487:135::o;18627:442::-;18848:3;18886:6;18880:13;18902:66;18961:6;18956:3;18949:4;18941:6;18937:17;18902:66;:::i;:::-;-1:-1:-1;;;18990:16:3;;19015:19;;;-1:-1:-1;19061:1:3;19050:13;;18627:442;-1:-1:-1;18627:442:3:o;19425:289::-;19556:3;19594:6;19588:13;19610:66;19669:6;19664:3;19657:4;19649:6;19645:17;19610:66;:::i;:::-;19692:16;;;;;19425:289;-1:-1:-1;;19425:289:3:o;20405:125::-;20470:9;;;20491:10;;;20488:36;;;20504:18;;:::i;20895:168::-;20968:9;;;20999;;21016:15;;;21010:22;;20996:37;20986:71;;21037:18;;:::i;21752:291::-;21908:3;21939:38;21973:3;21965:6;21939:38;:::i;:::-;21986:21;;;-1:-1:-1;;22034:2:3;22023:14;;21752:291;-1:-1:-1;21752:291:3:o

Swarm Source

ipfs://a4969d46b10a156bc02fba1095ce223bdd33e51eeadd0e28f20b87280e32f57a

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.