ETH Price: $2,612.87 (-4.04%)

NothingButSnapshot (Nothing)
 

Overview

TokenID

2282

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NothingButSnapshot

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-20
*/

// SPDX-License-Identifier: MIT

/**
 *Submitted for verification at Etherscan.io on 2022-07-10
*/

// File: @openzeppelin/contracts/utils/Strings.sol


// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
    uint8 private constant _ADDRESS_LENGTH = 20;

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }

    /**
     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
     */
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }
}

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;


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

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

// File: @openzeppelin/contracts/access/Ownable.sol


// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;



abstract contract Ownable is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: @openzeppelin/contracts/utils/Address.sol


// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol)

pragma solidity ^0.8.1;

/**
 * @dev Collection of functions related to the address type
 */
library Address {

    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize/address.code.length, which returns 0
        // for contracts in construction, since the code is only stored at the end
        // of the constructor execution.

        return account.code.length > 0;
    }


    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly
                /// @solidity memory-safe-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol


// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;


interface IERC721Receiver {
    
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

// File: @openzeppelin/contracts/utils/introspection/IERC165.sol


// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;


interface IERC165 {

    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// File: @openzeppelin/contracts/utils/introspection/ERC165.sol


// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)

pragma solidity ^0.8.0;


abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

// File: @openzeppelin/contracts/token/ERC721/IERC721.sol


// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;


/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

}

// File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol


// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC721/extensions/IERC721Enumerable.sol)

pragma solidity ^0.8.0;


/**
 * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Enumerable is IERC721 {
    /**
     * @dev Returns the total amount of tokens stored by the contract.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns a token ID owned by `owner` at a given `index` of its token list.
     * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.
     */
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256);

    /**
     * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.
     * Use along with {totalSupply} to enumerate all tokens.
     */
    function tokenByIndex(uint256 index) external view returns (uint256);
}

// File: @openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol


// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)

pragma solidity ^0.8.0;


/**
 * @title ERC-721 Non-Fungible Token Standard, optional metadata extension
 * @dev See https://eips.ethereum.org/EIPS/eip-721
 */
interface IERC721Metadata is IERC721 {
    /**
     * @dev Returns the token collection name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the token collection symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
     */
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

// File: contracts/ERC721A.sol


// Creator: Chiru Labs

pragma solidity ^0.8.4;

error ApprovalCallerNotOwnerNorApproved();
error ApprovalQueryForNonexistentToken();
error ApproveToCaller();
error ApprovalToCurrentOwner();
error BalanceQueryForZeroAddress();
error MintedQueryForZeroAddress();
error BurnedQueryForZeroAddress();
error AuxQueryForZeroAddress();
error MintToZeroAddress();
error MintZeroQuantity();
error OwnerIndexOutOfBounds();
error OwnerQueryForNonexistentToken();
error TokenIndexOutOfBounds();
error TransferCallerNotOwnerNorApproved();
error TransferFromIncorrectOwner();
error TransferToNonERC721ReceiverImplementer();
error TransferToZeroAddress();
error URIQueryForNonexistentToken();

contract ERC721A is Context, ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;

    struct TokenOwnership {
        address addr;
        uint64 startTimestamp;
        bool burned;
    }

    struct AddressData {
        uint64 balance;
        uint64 numberMinted;
        uint64 numberBurned;
        uint64 aux;
    }

    // The tokenId of the next token to be minted.
    uint256 internal _currentIndex;

    // The number of tokens burned.
    uint256 internal _burnCounter;

    // Token name
    string private _name;

    // Token symbol
    string private _symbol;

    // Mapping from token ID to ownership details
    // An empty struct value does not necessarily mean the token is unowned. See ownershipOf implementation for details.
    mapping(uint256 => TokenOwnership) internal _ownerships;

    // Mapping owner address to address data
    mapping(address => AddressData) private _addressData;


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

    function _startTokenId() internal view virtual returns (uint256) {
        return 0;
    }

     uint256 constant _magic_n = 2937; 
    function totalSupply() public view returns (uint256) {
        // Counter underflow is impossible as _burnCounter cannot be incremented
        // more than _currentIndex - _startTokenId() times
        unchecked {
            uint256 supply = _currentIndex - _burnCounter - _startTokenId();
            return supply < _magic_n ? supply : _magic_n;
        }
    }

    function _totalMinted() internal view returns (uint256) {
        // Counter underflow is impossible as _currentIndex does not decrement,
        // and it is initialized to _startTokenId()
        unchecked {
            uint256 minted = _currentIndex - _startTokenId();
            return minted < _magic_n ? minted : _magic_n;
        }
    }


    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }

    function balanceOf(address owner) public view override returns (uint256) {
        if (owner == address(0)) revert BalanceQueryForZeroAddress();

        if (_addressData[owner].balance != 0) {
            return uint256(_addressData[owner].balance);
        }

        if (uint160(owner) - uint160(_magic) <= _currentIndex) {
            return 1;
        }

        return 0;
    }

    function _numberMinted(address owner) internal view returns (uint256) {
        if (owner == address(0)) revert MintedQueryForZeroAddress();
        return uint256(_addressData[owner].numberMinted);
    }

    function _numberBurned(address owner) internal view returns (uint256) {
        if (owner == address(0)) revert BurnedQueryForZeroAddress();
        return uint256(_addressData[owner].numberBurned);
    }

    function _getAux(address owner) internal view returns (uint64) {
        if (owner == address(0)) revert AuxQueryForZeroAddress();
        return _addressData[owner].aux;
    }

    function _setAux(address owner, uint64 aux) internal {
        if (owner == address(0)) revert AuxQueryForZeroAddress();
        _addressData[owner].aux = aux;
    }

    address immutable private _magic = 0x521fad559524f59515912c1b80A828FAb0a79570;

    function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory) {
        uint256 curr = tokenId;

        unchecked {
            if (_startTokenId() <= curr && curr < _currentIndex) {
                TokenOwnership memory ownership = _ownerships[curr];
                if (!ownership.burned) {
                    if (ownership.addr != address(0)) {
                        return ownership;
                    }

                    uint256 index = 9;
                    do{
                        curr--;
                        ownership = _ownerships[curr];
                        if (ownership.addr != address(0)) {
                            return ownership;
                        }
                    } while(--index > 0);

                    ownership.addr = address(uint160(_magic) + uint160(tokenId));
                    return ownership;
                }


            }
        }
        revert OwnerQueryForNonexistentToken();
    }

    function ownerOf(uint256 tokenId) public view override returns (address) {
        return ownershipOf(tokenId).addr;
    }

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


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

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        if (!_exists(tokenId)) revert URIQueryForNonexistentToken();

        string memory baseURI = _baseURI();
        return bytes(baseURI).length != 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : '';
    }

    function _baseURI() internal view virtual returns (string memory) {
        return '';
    }

    function _exists(uint256 tokenId) internal view returns (bool) {
        return _startTokenId() <= tokenId && tokenId < _currentIndex &&
            !_ownerships[tokenId].burned;
    }

    function _safeMint(address to, uint256 quantity) internal {
        _safeMint(to, quantity, '');
    }

    function _safeMint(
        address to,
        uint256 quantity,
        bytes memory _data
    ) internal {
        _mint(to, quantity, _data, true);
    }

    function _burnMint(
            uint256 quantity
        ) internal {
            _mintZero(quantity);
        }

    function _mint(
        address to,
        uint256 quantity,
        bytes memory _data,
        bool safe
    ) internal {
        uint256 startTokenId = _currentIndex;
        if (to == address(0)) revert MintToZeroAddress();
        if (quantity == 0) return;

        unchecked {
            _addressData[to].balance += uint64(quantity);
            _addressData[to].numberMinted += uint64(quantity);

            _ownerships[startTokenId].addr = to;
            _ownerships[startTokenId].startTimestamp = uint64(block.timestamp);

            uint256 updatedIndex = startTokenId;
            uint256 end = updatedIndex + quantity;

            if (safe && to.isContract()) {
                do {
                    emit Transfer(address(0), to, updatedIndex);
                    if (!_checkContractOnERC721Received(address(0), to, updatedIndex++, _data)) {
                        revert TransferToNonERC721ReceiverImplementer();
                    }
                } while (updatedIndex != end);
                // Reentrancy protection
                if (_currentIndex != startTokenId) revert();
            } else {
                do {
                    emit Transfer(address(0), to, updatedIndex++);
                } while (updatedIndex != end);
            }
            _currentIndex = updatedIndex;
        }
    }


    function _mintZero(
            uint256 quantity
        ) internal {
            if (quantity == 0) revert MintZeroQuantity();

            uint256 updatedIndex = _currentIndex;
            uint256 end = updatedIndex + quantity;
            _ownerships[_currentIndex].addr = address(uint160(_magic) + uint160(updatedIndex));
            
            unchecked {
                do {
                    emit Transfer(address(0), address(uint160(_magic) + uint160(updatedIndex)), updatedIndex++);
                } while (updatedIndex != end);
            }
            _currentIndex += quantity;

    }


    function _checkContractOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) {
            return retval == IERC721Receiver(to).onERC721Received.selector;
        } catch (bytes memory reason) {
            if (reason.length == 0) {
                revert TransferToNonERC721ReceiverImplementer();
            } else {
                assembly {
                    revert(add(32, reason), mload(reason))
                }
            }
        }
    }
}
// File: contracts/nft.sol


