S Price: $0.484513 (-10.50%)
    /

    Binary Punks (PUNKS)

    Overview

    TokenID

    9788

    Total Transfers

    -

    Market

    Onchain Market Cap

    $0.00

    Circulating Supply Market Cap

    -
    Loading...
    Loading
    Loading...
    Loading
    Loading...
    Loading

    Click here to update the token information / general information

    Similar Match Source Code
    This contract matches the deployed Bytecode of the Source Code for Contract 0xa1De2284...C99f012b9
    The constructor portion of the code might be different and could alter the actual behaviour of the contract

    Contract Name:
    ERC721Enumerable

    Compiler Version
    v0.8.28+commit.7893614a

    Optimization Enabled:
    Yes with 200 runs

    Other Settings:
    paris EvmVersion
    File 1 of 8 : ERC721Enumerable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    import {ERC721} from "./ERC721.sol";
    contract ERC721Enumerable is ERC721 {
    // array with all token IDs, used for enumeration
    uint256[] private _allTokens;
    // Mapping from token ID to position in the allTokens array
    mapping(uint256 => uint256) private _allTokensIndex;
    // Mapping from owner to list-as-mapping of owned token IDs
    mapping(address owner => mapping(uint256 index => uint256)) private _ownedTokens;
    // Mapping from token ID to index in the ownedTokens mapping
    mapping(uint256 tokenId => uint256) private _ownedTokensIndex;
    function totalSupply() public view override returns (uint256) {
    return _allTokens.length;
    }
    function tokenByIndex(uint256 index) public view returns (uint256) {
    require(index < totalSupply(), "ERC721Enumerable: INVALID_INDEX");
    return _allTokens[index];
    }
    function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 8 : ERC721.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    import {ERC721Base} from "./ERC721Base.sol";
    import {LibString} from "./utils/LibString.sol";
    import {ERC2981} from "./ERC2981.sol";
    import {PermissionedMintingNFT} from "./PermissionedMintingNFT.sol";
    import {BridgedNFT} from "./BridgedNFT.sol";
    contract ERC721 is ERC721Base, ERC2981, PermissionedMintingNFT, BridgedNFT {
    // NFT Metadata
    string private _name;
    string private _symbol;
    string private _baseURI;
    string private _extension;
    uint256 private _totalSupply;
    mapping(uint256 => string) private _tokenURIs;
    // Custom errors
    error TokenExists();
    error MismatchedLengths();
    constructor(
    address originalAddress,
    string memory name,
    string memory symbol,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 8 : ERC721Base.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple ERC721 implementation with storage hitchhiking.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC721.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/tree/master/contracts/token/ERC721/ERC721.sol)
    ///
    /// @dev Note:
    /// - The ERC721 standard allows for self-approvals.
    /// For performance, this implementation WILL NOT revert for such actions.
    /// Please add any checks with overrides if desired.
    /// - For performance, methods are made payable where permitted by the ERC721 standard.
    /// - The `safeTransfer` functions use the identity precompile (0x4)
    /// to copy memory internally.
    ///
    /// If you are overriding:
    /// - NEVER violate the ERC721 invariant:
    /// the balance of an owner MUST always be equal to their number of ownership slots.
    /// The transfer functions do not have an underflow guard for user token balances.
    /// - Make sure all variables written to storage are properly cleaned
    // (e.g. the bool value for `isApprovedForAll` MUST be either 1 or 0 under the hood).
    /// - Check that the overridden function is actually used in the function you want to
    /// change the behavior of. Much of the code has been manually inlined for performance.
    abstract contract ERC721Base {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 8 : LibString.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Library for converting numbers into strings and other string operations.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
    ///
    /// @dev Note:
    /// For performance and bytecode compactness, most of the string operations are restricted to
    /// byte strings (7-bit ASCII), except where otherwise specified.
    /// Usage of byte string operations on charsets with runes spanning two or more bytes
    /// can lead to undefined behavior.
    library LibString {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The length of the output is too small to contain all the hex digits.
    error HexLengthInsufficient();
    /// @dev The length of the string is more than 32 bytes.
    error TooBigForSmallString();
    /// @dev The input string must be a 7-bit ASCII.
    error StringNot7BitASCII();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 8 : ERC2981.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity >=0.8.7 <0.9.0;
    abstract contract ERC2981 {
    // ERC165 bytes to add to interface array - set in parent contract
    bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a;
    uint256 internal _royaltyBps;
    address internal _royaltyRecipient;
    error Invalid();
    constructor(address recipient, uint256 royaltyBps) {
    _setRoyalties(recipient, royaltyBps);
    }
    // Called with the sale price to determine how much royalty
    // is owed and to whom.
    function royaltyInfo(uint256, uint256 _salePrice) external view virtual returns (address, uint256) {
    if (_royaltyBps == 0) {
    return (address(0), 0);
    }
    uint256 royaltyAmount = (_salePrice * _royaltyBps) / 10000;
    return (_royaltyRecipient, royaltyAmount);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 8 : PermissionedMintingNFT.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    import {Ownable} from "./Ownable.sol";
    /**
    * @title PermissionedMintingNFT
    * @dev Base contract for NFT collections with permissioned minting functionality
    */
    abstract contract PermissionedMintingNFT is Ownable {
    // Mapping of addresses allowed to mint
    mapping(address => bool) private _minters;
    // Global minting enabled flag
    bool public mintingEnabled = true;
    // Events
    event MintRightsGranted(address indexed minter);
    event MintRightsRevoked(address indexed minter);
    // Custom errors
    error NotMinter();
    error MintClosed();
    constructor() Ownable(msg.sender) {}
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 8 : BridgedNFT.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /**
    * @title BridgedNFT
    * @dev Base contract for NFTs that are bridged from another chain
    */
    abstract contract BridgedNFT {
    // The address of the original collection on the source chain
    address public immutable originalCollectionAddress;
    constructor(address originalAddress) {
    originalCollectionAddress = originalAddress;
    }
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 8 : Ownable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Contract module which provides a basic access control mechanism, where
    * there is an account (an owner) that can be granted exclusive access to
    * specific functions.
    *
    * The initial owner is set to the address provided by the deployer. This can
    * later be changed with {transferOwnership}.
    *
    * This module is used through inheritance. It will make available the modifier
    * `onlyOwner`, which can be applied to your functions to restrict their use to
    * the owner.
    */
    abstract contract Ownable {
    address private _owner;
    /**
    * @dev The caller account is not authorized to perform an operation.
    */
    error OwnableUnauthorizedAccount(address account);
    /**
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "forge-std/=lib/forge-std/src/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 200
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    "abi"
    ]
    }
    },
    "evmVersion": "paris",
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"address","name":"originalAddress","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"hasExtension","type":"string"},{"internalType":"address","name":"royaltyRecipient","type":"address"},{"internalType":"uint256","name":"royaltyBps","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccountBalanceOverflow","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"Invalid","type":"error"},{"inputs":[],"name":"MintClosed","type":"error"},{"inputs":[],"name":"MismatchedLengths","type":"error"},{"inputs":[],"name":"NotMinter","type":"error"},{"inputs":[],"name":"NotOwnerNorApproved","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"TokenAlreadyExists","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TokenExists","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"isApproved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"MintRightsGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"MintRightsRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"bps","type":"uint256"}],"name":"RoyaltiesSet","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":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startId","type":"uint256"},{"internalType":"string[]","name":"uris","type":"string[]"}],"name":"batchSetTokenURIs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"internalType":"struct ERC721.AirdropUnit[]","name":"airdropUnits","type":"tuple[]"}],"name":"bulkAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalCollectionAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceMintingRights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"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":"id","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":"id","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":"isApproved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMinter","type":"address"},{"internalType":"bool","name":"canMint","type":"bool"}],"name":"setCanMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"bps","type":"uint256"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"result","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

    60a0604052346106e05761246580380380610019816106e5565b928339810160e0828203126106e0576100318261070a565b60208301519091906001600160401b0381116106e0578161005391850161071e565b60408401519093906001600160401b0381116106e0578261007591830161071e565b60608201519093906001600160401b0381116106e0578361009791840161071e565b608083015190936001600160401b0382116106e0576100b791840161071e565b9160c06100c660a0830161070a565b9101519061271082116106cf57600180546001600160a01b0319166001600160a01b03909216918217905560008290556040805191825260208201929092527f908669f35f6fb3977a956ba70597841fe541d1e8491ca3c025161e258d3bfdb69190a133156106b95760028054336001600160a01b0319821681179092556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a36004805460ff1916600117905560805283516001600160401b03811161041e57600554600181811c911680156106af575b60208210146103fe57601f8111610666575b50602094601f82116001146105ff579481929394956000926105f4575b50508160011b916000199060031b1c1916176005555b82516001600160401b03811161041e57600654600181811c911680156105ea575b60208210146103fe57601f8111610585575b506020601f821160011461051e5781929394600092610513575b50508160011b916000199060031b1c1916176006555b81516001600160401b03811161041e57600754600181811c91168015610509575b60208210146103fe57601f81116104a4575b50602092601f821160011461043f5792819293600092610434575b50508160011b916000199060031b1c1916176007555b80516001600160401b03811161041e57600854600181811c91168015610414575b60208210146103fe57601f8111610399575b50602091601f82116001146103355791819260009261032a575b50508160011b916000199060031b1c1916176008555b604051611cdb908161078a823960805181610b440152f35b0151905038806102fc565b601f198216926008600052806000209160005b85811061038157508360019510610368575b505050811b01600855610312565b015160001960f88460031b161c1916905538808061035a565b91926020600181928685015181550194019201610348565b60086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3601f830160051c810191602084106103f4575b601f0160051c01905b8181106103e857506102e2565b600081556001016103db565b90915081906103d2565b634e487b7160e01b600052602260045260246000fd5b90607f16906102d0565b634e487b7160e01b600052604160045260246000fd5b015190503880610299565b601f198216936007600052806000209160005b86811061048c5750836001959610610473575b505050811b016007556102af565b015160001960f88460031b161c19169055388080610465565b91926020600181928685015181550194019201610452565b60076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f830160051c810191602084106104ff575b601f0160051c01905b8181106104f3575061027e565b600081556001016104e6565b90915081906104dd565b90607f169061026c565b015190503880610235565b601f198216906006600052806000209160005b81811061056d57509583600195969710610554575b505050811b0160065561024b565b015160001960f88460031b161c19169055388080610546565b9192602060018192868b015181550194019201610531565b60066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f830160051c810191602084106105e0575b601f0160051c01905b8181106105d4575061021b565b600081556001016105c7565b90915081906105be565b90607f1690610209565b0151905038806101d2565b601f198216956005600052806000209160005b88811061064e57508360019596979810610635575b505050811b016005556101e8565b015160001960f88460031b161c19169055388080610627565b91926020600181928685015181550194019201610612565b60056000526020600020601f830160051c810191602084106106a5575b601f0160051c01905b81811061069957506101b5565b6000815560010161068c565b9091508190610683565b90607f16906101a3565b631e4fbdf760e01b600052600060045260246000fd5b636dac6a0960e01b60005260046000fd5b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761041e57604052565b51906001600160a01b03821682036106e057565b81601f820112156106e0578051906001600160401b03821161041e5761074d601f8301601f19166020016106e5565b92828452602083830101116106e05760005b82811061077457505060206000918301015290565b8060208092840101518282870101520161075f56fe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146101f7578063058260d7146101f257806306fdde03146101ed578063081812fc146101e8578063095ea7b3146101e357806315ff80a0146101de57806318160ddd146101d957806323b872dd146101d45780632a55205a146101cf5780632f745c59146101ca57806342842e0e146101c557806342966c68146101c05780634f6ccce7146101bb57806355f804b3146101b65780636352211e146101b157806370a08231146101ac578063715018a6146101a757806383a13100146101a257806387491c601461019d5780638c7ea24b146101985780638da5cb5b1461019357806395d89b411461018e5780639fd6db1214610189578063a22cb46514610184578063b88d4fde1461017f578063c87b56dd1461017a578063dc6c34d514610175578063e026f63414610170578063e985e9c51461016b5763f2fde38b1461016657600080fd5b610f86565b610f39565b610e7e565b610e18565b610df9565b610d86565b610d27565b610d04565b610c5b565b610c32565b610b98565b610b73565b610b2e565b610ad1565b610aa2565b610a72565b610945565b610867565b6107f5565b6107bb565b61075b565b610722565b61070e565b6106c4565b610566565b610485565b610425565b610347565b610294565b34610256576020366003190112610256576004356001600160e01b0319811681036102565760209060e01c6040519063780e9d638114906380ac58cd811490635b5e139f8114906301ffc9a7632a55205a821491141717171715158152f35b600080fd5b6001600160a01b0381160361025657565b6040906003190112610256576004356102848161025b565b9060243580151581036102565790565b34610256576102a23661026c565b906102ab611706565b60018060a01b03169081600052600360205260406000209060ff8019835416911515161790557ffeb4923949bd61afe4bcb7aa489d3c1f1cca2165debd87a41f64cd1361c9353f600080a2005b60005b83811061030b5750506000910152565b81810151838201526020016102fb565b6040916020825261033b81518092816020860152602086860191016102f8565b601f01601f1916010190565b3461025657600036600319011261025657604051600060055461036981611014565b808452906001811690811561040157506001146103a1575b61039d83610391818503826108d7565b6040519182918261031b565b0390f35b91905060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0916000905b8082106103e757509091508101602001610391610381565b9192600181602092548385880101520191019092916103cf565b60ff191660208086019190915291151560051b840190910191506103919050610381565b34610256576020366003190112610256576004356000818152673ec412a9852d173d60c11b601c5260209020810101805460601b1561047757600101546040516001600160a01b039091168152602090f35b63ceea21b66000526004601cfd5b60403660031901126102565760043561049d8161025b565b6024356000818152673ec412a9852d173d60c11b3317601c526020902081018101805491926001600160a01b0390811692169081156104775782908233143315171561050f575b600101557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b9050816000526030600c2054156105275782906104e4565b634b6e7f186000526004601cfd5b9181601f840112156102565782359167ffffffffffffffff8311610256576020808501948460051b01011161025657565b346102565760203660031901126102565760043567ffffffffffffffff811161025657610597903690600401610535565b9060ff60045416156106b35733600052600360205260ff60406000205416158061069e575b61068d5760005b8281106105cc57005b60005b6105e76105dd838686611064565b6020810190611086565b9050811015610684576105fe6105dd838686611064565b829192101561067f5761066b6001928260051b013561063b8180600052673ec412a9852d173d60c11b601c5260206000208101015460601b151590565b610671575b61065361064e6009546110d2565b600955565b610666610661868989611064565b6110ed565b6117e3565b016105cf565b61067a8161172f565b610640565b61104e565b506001016105c3565b633e34a41b60e21b60005260046000fd5b506002546001600160a01b03163314156105bc565b63589ed34b60e01b60005260046000fd5b34610256576000366003190112610256576020600b54604051908152f35b6060906003190112610256576004356106fa8161025b565b906024356107078161025b565b9060443590565b61072061071a366106e2565b916110fa565b005b346102565760403660031901126102565761073e602435611203565b604080516001600160a01b03939093168352602083019190915290f35b34610256576040366003190112610256576004356107788161025b565b6024359061078f61078882611376565b831061123c565b60018060a01b0316600052600d6020526040600020906000526020526020604060002054604051908152f35b6107c4366106e2565b6107d181838594956110fa565b823b6107d957005b61072092604051926107ec6020856108d7565b600084526119f8565b346102565760203660031901126102565760043560ff60045416156106b35733600052600360205260ff604060002054161580610852575b61068d5760095460001981019190821161084d576107209160095561172f565b6110bc565b506002546001600160a01b031633141561082d565b3461025657602036600319011261025657600435600b5481106108898161123c565b1561067f57602090600b6000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90154604051908152f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b6108c1565b92919267ffffffffffffffff82116108f95760405191610928601f8201601f1916602001846108d7565b829481845281830111610256578281602093846000960137010152565b346102565760203660031901126102565760043567ffffffffffffffff81116102565736602382011215610256576109879036906024816004013591016108fe565b61098f611706565b805167ffffffffffffffff81116108f9576109b4816109af600754611014565b6112a3565b602091601f82116001146109f4576109e492600091836109e9575b50508160011b916000199060031b1c19161790565b600755005b0151905038806109cf565b6007600052601f198216927fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889160005b858110610a5a57508360019510610a41575b505050811b01600755005b015160001960f88460031b161c19169055388080610a36565b91926020600181928685015181550194019201610a24565b34610256576020366003190112610256576020610a90600435611348565b6040516001600160a01b039091168152f35b34610256576020366003190112610256576020610ac9600435610ac48161025b565b611376565b604051908152f35b3461025657600036600319011261025657610aea611706565b600280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610256576000366003190112610256576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461025657600036600319011261025657610b8c611706565b6004805460ff19169055005b3461025657604036600319011261025657600435610bb58161025b565b602435610bc0611706565b6127108111610c2157600180546001600160a01b0319166001600160a01b0393909316928317905560008190556040805192835260208301919091527f908669f35f6fb3977a956ba70597841fe541d1e8491ca3c025161e258d3bfdb691a1005b636dac6a0960e01b60005260046000fd5b34610256576000366003190112610256576002546040516001600160a01b039091168152602090f35b34610256576000366003190112610256576040516000600654610c7d81611014565b80845290600181169081156104015750600114610ca45761039d83610391818503826108d7565b91905060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000905b808210610cea57509091508101602001610391610381565b919260018160209254838588010152019101909291610cd2565b3461025657600036600319011261025657602060ff600454166040519015158152f35b3461025657610d353661026c565b151581601c52670a5a2e7a0000000060085233600052806030600c205560005260018060a01b0316337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a3005b608036600319011261025657600435610d9e8161025b565b602435610daa8161025b565b6064359160443567ffffffffffffffff841161025657366023850112156102565783600401359267ffffffffffffffff84116102565736602485870101116102565760246107209501926113ab565b346102565760203660031901126102565761039d6103916004356114fc565b346102565760003660031901126102565733600052600360205260ff604060002054161561068d57336000526003602052604060002060ff198154169055337fbc74bff95226a050e21d53e829339d080fc74c0cacda3909936a18acf42d784e600080a2005b346102565760403660031901126102565760043560243567ffffffffffffffff811161025657610eb2903690600401610535565b90610ebb611706565b36819003601e190160005b838110156107205760008160051b84013583811215610f355784019081359167ffffffffffffffff8311610f3557602001908236038213610f3257508291610f2c91610f27610f176001968b6110e0565b600052600a602052604060002090565b611638565b01610ec6565b80fd5b5080fd5b3461025657604036600319011261025657600435610f568161025b565b602435610f628161025b565b601c52670a5a2e7a0000000060085260005260206030600c20546040519015158152f35b3461025657602036600319011261025657600435610fa38161025b565b610fab611706565b6001600160a01b03168015610ffe57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b631e4fbdf760e01b600052600060045260246000fd5b90600182811c92168015611044575b602083101461102e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611023565b634e487b7160e01b600052603260045260246000fd5b919081101561067f5760051b81013590603e1981360301821215610256570190565b903590601e1981360301821215610256570180359067ffffffffffffffff821161025657602001918160051b3603831361025657565b634e487b7160e01b600052601160045260246000fd5b906001820180921161084d57565b9190820180921161084d57565b356110f78161025b565b90565b61110583838361196a565b6000838152673ec412a9852d173d60c11b3317601c52602090208301830180546001600160a01b03938416939283169281168084148102156111ee57508260005281600101805480331485331417156111d6575b6111cc575b50838318189055601c600c20600019815401905581600052601c600c2060018154019063ffffffff82168402156111b757557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b67ea553b3401336cea841560021b526004601cfd5b600090553861115e565b6030600c205461115957634b6e7f186000526004601cfd5b67ceea21b6a1148100901560021b526004601cfd5b906000549182156112335782810292818404149015171561084d576001546001600160a01b031691612710900490565b50600091508190565b1561124357565b60405162461bcd60e51b815260206004820152601f60248201527f455243373231456e756d657261626c653a20494e56414c49445f494e444558006044820152606490fd5b600b5481101561067f57600b60005260206000200190600090565b601f81116112af575050565b60076000526020600020906020601f840160051c830193106112ec575b601f0160051c01905b8181106112e0575050565b600081556001016112d5565b90915081906112cc565b601f821161130357505050565b6000526020600020906020601f840160051c8301931061133e575b601f0160051c01905b818110611332575050565b60008155600101611327565b909150819061131e565b6000818152673ec412a9852d173d60c11b601c5260209020810101546001600160a01b031690811561047757565b801561139d57673ec412a9852d173d60c11b601c5260005263ffffffff601c600c20541690565b638f4eb6046000526004601cfd5b92936113b88383866110fa565b813b6113c6575b5050505050565b6113db946113d59136916108fe565b926119f8565b38808080806113bf565b600754600092916113f582611014565b916001811690811561145c575060011461140d575050565b6007600090815292935090917fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8382106114485750500190565b60018160209254848601520191019061143b565b60ff1916825250811515909102019150565b6008546000929161147e82611014565b916001811690811561145c5750600114611496575050565b6008600090815292935090917ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b8382106114d15750500190565b6001816020925484860152019101906114c4565b906114f8602092828151948592016102f8565b0190565b6000818152673ec412a9852d173d60c11b601c5260209020810181015460601b156116275780600052600a602052611538604060002054611014565b611579576110f761154b61156692611a8d565b61156b604051938492611560602085016113e5565b906114e5565b61146e565b03601f1981018352826108d7565b600052600a60205260406000206040519081600082549261159984611014565b808452936001811690811561160557506001146115be575b506110f7925003826108d7565b90506000929192526020600020906000915b8183106115e95750509060206110f792820101386115b1565b60209193508060019154838588010152019101909183926115d0565b9050602092506110f794915060ff191682840152151560051b820101386115b1565b63677510db60e11b60005260046000fd5b90929167ffffffffffffffff81116108f95761165e816116588454611014565b846112f6565b6000601f821160011461169e57819061168f9394956000926116935750508160011b916000199060031b1c19161790565b9055565b0135905038806109cf565b601f198216946116b384600052602060002090565b91805b8781106116ee5750836001959697106116d4575b505050811b019055565b0135600019600384901b60f8161c191690553880806116ca565b909260206001819286860135815501940191016116b6565b6002546001600160a01b0316330361171a57565b63118cdaa760e01b6000523360045260246000fd5b6117418161173c81611348565b611888565b6000818152673ec412a9852d173d60c11b601c5260209020810181018054906001600160a01b0382169081156104775781600052806001019283548015600117156117d1575b9060009484926117c8575b50189055601c600c20821981540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4565b85905538611792565b906030600c2054156105275790611787565b6117ed828261190a565b60018060a01b031681600052673ec412a9852d173d60c11b601c5260206000208201820180548060601b61187a578217905580600052601c600c2060018154019063ffffffff8216830215611865575560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b67ea553b3401336cea831560021b526004601cfd5b63c991cbb16000526004601cfd5b906001600160a01b0382166118f757600b549181600052600c60205282604060002055600160401b8310156108f9576118e7826118ce8560016118f59701600b55611288565b90919082549060031b91821b91600019901b1916179055565b6118f082611bad565b611ad4565b565b81611905826118f594611ad4565b6118e7565b90600b5481600052600c60205280604060002055600160401b8110156108f957816118ce82600161193e9401600b55611288565b6001600160a01b038216611961576118f5915061195a81611bad565b6000611ad4565b6118f591611b6f565b9091906001600160a01b038116806119d957600b5483600052600c60205280604060002055600160401b8110156108f957836118ce8260016119af9401600b55611288565b6001600160a01b038416806119ce5750506118f592506118f082611bad565b039050611961575050565b6001600160a01b03841681146119af576119f38383611ad4565b6119af565b9060a46020939460405195869463150b7a028652338787015260018060a01b03166040860152606085015260808085015280518091818060a0880152611a79575b505001906000601c8401915af115611a6a575b5163757a42ff60e11b01611a5c57565b63d1a57ed66000526004601cfd5b3d15611a4c573d6000823e3d90fd5b818760c08801920160045afa508038611a39565b90604051600a608082019360a0830160405260008552935b6000190193603082820601855304928315611ac257600a90611aa5565b809350608091030191601f1901918252565b90611ade82611376565b60001981019190821161084d57611b2c816000928352600e60205260408320549460018060a01b03168352600d6020526040832094848103611b3c575b50600052600e602052604060002090565b5560005260205260006040812055565b84845285602052611b68604085205482865287602052806040872055600052600e602052604060002090565b5538611b1b565b90611b7982611376565b9160018060a01b0316600052600d60205260406000208260005260205280604060002055600052600e602052604060002055565b600b5460001981019181831161084d5780600052600c6020528160406000205493101561067f57600b6000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db88201549183101561067f577f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db983018290556000918252600c602052604080832093909355815290812055600b548015611c8f57600019810190600b5482101561067f57600b60008181527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db89092019190915555565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f6e7091d1ba7ab6b89bdd7faccc74451a479ccd961c209a997057cc6392ec76964736f6c634300081c003300000000000000000000000007fe1b2242d376234c46648a1a5df3795cd81ea300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000edfcc1b8d082cd46d13db694b849d7d8151c6d500000000000000000000000000000000000000000000000000000000000001f4000000000000000000000000000000000000000000000000000000000000000f506172746e6572204c7564776967730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b5052544e524c554457494700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

    Deployed Bytecode

    0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146101f7578063058260d7146101f257806306fdde03146101ed578063081812fc146101e8578063095ea7b3146101e357806315ff80a0146101de57806318160ddd146101d957806323b872dd146101d45780632a55205a146101cf5780632f745c59146101ca57806342842e0e146101c557806342966c68146101c05780634f6ccce7146101bb57806355f804b3146101b65780636352211e146101b157806370a08231146101ac578063715018a6146101a757806383a13100146101a257806387491c601461019d5780638c7ea24b146101985780638da5cb5b1461019357806395d89b411461018e5780639fd6db1214610189578063a22cb46514610184578063b88d4fde1461017f578063c87b56dd1461017a578063dc6c34d514610175578063e026f63414610170578063e985e9c51461016b5763f2fde38b1461016657600080fd5b610f86565b610f39565b610e7e565b610e18565b610df9565b610d86565b610d27565b610d04565b610c5b565b610c32565b610b98565b610b73565b610b2e565b610ad1565b610aa2565b610a72565b610945565b610867565b6107f5565b6107bb565b61075b565b610722565b61070e565b6106c4565b610566565b610485565b610425565b610347565b610294565b34610256576020366003190112610256576004356001600160e01b0319811681036102565760209060e01c6040519063780e9d638114906380ac58cd811490635b5e139f8114906301ffc9a7632a55205a821491141717171715158152f35b600080fd5b6001600160a01b0381160361025657565b6040906003190112610256576004356102848161025b565b9060243580151581036102565790565b34610256576102a23661026c565b906102ab611706565b60018060a01b03169081600052600360205260406000209060ff8019835416911515161790557ffeb4923949bd61afe4bcb7aa489d3c1f1cca2165debd87a41f64cd1361c9353f600080a2005b60005b83811061030b5750506000910152565b81810151838201526020016102fb565b6040916020825261033b81518092816020860152602086860191016102f8565b601f01601f1916010190565b3461025657600036600319011261025657604051600060055461036981611014565b808452906001811690811561040157506001146103a1575b61039d83610391818503826108d7565b6040519182918261031b565b0390f35b91905060056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0916000905b8082106103e757509091508101602001610391610381565b9192600181602092548385880101520191019092916103cf565b60ff191660208086019190915291151560051b840190910191506103919050610381565b34610256576020366003190112610256576004356000818152673ec412a9852d173d60c11b601c5260209020810101805460601b1561047757600101546040516001600160a01b039091168152602090f35b63ceea21b66000526004601cfd5b60403660031901126102565760043561049d8161025b565b6024356000818152673ec412a9852d173d60c11b3317601c526020902081018101805491926001600160a01b0390811692169081156104775782908233143315171561050f575b600101557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b9050816000526030600c2054156105275782906104e4565b634b6e7f186000526004601cfd5b9181601f840112156102565782359167ffffffffffffffff8311610256576020808501948460051b01011161025657565b346102565760203660031901126102565760043567ffffffffffffffff811161025657610597903690600401610535565b9060ff60045416156106b35733600052600360205260ff60406000205416158061069e575b61068d5760005b8281106105cc57005b60005b6105e76105dd838686611064565b6020810190611086565b9050811015610684576105fe6105dd838686611064565b829192101561067f5761066b6001928260051b013561063b8180600052673ec412a9852d173d60c11b601c5260206000208101015460601b151590565b610671575b61065361064e6009546110d2565b600955565b610666610661868989611064565b6110ed565b6117e3565b016105cf565b61067a8161172f565b610640565b61104e565b506001016105c3565b633e34a41b60e21b60005260046000fd5b506002546001600160a01b03163314156105bc565b63589ed34b60e01b60005260046000fd5b34610256576000366003190112610256576020600b54604051908152f35b6060906003190112610256576004356106fa8161025b565b906024356107078161025b565b9060443590565b61072061071a366106e2565b916110fa565b005b346102565760403660031901126102565761073e602435611203565b604080516001600160a01b03939093168352602083019190915290f35b34610256576040366003190112610256576004356107788161025b565b6024359061078f61078882611376565b831061123c565b60018060a01b0316600052600d6020526040600020906000526020526020604060002054604051908152f35b6107c4366106e2565b6107d181838594956110fa565b823b6107d957005b61072092604051926107ec6020856108d7565b600084526119f8565b346102565760203660031901126102565760043560ff60045416156106b35733600052600360205260ff604060002054161580610852575b61068d5760095460001981019190821161084d576107209160095561172f565b6110bc565b506002546001600160a01b031633141561082d565b3461025657602036600319011261025657600435600b5481106108898161123c565b1561067f57602090600b6000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90154604051908152f35b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176108f957604052565b6108c1565b92919267ffffffffffffffff82116108f95760405191610928601f8201601f1916602001846108d7565b829481845281830111610256578281602093846000960137010152565b346102565760203660031901126102565760043567ffffffffffffffff81116102565736602382011215610256576109879036906024816004013591016108fe565b61098f611706565b805167ffffffffffffffff81116108f9576109b4816109af600754611014565b6112a3565b602091601f82116001146109f4576109e492600091836109e9575b50508160011b916000199060031b1c19161790565b600755005b0151905038806109cf565b6007600052601f198216927fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889160005b858110610a5a57508360019510610a41575b505050811b01600755005b015160001960f88460031b161c19169055388080610a36565b91926020600181928685015181550194019201610a24565b34610256576020366003190112610256576020610a90600435611348565b6040516001600160a01b039091168152f35b34610256576020366003190112610256576020610ac9600435610ac48161025b565b611376565b604051908152f35b3461025657600036600319011261025657610aea611706565b600280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610256576000366003190112610256576040517f00000000000000000000000007fe1b2242d376234c46648a1a5df3795cd81ea36001600160a01b03168152602090f35b3461025657600036600319011261025657610b8c611706565b6004805460ff19169055005b3461025657604036600319011261025657600435610bb58161025b565b602435610bc0611706565b6127108111610c2157600180546001600160a01b0319166001600160a01b0393909316928317905560008190556040805192835260208301919091527f908669f35f6fb3977a956ba70597841fe541d1e8491ca3c025161e258d3bfdb691a1005b636dac6a0960e01b60005260046000fd5b34610256576000366003190112610256576002546040516001600160a01b039091168152602090f35b34610256576000366003190112610256576040516000600654610c7d81611014565b80845290600181169081156104015750600114610ca45761039d83610391818503826108d7565b91905060066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f916000905b808210610cea57509091508101602001610391610381565b919260018160209254838588010152019101909291610cd2565b3461025657600036600319011261025657602060ff600454166040519015158152f35b3461025657610d353661026c565b151581601c52670a5a2e7a0000000060085233600052806030600c205560005260018060a01b0316337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206000a3005b608036600319011261025657600435610d9e8161025b565b602435610daa8161025b565b6064359160443567ffffffffffffffff841161025657366023850112156102565783600401359267ffffffffffffffff84116102565736602485870101116102565760246107209501926113ab565b346102565760203660031901126102565761039d6103916004356114fc565b346102565760003660031901126102565733600052600360205260ff604060002054161561068d57336000526003602052604060002060ff198154169055337fbc74bff95226a050e21d53e829339d080fc74c0cacda3909936a18acf42d784e600080a2005b346102565760403660031901126102565760043560243567ffffffffffffffff811161025657610eb2903690600401610535565b90610ebb611706565b36819003601e190160005b838110156107205760008160051b84013583811215610f355784019081359167ffffffffffffffff8311610f3557602001908236038213610f3257508291610f2c91610f27610f176001968b6110e0565b600052600a602052604060002090565b611638565b01610ec6565b80fd5b5080fd5b3461025657604036600319011261025657600435610f568161025b565b602435610f628161025b565b601c52670a5a2e7a0000000060085260005260206030600c20546040519015158152f35b3461025657602036600319011261025657600435610fa38161025b565b610fab611706565b6001600160a01b03168015610ffe57600280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b631e4fbdf760e01b600052600060045260246000fd5b90600182811c92168015611044575b602083101461102e57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611023565b634e487b7160e01b600052603260045260246000fd5b919081101561067f5760051b81013590603e1981360301821215610256570190565b903590601e1981360301821215610256570180359067ffffffffffffffff821161025657602001918160051b3603831361025657565b634e487b7160e01b600052601160045260246000fd5b906001820180921161084d57565b9190820180921161084d57565b356110f78161025b565b90565b61110583838361196a565b6000838152673ec412a9852d173d60c11b3317601c52602090208301830180546001600160a01b03938416939283169281168084148102156111ee57508260005281600101805480331485331417156111d6575b6111cc575b50838318189055601c600c20600019815401905581600052601c600c2060018154019063ffffffff82168402156111b757557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b67ea553b3401336cea841560021b526004601cfd5b600090553861115e565b6030600c205461115957634b6e7f186000526004601cfd5b67ceea21b6a1148100901560021b526004601cfd5b906000549182156112335782810292818404149015171561084d576001546001600160a01b031691612710900490565b50600091508190565b1561124357565b60405162461bcd60e51b815260206004820152601f60248201527f455243373231456e756d657261626c653a20494e56414c49445f494e444558006044820152606490fd5b600b5481101561067f57600b60005260206000200190600090565b601f81116112af575050565b60076000526020600020906020601f840160051c830193106112ec575b601f0160051c01905b8181106112e0575050565b600081556001016112d5565b90915081906112cc565b601f821161130357505050565b6000526020600020906020601f840160051c8301931061133e575b601f0160051c01905b818110611332575050565b60008155600101611327565b909150819061131e565b6000818152673ec412a9852d173d60c11b601c5260209020810101546001600160a01b031690811561047757565b801561139d57673ec412a9852d173d60c11b601c5260005263ffffffff601c600c20541690565b638f4eb6046000526004601cfd5b92936113b88383866110fa565b813b6113c6575b5050505050565b6113db946113d59136916108fe565b926119f8565b38808080806113bf565b600754600092916113f582611014565b916001811690811561145c575060011461140d575050565b6007600090815292935090917fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8382106114485750500190565b60018160209254848601520191019061143b565b60ff1916825250811515909102019150565b6008546000929161147e82611014565b916001811690811561145c5750600114611496575050565b6008600090815292935090917ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b8382106114d15750500190565b6001816020925484860152019101906114c4565b906114f8602092828151948592016102f8565b0190565b6000818152673ec412a9852d173d60c11b601c5260209020810181015460601b156116275780600052600a602052611538604060002054611014565b611579576110f761154b61156692611a8d565b61156b604051938492611560602085016113e5565b906114e5565b61146e565b03601f1981018352826108d7565b600052600a60205260406000206040519081600082549261159984611014565b808452936001811690811561160557506001146115be575b506110f7925003826108d7565b90506000929192526020600020906000915b8183106115e95750509060206110f792820101386115b1565b60209193508060019154838588010152019101909183926115d0565b9050602092506110f794915060ff191682840152151560051b820101386115b1565b63677510db60e11b60005260046000fd5b90929167ffffffffffffffff81116108f95761165e816116588454611014565b846112f6565b6000601f821160011461169e57819061168f9394956000926116935750508160011b916000199060031b1c19161790565b9055565b0135905038806109cf565b601f198216946116b384600052602060002090565b91805b8781106116ee5750836001959697106116d4575b505050811b019055565b0135600019600384901b60f8161c191690553880806116ca565b909260206001819286860135815501940191016116b6565b6002546001600160a01b0316330361171a57565b63118cdaa760e01b6000523360045260246000fd5b6117418161173c81611348565b611888565b6000818152673ec412a9852d173d60c11b601c5260209020810181018054906001600160a01b0382169081156104775781600052806001019283548015600117156117d1575b9060009484926117c8575b50189055601c600c20821981540190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a4565b85905538611792565b906030600c2054156105275790611787565b6117ed828261190a565b60018060a01b031681600052673ec412a9852d173d60c11b601c5260206000208201820180548060601b61187a578217905580600052601c600c2060018154019063ffffffff8216830215611865575560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b67ea553b3401336cea831560021b526004601cfd5b63c991cbb16000526004601cfd5b906001600160a01b0382166118f757600b549181600052600c60205282604060002055600160401b8310156108f9576118e7826118ce8560016118f59701600b55611288565b90919082549060031b91821b91600019901b1916179055565b6118f082611bad565b611ad4565b565b81611905826118f594611ad4565b6118e7565b90600b5481600052600c60205280604060002055600160401b8110156108f957816118ce82600161193e9401600b55611288565b6001600160a01b038216611961576118f5915061195a81611bad565b6000611ad4565b6118f591611b6f565b9091906001600160a01b038116806119d957600b5483600052600c60205280604060002055600160401b8110156108f957836118ce8260016119af9401600b55611288565b6001600160a01b038416806119ce5750506118f592506118f082611bad565b039050611961575050565b6001600160a01b03841681146119af576119f38383611ad4565b6119af565b9060a46020939460405195869463150b7a028652338787015260018060a01b03166040860152606085015260808085015280518091818060a0880152611a79575b505001906000601c8401915af115611a6a575b5163757a42ff60e11b01611a5c57565b63d1a57ed66000526004601cfd5b3d15611a4c573d6000823e3d90fd5b818760c08801920160045afa508038611a39565b90604051600a608082019360a0830160405260008552935b6000190193603082820601855304928315611ac257600a90611aa5565b809350608091030191601f1901918252565b90611ade82611376565b60001981019190821161084d57611b2c816000928352600e60205260408320549460018060a01b03168352600d6020526040832094848103611b3c575b50600052600e602052604060002090565b5560005260205260006040812055565b84845285602052611b68604085205482865287602052806040872055600052600e602052604060002090565b5538611b1b565b90611b7982611376565b9160018060a01b0316600052600d60205260406000208260005260205280604060002055600052600e602052604060002055565b600b5460001981019181831161084d5780600052600c6020528160406000205493101561067f57600b6000527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db88201549183101561067f577f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db983018290556000918252600c602052604080832093909355815290812055600b548015611c8f57600019810190600b5482101561067f57600b60008181527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db89092019190915555565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220f6e7091d1ba7ab6b89bdd7faccc74451a479ccd961c209a997057cc6392ec76964736f6c634300081c0033

    [ 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.