POL Price: $0.37911 (+1.59%)
Gas: 36 GWei
 

Overview

Max Total Supply

15 BigBPosters

Holders

830

Total Transfers

-

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

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

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BigBPosters

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-11-17
*/

// SPDX-License-Identifier:UNLICENSED
pragma solidity ^0.8.9;

library Strings {

    function toString(uint256 value) internal pure returns (string memory) {

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

library EnumerableMap {

    struct MapEntry {
        bytes32 _key;
        bytes32 _value;
    }

    struct Map {
        MapEntry[] _entries;

        mapping (bytes32 => uint256) _indexes;
    }

    function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {
        uint256 keyIndex = map._indexes[key];

        if (keyIndex == 0) { // Equivalent to !contains(map, key)
            map._entries.push(MapEntry({ _key: key, _value: value }));
            map._indexes[key] = map._entries.length;
            return true;
        } else {
            map._entries[keyIndex - 1]._value = value;
            return false;
        }
    }

    function _remove(Map storage map, bytes32 key) private returns (bool) {
        uint256 keyIndex = map._indexes[key];

        if (keyIndex != 0) { // Equivalent to contains(map, key)
            uint256 toDeleteIndex = keyIndex - 1;
            uint256 lastIndex = map._entries.length - 1;
            MapEntry storage lastEntry = map._entries[lastIndex];

            map._entries[toDeleteIndex] = lastEntry;
            map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based

            map._entries.pop();

            delete map._indexes[key];

            return true;
        } else {
            return false;
        }
    }

    function _contains(Map storage map, bytes32 key) private view returns (bool) {
        return map._indexes[key] != 0;
    }

    function _length(Map storage map) private view returns (uint256) {
        return map._entries.length;
    }

    function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {
        require(map._entries.length > index, "EnumerableMap: index out of bounds");

        MapEntry storage entry = map._entries[index];
        return (entry._key, entry._value);
    }

    function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {
        uint256 keyIndex = map._indexes[key];
        if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)
        return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based
    }

    function _get(Map storage map, bytes32 key) private view returns (bytes32) {
        uint256 keyIndex = map._indexes[key];
        require(keyIndex != 0, "EnumerableMap: nonexistent key"); // Equivalent to contains(map, key)
        return map._entries[keyIndex - 1]._value; // All indexes are 1-based
    }

    function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {
        uint256 keyIndex = map._indexes[key];
        require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)
        return map._entries[keyIndex - 1]._value; // All indexes are 1-based
    }

    struct UintToAddressMap {
        Map _inner;
    }

    function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {
        return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));
    }

    function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {
        return _remove(map._inner, bytes32(key));
    }

    function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {
        return _contains(map._inner, bytes32(key));
    }

    function length(UintToAddressMap storage map) internal view returns (uint256) {
        return _length(map._inner);
    }

    function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {
        (bytes32 key, bytes32 value) = _at(map._inner, index);
        return (uint256(key), address(uint160(uint256(value))));
    }

    function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {
        (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));
        return (success, address(uint160(uint256(value))));
    }

    function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {
        return address(uint160(uint256(_get(map._inner, bytes32(key)))));
    }

    function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {
        return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));
    }
}

library EnumerableSet {
    struct Set {
        bytes32[] _values;
        mapping (bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastvalue = set._values[lastIndex];

            set._values[toDeleteIndex] = lastvalue;
            set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }

    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }

    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }

    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }

    struct Bytes32Set {
        Set _inner;
    }

    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _add(set._inner, value);
    }

    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {
        return _remove(set._inner, value);
    }

    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {
        return _contains(set._inner, value);
    }

    function length(Bytes32Set storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {
        return _at(set._inner, index);
    }

    struct AddressSet {
        Set _inner;
    }

    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(uint160(value))));
    }

    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(uint160(value))));
    }

    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(uint160(value))));
    }

    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint160(uint256(_at(set._inner, index))));
    }

    struct UintSet {
        Set _inner;
    }

    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

interface IERC165 {

    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */ 

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

interface IERC1155 is IERC165 {

    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);
    event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values);
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);
    event URI(string value, uint256 indexed id);
    event tokenBaseURI(string value);


    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function AssignedNFTs() external view returns (uint256);
    function balanceOf(address account, uint256 id) external view returns (uint256);
    function tokenURI(uint256 tokenId) external view returns (string memory);
    function setApprovalForAll(address operator, bool approved) external;
    function isApprovedForAll(address account, address operator) external view returns (bool);
    function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;
}

interface IERC1155MetadataURI is IERC1155 {
}