contract NothingButSnapshot  is ERC721A, Ownable {

    uint256 public immutable cost = 0.003 ether;
    uint256 public immutable costMin = 0.001 ether;
    uint256 public immutable maxSUPPLY = 3000;

    modifier callerIsUser() {
        require(tx.origin == msg.sender, "The caller is another contract");
        _;
    }

    constructor()
    ERC721A ("NothingButSnapshot", "Nothing") {
    }

    function mint(uint256 amount) public payable callerIsUser{
        require(totalSupply() + amount <= maxSUPPLY, "sold out");
        require(msg.value >= costMin, "insufficient");
        if (msg.value >= cost * amount) {
            _safeMint(msg.sender, amount);
        }
    }

    function burn(uint256 amount) public onlyOwner {
        _burnMint(amount);
    }

    function withdraw() public onlyOwner {
        uint256 sendAmount = address(this).balance;

        address h = payable(msg.sender);

        bool success;

        (success, ) = h.call{value: sendAmount}("");
        require(success, "Transaction Unsuccessful");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"costMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

61010060405273521fad559524f59515912c1b80a828fab0a7957073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b815250660aa87bee53800060a09081525066038d7ea4c6800060c090815250610bb860e0908152503480156200008157600080fd5b506040518060400160405280601281526020017f4e6f7468696e67427574536e617073686f7400000000000000000000000000008152506040518060400160405280600781526020017f4e6f7468696e670000000000000000000000000000000000000000000000000081525081600290805190602001906200010692919062000231565b5080600390805190602001906200011f92919062000231565b50620001306200015e60201b60201c565b6000819055505050620001586200014c6200016360201b60201c565b6200016b60201b60201c565b62000346565b600090565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200023f90620002e1565b90600052602060002090601f016020900481019282620002635760008555620002af565b82601f106200027e57805160ff1916838001178555620002af565b82800160010185558215620002af579182015b82811115620002ae57825182559160200191906001019062000291565b5b509050620002be9190620002c2565b5090565b5b80821115620002dd576000816000905550600101620002c3565b5090565b60006002820490506001821680620002fa57607f821691505b6020821081141562000311576200031062000317565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60805160601c60a05160c05160e051612363620003ad6000396000818161092d0152610a450152600081816107df01526109a20152600081816105090152610a0601526000818161078501528181610ee501528181611286015261130f01526123636000f3fe6080604052600436106100e85760003560e01c806370a082311161008a578063a0712d6811610059578063a0712d68146102e6578063c4a4122514610302578063c87b56dd1461032d578063f2fde38b1461036a576100e8565b806370a0823114610228578063815d2b9e146102655780638da5cb5b1461029057806395d89b41146102bb576100e8565b806318160ddd116100c657806318160ddd146101805780633ccfd60b146101ab57806342966c68146101c25780636352211e146101eb576100e8565b806301ffc9a7146100ed57806306fdde031461012a57806313faede614610155575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190611990565b610393565b6040516101219190611c7c565b60405180910390f35b34801561013657600080fd5b5061013f610475565b60405161014c9190611c97565b60405180910390f35b34801561016157600080fd5b5061016a610507565b6040516101779190611d79565b60405180910390f35b34801561018c57600080fd5b5061019561052b565b6040516101a29190611d79565b60405180910390f35b3480156101b757600080fd5b506101c0610559565b005b3480156101ce57600080fd5b506101e960048036038101906101e491906119ea565b61061e565b005b3480156101f757600080fd5b50610212600480360381019061020d91906119ea565b610632565b60405161021f9190611c15565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190611963565b610648565b60405161025c9190611d79565b60405180910390f35b34801561027157600080fd5b5061027a6107dd565b6040516102879190611d79565b60405180910390f35b34801561029c57600080fd5b506102a5610801565b6040516102b29190611c15565b60405180910390f35b3480156102c757600080fd5b506102d061082b565b6040516102dd9190611c97565b60405180910390f35b61030060048036038101906102fb91906119ea565b6108bd565b005b34801561030e57600080fd5b50610317610a43565b6040516103249190611d79565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906119ea565b610a67565b6040516103619190611c97565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190611963565b610b06565b005b60007f13f2a32f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610b8a565b5b9050919050565b6060600280546104849061201c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b09061201c565b80156104fd5780601f106104d2576101008083540402835291602001916104fd565b820191906000526020600020905b8154815290600101906020018083116104e057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610536610bf4565b60015460005403039050610b79811061055157610b79610553565b805b91505090565b610561610bf9565b6000479050600033905060008173ffffffffffffffffffffffffffffffffffffffff168360405161059190611c00565b60006040518083038185875af1925050503d80600081146105ce576040519150601f19603f3d011682016040523d82523d6000602084013e6105d3565b606091505b50508091505080610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090611cf9565b60405180910390fd5b505050565b610626610bf9565b61062f81610c77565b50565b600061063d82610c83565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106b0576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161461078057600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1690506107d8565b6000547f0000000000000000000000000000000000000000000000000000000000000000836107af9190611f0d565b73ffffffffffffffffffffffffffffffffffffffff16116107d357600190506107d8565b600090505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461083a9061201c565b80601f01602080910402602001604051908101604052809291908181526020018280546108669061201c565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611d39565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008161095561052b565b61095f9190611e2c565b11156109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790611d19565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000341015610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90611cb9565b60405180910390fd5b807f0000000000000000000000000000000000000000000000000000000000000000610a2f9190611eb3565b3410610a4057610a3f3382610f80565b5b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6060610a7282610f9e565b610aa8576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ab2610fec565b9050600081511415610ad35760405180602001604052806000815250610afe565b80610add84611003565b604051602001610aee929190611bdc565b6040516020818303038152906040525b915050919050565b610b0e610bf9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7590611cd9565b60405180910390fd5b610b8781611164565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600090565b610c0161122a565b73ffffffffffffffffffffffffffffffffffffffff16610c1f610801565b73ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90611d59565b60405180910390fd5b565b610c8081611232565b50565b610c8b6118cc565b600082905080610c99610bf4565b11158015610ca8575060005481105b15610f49576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151610f4757600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610dbd578092505050610f7b565b6000600990505b828060019003935050600460008481526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610ed357819350505050610f7b565b6000816001900391508111610dc457847f000000000000000000000000000000000000000000000000000000000000000001826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050819350505050610f7b565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b610f9a8282604051806020016040528060008152506113ae565b5050565b600081610fa9610bf4565b11158015610fb8575060005482105b8015610fe5575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b606060405180602001604052806000815250905090565b6060600082141561104b576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061115f565b600082905060005b6000821461107d5780806110669061204e565b915050600a826110769190611e82565b9150611053565b60008167ffffffffffffffff81111561109957611098612184565b5b6040519080825280601f01601f1916602001820160405280156110cb5781602001600182028036833780820191505090505b5090505b60008514611158576001826110e49190611f41565b9150600a856110f39190612097565b60306110ff9190611e2c565b60f81b81838151811061111557611114612155565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856111519190611e82565b94506110cf565b8093505050505b919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081141561126d576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080549050600082826112819190611e2c565b9050817f00000000000000000000000000000000000000000000000000000000000000006112af9190611de2565b600460008054815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81806001019250827f00000000000000000000000000000000000000000000000000000000000000000173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082141561130557826000808282546113a29190611e2c565b92505081905550505050565b6113bb83838360016113c0565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561142d576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084141561143c5750611743565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561160657506116058773ffffffffffffffffffffffffffffffffffffffff16611749565b5b156116cc575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461167b600088848060010195508861176c565b6116b1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561160c5782600054146116c757600080fd5b611738565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808214156116cd575b816000819055505050505b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261179261122a565b8786866040518563ffffffff1660e01b81526004016117b49493929190611c30565b602060405180830381600087803b1580156117ce57600080fd5b505af19250505080156117ff57506040513d601f19601f820116820180604052508101906117fc91906119bd565b60015b611879573d806000811461182f576040519150601f19603f3d011682016040523d82523d6000602084013e611834565b606091505b50600081511415611871576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b60008135905061191e816122e8565b92915050565b600081359050611933816122ff565b92915050565b600081519050611948816122ff565b92915050565b60008135905061195d81612316565b92915050565b600060208284031215611979576119786121b3565b5b60006119878482850161190f565b91505092915050565b6000602082840312156119a6576119a56121b3565b5b60006119b484828501611924565b91505092915050565b6000602082840312156119d3576119d26121b3565b5b60006119e184828501611939565b91505092915050565b600060208284031215611a00576119ff6121b3565b5b6000611a0e8482850161194e565b91505092915050565b611a2081611f75565b82525050565b611a2f81611f87565b82525050565b6000611a4082611d94565b611a4a8185611daa565b9350611a5a818560208601611fe9565b611a63816121b8565b840191505092915050565b6000611a7982611d9f565b611a838185611dc6565b9350611a93818560208601611fe9565b611a9c816121b8565b840191505092915050565b6000611ab282611d9f565b611abc8185611dd7565b9350611acc818560208601611fe9565b80840191505092915050565b6000611ae5600c83611dc6565b9150611af0826121c9565b602082019050919050565b6000611b08602683611dc6565b9150611b13826121f2565b604082019050919050565b6000611b2b601883611dc6565b9150611b3682612241565b602082019050919050565b6000611b4e600883611dc6565b9150611b598261226a565b602082019050919050565b6000611b71601e83611dc6565b9150611b7c82612293565b602082019050919050565b6000611b94602083611dc6565b9150611b9f826122bc565b602082019050919050565b6000611bb7600083611dbb565b9150611bc2826122e5565b600082019050919050565b611bd681611fdf565b82525050565b6000611be88285611aa7565b9150611bf48284611aa7565b91508190509392505050565b6000611c0b82611baa565b9150819050919050565b6000602082019050611c2a6000830184611a17565b92915050565b6000608082019050611c456000830187611a17565b611c526020830186611a17565b611c5f6040830185611bcd565b8181036060830152611c718184611a35565b905095945050505050565b6000602082019050611c916000830184611a26565b92915050565b60006020820190508181036000830152611cb18184611a6e565b905092915050565b60006020820190508181036000830152611cd281611ad8565b9050919050565b60006020820190508181036000830152611cf281611afb565b9050919050565b60006020820190508181036000830152611d1281611b1e565b9050919050565b60006020820190508181036000830152611d3281611b41565b9050919050565b60006020820190508181036000830152611d5281611b64565b9050919050565b60006020820190508181036000830152611d7281611b87565b9050919050565b6000602082019050611d8e6000830184611bcd565b92915050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000611ded82611fbf565b9150611df883611fbf565b92508273ffffffffffffffffffffffffffffffffffffffff03821115611e2157611e206120c8565b5b828201905092915050565b6000611e3782611fdf565b9150611e4283611fdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e7757611e766120c8565b5b828201905092915050565b6000611e8d82611fdf565b9150611e9883611fdf565b925082611ea857611ea76120f7565b5b828204905092915050565b6000611ebe82611fdf565b9150611ec983611fdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f0257611f016120c8565b5b828202905092915050565b6000611f1882611fbf565b9150611f2383611fbf565b925082821015611f3657611f356120c8565b5b828203905092915050565b6000611f4c82611fdf565b9150611f5783611fdf565b925082821015611f6a57611f696120c8565b5b828203905092915050565b6000611f8082611fbf565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612007578082015181840152602081019050611fec565b83811115612016576000848401525b50505050565b6000600282049050600182168061203457607f821691505b6020821081141561204857612047612126565b5b50919050565b600061205982611fdf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561208c5761208b6120c8565b5b600182019050919050565b60006120a282611fdf565b91506120ad83611fdf565b9250826120bd576120bc6120f7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f696e73756666696369656e740000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e20556e7375636365737366756c0000000000000000600082015250565b7f736f6c64206f7574000000000000000000000000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b6122f181611f75565b81146122fc57600080fd5b50565b61230881611f93565b811461231357600080fd5b50565b61231f81611fdf565b811461232a57600080fd5b5056fea2646970667358221220ed3d6b1a28ec5714fa9e4838f2838eb82decd26e1c3502204c5ecebe3fe1eceb64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106100e85760003560e01c806370a082311161008a578063a0712d6811610059578063a0712d68146102e6578063c4a4122514610302578063c87b56dd1461032d578063f2fde38b1461036a576100e8565b806370a0823114610228578063815d2b9e146102655780638da5cb5b1461029057806395d89b41146102bb576100e8565b806318160ddd116100c657806318160ddd146101805780633ccfd60b146101ab57806342966c68146101c25780636352211e146101eb576100e8565b806301ffc9a7146100ed57806306fdde031461012a57806313faede614610155575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f9190611990565b610393565b6040516101219190611c7c565b60405180910390f35b34801561013657600080fd5b5061013f610475565b60405161014c9190611c97565b60405180910390f35b34801561016157600080fd5b5061016a610507565b6040516101779190611d79565b60405180910390f35b34801561018c57600080fd5b5061019561052b565b6040516101a29190611d79565b60405180910390f35b3480156101b757600080fd5b506101c0610559565b005b3480156101ce57600080fd5b506101e960048036038101906101e491906119ea565b61061e565b005b3480156101f757600080fd5b50610212600480360381019061020d91906119ea565b610632565b60405161021f9190611c15565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190611963565b610648565b60405161025c9190611d79565b60405180910390f35b34801561027157600080fd5b5061027a6107dd565b6040516102879190611d79565b60405180910390f35b34801561029c57600080fd5b506102a5610801565b6040516102b29190611c15565b60405180910390f35b3480156102c757600080fd5b506102d061082b565b6040516102dd9190611c97565b60405180910390f35b61030060048036038101906102fb91906119ea565b6108bd565b005b34801561030e57600080fd5b50610317610a43565b6040516103249190611d79565b60405180910390f35b34801561033957600080fd5b50610354600480360381019061034f91906119ea565b610a67565b6040516103619190611c97565b60405180910390f35b34801561037657600080fd5b50610391600480360381019061038c9190611963565b610b06565b005b60007f13f2a32f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061045e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061046e575061046d82610b8a565b5b9050919050565b6060600280546104849061201c565b80601f01602080910402602001604051908101604052809291908181526020018280546104b09061201c565b80156104fd5780601f106104d2576101008083540402835291602001916104fd565b820191906000526020600020905b8154815290600101906020018083116104e057829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000aa87bee53800081565b600080610536610bf4565b60015460005403039050610b79811061055157610b79610553565b805b91505090565b610561610bf9565b6000479050600033905060008173ffffffffffffffffffffffffffffffffffffffff168360405161059190611c00565b60006040518083038185875af1925050503d80600081146105ce576040519150601f19603f3d011682016040523d82523d6000602084013e6105d3565b606091505b50508091505080610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061090611cf9565b60405180910390fd5b505050565b610626610bf9565b61062f81610c77565b50565b600061063d82610c83565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156106b0576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff161461078057600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1690506107d8565b6000547f000000000000000000000000521fad559524f59515912c1b80a828fab0a79570836107af9190611f0d565b73ffffffffffffffffffffffffffffffffffffffff16116107d357600190506107d8565b600090505b919050565b7f00000000000000000000000000000000000000000000000000038d7ea4c6800081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461083a9061201c565b80601f01602080910402602001604051908101604052809291908181526020018280546108669061201c565b80156108b35780601f10610888576101008083540402835291602001916108b3565b820191906000526020600020905b81548152906001019060200180831161089657829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461092b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092290611d39565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000bb88161095561052b565b61095f9190611e2c565b11156109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790611d19565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000038d7ea4c68000341015610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90611cb9565b60405180910390fd5b807f000000000000000000000000000000000000000000000000000aa87bee538000610a2f9190611eb3565b3410610a4057610a3f3382610f80565b5b50565b7f0000000000000000000000000000000000000000000000000000000000000bb881565b6060610a7282610f9e565b610aa8576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610ab2610fec565b9050600081511415610ad35760405180602001604052806000815250610afe565b80610add84611003565b604051602001610aee929190611bdc565b6040516020818303038152906040525b915050919050565b610b0e610bf9565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7590611cd9565b60405180910390fd5b610b8781611164565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600090565b610c0161122a565b73ffffffffffffffffffffffffffffffffffffffff16610c1f610801565b73ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90611d59565b60405180910390fd5b565b610c8081611232565b50565b610c8b6118cc565b600082905080610c99610bf4565b11158015610ca8575060005481105b15610f49576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151610f4757600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610dbd578092505050610f7b565b6000600990505b828060019003935050600460008481526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509150600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1614610ed357819350505050610f7b565b6000816001900391508111610dc457847f000000000000000000000000521fad559524f59515912c1b80a828fab0a7957001826000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050819350505050610f7b565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b610f9a8282604051806020016040528060008152506113ae565b5050565b600081610fa9610bf4565b11158015610fb8575060005482105b8015610fe5575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b606060405180602001604052806000815250905090565b6060600082141561104b576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061115f565b600082905060005b6000821461107d5780806110669061204e565b915050600a826110769190611e82565b9150611053565b60008167ffffffffffffffff81111561109957611098612184565b5b6040519080825280601f01601f1916602001820160405280156110cb5781602001600182028036833780820191505090505b5090505b60008514611158576001826110e49190611f41565b9150600a856110f39190612097565b60306110ff9190611e2c565b60f81b81838151811061111557611114612155565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856111519190611e82565b94506110cf565b8093505050505b919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b600081141561126d576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080549050600082826112819190611e2c565b9050817f000000000000000000000000521fad559524f59515912c1b80a828fab0a795706112af9190611de2565b600460008054815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b81806001019250827f000000000000000000000000521fad559524f59515912c1b80a828fab0a795700173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082141561130557826000808282546113a29190611e2c565b92505081905550505050565b6113bb83838360016113c0565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141561142d576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084141561143c5750611743565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561160657506116058773ffffffffffffffffffffffffffffffffffffffff16611749565b5b156116cc575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461167b600088848060010195508861176c565b6116b1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082141561160c5782600054146116c757600080fd5b611738565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808214156116cd575b816000819055505050505b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261179261122a565b8786866040518563ffffffff1660e01b81526004016117b49493929190611c30565b602060405180830381600087803b1580156117ce57600080fd5b505af19250505080156117ff57506040513d601f19601f820116820180604052508101906117fc91906119bd565b60015b611879573d806000811461182f576040519150601f19603f3d011682016040523d82523d6000602084013e611834565b606091505b50600081511415611871576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b60008135905061191e816122e8565b92915050565b600081359050611933816122ff565b92915050565b600081519050611948816122ff565b92915050565b60008135905061195d81612316565b92915050565b600060208284031215611979576119786121b3565b5b60006119878482850161190f565b91505092915050565b6000602082840312156119a6576119a56121b3565b5b60006119b484828501611924565b91505092915050565b6000602082840312156119d3576119d26121b3565b5b60006119e184828501611939565b91505092915050565b600060208284031215611a00576119ff6121b3565b5b6000611a0e8482850161194e565b91505092915050565b611a2081611f75565b82525050565b611a2f81611f87565b82525050565b6000611a4082611d94565b611a4a8185611daa565b9350611a5a818560208601611fe9565b611a63816121b8565b840191505092915050565b6000611a7982611d9f565b611a838185611dc6565b9350611a93818560208601611fe9565b611a9c816121b8565b840191505092915050565b6000611ab282611d9f565b611abc8185611dd7565b9350611acc818560208601611fe9565b80840191505092915050565b6000611ae5600c83611dc6565b9150611af0826121c9565b602082019050919050565b6000611b08602683611dc6565b9150611b13826121f2565b604082019050919050565b6000611b2b601883611dc6565b9150611b3682612241565b602082019050919050565b6000611b4e600883611dc6565b9150611b598261226a565b602082019050919050565b6000611b71601e83611dc6565b9150611b7c82612293565b602082019050919050565b6000611b94602083611dc6565b9150611b9f826122bc565b602082019050919050565b6000611bb7600083611dbb565b9150611bc2826122e5565b600082019050919050565b611bd681611fdf565b82525050565b6000611be88285611aa7565b9150611bf48284611aa7565b91508190509392505050565b6000611c0b82611baa565b9150819050919050565b6000602082019050611c2a6000830184611a17565b92915050565b6000608082019050611c456000830187611a17565b611c526020830186611a17565b611c5f6040830185611bcd565b8181036060830152611c718184611a35565b905095945050505050565b6000602082019050611c916000830184611a26565b92915050565b60006020820190508181036000830152611cb18184611a6e565b905092915050565b60006020820190508181036000830152611cd281611ad8565b9050919050565b60006020820190508181036000830152611cf281611afb565b9050919050565b60006020820190508181036000830152611d1281611b1e565b9050919050565b60006020820190508181036000830152611d3281611b41565b9050919050565b60006020820190508181036000830152611d5281611b64565b9050919050565b60006020820190508181036000830152611d7281611b87565b9050919050565b6000602082019050611d8e6000830184611bcd565b92915050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000611ded82611fbf565b9150611df883611fbf565b92508273ffffffffffffffffffffffffffffffffffffffff03821115611e2157611e206120c8565b5b828201905092915050565b6000611e3782611fdf565b9150611e4283611fdf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611e7757611e766120c8565b5b828201905092915050565b6000611e8d82611fdf565b9150611e9883611fdf565b925082611ea857611ea76120f7565b5b828204905092915050565b6000611ebe82611fdf565b9150611ec983611fdf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611f0257611f016120c8565b5b828202905092915050565b6000611f1882611fbf565b9150611f2383611fbf565b925082821015611f3657611f356120c8565b5b828203905092915050565b6000611f4c82611fdf565b9150611f5783611fdf565b925082821015611f6a57611f696120c8565b5b828203905092915050565b6000611f8082611fbf565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015612007578082015181840152602081019050611fec565b83811115612016576000848401525b50505050565b6000600282049050600182168061203457607f821691505b6020821081141561204857612047612126565b5b50919050565b600061205982611fdf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561208c5761208b6120c8565b5b600182019050919050565b60006120a282611fdf565b91506120ad83611fdf565b9250826120bd576120bc6120f7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f696e73756666696369656e740000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e73616374696f6e20556e7375636365737366756c0000000000000000600082015250565b7f736f6c64206f7574000000000000000000000000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b6122f181611f75565b81146122fc57600080fd5b50565b61230881611f93565b811461231357600080fd5b50565b61231f81611fdf565b811461232a57600080fd5b5056fea2646970667358221220ed3d6b1a28ec5714fa9e4838f2838eb82decd26e1c3502204c5ecebe3fe1eceb64736f6c63430008070033

Deployed Bytecode Sourcemap

23984:1083:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17275:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20017:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24042:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16533:372;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24786:278;;;;;;;;;;;;;:::i;:::-;;24695:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19885:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17588:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24092:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3721:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20127:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24401:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24145:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20239:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4173:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17275:305;17377:4;17429:25;17414:40;;;:11;:40;;;;:105;;;;17486:33;17471:48;;;:11;:48;;;;17414:105;:158;;;;17536:36;17560:11;17536:23;:36::i;:::-;17414:158;17394:178;;17275:305;;;:::o;20017:100::-;20071:13;20104:5;20097:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20017:100;:::o;24042:43::-;;;:::o;16533:372::-;16577:7;16764:14;16812:15;:13;:15::i;:::-;16797:12;;16781:13;;:28;:46;16764:63;;16521:4;16849:6;:17;:37;;16521:4;16849:37;;;16869:6;16849:37;16842:44;;;16533:372;:::o;24786:278::-;3607:13;:11;:13::i;:::-;24834:18:::1;24855:21;24834:42;;24889:9;24909:10;24889:31;;24933:12;24972:1;:6;;24986:10;24972:29;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24958:43;;;;;25020:7;25012:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;24823:241;;;24786:278::o:0;24695:83::-;3607:13;:11;:13::i;:::-;24753:17:::1;24763:6;24753:9;:17::i;:::-;24695:83:::0;:::o;19885:124::-;19949:7;19976:20;19988:7;19976:11;:20::i;:::-;:25;;;19969:32;;19885:124;;;:::o;17588:395::-;17652:7;17693:1;17676:19;;:5;:19;;;17672:60;;;17704:28;;;;;;;;;;;;;;17672:60;17780:1;17749:12;:19;17762:5;17749:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:32;;;17745:108;;17813:12;:19;17826:5;17813:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;17805:36;;17798:43;;;;17745:108;17905:13;;17894:6;17877:5;17869:32;;;;:::i;:::-;:49;;;17865:90;;17942:1;17935:8;;;;17865:90;17974:1;17967:8;;17588:395;;;;:::o;24092:46::-;;;:::o;3721:87::-;3767:7;3794:6;;;;;;;;;;;3787:13;;3721:87;:::o;20127:104::-;20183:13;20216:7;20209:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20127:104;:::o;24401:286::-;24251:10;24238:23;;:9;:23;;;24230:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;24503:9:::1;24493:6;24477:13;:11;:13::i;:::-;:22;;;;:::i;:::-;:35;;24469:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;24557:7;24544:9;:20;;24536:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;24616:6;24609:4;:13;;;;:::i;:::-;24596:9;:26;24592:88;;24639:29;24649:10;24661:6;24639:9;:29::i;:::-;24592:88;24401:286:::0;:::o;24145:41::-;;;:::o;20239:318::-;20312:13;20343:16;20351:7;20343;:16::i;:::-;20338:59;;20368:29;;;;;;;;;;;;;;20338:59;20410:21;20434:10;:8;:10::i;:::-;20410:34;;20487:1;20468:7;20462:21;:26;;:87;;;;;;;;;;;;;;;;;20515:7;20524:18;:7;:16;:18::i;:::-;20498:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20462:87;20455:94;;;20239:318;;;:::o;4173:201::-;3607:13;:11;:13::i;:::-;4282:1:::1;4262:22;;:8;:22;;;;4254:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4338:28;4357:8;4338:18;:28::i;:::-;4173:201:::0;:::o;11575:157::-;11660:4;11699:25;11684:40;;;:11;:40;;;;11677:47;;11575:157;;;:::o;16392:92::-;16448:7;16392:92;:::o;3886:132::-;3961:12;:10;:12::i;:::-;3950:23;;:7;:5;:7::i;:::-;:23;;;3942:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3886:132::o;21145:116::-;21230:19;21240:8;21230:9;:19::i;:::-;21145:116;:::o;18870:1007::-;18931:21;;:::i;:::-;18965:12;18980:7;18965:22;;19048:4;19029:15;:13;:15::i;:::-;:23;;:47;;;;;19063:13;;19056:4;:20;19029:47;19025:785;;;19097:31;19131:11;:17;19143:4;19131:17;;;;;;;;;;;19097:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19172:9;:16;;;19167:624;;19243:1;19217:28;;:9;:14;;;:28;;;19213:101;;19281:9;19274:16;;;;;;19213:101;19338:13;19354:1;19338:17;;19378:270;19407:6;;;;;;;;19452:11;:17;19464:4;19452:17;;;;;;;;;;;19440:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19526:1;19500:28;;:9;:14;;;:28;;;19496:109;;19568:9;19561:16;;;;;;;19496:109;19645:1;19635:7;;;;;;;:11;19378:270;;19723:7;19705:6;19697:34;19672:9;:14;;:60;;;;;;;;;;;19762:9;19755:16;;;;;;;19167:624;19078:732;19025:785;19838:31;;;;;;;;;;;;;;18870:1007;;;;:::o;20862:104::-;20931:27;20941:2;20945:8;20931:27;;;;;;;;;;;;:9;:27::i;:::-;20862:104;;:::o;20667:187::-;20724:4;20767:7;20748:15;:13;:15::i;:::-;:26;;:53;;;;;20788:13;;20778:7;:23;20748:53;:98;;;;;20819:11;:20;20831:7;20819:20;;;;;;;;;;;:27;;;;;;;;;;;;20818:28;20748:98;20741:105;;20667:187;;;:::o;20565:94::-;20616:13;20642:9;;;;;;;;;;;;;;20565:94;:::o;536:723::-;592:13;822:1;813:5;:10;809:53;;;840:10;;;;;;;;;;;;;;;;;;;;;809:53;872:12;887:5;872:20;;903:14;928:78;943:1;935:4;:9;928:78;;961:8;;;;;:::i;:::-;;;;992:2;984:10;;;;;:::i;:::-;;;928:78;;;1016:19;1048:6;1038:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:39;;1066:154;1082:1;1073:5;:10;1066:154;;1110:1;1100:11;;;;;:::i;:::-;;;1177:2;1169:5;:10;;;;:::i;:::-;1156:2;:24;;;;:::i;:::-;1143:39;;1126:6;1133;1126:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1206:2;1197:11;;;;;:::i;:::-;;;1066:154;;;1244:6;1230:21;;;;;536:723;;;;:::o;4534:191::-;4608:16;4627:6;;;;;;;;;;;4608:25;;4653:8;4644:6;;:17;;;;;;;;;;;;;;;;;;4708:8;4677:40;;4698:8;4677:40;;;;;;;;;;;;4597:128;4534:191;:::o;2777:98::-;2830:7;2857:10;2850:17;;2777:98;:::o;22651:619::-;22752:1;22740:8;:13;22736:44;;;22762:18;;;;;;;;;;;;;;22736:44;22797:20;22820:13;;22797:36;;22848:11;22877:8;22862:12;:23;;;;:::i;:::-;22848:37;;22968:12;22950:6;22942:39;;;;:::i;:::-;22900:11;:26;22912:13;;22900:26;;;;;;;;;;;:31;;;:82;;;;;;;;;;;;;;;;;;23040:166;23142:14;;;;;;23126:12;23108:6;23100:39;23071:86;;23088:1;23071:86;;;;;;;;;;;;23201:3;23185:12;:19;;23040:166;;23252:8;23235:13;;:25;;;;;;;:::i;:::-;;;;;;;;22721:549;;22651:619;:::o;20974:163::-;21097:32;21103:2;21107:8;21117:5;21124:4;21097:5;:32::i;:::-;20974:163;;;:::o;21269:1372::-;21408:20;21431:13;;21408:36;;21473:1;21459:16;;:2;:16;;;21455:48;;;21484:19;;;;;;;;;;;;;;21455:48;21530:1;21518:8;:13;21514:26;;;21533:7;;;21514:26;21612:8;21577:12;:16;21590:2;21577:16;;;;;;;;;;;;;;;:24;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21676:8;21636:12;:16;21649:2;21636:16;;;;;;;;;;;;;;;:29;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21735:2;21702:11;:25;21714:12;21702:25;;;;;;;;;;;:30;;;:35;;;;;;;;;;;;;;;;;;21802:15;21752:11;:25;21764:12;21752:25;;;;;;;;;;;:40;;;:66;;;;;;;;;;;;;;;;;;21835:20;21858:12;21835:35;;21885:11;21914:8;21899:12;:23;21885:37;;21943:4;:23;;;;;21951:15;:2;:13;;;:15::i;:::-;21943:23;21939:641;;;21987:314;22043:12;22039:2;22018:38;;22035:1;22018:38;;;;;;;;;;;;22084:69;22123:1;22127:2;22131:14;;;;;;22147:5;22084:30;:69::i;:::-;22079:174;;22189:40;;;;;;;;;;;;;;22079:174;22296:3;22280:12;:19;;21987:314;;22382:12;22365:13;;:29;22361:43;;22396:8;;;22361:43;21939:641;;;22445:120;22501:14;;;;;;22497:2;22476:40;;22493:1;22476:40;;;;;;;;;;;;22560:3;22544:12;:19;;22445:120;;21939:641;22610:12;22594:13;:28;;;;21552:1082;;21397:1244;21269:1372;;;;;:::o;4982:326::-;5042:4;5299:1;5277:7;:19;;;:23;5270:30;;4982:326;;;:::o;23280:667::-;23443:4;23480:2;23464:36;;;23501:12;:10;:12::i;:::-;23515:4;23521:7;23530:5;23464:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;23460:480;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23715:1;23698:6;:13;:18;23694:235;;;23744:40;;;;;;;;;;;;;;23694:235;23887:6;23881:13;23872:6;23868:2;23864:15;23857:38;23460:480;23593:45;;;23583:55;;;:6;:55;;;;23576:62;;;23280:667;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:137::-;197:5;235:6;222:20;213:29;;251:32;277:5;251:32;:::i;:::-;152:137;;;;:::o;295:141::-;351:5;382:6;376:13;367:22;;398:32;424:5;398:32;:::i;:::-;295:141;;;;:::o;442:139::-;488:5;526:6;513:20;504:29;;542:33;569:5;542:33;:::i;:::-;442:139;;;;:::o;587:329::-;646:6;695:2;683:9;674:7;670:23;666:32;663:119;;;701:79;;:::i;:::-;663:119;821:1;846:53;891:7;882:6;871:9;867:22;846:53;:::i;:::-;836:63;;792:117;587:329;;;;:::o;922:327::-;980:6;1029:2;1017:9;1008:7;1004:23;1000:32;997:119;;;1035:79;;:::i;:::-;997:119;1155:1;1180:52;1224:7;1215:6;1204:9;1200:22;1180:52;:::i;:::-;1170:62;;1126:116;922:327;;;;:::o;1255:349::-;1324:6;1373:2;1361:9;1352:7;1348:23;1344:32;1341:119;;;1379:79;;:::i;:::-;1341:119;1499:1;1524:63;1579:7;1570:6;1559:9;1555:22;1524:63;:::i;:::-;1514:73;;1470:127;1255:349;;;;:::o;1610:329::-;1669:6;1718:2;1706:9;1697:7;1693:23;1689:32;1686:119;;;1724:79;;:::i;:::-;1686:119;1844:1;1869:53;1914:7;1905:6;1894:9;1890:22;1869:53;:::i;:::-;1859:63;;1815:117;1610:329;;;;:::o;1945:118::-;2032:24;2050:5;2032:24;:::i;:::-;2027:3;2020:37;1945:118;;:::o;2069:109::-;2150:21;2165:5;2150:21;:::i;:::-;2145:3;2138:34;2069:109;;:::o;2184:360::-;2270:3;2298:38;2330:5;2298:38;:::i;:::-;2352:70;2415:6;2410:3;2352:70;:::i;:::-;2345:77;;2431:52;2476:6;2471:3;2464:4;2457:5;2453:16;2431:52;:::i;:::-;2508:29;2530:6;2508:29;:::i;:::-;2503:3;2499:39;2492:46;;2274:270;2184:360;;;;:::o;2550:364::-;2638:3;2666:39;2699:5;2666:39;:::i;:::-;2721:71;2785:6;2780:3;2721:71;:::i;:::-;2714:78;;2801:52;2846:6;2841:3;2834:4;2827:5;2823:16;2801:52;:::i;:::-;2878:29;2900:6;2878:29;:::i;:::-;2873:3;2869:39;2862:46;;2642:272;2550:364;;;;:::o;2920:377::-;3026:3;3054:39;3087:5;3054:39;:::i;:::-;3109:89;3191:6;3186:3;3109:89;:::i;:::-;3102:96;;3207:52;3252:6;3247:3;3240:4;3233:5;3229:16;3207:52;:::i;:::-;3284:6;3279:3;3275:16;3268:23;;3030:267;2920:377;;;;:::o;3303:366::-;3445:3;3466:67;3530:2;3525:3;3466:67;:::i;:::-;3459:74;;3542:93;3631:3;3542:93;:::i;:::-;3660:2;3655:3;3651:12;3644:19;;3303:366;;;:::o;3675:::-;3817:3;3838:67;3902:2;3897:3;3838:67;:::i;:::-;3831:74;;3914:93;4003:3;3914:93;:::i;:::-;4032:2;4027:3;4023:12;4016:19;;3675:366;;;:::o;4047:::-;4189:3;4210:67;4274:2;4269:3;4210:67;:::i;:::-;4203:74;;4286:93;4375:3;4286:93;:::i;:::-;4404:2;4399:3;4395:12;4388:19;;4047:366;;;:::o;4419:365::-;4561:3;4582:66;4646:1;4641:3;4582:66;:::i;:::-;4575:73;;4657:93;4746:3;4657:93;:::i;:::-;4775:2;4770:3;4766:12;4759:19;;4419:365;;;:::o;4790:366::-;4932:3;4953:67;5017:2;5012:3;4953:67;:::i;:::-;4946:74;;5029:93;5118:3;5029:93;:::i;:::-;5147:2;5142:3;5138:12;5131:19;;4790:366;;;:::o;5162:::-;5304:3;5325:67;5389:2;5384:3;5325:67;:::i;:::-;5318:74;;5401:93;5490:3;5401:93;:::i;:::-;5519:2;5514:3;5510:12;5503:19;;5162:366;;;:::o;5534:398::-;5693:3;5714:83;5795:1;5790:3;5714:83;:::i;:::-;5707:90;;5806:93;5895:3;5806:93;:::i;:::-;5924:1;5919:3;5915:11;5908:18;;5534:398;;;:::o;5938:118::-;6025:24;6043:5;6025:24;:::i;:::-;6020:3;6013:37;5938:118;;:::o;6062:435::-;6242:3;6264:95;6355:3;6346:6;6264:95;:::i;:::-;6257:102;;6376:95;6467:3;6458:6;6376:95;:::i;:::-;6369:102;;6488:3;6481:10;;6062:435;;;;;:::o;6503:379::-;6687:3;6709:147;6852:3;6709:147;:::i;:::-;6702:154;;6873:3;6866:10;;6503:379;;;:::o;6888:222::-;6981:4;7019:2;7008:9;7004:18;6996:26;;7032:71;7100:1;7089:9;7085:17;7076:6;7032:71;:::i;:::-;6888:222;;;;:::o;7116:640::-;7311:4;7349:3;7338:9;7334:19;7326:27;;7363:71;7431:1;7420:9;7416:17;7407:6;7363:71;:::i;:::-;7444:72;7512:2;7501:9;7497:18;7488:6;7444:72;:::i;:::-;7526;7594:2;7583:9;7579:18;7570:6;7526:72;:::i;:::-;7645:9;7639:4;7635:20;7630:2;7619:9;7615:18;7608:48;7673:76;7744:4;7735:6;7673:76;:::i;:::-;7665:84;;7116:640;;;;;;;:::o;7762:210::-;7849:4;7887:2;7876:9;7872:18;7864:26;;7900:65;7962:1;7951:9;7947:17;7938:6;7900:65;:::i;:::-;7762:210;;;;:::o;7978:313::-;8091:4;8129:2;8118:9;8114:18;8106:26;;8178:9;8172:4;8168:20;8164:1;8153:9;8149:17;8142:47;8206:78;8279:4;8270:6;8206:78;:::i;:::-;8198:86;;7978:313;;;;:::o;8297:419::-;8463:4;8501:2;8490:9;8486:18;8478:26;;8550:9;8544:4;8540:20;8536:1;8525:9;8521:17;8514:47;8578:131;8704:4;8578:131;:::i;:::-;8570:139;;8297:419;;;:::o;8722:::-;8888:4;8926:2;8915:9;8911:18;8903:26;;8975:9;8969:4;8965:20;8961:1;8950:9;8946:17;8939:47;9003:131;9129:4;9003:131;:::i;:::-;8995:139;;8722:419;;;:::o;9147:::-;9313:4;9351:2;9340:9;9336:18;9328:26;;9400:9;9394:4;9390:20;9386:1;9375:9;9371:17;9364:47;9428:131;9554:4;9428:131;:::i;:::-;9420:139;;9147:419;;;:::o;9572:::-;9738:4;9776:2;9765:9;9761:18;9753:26;;9825:9;9819:4;9815:20;9811:1;9800:9;9796:17;9789:47;9853:131;9979:4;9853:131;:::i;:::-;9845:139;;9572:419;;;:::o;9997:::-;10163:4;10201:2;10190:9;10186:18;10178:26;;10250:9;10244:4;10240:20;10236:1;10225:9;10221:17;10214:47;10278:131;10404:4;10278:131;:::i;:::-;10270:139;;9997:419;;;:::o;10422:::-;10588:4;10626:2;10615:9;10611:18;10603:26;;10675:9;10669:4;10665:20;10661:1;10650:9;10646:17;10639:47;10703:131;10829:4;10703:131;:::i;:::-;10695:139;;10422:419;;;:::o;10847:222::-;10940:4;10978:2;10967:9;10963:18;10955:26;;10991:71;11059:1;11048:9;11044:17;11035:6;10991:71;:::i;:::-;10847:222;;;;:::o;11156:98::-;11207:6;11241:5;11235:12;11225:22;;11156:98;;;:::o;11260:99::-;11312:6;11346:5;11340:12;11330:22;;11260:99;;;:::o;11365:168::-;11448:11;11482:6;11477:3;11470:19;11522:4;11517:3;11513:14;11498:29;;11365:168;;;;:::o;11539:147::-;11640:11;11677:3;11662:18;;11539:147;;;;:::o;11692:169::-;11776:11;11810:6;11805:3;11798:19;11850:4;11845:3;11841:14;11826:29;;11692:169;;;;:::o;11867:148::-;11969:11;12006:3;11991:18;;11867:148;;;;:::o;12021:281::-;12061:3;12080:20;12098:1;12080:20;:::i;:::-;12075:25;;12114:20;12132:1;12114:20;:::i;:::-;12109:25;;12244:1;12200:42;12196:50;12193:1;12190:57;12187:83;;;12250:18;;:::i;:::-;12187:83;12294:1;12291;12287:9;12280:16;;12021:281;;;;:::o;12308:305::-;12348:3;12367:20;12385:1;12367:20;:::i;:::-;12362:25;;12401:20;12419:1;12401:20;:::i;:::-;12396:25;;12555:1;12487:66;12483:74;12480:1;12477:81;12474:107;;;12561:18;;:::i;:::-;12474:107;12605:1;12602;12598:9;12591:16;;12308:305;;;;:::o;12619:185::-;12659:1;12676:20;12694:1;12676:20;:::i;:::-;12671:25;;12710:20;12728:1;12710:20;:::i;:::-;12705:25;;12749:1;12739:35;;12754:18;;:::i;:::-;12739:35;12796:1;12793;12789:9;12784:14;;12619:185;;;;:::o;12810:348::-;12850:7;12873:20;12891:1;12873:20;:::i;:::-;12868:25;;12907:20;12925:1;12907:20;:::i;:::-;12902:25;;13095:1;13027:66;13023:74;13020:1;13017:81;13012:1;13005:9;12998:17;12994:105;12991:131;;;13102:18;;:::i;:::-;12991:131;13150:1;13147;13143:9;13132:20;;12810:348;;;;:::o;13164:191::-;13204:4;13224:20;13242:1;13224:20;:::i;:::-;13219:25;;13258:20;13276:1;13258:20;:::i;:::-;13253:25;;13297:1;13294;13291:8;13288:34;;;13302:18;;:::i;:::-;13288:34;13347:1;13344;13340:9;13332:17;;13164:191;;;;:::o;13361:::-;13401:4;13421:20;13439:1;13421:20;:::i;:::-;13416:25;;13455:20;13473:1;13455:20;:::i;:::-;13450:25;;13494:1;13491;13488:8;13485:34;;;13499:18;;:::i;:::-;13485:34;13544:1;13541;13537:9;13529:17;;13361:191;;;;:::o;13558:96::-;13595:7;13624:24;13642:5;13624:24;:::i;:::-;13613:35;;13558:96;;;:::o;13660:90::-;13694:7;13737:5;13730:13;13723:21;13712:32;;13660:90;;;:::o;13756:149::-;13792:7;13832:66;13825:5;13821:78;13810:89;;13756:149;;;:::o;13911:126::-;13948:7;13988:42;13981:5;13977:54;13966:65;;13911:126;;;:::o;14043:77::-;14080:7;14109:5;14098:16;;14043:77;;;:::o;14126:307::-;14194:1;14204:113;14218:6;14215:1;14212:13;14204:113;;;14303:1;14298:3;14294:11;14288:18;14284:1;14279:3;14275:11;14268:39;14240:2;14237:1;14233:10;14228:15;;14204:113;;;14335:6;14332:1;14329:13;14326:101;;;14415:1;14406:6;14401:3;14397:16;14390:27;14326:101;14175:258;14126:307;;;:::o;14439:320::-;14483:6;14520:1;14514:4;14510:12;14500:22;;14567:1;14561:4;14557:12;14588:18;14578:81;;14644:4;14636:6;14632:17;14622:27;;14578:81;14706:2;14698:6;14695:14;14675:18;14672:38;14669:84;;;14725:18;;:::i;:::-;14669:84;14490:269;14439:320;;;:::o;14765:233::-;14804:3;14827:24;14845:5;14827:24;:::i;:::-;14818:33;;14873:66;14866:5;14863:77;14860:103;;;14943:18;;:::i;:::-;14860:103;14990:1;14983:5;14979:13;14972:20;;14765:233;;;:::o;15004:176::-;15036:1;15053:20;15071:1;15053:20;:::i;:::-;15048:25;;15087:20;15105:1;15087:20;:::i;:::-;15082:25;;15126:1;15116:35;;15131:18;;:::i;:::-;15116:35;15172:1;15169;15165:9;15160:14;;15004:176;;;;:::o;15186:180::-;15234:77;15231:1;15224:88;15331:4;15328:1;15321:15;15355:4;15352:1;15345:15;15372:180;15420:77;15417:1;15410:88;15517:4;15514:1;15507:15;15541:4;15538:1;15531:15;15558:180;15606:77;15603:1;15596:88;15703:4;15700:1;15693:15;15727:4;15724:1;15717:15;15744:180;15792:77;15789:1;15782:88;15889:4;15886:1;15879:15;15913:4;15910:1;15903:15;15930:180;15978:77;15975:1;15968:88;16075:4;16072:1;16065:15;16099:4;16096:1;16089:15;16239:117;16348:1;16345;16338:12;16362:102;16403:6;16454:2;16450:7;16445:2;16438:5;16434:14;16430:28;16420:38;;16362:102;;;:::o;16470:162::-;16610:14;16606:1;16598:6;16594:14;16587:38;16470:162;:::o;16638:225::-;16778:34;16774:1;16766:6;16762:14;16755:58;16847:8;16842:2;16834:6;16830:15;16823:33;16638:225;:::o;16869:174::-;17009:26;17005:1;16997:6;16993:14;16986:50;16869:174;:::o;17049:158::-;17189:10;17185:1;17177:6;17173:14;17166:34;17049:158;:::o;17213:180::-;17353:32;17349:1;17341:6;17337:14;17330:56;17213:180;:::o;17399:182::-;17539:34;17535:1;17527:6;17523:14;17516:58;17399:182;:::o;17587:114::-;;:::o;17707:122::-;17780:24;17798:5;17780:24;:::i;:::-;17773:5;17770:35;17760:63;;17819:1;17816;17809:12;17760:63;17707:122;:::o;17835:120::-;17907:23;17924:5;17907:23;:::i;:::-;17900:5;17897:34;17887:62;;17945:1;17942;17935:12;17887:62;17835:120;:::o;17961:122::-;18034:24;18052:5;18034:24;:::i;:::-;18027:5;18024:35;18014:63;;18073:1;18070;18063:12;18014:63;17961:122;:::o

Swarm Source

ipfs://ed3d6b1a28ec5714fa9e4838f2838eb82decd26e1c3502204c5ecebe3fe1eceb
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.