interface IERC1155Receiver is IERC165 {
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    )
        external
        returns(bytes4);

    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    )
        external
        returns(bytes4);
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract ERC165 is IERC165 {
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor () {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) public view override returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal virtual {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
*/

library SafeMath {

    /**
    * @dev Adds two numbers, throws on overflow.
    */

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    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");
    }

    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");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
    using SafeMath for uint256;
    using Address for address;
    using Strings for uint256;
    using EnumerableMap for EnumerableMap.UintToAddressMap;
    
    mapping (uint256 => mapping(address => uint256)) private _balances;

    // Mapping from account to operator approvals
    mapping (address => mapping(address => bool)) private _operatorApprovals;
    
    string public tokenURIPrefix;

    uint256 public totalSupply;

    // Optional mapping for token URIs
    
   mapping(uint256 => string) private _tokenURIs;

    EnumerableMap.UintToAddressMap private _tokenOwners;

    string private _name;

    string private _symbol;

    uint256 public royaltyFee;

    bytes4 private constant _INTERFACE_ID_ERC1155 = 0xd9b67a26;

    bytes4 private constant _INTERFACE_ID_ERC1155_METADATA_URI = 0x0e89341c;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        totalSupply = 15;
        royaltyFee = 5;

        _registerInterface(_INTERFACE_ID_ERC1155);
        _registerInterface(_INTERFACE_ID_ERC1155_METADATA_URI);
    }

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

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

    /**
        * @dev Internal function to set the token URI for a given token.
        * Reverts if the token ID does not exist.
        * @param tokenId uint256 ID of the token to set its URI
        * @param uri string URI to assign
    */    

    function _setTokenURI(uint256 tokenId, string memory uri) internal {
        require(_exists(tokenId), "ERC1155Metadata: URI query for nonexistent token");
        _tokenURIs[tokenId] = uri;
    }


    function AssignedNFTs() public view virtual override returns (uint256) {
        return _tokenOwners.length();
    }

    function _setTokenURIPrefix(string memory _tokenURIPrefix) internal {
        tokenURIPrefix = _tokenURIPrefix;
        emit tokenBaseURI(_tokenURIPrefix);
    }

    /**
        * @dev Returns an URI for a given token ID.
        * Throws if the token ID does not exist. May return an empty string.
        * @param tokenId uint256 ID of the token to query
    */    

    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC1155Metadata: URI query for nonexistent token");
        
        string memory base = tokenURIPrefix;

        string memory _tokenURI = _tokenURIs[tokenId];

        if (bytes(base).length == 0) {
            return _tokenURI;
        }
        if (bytes(_tokenURI).length > 0) {
            return string(abi.encodePacked(base, _tokenURI));
        }
        return string(abi.encodePacked(base, tokenId.toString()));
    }

    function _exists(uint256 tokenId) internal view virtual returns (bool) {
        return _tokenOwners.contains(tokenId);
    }

    /**
        @notice Get the balance of an account's Tokens.
        @param account  The address of the token holder
        @param tokenId     ID of the Token
        @return        The owner's balance of the Token type requested
     */

    function balanceOf(address account, uint256 tokenId) public view override returns (uint256) {
        require(_exists(tokenId), "ERC1155Metadata: balance query for nonexistent token");
        require(account != address(0), "ERC1155: balance query for the zero address");
        return _balances[tokenId][account];
    }

    /**
        @notice Enable or disable approval for a third party ("operator") to manage all of the caller's tokens.
        @dev MUST emit the ApprovalForAll event on success.
        @param operator  Address to add to the set of authorized operators
        @param approved  True if the operator is approved, false to revoke approval
    */

    function setApprovalForAll(address operator, bool approved) public virtual override {
        require(_msgSender() != operator, "ERC1155: setting approval status for self");

        _operatorApprovals[_msgSender()][operator] = approved;
        emit ApprovalForAll(_msgSender(), operator, approved);
    }

    /**
        @notice Queries the approval status of an operator for a given owner.
        @param account     The owner of the Tokens
        @param operator  Address of authorized operator
        @return           True if the operator is approved, false if not
    */

    function isApprovedForAll(address account, address operator) public view override returns (bool) {
        return _operatorApprovals[account][operator];
    }

    /**
        @notice Transfers `_value` amount of an `_id` from the `_from` address to the `_to` address specified (with safety call).
        @dev Caller must be approved to manage the tokens being transferred out of the `_from` account (see "Approval" section of the standard).
        MUST revert if `_to` is the zero address.
        MUST revert if balance of holder for token `_id` is lower than the `_value` sent.
        MUST revert on any other error.
        MUST emit the `TransferSingle` event to reflect the balance change (see "Safe Transfer Rules" section of the standard).
        After the above conditions are met, this function MUST check if `_to` is a smart contract (e.g. code size > 0). If so, it MUST call `onERC1155Received` on `_to` and act appropriately (see "Safe Transfer Rules" section of the standard).
        @param from    Source address
        @param to      Target address
        @param tokenId      ID of the token type
        @param amount   Transfer amount
        @param data    Additional data with no specified format, MUST be sent unaltered in call to `onERC1155Received` on `_to`
    */    

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        uint256 amount,
        bytes memory data
    )
        public
        virtual
        override
    {
        require(to != address(0), "ERC1155: transfer to the zero address");
        require(
            from == _msgSender() || isApprovedForAll(from, _msgSender()),
            "ERC1155: caller is not owner nor approved"
        );

        address operator = _msgSender();

        _beforeTokenTransfer(operator, from, to, _asSingletonArray(tokenId), _asSingletonArray(amount), data);

        _balances[tokenId][from] = _balances[tokenId][from].sub(amount, "ERC1155: insufficient balance for transfer");
        _balances[tokenId][to] = _balances[tokenId][to].add(amount);

        emit TransferSingle(operator, from, to, tokenId, amount);

        _doSafeTransferAcceptanceCheck(operator, from, to, tokenId, amount, data);
    }



    /**
        * @dev Internal function to mint a new token.
        * Reverts if the given token ID already exists.
        * @param tokenId uint256 ID of the token to be minted
        * @param _supply uint256 supply of the token to be minted
        * @param _uri string memory URI of the token to be minte
    */

    function _mint(address from, uint256 tokenId, uint256 _supply, string memory _uri) internal {
        
        require(!_exists(tokenId), "ERC1155: token already minted");
        require(from != address(0),"ERC1155: address should not be Zero");
        require(_supply != 0, "Supply should be positive");
        require(bytes(_uri).length > 0, "uri should be set");

        _operatorApprovals[from][msg.sender] = true;
        _tokenOwners.set(tokenId, from);
        _balances[tokenId][from] = _supply;
        _setTokenURI(tokenId, _uri);
        emit ApprovalForAll(from, msg.sender, true);

        emit TransferSingle(from, address(0x0), from, tokenId, _supply);
        emit URI(_uri, tokenId);
    }

    /**
        * @dev Internal function to burn a specific token.
        * Reverts if the token does not exist.
        * Deprecated, use {ERC1155-_burn} instead.
        * @param account owner of the token to burn
        * @param tokenId uint256 ID of the token being burned
        * @param amount uint256 amount of supply being burned
    */    

    function _burn(address account, uint256 tokenId, uint256 amount) internal virtual {
        require(_exists(tokenId), "ERC1155Metadata: burn query for nonexistent token");
        require(account != address(0), "ERC1155: burn from the zero address");

        address operator = _msgSender();

        _beforeTokenTransfer(operator, account, address(0), _asSingletonArray(tokenId), _asSingletonArray(amount), "");

        _balances[tokenId][account] = _balances[tokenId][account].sub(
            amount,
            "ERC_holderTokens1155: burn amount exceeds balance"
        );


        emit TransferSingle(operator, account, address(0), tokenId, amount);
    }


    function _beforeTokenTransfer(
        address operator,
        address from,
        address to,
        uint256[] memory tokenIds,
        uint256[] memory amounts,
        bytes memory data
    )
        internal virtual
    { }

    function _doSafeTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256 tokenId,
        uint256 amount,
        bytes memory data
    )
        private
    {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155Received(operator, from, tokenId, amount, data) returns (bytes4 response) {
                if (response != IERC1155Receiver(to).onERC1155Received.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _doSafeBatchTransferAcceptanceCheck(
        address operator,
        address from,
        address to,
        uint256[] memory tokenIds,
        uint256[] memory amounts,
        bytes memory data
    )
        private
    {
        if (to.isContract()) {
            try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, tokenIds, amounts, data) returns (bytes4 response) {
                if (response != IERC1155Receiver(to).onERC1155BatchReceived.selector) {
                    revert("ERC1155: ERC1155Receiver rejected tokens");
                }
            } catch Error(string memory reason) {
                revert(reason);
            } catch {
                revert("ERC1155: transfer to non ERC1155Receiver implementer");
            }
        }
    }

    function _asSingletonArray(uint256 element) private pure returns (uint256[] memory) {
        uint256[] memory array = new uint256[](1);
        array[0] = element;

        return array;
    }
}

interface IBaseNFT1155 {

    function mint(address creator, string memory uri, uint256 supply) external returns(uint256);

    function setRoyaltyFee(uint256 _royalty) external returns(bool);

}

contract BigBPosters is ERC1155 {

    address public owner;

    address public operator;

    uint256 public tokenCount;


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

    event OperatorChanged(address indexed operator, address indexed _Operator);

    constructor (string memory name, string memory symbol, string memory tokenURIPrefix, address _operator) ERC1155 (name, symbol) {
        owner = msg.sender;
        tokenCount = 1;
        _setTokenURIPrefix(tokenURIPrefix);
        setOperator(_operator);

    }

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

    /** @dev change the Ownership from current owner to newOwner address
        @param newOwner : newOwner address */    

    function ownerTransfership(address newOwner) public onlyOwner returns(bool) {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        return true;
    }

    function setOperator(address _operator) public onlyOwner returns(bool) {
        require(_operator!= address(0),"Operator: operator is the Zero address");
        emit OperatorChanged(operator, _operator);
        operator = _operator;
        return true;
    }

    function mint(address creator, string memory uri, uint256 supply)  public returns(uint256){
        require(msg.sender == operator,"ERC1155: caller doesn't have operator Role");
        require(tokenCount <= totalSupply,"ERC1555Mint: Minting is not available");
        require(supply <= 222,"ERC1155: supply must less than or equal to 222");
        
        if( tokenCount == 15){
            supply = 444;
        }

        uint256 tokenId = tokenCount;
        _mint(creator, tokenId, supply, uri);
        tokenCount += 1;
        return tokenId;
    }

    function setRoyaltyFee(uint256 _royalty) public returns(bool) {
        require(msg.sender == operator,"ERC721: caller doesn't operator role");
        royaltyFee = _royalty;
        return true;

    }

    function setBaseURI(string memory _baseURI) public onlyOwner {
         _setTokenURIPrefix(_baseURI);
    }

    function burn(uint256 tokenId, uint256 supply) public {
        _burn(msg.sender, tokenId, supply);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenURIPrefix","type":"string"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"_Operator","type":"address"}],"name":"OperatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"tokenBaseURI","type":"event"},{"inputs":[],"name":"AssignedNFTs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"uint256","name":"supply","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","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":"address","name":"newOwner","type":"address"}],"name":"ownerTransfership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"name":"setOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_royalty","type":"uint256"}],"name":"setRoyaltyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[],"name":"tokenCount","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":"tokenURIPrefix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b506040516200243f3803806200243f833981016040819052620000349162000458565b8383620000486301ffc9a760e01b620000dc565b81516200005d906008906020850190620002d8565b50805162000073906009906020840190620002d8565b50600f6004556005600a5562000090636cdb3d1360e11b620000dc565b620000a26303a24d0760e21b620000dc565b5050600b80546001600160a01b031916331790556001600d55620000c68262000161565b620000d181620001b3565b50505050506200057d565b6001600160e01b031980821614156200013c5760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b0319166000908152602081905260409020805460ff19166001179055565b805162000176906003906020840190620002d8565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc30681604051620001a891906200050b565b60405180910390a150565b600b546000906001600160a01b03163314620002125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000133565b6001600160a01b038216620002795760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b606482015260840162000133565b600c546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600c80546001600160a01b0383166001600160a01b03199091161790556001919050565b828054620002e69062000540565b90600052602060002090601f0160209004810192826200030a576000855562000355565b82601f106200032557805160ff191683800117855562000355565b8280016001018555821562000355579182015b828111156200035557825182559160200191906001019062000338565b506200036392915062000367565b5090565b5b8082111562000363576000815560010162000368565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003b157818101518382015260200162000397565b83811115620003c1576000848401525b50505050565b600082601f830112620003d957600080fd5b81516001600160401b0380821115620003f657620003f66200037e565b604051601f8301601f19908116603f011681019082821181831017156200042157620004216200037e565b816040528381528660208588010111156200043b57600080fd5b6200044e84602083016020890162000394565b9695505050505050565b600080600080608085870312156200046f57600080fd5b84516001600160401b03808211156200048757600080fd5b6200049588838901620003c7565b95506020870151915080821115620004ac57600080fd5b620004ba88838901620003c7565b94506040870151915080821115620004d157600080fd5b50620004e087828801620003c7565b606087015190935090506001600160a01b03811681146200050057600080fd5b939692955090935050565b60208152600082518060208401526200052c81604085016020870162000394565b601f01601f19169190910160400192915050565b600181811c908216806200055557607f821691505b602082108114156200057757634e487b7160e01b600052602260045260246000fd5b50919050565b611eb2806200058d6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806395d89b41116100b8578063b8997a971161007c578063b8997a9714610287578063ba7aef4314610290578063c0ac9983146102a3578063c87b56dd146102ab578063e985e9c5146102be578063f242432a146102fa57600080fd5b806395d89b411461023d5780639f181b5e14610245578063a22cb4651461024e578063b390c0ab14610261578063b3ab15fb1461027457600080fd5b806355f804b3116100ff57806355f804b3146101cf578063570ca735146101e45780636fdc202f1461020f57806388f862e3146102225780638da5cb5b1461022a57600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806306fdde031461019e57806318160ddd146101b35780633e4086e5146101bc575b600080fd5b61014e6101493660046117fb565b61030d565b6040519081526020015b60405180910390f35b61018e61016f36600461183b565b6001600160e01b03191660009081526020819052604090205460ff1690565b6040519015158152602001610158565b6101a6610418565b60405161015891906118b4565b61014e60045481565b61018e6101ca3660046118c7565b6104aa565b6101e26101dd3660046119a1565b61051c565b005b600c546101f7906001600160a01b031681565b6040516001600160a01b039091168152602001610158565b61018e61021d3660046119d6565b610552565b61014e610642565b600b546101f7906001600160a01b031681565b6101a6610653565b61014e600d5481565b6101e261025c3660046119f1565b610662565b6101e261026f366004611a2d565b610739565b61018e6102823660046119d6565b610748565b61014e600a5481565b61014e61029e366004611a4f565b610839565b6101a66109b6565b6101a66102b93660046118c7565b610a44565b61018e6102cc366004611aa6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101e2610308366004611ad9565b610bf8565b600061031882610df1565b6103865760405162461bcd60e51b815260206004820152603460248201527f455243313135354d657461646174613a2062616c616e6365207175657279206660448201527337b9103737b732bc34b9ba32b73a103a37b5b2b760611b60648201526084015b60405180910390fd5b6001600160a01b0383166103f05760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b606482015260840161037d565b5060009081526001602090815260408083206001600160a01b03949094168352929052205490565b60606008805461042790611b5f565b80601f016020809104026020016040519081016040528092919081815260200182805461045390611b5f565b80156104a05780601f10610475576101008083540402835291602001916104a0565b820191906000526020600020905b81548152906001019060200180831161048357829003601f168201915b5050505050905090565b600c546000906001600160a01b031633146105135760405162461bcd60e51b8152602060048201526024808201527f4552433732313a2063616c6c657220646f65736e2774206f70657261746f7220604482015263726f6c6560e01b606482015260840161037d565b50600a55600190565b600b546001600160a01b031633146105465760405162461bcd60e51b815260040161037d90611b9a565b61054f81610e04565b50565b600b546000906001600160a01b0316331461057f5760405162461bcd60e51b815260040161037d90611b9a565b6001600160a01b0382166105e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161037d565b600b546040516001600160a01b038085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350600b80546001600160a01b0319166001600160a01b03831617905560015b919050565b600061064e6006610e52565b905090565b60606009805461042790611b5f565b336001600160a01b03831614156106cd5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161037d565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610744338383610e5c565b5050565b600b546000906001600160a01b031633146107755760405162461bcd60e51b815260040161037d90611b9a565b6001600160a01b0382166107da5760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b606482015260840161037d565b600c546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600c80546001600160a01b0383166001600160a01b03199091161790556001919050565b600c546000906001600160a01b031633146108a95760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c657220646f65736e27742068617665206f70656044820152697261746f7220526f6c6560b01b606482015260840161037d565b600454600d54111561090b5760405162461bcd60e51b815260206004820152602560248201527f455243313535354d696e743a204d696e74696e67206973206e6f7420617661696044820152646c61626c6560d81b606482015260840161037d565b60de8211156109735760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a20737570706c79206d757374206c657373207468616e206f60448201526d391032b8bab0b6103a379019191960911b606482015260840161037d565b600d54600f1415610984576101bc91505b600d546109938582858761100e565b6001600d60008282546109a69190611be5565b90915550909150505b9392505050565b600380546109c390611b5f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90611b5f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b505050505081565b6060610a4f82610df1565b610a6b5760405162461bcd60e51b815260040161037d90611bfd565b600060038054610a7a90611b5f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690611b5f565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b505050505090506000600560008581526020019081526020016000208054610b1a90611b5f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4690611b5f565b8015610b935780601f10610b6857610100808354040283529160200191610b93565b820191906000526020600020905b815481529060010190602001808311610b7657829003601f168201915b50505050509050815160001415610bab579392505050565b805115610bdd578181604051602001610bc5929190611c4d565b60405160208183030381529060405292505050919050565b81610be78561128a565b604051602001610bc5929190611c4d565b6001600160a01b038416610c5c5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161037d565b6001600160a01b038516331480610c785750610c7885336102cc565b610cd65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161037d565b33610cf6818787610ce6886113a1565b610cef886113a1565b5050505050565b610d3d836040518060600160405280602a8152602001611e22602a913960008781526001602090815260408083206001600160a01b038d16845290915290205491906113ec565b60008581526001602090815260408083206001600160a01b038b81168552925280832093909355871681522054610d749084611426565b60008581526001602090815260408083206001600160a01b038a811680865291845293829020949094558051888152918201879052898316928516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610de9818787878787611485565b505050505050565b6000610dfe60068361162b565b92915050565b8051610e1790600390602084019061174b565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc30681604051610e4791906118b4565b60405180910390a150565b6000610dfe825490565b610e6582610df1565b610ecb5760405162461bcd60e51b815260206004820152603160248201527f455243313135354d657461646174613a206275726e20717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b606482015260840161037d565b6001600160a01b038316610f2d5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161037d565b33610f5d81856000610f3e876113a1565b610f47876113a1565b5050604080516020810190915260009052505050565b610fa482604051806060016040528060318152602001611e4c6031913960008681526001602090815260408083206001600160a01b038b16845290915290205491906113ec565b60008481526001602090815260408083206001600160a01b0389811680865291845282852095909555815188815292830187905292938516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b61101783610df1565b156110645760405162461bcd60e51b815260206004820152601d60248201527f455243313135353a20746f6b656e20616c7265616479206d696e746564000000604482015260640161037d565b6001600160a01b0384166110c65760405162461bcd60e51b815260206004820152602360248201527f455243313135353a20616464726573732073686f756c64206e6f74206265205a60448201526265726f60e81b606482015260840161037d565b816111135760405162461bcd60e51b815260206004820152601960248201527f537570706c792073686f756c6420626520706f73697469766500000000000000604482015260640161037d565b60008151116111585760405162461bcd60e51b81526020600482015260116024820152701d5c9a481cda1bdd5b19081899481cd95d607a1b604482015260640161037d565b6001600160a01b03841660009081526002602090815260408083203384529091529020805460ff1916600117905561119260068486611643565b5060008381526001602090815260408083206001600160a01b038816845290915290208290556111c28382611661565b6040516001815233906001600160a01b038616907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a360408051848152602081018490526001600160a01b0386169160009183917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8260405161127c91906118b4565b60405180910390a250505050565b6060816112ae5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156112d857806112c281611c7c565b91506112d19050600a83611cad565b91506112b2565b60008167ffffffffffffffff8111156112f3576112f36118e0565b6040519080825280601f01601f19166020018201604052801561131d576020820181803683370190505b509050600061132d600184611cc1565b90508593505b831561139857611344600a85611cd8565b61134f906030611be5565b60f81b828261135d81611cec565b93508151811061136f5761136f611d03565b60200101906001600160f81b031916908160001a905350611391600a85611cad565b9350611333565b50949350505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106113db576113db611d03565b602090810291909101015292915050565b600081848411156114105760405162461bcd60e51b815260040161037d91906118b4565b50600061141d8486611cc1565b95945050505050565b6000806114338385611be5565b9050838110156109af5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161037d565b6001600160a01b0384163b15610de95760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906114c99089908990889088908890600401611d19565b6020604051808303816000875af1925050508015611504575060408051601f3d908101601f1916820190925261150191810190611d5e565b60015b6115b157611510611d7b565b806308c379a0141561154a5750611525611d97565b80611530575061154c565b8060405162461bcd60e51b815260040161037d91906118b4565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161037d565b6001600160e01b0319811663f23a6e6160e01b146116225760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161037d565b50505050505050565b600081815260018301602052604081205415156109af565b600061165984846001600160a01b0385166116aa565b949350505050565b61166a82610df1565b6116865760405162461bcd60e51b815260040161037d90611bfd565b600082815260056020908152604090912082516116a59284019061174b565b505050565b60008281526001840160205260408120548061170f5750506040805180820182528381526020808201848152865460018181018955600089815284812095516002909302909501918255915190820155865486845281880190925292909120556109af565b828561171c600184611cc1565b8154811061172c5761172c611d03565b90600052602060002090600202016001018190555060009150506109af565b82805461175790611b5f565b90600052602060002090601f01602090048101928261177957600085556117bf565b82601f1061179257805160ff19168380011785556117bf565b828001600101855582156117bf579182015b828111156117bf5782518255916020019190600101906117a4565b506117cb9291506117cf565b5090565b5b808211156117cb57600081556001016117d0565b80356001600160a01b038116811461063d57600080fd5b6000806040838503121561180e57600080fd5b611817836117e4565b946020939093013593505050565b6001600160e01b03198116811461054f57600080fd5b60006020828403121561184d57600080fd5b81356109af81611825565b60005b8381101561187357818101518382015260200161185b565b83811115611882576000848401525b50505050565b600081518084526118a0816020860160208601611858565b601f01601f19169290920160200192915050565b6020815260006109af6020830184611888565b6000602082840312156118d957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561191c5761191c6118e0565b6040525050565b600067ffffffffffffffff83111561193d5761193d6118e0565b604051611954601f8501601f1916602001826118f6565b80915083815284848401111561196957600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261199257600080fd5b6109af83833560208501611923565b6000602082840312156119b357600080fd5b813567ffffffffffffffff8111156119ca57600080fd5b61165984828501611981565b6000602082840312156119e857600080fd5b6109af826117e4565b60008060408385031215611a0457600080fd5b611a0d836117e4565b915060208301358015158114611a2257600080fd5b809150509250929050565b60008060408385031215611a4057600080fd5b50508035926020909101359150565b600080600060608486031215611a6457600080fd5b611a6d846117e4565b9250602084013567ffffffffffffffff811115611a8957600080fd5b611a9586828701611981565b925050604084013590509250925092565b60008060408385031215611ab957600080fd5b611ac2836117e4565b9150611ad0602084016117e4565b90509250929050565b600080600080600060a08688031215611af157600080fd5b611afa866117e4565b9450611b08602087016117e4565b93506040860135925060608601359150608086013567ffffffffffffffff811115611b3257600080fd5b8601601f81018813611b4357600080fd5b611b5288823560208401611923565b9150509295509295909350565b600181811c90821680611b7357607f821691505b60208210811415611b9457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611bf857611bf8611bcf565b500190565b60208082526030908201527f455243313135354d657461646174613a2055524920717565727920666f72206e60408201526f37b732bc34b9ba32b73a103a37b5b2b760811b606082015260800190565b60008351611c5f818460208801611858565b835190830190611c73818360208801611858565b01949350505050565b6000600019821415611c9057611c90611bcf565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611cbc57611cbc611c97565b500490565b600082821015611cd357611cd3611bcf565b500390565b600082611ce757611ce7611c97565b500690565b600081611cfb57611cfb611bcf565b506000190190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611d5390830184611888565b979650505050505050565b600060208284031215611d7057600080fd5b81516109af81611825565b600060033d1115611d945760046000803e5060005160e01c5b90565b600060443d1015611da55790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611dd557505050505090565b8285019150815181811115611ded5750505050505090565b843d8701016020828501011115611e075750505050505090565b611e16602082860101876118f6565b50909594505050505056fe455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e736665724552435f686f6c646572546f6b656e73313135353a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220e3b2499166a2604695d82dcef615f4910a986ac0b8941e85c8bd2c494e5f5d6f64736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966000000000000000000000000000000000000000000000000000000000000000b42696742506f7374657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b42696742506f7374657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101365760003560e01c806395d89b41116100b8578063b8997a971161007c578063b8997a9714610287578063ba7aef4314610290578063c0ac9983146102a3578063c87b56dd146102ab578063e985e9c5146102be578063f242432a146102fa57600080fd5b806395d89b411461023d5780639f181b5e14610245578063a22cb4651461024e578063b390c0ab14610261578063b3ab15fb1461027457600080fd5b806355f804b3116100ff57806355f804b3146101cf578063570ca735146101e45780636fdc202f1461020f57806388f862e3146102225780638da5cb5b1461022a57600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806306fdde031461019e57806318160ddd146101b35780633e4086e5146101bc575b600080fd5b61014e6101493660046117fb565b61030d565b6040519081526020015b60405180910390f35b61018e61016f36600461183b565b6001600160e01b03191660009081526020819052604090205460ff1690565b6040519015158152602001610158565b6101a6610418565b60405161015891906118b4565b61014e60045481565b61018e6101ca3660046118c7565b6104aa565b6101e26101dd3660046119a1565b61051c565b005b600c546101f7906001600160a01b031681565b6040516001600160a01b039091168152602001610158565b61018e61021d3660046119d6565b610552565b61014e610642565b600b546101f7906001600160a01b031681565b6101a6610653565b61014e600d5481565b6101e261025c3660046119f1565b610662565b6101e261026f366004611a2d565b610739565b61018e6102823660046119d6565b610748565b61014e600a5481565b61014e61029e366004611a4f565b610839565b6101a66109b6565b6101a66102b93660046118c7565b610a44565b61018e6102cc366004611aa6565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205460ff1690565b6101e2610308366004611ad9565b610bf8565b600061031882610df1565b6103865760405162461bcd60e51b815260206004820152603460248201527f455243313135354d657461646174613a2062616c616e6365207175657279206660448201527337b9103737b732bc34b9ba32b73a103a37b5b2b760611b60648201526084015b60405180910390fd5b6001600160a01b0383166103f05760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b606482015260840161037d565b5060009081526001602090815260408083206001600160a01b03949094168352929052205490565b60606008805461042790611b5f565b80601f016020809104026020016040519081016040528092919081815260200182805461045390611b5f565b80156104a05780601f10610475576101008083540402835291602001916104a0565b820191906000526020600020905b81548152906001019060200180831161048357829003601f168201915b5050505050905090565b600c546000906001600160a01b031633146105135760405162461bcd60e51b8152602060048201526024808201527f4552433732313a2063616c6c657220646f65736e2774206f70657261746f7220604482015263726f6c6560e01b606482015260840161037d565b50600a55600190565b600b546001600160a01b031633146105465760405162461bcd60e51b815260040161037d90611b9a565b61054f81610e04565b50565b600b546000906001600160a01b0316331461057f5760405162461bcd60e51b815260040161037d90611b9a565b6001600160a01b0382166105e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161037d565b600b546040516001600160a01b038085169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350600b80546001600160a01b0319166001600160a01b03831617905560015b919050565b600061064e6006610e52565b905090565b60606009805461042790611b5f565b336001600160a01b03831614156106cd5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161037d565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610744338383610e5c565b5050565b600b546000906001600160a01b031633146107755760405162461bcd60e51b815260040161037d90611b9a565b6001600160a01b0382166107da5760405162461bcd60e51b815260206004820152602660248201527f4f70657261746f723a206f70657261746f7220697320746865205a65726f206160448201526564647265737360d01b606482015260840161037d565b600c546040516001600160a01b038085169216907fd58299b712891143e76310d5e664c4203c940a67db37cf856bdaa3c5c76a802c90600090a350600c80546001600160a01b0383166001600160a01b03199091161790556001919050565b600c546000906001600160a01b031633146108a95760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c657220646f65736e27742068617665206f70656044820152697261746f7220526f6c6560b01b606482015260840161037d565b600454600d54111561090b5760405162461bcd60e51b815260206004820152602560248201527f455243313535354d696e743a204d696e74696e67206973206e6f7420617661696044820152646c61626c6560d81b606482015260840161037d565b60de8211156109735760405162461bcd60e51b815260206004820152602e60248201527f455243313135353a20737570706c79206d757374206c657373207468616e206f60448201526d391032b8bab0b6103a379019191960911b606482015260840161037d565b600d54600f1415610984576101bc91505b600d546109938582858761100e565b6001600d60008282546109a69190611be5565b90915550909150505b9392505050565b600380546109c390611b5f565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90611b5f565b8015610a3c5780601f10610a1157610100808354040283529160200191610a3c565b820191906000526020600020905b815481529060010190602001808311610a1f57829003601f168201915b505050505081565b6060610a4f82610df1565b610a6b5760405162461bcd60e51b815260040161037d90611bfd565b600060038054610a7a90611b5f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa690611b5f565b8015610af35780601f10610ac857610100808354040283529160200191610af3565b820191906000526020600020905b815481529060010190602001808311610ad657829003601f168201915b505050505090506000600560008581526020019081526020016000208054610b1a90611b5f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4690611b5f565b8015610b935780601f10610b6857610100808354040283529160200191610b93565b820191906000526020600020905b815481529060010190602001808311610b7657829003601f168201915b50505050509050815160001415610bab579392505050565b805115610bdd578181604051602001610bc5929190611c4d565b60405160208183030381529060405292505050919050565b81610be78561128a565b604051602001610bc5929190611c4d565b6001600160a01b038416610c5c5760405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b606482015260840161037d565b6001600160a01b038516331480610c785750610c7885336102cc565b610cd65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b606482015260840161037d565b33610cf6818787610ce6886113a1565b610cef886113a1565b5050505050565b610d3d836040518060600160405280602a8152602001611e22602a913960008781526001602090815260408083206001600160a01b038d16845290915290205491906113ec565b60008581526001602090815260408083206001600160a01b038b81168552925280832093909355871681522054610d749084611426565b60008581526001602090815260408083206001600160a01b038a811680865291845293829020949094558051888152918201879052898316928516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610de9818787878787611485565b505050505050565b6000610dfe60068361162b565b92915050565b8051610e1790600390602084019061174b565b507f5514cc7324ac64a875ba50a1849367d39c8b030fe0f563c3c7142984552bc30681604051610e4791906118b4565b60405180910390a150565b6000610dfe825490565b610e6582610df1565b610ecb5760405162461bcd60e51b815260206004820152603160248201527f455243313135354d657461646174613a206275726e20717565727920666f72206044820152703737b732bc34b9ba32b73a103a37b5b2b760791b606482015260840161037d565b6001600160a01b038316610f2d5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161037d565b33610f5d81856000610f3e876113a1565b610f47876113a1565b5050604080516020810190915260009052505050565b610fa482604051806060016040528060318152602001611e4c6031913960008681526001602090815260408083206001600160a01b038b16845290915290205491906113ec565b60008481526001602090815260408083206001600160a01b0389811680865291845282852095909555815188815292830187905292938516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a450505050565b61101783610df1565b156110645760405162461bcd60e51b815260206004820152601d60248201527f455243313135353a20746f6b656e20616c7265616479206d696e746564000000604482015260640161037d565b6001600160a01b0384166110c65760405162461bcd60e51b815260206004820152602360248201527f455243313135353a20616464726573732073686f756c64206e6f74206265205a60448201526265726f60e81b606482015260840161037d565b816111135760405162461bcd60e51b815260206004820152601960248201527f537570706c792073686f756c6420626520706f73697469766500000000000000604482015260640161037d565b60008151116111585760405162461bcd60e51b81526020600482015260116024820152701d5c9a481cda1bdd5b19081899481cd95d607a1b604482015260640161037d565b6001600160a01b03841660009081526002602090815260408083203384529091529020805460ff1916600117905561119260068486611643565b5060008381526001602090815260408083206001600160a01b038816845290915290208290556111c28382611661565b6040516001815233906001600160a01b038616907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a360408051848152602081018490526001600160a01b0386169160009183917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b8260405161127c91906118b4565b60405180910390a250505050565b6060816112ae5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156112d857806112c281611c7c565b91506112d19050600a83611cad565b91506112b2565b60008167ffffffffffffffff8111156112f3576112f36118e0565b6040519080825280601f01601f19166020018201604052801561131d576020820181803683370190505b509050600061132d600184611cc1565b90508593505b831561139857611344600a85611cd8565b61134f906030611be5565b60f81b828261135d81611cec565b93508151811061136f5761136f611d03565b60200101906001600160f81b031916908160001a905350611391600a85611cad565b9350611333565b50949350505050565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106113db576113db611d03565b602090810291909101015292915050565b600081848411156114105760405162461bcd60e51b815260040161037d91906118b4565b50600061141d8486611cc1565b95945050505050565b6000806114338385611be5565b9050838110156109af5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161037d565b6001600160a01b0384163b15610de95760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906114c99089908990889088908890600401611d19565b6020604051808303816000875af1925050508015611504575060408051601f3d908101601f1916820190925261150191810190611d5e565b60015b6115b157611510611d7b565b806308c379a0141561154a5750611525611d97565b80611530575061154c565b8060405162461bcd60e51b815260040161037d91906118b4565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161037d565b6001600160e01b0319811663f23a6e6160e01b146116225760405162461bcd60e51b815260206004820152602860248201527f455243313135353a204552433131353552656365697665722072656a656374656044820152676420746f6b656e7360c01b606482015260840161037d565b50505050505050565b600081815260018301602052604081205415156109af565b600061165984846001600160a01b0385166116aa565b949350505050565b61166a82610df1565b6116865760405162461bcd60e51b815260040161037d90611bfd565b600082815260056020908152604090912082516116a59284019061174b565b505050565b60008281526001840160205260408120548061170f5750506040805180820182528381526020808201848152865460018181018955600089815284812095516002909302909501918255915190820155865486845281880190925292909120556109af565b828561171c600184611cc1565b8154811061172c5761172c611d03565b90600052602060002090600202016001018190555060009150506109af565b82805461175790611b5f565b90600052602060002090601f01602090048101928261177957600085556117bf565b82601f1061179257805160ff19168380011785556117bf565b828001600101855582156117bf579182015b828111156117bf5782518255916020019190600101906117a4565b506117cb9291506117cf565b5090565b5b808211156117cb57600081556001016117d0565b80356001600160a01b038116811461063d57600080fd5b6000806040838503121561180e57600080fd5b611817836117e4565b946020939093013593505050565b6001600160e01b03198116811461054f57600080fd5b60006020828403121561184d57600080fd5b81356109af81611825565b60005b8381101561187357818101518382015260200161185b565b83811115611882576000848401525b50505050565b600081518084526118a0816020860160208601611858565b601f01601f19169290920160200192915050565b6020815260006109af6020830184611888565b6000602082840312156118d957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561191c5761191c6118e0565b6040525050565b600067ffffffffffffffff83111561193d5761193d6118e0565b604051611954601f8501601f1916602001826118f6565b80915083815284848401111561196957600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261199257600080fd5b6109af83833560208501611923565b6000602082840312156119b357600080fd5b813567ffffffffffffffff8111156119ca57600080fd5b61165984828501611981565b6000602082840312156119e857600080fd5b6109af826117e4565b60008060408385031215611a0457600080fd5b611a0d836117e4565b915060208301358015158114611a2257600080fd5b809150509250929050565b60008060408385031215611a4057600080fd5b50508035926020909101359150565b600080600060608486031215611a6457600080fd5b611a6d846117e4565b9250602084013567ffffffffffffffff811115611a8957600080fd5b611a9586828701611981565b925050604084013590509250925092565b60008060408385031215611ab957600080fd5b611ac2836117e4565b9150611ad0602084016117e4565b90509250929050565b600080600080600060a08688031215611af157600080fd5b611afa866117e4565b9450611b08602087016117e4565b93506040860135925060608601359150608086013567ffffffffffffffff811115611b3257600080fd5b8601601f81018813611b4357600080fd5b611b5288823560208401611923565b9150509295509295909350565b600181811c90821680611b7357607f821691505b60208210811415611b9457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611bf857611bf8611bcf565b500190565b60208082526030908201527f455243313135354d657461646174613a2055524920717565727920666f72206e60408201526f37b732bc34b9ba32b73a103a37b5b2b760811b606082015260800190565b60008351611c5f818460208801611858565b835190830190611c73818360208801611858565b01949350505050565b6000600019821415611c9057611c90611bcf565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611cbc57611cbc611c97565b500490565b600082821015611cd357611cd3611bcf565b500390565b600082611ce757611ce7611c97565b500690565b600081611cfb57611cfb611bcf565b506000190190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611d5390830184611888565b979650505050505050565b600060208284031215611d7057600080fd5b81516109af81611825565b600060033d1115611d945760046000803e5060005160e01c5b90565b600060443d1015611da55790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715611dd557505050505090565b8285019150815181811115611ded5750505050505090565b843d8701016020828501011115611e075750505050505090565b611e16602082860101876118f6565b50909594505050505056fe455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e736665724552435f686f6c646572546f6b656e73313135353a206275726e20616d6f756e7420657863656564732062616c616e6365a2646970667358221220e3b2499166a2604695d82dcef615f4910a986ac0b8941e85c8bd2c494e5f5d6f64736f6c634300080a0033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966000000000000000000000000000000000000000000000000000000000000000b42696742506f7374657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b42696742506f7374657273000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002268747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): BigBPosters
Arg [1] : symbol (string): BigBPosters
Arg [2] : tokenURIPrefix (string): https://gateway.pinata.cloud/ipfs/
Arg [3] : _operator (address): 0x98D5A089074Be1Af5c54fd0dda96f92A29246966

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 00000000000000000000000098d5a089074be1af5c54fd0dda96f92a29246966
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [5] : 42696742506f7374657273000000000000000000000000000000000000000000
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [7] : 42696742506f7374657273000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000022
Arg [9] : 68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066
Arg [10] : 732f000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

25789:2417:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17835:325;;;;;;:::i;:::-;;:::i;:::-;;;597:25:1;;;585:2;570:18;17835:325:0;;;;;;;;11796:142;;;;;;:::i;:::-;-1:-1:-1;;;;;;11897:33:0;11873:4;11897:33;;;;;;;;;;;;;;11796:142;;;;1184:14:1;;1177:22;1159:41;;1147:2;1132:18;11796:142:0;1019:187:1;15678:100:0;;;:::i;:::-;;;;;;;:::i;14947:26::-;;;;;;27762:207;;;;;;:::i;:::-;;:::i;27977:109::-;;;;;;:::i;:::-;;:::i;:::-;;25859:23;;;;;-1:-1:-1;;;;;25859:23:0;;;;;;-1:-1:-1;;;;;3725:32:1;;;3707:51;;3695:2;3680:18;25859:23:0;3561:203:1;26630:270:0;;;;;;:::i;:::-;;:::i;16363:118::-;;;:::i;25830:20::-;;;;;-1:-1:-1;;;;;25830:20:0;;;15786:104;;;:::i;25891:25::-;;;;;;18522:311;;;;;;:::i;:::-;;:::i;28094:107::-;;;;;;:::i;:::-;;:::i;26908:267::-;;;;;;:::i;:::-;;:::i;15201:25::-;;;;;;27183:571;;;;;;:::i;:::-;;:::i;14910:28::-;;;:::i;16874:568::-;;;;;;:::i;:::-;;:::i;19122:160::-;;;;;;:::i;:::-;-1:-1:-1;;;;;19237:27:0;;;19213:4;19237:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;19122:160;20445:964;;;;;;:::i;:::-;;:::i;17835:325::-;17918:7;17946:16;17954:7;17946;:16::i;:::-;17938:81;;;;-1:-1:-1;;;17938:81:0;;6242:2:1;17938:81:0;;;6224:21:1;6281:2;6261:18;;;6254:30;6320:34;6300:18;;;6293:62;-1:-1:-1;;;6371:18:1;;;6364:50;6431:19;;17938:81:0;;;;;;;;;-1:-1:-1;;;;;18038:21:0;;18030:77;;;;-1:-1:-1;;;18030:77:0;;6663:2:1;18030:77:0;;;6645:21:1;6702:2;6682:18;;;6675:30;6741:34;6721:18;;;6714:62;-1:-1:-1;;;6792:18:1;;;6785:41;6843:19;;18030:77:0;6461:407:1;18030:77:0;-1:-1:-1;18125:18:0;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;18125:27:0;;;;;;;;;;;;17835:325::o;15678:100::-;15732:13;15765:5;15758:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15678:100;:::o;27762:207::-;27857:8;;27818:4;;-1:-1:-1;;;;;27857:8:0;27843:10;:22;27835:70;;;;-1:-1:-1;;;27835:70:0;;7460:2:1;27835:70:0;;;7442:21:1;7499:2;7479:18;;;7472:30;7538:34;7518:18;;;7511:62;-1:-1:-1;;;7589:18:1;;;7582:34;7633:19;;27835:70:0;7258:400:1;27835:70:0;-1:-1:-1;27916:10:0;:21;27955:4;;27762:207::o;27977:109::-;26419:5;;-1:-1:-1;;;;;26419:5:0;26428:10;26419:19;26411:64;;;;-1:-1:-1;;;26411:64:0;;;;;;;:::i;:::-;28050:28:::1;28069:8;28050:18;:28::i;:::-;27977:109:::0;:::o;26630:270::-;26419:5;;26700:4;;-1:-1:-1;;;;;26419:5:0;26428:10;26419:19;26411:64;;;;-1:-1:-1;;;26411:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26725:22:0;::::1;26717:73;;;::::0;-1:-1:-1;;;26717:73:0;;8226:2:1;26717:73:0::1;::::0;::::1;8208:21:1::0;8265:2;8245:18;;;8238:30;8304:34;8284:18;;;8277:62;-1:-1:-1;;;8355:18:1;;;8348:36;8401:19;;26717:73:0::1;8024:402:1::0;26717:73:0::1;26827:5;::::0;26806:37:::1;::::0;-1:-1:-1;;;;;26806:37:0;;::::1;::::0;26827:5:::1;::::0;26806:37:::1;::::0;26827:5:::1;::::0;26806:37:::1;-1:-1:-1::0;26854:5:0::1;:16:::0;;-1:-1:-1;;;;;;26854:16:0::1;-1:-1:-1::0;;;;;26854:16:0;::::1;;::::0;;-1:-1:-1;26486:1:0::1;26630:270:::0;;;:::o;16363:118::-;16425:7;16452:21;:12;:19;:21::i;:::-;16445:28;;16363:118;:::o;15786:104::-;15842:13;15875:7;15868:14;;;;;:::i;18522:311::-;11288:10;-1:-1:-1;;;;;18625:24:0;;;;18617:78;;;;-1:-1:-1;;;18617:78:0;;8633:2:1;18617:78:0;;;8615:21:1;8672:2;8652:18;;;8645:30;8711:34;8691:18;;;8684:62;-1:-1:-1;;;8762:18:1;;;8755:39;8811:19;;18617:78:0;8431:405:1;18617:78:0;11288:10;18708:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;18708:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;18708:53:0;;;;;;;;;;18777:48;;1159:41:1;;;18708:42:0;;11288:10;18777:48;;1132:18:1;18777:48:0;;;;;;;18522:311;;:::o;28094:107::-;28159:34;28165:10;28177:7;28186:6;28159:5;:34::i;:::-;28094:107;;:::o;26908:267::-;26419:5;;26973:4;;-1:-1:-1;;;;;26419:5:0;26428:10;26419:19;26411:64;;;;-1:-1:-1;;;26411:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26998:22:0;::::1;26990:72;;;::::0;-1:-1:-1;;;26990:72:0;;9043:2:1;26990:72:0::1;::::0;::::1;9025:21:1::0;9082:2;9062:18;;;9055:30;9121:34;9101:18;;;9094:62;-1:-1:-1;;;9172:18:1;;;9165:36;9218:19;;26990:72:0::1;8841:402:1::0;26990:72:0::1;27094:8;::::0;27078:36:::1;::::0;-1:-1:-1;;;;;27078:36:0;;::::1;::::0;27094:8:::1;::::0;27078:36:::1;::::0;27094:8:::1;::::0;27078:36:::1;-1:-1:-1::0;27125:8:0::1;:20:::0;;-1:-1:-1;;;;;27125:20:0;::::1;-1:-1:-1::0;;;;;;27125:20:0;;::::1;;::::0;;;26908:267;;;:::o;27183:571::-;27306:8;;27265:7;;-1:-1:-1;;;;;27306:8:0;27292:10;:22;27284:76;;;;-1:-1:-1;;;27284:76:0;;9450:2:1;27284:76:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:34;9508:18;;;9501:62;-1:-1:-1;;;9579:18:1;;;9572:40;9629:19;;27284:76:0;9248:406:1;27284:76:0;27393:11;;27379:10;;:25;;27371:74;;;;-1:-1:-1;;;27371:74:0;;9861:2:1;27371:74:0;;;9843:21:1;9900:2;9880:18;;;9873:30;9939:34;9919:18;;;9912:62;-1:-1:-1;;;9990:18:1;;;9983:35;10035:19;;27371:74:0;9659:401:1;27371:74:0;27474:3;27464:6;:13;;27456:71;;;;-1:-1:-1;;;27456:71:0;;10267:2:1;27456:71:0;;;10249:21:1;10306:2;10286:18;;;10279:30;10345:34;10325:18;;;10318:62;-1:-1:-1;;;10396:18:1;;;10389:44;10450:19;;27456:71:0;10065:410:1;27456:71:0;27552:10;;27566:2;27552:16;27548:60;;;27593:3;27584:12;;27548:60;27638:10;;27659:36;27665:7;27638:10;27683:6;27691:3;27659:5;:36::i;:::-;27720:1;27706:10;;:15;;;;;;;:::i;:::-;;;;-1:-1:-1;27739:7:0;;-1:-1:-1;;27183:571:0;;;;;;:::o;14910:28::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16874:568::-;16947:13;16981:16;16989:7;16981;:16::i;:::-;16973:77;;;;-1:-1:-1;;;16973:77:0;;;;;;;:::i;:::-;17071:18;17092:14;17071:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17119:23;17145:10;:19;17156:7;17145:19;;;;;;;;;;;17119:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17187:4;17181:18;17203:1;17181:23;17177:72;;;17228:9;16874:568;-1:-1:-1;;;16874:568:0:o;17177:72::-;17263:23;;:27;17259:108;;17338:4;17344:9;17321:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;17307:48;;;;16874:568;;;:::o;17259:108::-;17408:4;17414:18;:7;:16;:18::i;:::-;17391:42;;;;;;;;;:::i;20445:964::-;-1:-1:-1;;;;;20676:16:0;;20668:66;;;;-1:-1:-1;;;20668:66:0;;11839:2:1;20668:66:0;;;11821:21:1;11878:2;11858:18;;;11851:30;11917:34;11897:18;;;11890:62;-1:-1:-1;;;11968:18:1;;;11961:35;12013:19;;20668:66:0;11637:401:1;20668:66:0;-1:-1:-1;;;;;20767:20:0;;11288:10;20767:20;;:60;;-1:-1:-1;20791:36:0;20808:4;11288:10;19122:160;:::i;20791:36::-;20745:151;;;;-1:-1:-1;;;20745:151:0;;12245:2:1;20745:151:0;;;12227:21:1;12284:2;12264:18;;;12257:30;12323:34;12303:18;;;12296:62;-1:-1:-1;;;12374:18:1;;;12367:39;12423:19;;20745:151:0;12043:405:1;20745:151:0;11288:10;20953:101;11288:10;20984:4;20990:2;20994:26;21012:7;20994:17;:26::i;:::-;21022:25;21040:6;21022:17;:25::i;:::-;20445:964;;;;;;20953:101;21094:82;21123:6;21094:82;;;;;;;;;;;;;;;;;:18;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;21094:24:0;;;;;;;;;;;:82;:28;:82::i;:::-;21067:18;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;21067:24:0;;;;;;;;;;:109;;;;21212:22;;;;;;:34;;21239:6;21212:26;:34::i;:::-;21187:18;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;21187:22:0;;;;;;;;;;;;;:59;;;;21264:51;;12627:25:1;;;12668:18;;;12661:34;;;21264:51:0;;;;;;;;;12600:18:1;21264:51:0;;;;;;;21328:73;21359:8;21369:4;21375:2;21379:7;21388:6;21396:4;21328:30;:73::i;:::-;20657:752;20445:964;;;;;:::o;17450:127::-;17515:4;17539:30;:12;17561:7;17539:21;:30::i;:::-;17532:37;17450:127;-1:-1:-1;;17450:127:0:o;16489:164::-;16568:32;;;;:14;;:32;;;;;:::i;:::-;;16616:29;16629:15;16616:29;;;;;;:::i;:::-;;;;;;;;16489:164;:::o;4097:123::-;4166:7;4193:19;4201:3;2250:19;;2167:110;22843:680;22944:16;22952:7;22944;:16::i;:::-;22936:78;;;;-1:-1:-1;;;22936:78:0;;12908:2:1;22936:78:0;;;12890:21:1;12947:2;12927:18;;;12920:30;12986:34;12966:18;;;12959:62;-1:-1:-1;;;13037:18:1;;;13030:47;13094:19;;22936:78:0;12706:413:1;22936:78:0;-1:-1:-1;;;;;23033:21:0;;23025:69;;;;-1:-1:-1;;;23025:69:0;;13326:2:1;23025:69:0;;;13308:21:1;13365:2;13345:18;;;13338:30;13404:34;13384:18;;;13377:62;-1:-1:-1;;;13455:18:1;;;13448:33;13498:19;;23025:69:0;13124:399:1;23025:69:0;11288:10;23151:110;11288:10;23182:7;23107:16;23203:26;23221:7;23203:17;:26::i;:::-;23231:25;23249:6;23231:17;:25::i;:::-;-1:-1:-1;;23151:110:0;;;;;;;;;-1:-1:-1;23151:110:0;;-1:-1:-1;;;20445:964:0;23151:110;23304:129;23350:6;23304:129;;;;;;;;;;;;;;;;;:18;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;23304:27:0;;;;;;;;;;;:129;:31;:129::i;:::-;23274:18;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;23274:27:0;;;;;;;;;;;;:159;;;;23453:62;;12627:25:1;;;12668:18;;;12661:34;;;23274:18:0;;23453:62;;;;;12600:18:1;23453:62:0;;;;;;;22925:598;22843:680;;;:::o;21748:725::-;21870:16;21878:7;21870;:16::i;:::-;21869:17;21861:59;;;;-1:-1:-1;;;21861:59:0;;13730:2:1;21861:59:0;;;13712:21:1;13769:2;13749:18;;;13742:30;13808:31;13788:18;;;13781:59;13857:18;;21861:59:0;13528:353:1;21861:59:0;-1:-1:-1;;;;;21939:18:0;;21931:65;;;;-1:-1:-1;;;21931:65:0;;14088:2:1;21931:65:0;;;14070:21:1;14127:2;14107:18;;;14100:30;14166:34;14146:18;;;14139:62;-1:-1:-1;;;14217:18:1;;;14210:33;14260:19;;21931:65:0;13886:399:1;21931:65:0;22015:12;22007:50;;;;-1:-1:-1;;;22007:50:0;;14492:2:1;22007:50:0;;;14474:21:1;14531:2;14511:18;;;14504:30;14570:27;14550:18;;;14543:55;14615:18;;22007:50:0;14290:349:1;22007:50:0;22097:1;22082:4;22076:18;:22;22068:52;;;;-1:-1:-1;;;22068:52:0;;14846:2:1;22068:52:0;;;14828:21:1;14885:2;14865:18;;;14858:30;-1:-1:-1;;;14904:18:1;;;14897:47;14961:18;;22068:52:0;14644:341:1;22068:52:0;-1:-1:-1;;;;;22133:24:0;;;;;;:18;:24;;;;;;;;22158:10;22133:36;;;;;;;:43;;-1:-1:-1;;22133:43:0;22172:4;22133:43;;;22187:31;:12;22204:7;22152:4;22187:16;:31::i;:::-;-1:-1:-1;22229:18:0;;;;:9;:18;;;;;;;;-1:-1:-1;;;;;22229:24:0;;;;;;;;;:34;;;22274:27;22239:7;22296:4;22274:12;:27::i;:::-;22317:38;;22350:4;1159:41:1;;22338:10:0;;-1:-1:-1;;;;;22317:38:0;;;;;1147:2:1;1132:18;22317:38:0;;;;;;;22373:58;;;12627:25:1;;;12683:2;12668:18;;12661:34;;;-1:-1:-1;;;;;22373:58:0;;;22402:3;;22373:58;;;;12600:18:1;22373:58:0;;;;;;;22457:7;22447:18;22451:4;22447:18;;;;;;:::i;:::-;;;;;;;;21748:725;;;;:::o;91:557::-;147:13;179:10;175:53;;-1:-1:-1;;206:10:0;;;;;;;;;;;;-1:-1:-1;;;206:10:0;;;;;91:557::o;175:53::-;253:5;238:12;294:78;301:9;;294:78;;327:8;;;;:::i;:::-;;-1:-1:-1;350:10:0;;-1:-1:-1;358:2:0;350:10;;:::i;:::-;;;294:78;;;382:19;414:6;404:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;404:17:0;-1:-1:-1;382:39:0;-1:-1:-1;432:13:0;448:10;457:1;448:6;:10;:::i;:::-;432:26;;476:5;469:12;;492:117;499:9;;492:117;;561:9;568:2;561:4;:9;:::i;:::-;556:14;;:2;:14;:::i;:::-;543:29;;525:6;532:7;;;;:::i;:::-;;;525:15;;;;;;;;:::i;:::-;;;;:47;-1:-1:-1;;;;;525:47:0;;;;;;;;-1:-1:-1;587:10:0;595:2;587:10;;:::i;:::-;;;492:117;;;-1:-1:-1;633:6:0;91:557;-1:-1:-1;;;;91:557:0:o;25379:198::-;25499:16;;;25513:1;25499:16;;;;;;;;;25445;;25474:22;;25499:16;;;;;;;;;;;;-1:-1:-1;25499:16:0;25474:41;;25537:7;25526:5;25532:1;25526:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;25564:5;25379:198;-1:-1:-1;;25379:198:0:o;12796:192::-;12882:7;12918:12;12910:6;;;;12902:29;;;;-1:-1:-1;;;12902:29:0;;;;;;;;:::i;:::-;-1:-1:-1;12942:9:0;12954:5;12958:1;12954;:5;:::i;:::-;12942:17;12796:192;-1:-1:-1;;;;;12796:192:0:o;12344:181::-;12402:7;;12434:5;12438:1;12434;:5;:::i;:::-;12422:17;;12463:1;12458;:6;;12450:46;;;;-1:-1:-1;;;12450:46:0;;16109:2:1;12450:46:0;;;16091:21:1;16148:2;16128:18;;;16121:30;16187:29;16167:18;;;16160:57;16234:18;;12450:46:0;15907:351:1;23782:772:0;-1:-1:-1;;;;;24016:13:0;;13139:20;13178:8;24012:535;;24052:77;;-1:-1:-1;;;24052:77:0;;-1:-1:-1;;;;;24052:38:0;;;;;:77;;24091:8;;24101:4;;24107:7;;24116:6;;24124:4;;24052:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24052:77:0;;;;;;;;-1:-1:-1;;24052:77:0;;;;;;;;;;;;:::i;:::-;;;24048:488;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;24409:6;24402:14;;-1:-1:-1;;;24402:14:0;;;;;;;;:::i;24048:488::-;;;24458:62;;-1:-1:-1;;;24458:62:0;;18145:2:1;24458:62:0;;;18127:21:1;18184:2;18164:18;;;18157:30;18223:34;18203:18;;;18196:62;-1:-1:-1;;;18274:18:1;;;18267:50;18334:19;;24458:62:0;17943:416:1;24048:488:0;-1:-1:-1;;;;;;24179:59:0;;-1:-1:-1;;;24179:59:0;24175:158;;24263:50;;-1:-1:-1;;;24263:50:0;;18566:2:1;24263:50:0;;;18548:21:1;18605:2;18585:18;;;18578:30;18644:34;18624:18;;;18617:62;-1:-1:-1;;;18695:18:1;;;18688:38;18743:19;;24263:50:0;18364:404:1;24175:158:0;24130:218;23782:772;;;;;;:::o;3938:151::-;4022:4;2129:17;;;:12;;;:17;;;;;;:22;;4046:35;2034:125;3595:185;3684:4;3708:64;3713:3;3733;-1:-1:-1;;;;;3747:23:0;;3708:4;:64::i;:::-;3701:71;3595:185;-1:-1:-1;;;;3595:185:0:o;16154:199::-;16240:16;16248:7;16240;:16::i;:::-;16232:77;;;;-1:-1:-1;;;16232:77:0;;;;;;;:::i;:::-;16320:19;;;;:10;:19;;;;;;;;:25;;;;;;;;:::i;:::-;;16154:199;;:::o;873:470::-;949:4;985:17;;;:12;;;:17;;;;;;1019:13;1015:321;;-1:-1:-1;;1104:38:0;;;;;;;;;;;;;;;;;;1086:57;;;;;;;;:12;:57;;;;;;;;;;;;;;;;;;;;;;;;1178:19;;1158:17;;;:12;;;:17;;;;;;;:39;1212:11;;1015:321;1292:5;1256:3;1269:12;1280:1;1269:8;:12;:::i;:::-;1256:26;;;;;;;;:::i;:::-;;;;;;;;;;;:33;;:41;;;;1319:5;1312:12;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:254;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:1:o;633:131::-;-1:-1:-1;;;;;;707:32:1;;697:43;;687:71;;754:1;751;744:12;769:245;827:6;880:2;868:9;859:7;855:23;851:32;848:52;;;896:1;893;886:12;848:52;935:9;922:23;954:30;978:5;954:30;:::i;1211:258::-;1283:1;1293:113;1307:6;1304:1;1301:13;1293:113;;;1383:11;;;1377:18;1364:11;;;1357:39;1329:2;1322:10;1293:113;;;1424:6;1421:1;1418:13;1415:48;;;1459:1;1450:6;1445:3;1441:16;1434:27;1415:48;;1211:258;;;:::o;1474:::-;1516:3;1554:5;1548:12;1581:6;1576:3;1569:19;1597:63;1653:6;1646:4;1641:3;1637:14;1630:4;1623:5;1619:16;1597:63;:::i;:::-;1714:2;1693:15;-1:-1:-1;;1689:29:1;1680:39;;;;1721:4;1676:50;;1474:258;-1:-1:-1;;1474:258:1:o;1737:220::-;1886:2;1875:9;1868:21;1849:4;1906:45;1947:2;1936:9;1932:18;1924:6;1906:45;:::i;1962:180::-;2021:6;2074:2;2062:9;2053:7;2049:23;2045:32;2042:52;;;2090:1;2087;2080:12;2042:52;-1:-1:-1;2113:23:1;;1962:180;-1:-1:-1;1962:180:1:o;2147:127::-;2208:10;2203:3;2199:20;2196:1;2189:31;2239:4;2236:1;2229:15;2263:4;2260:1;2253:15;2279:249;2389:2;2370:13;;-1:-1:-1;;2366:27:1;2354:40;;2424:18;2409:34;;2445:22;;;2406:62;2403:88;;;2471:18;;:::i;:::-;2507:2;2500:22;-1:-1:-1;;2279:249:1:o;2533:469::-;2598:5;2632:18;2624:6;2621:30;2618:56;;;2654:18;;:::i;:::-;2703:2;2697:9;2715:69;2772:2;2751:15;;-1:-1:-1;;2747:29:1;2778:4;2743:40;2697:9;2715:69;:::i;:::-;2802:6;2793:15;;2832:6;2824;2817:22;2872:3;2863:6;2858:3;2854:16;2851:25;2848:45;;;2889:1;2886;2879:12;2848:45;2939:6;2934:3;2927:4;2919:6;2915:17;2902:44;2994:1;2987:4;2978:6;2970;2966:19;2962:30;2955:41;;2533:469;;;;;:::o;3007:222::-;3050:5;3103:3;3096:4;3088:6;3084:17;3080:27;3070:55;;3121:1;3118;3111:12;3070:55;3143:80;3219:3;3210:6;3197:20;3190:4;3182:6;3178:17;3143:80;:::i;3234:322::-;3303:6;3356:2;3344:9;3335:7;3331:23;3327:32;3324:52;;;3372:1;3369;3362:12;3324:52;3412:9;3399:23;3445:18;3437:6;3434:30;3431:50;;;3477:1;3474;3467:12;3431:50;3500;3542:7;3533:6;3522:9;3518:22;3500:50;:::i;3769:186::-;3828:6;3881:2;3869:9;3860:7;3856:23;3852:32;3849:52;;;3897:1;3894;3887:12;3849:52;3920:29;3939:9;3920:29;:::i;3960:347::-;4025:6;4033;4086:2;4074:9;4065:7;4061:23;4057:32;4054:52;;;4102:1;4099;4092:12;4054:52;4125:29;4144:9;4125:29;:::i;:::-;4115:39;;4204:2;4193:9;4189:18;4176:32;4251:5;4244:13;4237:21;4230:5;4227:32;4217:60;;4273:1;4270;4263:12;4217:60;4296:5;4286:15;;;3960:347;;;;;:::o;4312:248::-;4380:6;4388;4441:2;4429:9;4420:7;4416:23;4412:32;4409:52;;;4457:1;4454;4447:12;4409:52;-1:-1:-1;;4480:23:1;;;4550:2;4535:18;;;4522:32;;-1:-1:-1;4312:248:1:o;4565:464::-;4652:6;4660;4668;4721:2;4709:9;4700:7;4696:23;4692:32;4689:52;;;4737:1;4734;4727:12;4689:52;4760:29;4779:9;4760:29;:::i;:::-;4750:39;;4840:2;4829:9;4825:18;4812:32;4867:18;4859:6;4856:30;4853:50;;;4899:1;4896;4889:12;4853:50;4922;4964:7;4955:6;4944:9;4940:22;4922:50;:::i;:::-;4912:60;;;5019:2;5008:9;5004:18;4991:32;4981:42;;4565:464;;;;;:::o;5034:260::-;5102:6;5110;5163:2;5151:9;5142:7;5138:23;5134:32;5131:52;;;5179:1;5176;5169:12;5131:52;5202:29;5221:9;5202:29;:::i;:::-;5192:39;;5250:38;5284:2;5273:9;5269:18;5250:38;:::i;:::-;5240:48;;5034:260;;;;;:::o;5299:736::-;5403:6;5411;5419;5427;5435;5488:3;5476:9;5467:7;5463:23;5459:33;5456:53;;;5505:1;5502;5495:12;5456:53;5528:29;5547:9;5528:29;:::i;:::-;5518:39;;5576:38;5610:2;5599:9;5595:18;5576:38;:::i;:::-;5566:48;;5661:2;5650:9;5646:18;5633:32;5623:42;;5712:2;5701:9;5697:18;5684:32;5674:42;;5767:3;5756:9;5752:19;5739:33;5795:18;5787:6;5784:30;5781:50;;;5827:1;5824;5817:12;5781:50;5850:22;;5903:4;5895:13;;5891:27;-1:-1:-1;5881:55:1;;5932:1;5929;5922:12;5881:55;5955:74;6021:7;6016:2;6003:16;5998:2;5994;5990:11;5955:74;:::i;:::-;5945:84;;;5299:736;;;;;;;;:::o;6873:380::-;6952:1;6948:12;;;;6995;;;7016:61;;7070:4;7062:6;7058:17;7048:27;;7016:61;7123:2;7115:6;7112:14;7092:18;7089:38;7086:161;;;7169:10;7164:3;7160:20;7157:1;7150:31;7204:4;7201:1;7194:15;7232:4;7229:1;7222:15;7086:161;;6873:380;;;:::o;7663:356::-;7865:2;7847:21;;;7884:18;;;7877:30;7943:34;7938:2;7923:18;;7916:62;8010:2;7995:18;;7663:356::o;10480:127::-;10541:10;10536:3;10532:20;10529:1;10522:31;10572:4;10569:1;10562:15;10596:4;10593:1;10586:15;10612:128;10652:3;10683:1;10679:6;10676:1;10673:13;10670:39;;;10689:18;;:::i;:::-;-1:-1:-1;10725:9:1;;10612:128::o;10745:412::-;10947:2;10929:21;;;10986:2;10966:18;;;10959:30;11025:34;11020:2;11005:18;;10998:62;-1:-1:-1;;;11091:2:1;11076:18;;11069:46;11147:3;11132:19;;10745:412::o;11162:470::-;11341:3;11379:6;11373:13;11395:53;11441:6;11436:3;11429:4;11421:6;11417:17;11395:53;:::i;:::-;11511:13;;11470:16;;;;11533:57;11511:13;11470:16;11567:4;11555:17;;11533:57;:::i;:::-;11606:20;;11162:470;-1:-1:-1;;;;11162:470:1:o;14990:135::-;15029:3;-1:-1:-1;;15050:17:1;;15047:43;;;15070:18;;:::i;:::-;-1:-1:-1;15117:1:1;15106:13;;14990:135::o;15130:127::-;15191:10;15186:3;15182:20;15179:1;15172:31;15222:4;15219:1;15212:15;15246:4;15243:1;15236:15;15262:120;15302:1;15328;15318:35;;15333:18;;:::i;:::-;-1:-1:-1;15367:9:1;;15262:120::o;15387:125::-;15427:4;15455:1;15452;15449:8;15446:34;;;15460:18;;:::i;:::-;-1:-1:-1;15497:9:1;;15387:125::o;15517:112::-;15549:1;15575;15565:35;;15580:18;;:::i;:::-;-1:-1:-1;15614:9:1;;15517:112::o;15634:136::-;15673:3;15701:5;15691:39;;15710:18;;:::i;:::-;-1:-1:-1;;;15746:18:1;;15634:136::o;15775:127::-;15836:10;15831:3;15827:20;15824:1;15817:31;15867:4;15864:1;15857:15;15891:4;15888:1;15881:15;16263:561;-1:-1:-1;;;;;16560:15:1;;;16542:34;;16612:15;;16607:2;16592:18;;16585:43;16659:2;16644:18;;16637:34;;;16702:2;16687:18;;16680:34;;;16522:3;16745;16730:19;;16723:32;;;16485:4;;16772:46;;16798:19;;16790:6;16772:46;:::i;:::-;16764:54;16263:561;-1:-1:-1;;;;;;;16263:561:1:o;16829:249::-;16898:6;16951:2;16939:9;16930:7;16926:23;16922:32;16919:52;;;16967:1;16964;16957:12;16919:52;16999:9;16993:16;17018:30;17042:5;17018:30;:::i;17083:179::-;17118:3;17160:1;17142:16;17139:23;17136:120;;;17206:1;17203;17200;17185:23;-1:-1:-1;17243:1:1;17237:8;17232:3;17228:18;17136:120;17083:179;:::o;17267:671::-;17306:3;17348:4;17330:16;17327:26;17324:39;;;17267:671;:::o;17324:39::-;17390:2;17384:9;-1:-1:-1;;17455:16:1;17451:25;;17448:1;17384:9;17427:50;17506:4;17500:11;17530:16;17565:18;17636:2;17629:4;17621:6;17617:17;17614:25;17609:2;17601:6;17598:14;17595:45;17592:58;;;17643:5;;;;;17267:671;:::o;17592:58::-;17680:6;17674:4;17670:17;17659:28;;17716:3;17710:10;17743:2;17735:6;17732:14;17729:27;;;17749:5;;;;;;17267:671;:::o;17729:27::-;17833:2;17814:16;17808:4;17804:27;17800:36;17793:4;17784:6;17779:3;17775:16;17771:27;17768:69;17765:82;;;17840:5;;;;;;17267:671;:::o;17765:82::-;17856:57;17907:4;17898:6;17890;17886:19;17882:30;17876:4;17856:57;:::i;:::-;-1:-1:-1;17929:3:1;;17267:671;-1:-1:-1;;;;;17267:671:1:o

Swarm Source

ipfs://e3b2499166a2604695d82dcef615f4910a986ac0b8941e85c8bd2c494e5f5d6f
Loading...
Loading
[ Download: CSV Export  ]
[ 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.