Altnode (AiT)
Overview
TokenID
0
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Altnode
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.19;import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";import {ERC721URIStorage} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";// import {AltTokens} from "./AltTokens.sol";/*** @title Altnode* @author Altnode devs* @dev Altnode is a contract for managing the Altnode NFTs.*/contract Altnode is ERC721URIStorage {/* Custom Errors */error Altnode__InvalidAssetId(uint256 assetId);error Altnode__SubscriptionExists();error Altnode__InsufficientPayment();error Altnode__InvalidAccessKey();error Altnode__InvalidSubscription();error Altnode__OwnerCanNotPurchase();error Altnode__OnlyOwner();using Strings for uint256;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)pragma solidity ^0.8.20;/*** @dev Standard ERC-20 Errors* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.*/interface IERC20Errors {/*** @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.* @param balance Current balance for the interacting account.* @param needed Minimum amount required to perform a transfer.*/error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);/*** @dev Indicates a failure with the token `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.*/error ERC20InvalidSender(address sender);/*** @dev Indicates a failure with the token `receiver`. Used in transfers.* @param receiver Address to which tokens are being transferred.
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)pragma solidity ^0.8.20;import {IERC165} from "../utils/introspection/IERC165.sol";
1234567891011121314151617181920// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC4906.sol)pragma solidity ^0.8.20;import {IERC165} from "./IERC165.sol";import {IERC721} from "./IERC721.sol";/// @title ERC-721 Metadata Update Extensioninterface IERC4906 is IERC165, IERC721 {/// @dev This event emits when the metadata of a token is changed./// So that the third-party platforms such as NFT market could/// timely update the images and related attributes of the NFT.event MetadataUpdate(uint256 _tokenId);/// @dev This event emits when the metadata of a range of tokens is changed./// So that the third-party platforms such as NFT market could/// timely update the images and related attributes of the NFTs.event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);}
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)pragma solidity ^0.8.20;import {IERC721} from "../token/ERC721/IERC721.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/ERC721.sol)pragma solidity ^0.8.20;import {IERC721} from "./IERC721.sol";import {IERC721Metadata} from "./extensions/IERC721Metadata.sol";import {ERC721Utils} from "./utils/ERC721Utils.sol";import {Context} from "../../utils/Context.sol";import {Strings} from "../../utils/Strings.sol";import {IERC165, ERC165} from "../../utils/introspection/ERC165.sol";import {IERC721Errors} from "../../interfaces/draft-IERC6093.sol";/*** @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC-721] Non-Fungible Token Standard, including* the Metadata extension, but not including the Enumerable extension, which is available separately as* {ERC721Enumerable}.*/abstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {using Strings for uint256;// Token namestring private _name;// Token symbolstring private _symbol;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/extensions/ERC721URIStorage.sol)pragma solidity ^0.8.20;import {ERC721} from "../ERC721.sol";import {Strings} from "../../../utils/Strings.sol";import {IERC4906} from "../../../interfaces/IERC4906.sol";import {IERC165} from "../../../interfaces/IERC165.sol";/*** @dev ERC-721 token with storage based token URI management.*/abstract contract ERC721URIStorage is IERC4906, ERC721 {using Strings for uint256;// Interface ID as defined in ERC-4906. This does not correspond to a traditional interface ID as ERC-4906 only// defines events and does not include any external function.bytes4 private constant ERC4906_INTERFACE_ID = bytes4(0x49064906);// Optional mapping for token URIsmapping(uint256 tokenId => string) private _tokenURIs;/*** @dev See {IERC165-supportsInterface}*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)pragma solidity ^0.8.20;import {IERC721} from "../IERC721.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional metadata extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721Metadata is IERC721 {/*** @dev Returns the token collection name.*/function name() external view returns (string memory);/*** @dev Returns the token collection symbol.*/function symbol() external view returns (string memory);/*** @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.*/function tokenURI(uint256 tokenId) external view returns (string memory);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721.sol)pragma solidity ^0.8.20;import {IERC165} from "../../utils/introspection/IERC165.sol";/*** @dev Required interface of an ERC-721 compliant contract.*/interface IERC721 is IERC165 {/*** @dev Emitted when `tokenId` token is transferred from `from` to `to`.*/event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.*/event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);/*** @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.*/event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/IERC721Receiver.sol)pragma solidity ^0.8.20;/*** @title ERC-721 token receiver interface* @dev Interface for any contract that wants to support safeTransfers* from ERC-721 asset contracts.*/interface IERC721Receiver {/*** @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}* by `operator` from `from`, this function is called.** It must return its Solidity selector to confirm the token transfer.* If any other value is returned or the interface is not implemented by the recipient, the transfer will be* reverted.** The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.*/function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC721/utils/ERC721Utils.sol)pragma solidity ^0.8.20;import {IERC721Receiver} from "../IERC721Receiver.sol";import {IERC721Errors} from "../../../interfaces/draft-IERC6093.sol";/*** @dev Library that provide common ERC-721 utility functions.** See https://eips.ethereum.org/EIPS/eip-721[ERC-721].** _Available since v5.1._*/library ERC721Utils {/*** @dev Performs an acceptance check for the provided `operator` by calling {IERC721-onERC721Received}* on the `to` address. The `operator` is generally the address that initiated the token transfer (i.e. `msg.sender`).** The acceptance call is not executed and treated as a no-op if the target address doesn't contain code (i.e. an EOA).* Otherwise, the recipient must implement {IERC721Receiver-onERC721Received} and return the acceptance magic value to accept* the transfer.*/function checkOnERC721Received(address operator,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)pragma solidity ^0.8.20;/*** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}function _contextSuffixLength() internal view virtual returns (uint256) {return 0;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)pragma solidity ^0.8.20;import {IERC165} from "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {return interfaceId == type(IERC165).interfaceId;}
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[ERC].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/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[ERC 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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)pragma solidity ^0.8.20;import {Panic} from "../Panic.sol";import {SafeCast} from "./SafeCast.sol";/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Floor, // Toward negative infinityCeil, // Toward positive infinityTrunc, // Toward zeroExpand // Away from zero}/*** @dev Returns the addition of two unsigned integers, with an success flag (no overflow).*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)// This file was procedurally generated from scripts/generate/templates/SafeCast.js.pragma solidity ^0.8.20;/*** @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow* checks.** Downcasting from uint256/int256 in Solidity does not revert on overflow. This can* easily result in undesired exploitation or bugs, since developers usually* assume that overflows raise errors. `SafeCast` restores this intuition by* reverting the transaction when such an operation overflows.** Using this library instead of the unchecked operations eliminates an entire* class of bugs, so it's recommended to use it always.*/library SafeCast {/*** @dev Value doesn't fit in an uint of `bits` size.*/error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);/*** @dev An int value doesn't fit in an uint of `bits` size.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)pragma solidity ^0.8.20;import {SafeCast} from "./SafeCast.sol";/*** @dev Standard signed math utilities missing in the Solidity language.*/library SignedMath {/*** @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.** IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.* However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute* one branch when needed, making this function more expensive.*/function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {unchecked {// branchless ternary works because:// b ^ (a ^ b) == a// b ^ 0 == breturn b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)pragma solidity ^0.8.20;/*** @dev Helper library for emitting standardized panic codes.** ```solidity* contract Example {* using Panic for uint256;** // Use any of the declared internal constants* function foo() { Panic.GENERIC.panic(); }** // Alternatively* function foo() { Panic.panic(Panic.GENERIC); }* }* ```** Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].** _Available since v5.1._*/// slither-disable-next-line unused-statelibrary Panic {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.2.0) (utils/Strings.sol)pragma solidity ^0.8.20;import {Math} from "./math/Math.sol";import {SafeCast} from "./math/SafeCast.sol";import {SignedMath} from "./math/SignedMath.sol";/*** @dev String operations.*/library Strings {using SafeCast for *;bytes16 private constant HEX_DIGITS = "0123456789abcdef";uint8 private constant ADDRESS_LENGTH = 20;/*** @dev The `value` string doesn't fit in the specified `length`.*/error StringsInsufficientHexLength(uint256 value, uint256 length);/*** @dev The string being parsed contains characters that are not in scope of the given base.*/
1234567891011121314151617181920{"evmVersion": "paris","optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Altnode__InsufficientPayment","type":"error"},{"inputs":[],"name":"Altnode__InvalidAccessKey","type":"error"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"Altnode__InvalidAssetId","type":"error"},{"inputs":[],"name":"Altnode__InvalidSubscription","type":"error"},{"inputs":[],"name":"Altnode__OnlyOwner","type":"error"},{"inputs":[],"name":"Altnode__OwnerCanNotPurchase","type":"error"},{"inputs":[],"name":"Altnode__SubscriptionExists","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"subscriber","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"validity","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"accessKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"SubscriptionPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"tokenMetadata","type":"string"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"}],"name":"TokenMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"},{"internalType":"address","name":"subscriber","type":"address"}],"name":"getAccessKeyByTokenId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"getActiveSubscribers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllAssets","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"accessKey","type":"bytes32"},{"internalType":"address","name":"subscriber","type":"address"}],"name":"getAssetURIByAccessKey","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"subscriber","type":"address"}],"name":"getSubscriptions","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"accessKey","type":"bytes32"},{"internalType":"address","name":"subscriber","type":"address"}],"name":"getTokenURIByAccessKey","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"},{"internalType":"address","name":"subscriber","type":"address"}],"name":"isSubscriptionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"string","name":"tokenMetadata","type":"string"},{"internalType":"string","name":"assetURI","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"mintAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"purchaseSubscription","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"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":"uint256","name":"","type":"uint256"}],"name":"subscriptionPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"subscriptions","outputs":[{"internalType":"uint256","name":"validity","type":"uint256"},{"internalType":"bytes32","name":"accessKey","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600781526020017f416c746e6f6465000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f416954000000000000000000000000000000000000000000000000000000000081525081600090816200008f91906200036d565b508060019081620000a191906200036d565b505050600060078190555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000454565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200017557607f821691505b6020821081036200018b576200018a6200012d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001f57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001b6565b620002018683620001b6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200024e62000248620002428462000219565b62000223565b62000219565b9050919050565b6000819050919050565b6200026a836200022d565b62000282620002798262000255565b848454620001c3565b825550505050565b600090565b620002996200028a565b620002a68184846200025f565b505050565b5b81811015620002ce57620002c26000826200028f565b600181019050620002ac565b5050565b601f8211156200031d57620002e78162000191565b620002f284620001a6565b8101602085101562000302578190505b6200031a6200031185620001a6565b830182620002ab565b50505b505050565b600082821c905092915050565b6000620003426000198460080262000322565b1980831691505092915050565b60006200035d83836200032f565b9150826002028217905092915050565b6200037882620000f3565b67ffffffffffffffff811115620003945762000393620000fe565b5b620003a082546200015c565b620003ad828285620002d2565b600060209050601f831160018114620003e55760008415620003d0578287015190505b620003dc85826200034f565b8655506200044c565b601f198416620003f58662000191565b60005b828110156200041f57848901518255600182019150602085019450602081019050620003f8565b868310156200043f57848901516200043b601f8916826200032f565b8355505b6001600288020188555050505b505050505050565b61465980620004646000396000f3fe6080604052600436106101665760003560e01c806370a08231116100d1578063b88d4fde1161008a578063c87b56dd11610064578063c87b56dd146105a0578063cabec0e0146105dd578063e985e9c51461061a578063eab68fd21461065757610166565b8063b88d4fde146104fc578063c337916614610525578063c59997581461056357610166565b806370a08231146103e75780638d1d44a9146104245780638da5cb5b1461044057806394dfc23a1461046b57806395d89b41146104a8578063a22cb465146104d357610166565b806342842e0e1161012357806342842e0e1461028d578063557bcdba146102b6578063595e741c146102f35780635d6a4413146103305780636352211e1461036d578063637836c1146103aa57610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b31461021057806323b872dd146102395780632acada4d14610262575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190612f4a565b610680565b60405161019f9190612f92565b60405180910390f35b3480156101b457600080fd5b506101bd6106e1565b6040516101ca919061303d565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190613095565b610773565b6040516102079190613103565b60405180910390f35b34801561021c57600080fd5b506102376004803603810190610232919061314a565b61078f565b005b34801561024557600080fd5b50610260600480360381019061025b919061318a565b6107a5565b005b34801561026e57600080fd5b506102776108a7565b604051610284919061303d565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af919061318a565b6109e8565b005b3480156102c257600080fd5b506102dd60048036038101906102d891906131dd565b610a08565b6040516102ea9190612f92565b60405180910390f35b3480156102ff57600080fd5b5061031a600480360381019061031591906131dd565b610a8d565b6040516103279190613236565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613251565b610aeb565b604051610364919061303d565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190613095565b610da8565b6040516103a19190613103565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc91906132aa565b610dba565b6040516103de919061303d565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190613251565b610f45565b60405161041b91906132f9565b60405180910390f35b61043e60048036038101906104399190613314565b610fff565b005b34801561044c57600080fd5b506104556114c7565b6040516104629190613103565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190613095565b6114ed565b60405161049f9190613412565b60405180910390f35b3480156104b457600080fd5b506104bd6117b9565b6040516104ca919061303d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190613460565b61184b565b005b34801561050857600080fd5b50610523600480360381019061051e91906135d5565b611861565b005b34801561053157600080fd5b5061054c600480360381019061054791906131dd565b611886565b60405161055a929190613658565b60405180910390f35b34801561056f57600080fd5b5061058a600480360381019061058591906132aa565b6118b7565b604051610597919061303d565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190613095565b6119af565b6040516105d4919061303d565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190613095565b6119c1565b60405161061191906132f9565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190613681565b6119d9565b60405161064e9190612f92565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190613721565b611a6d565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106da57506106d982611b7e565b5b9050919050565b6060600080546106f0906137f7565b80601f016020809104026020016040519081016040528092919081815260200182805461071c906137f7565b80156107695780601f1061073e57610100808354040283529160200191610769565b820191906000526020600020905b81548152906001019060200180831161074c57829003601f168201915b5050505050905090565b600061077e82611c60565b5061078882611ce8565b9050919050565b6107a1828261079c611d25565b611d2d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108175760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161080e9190613103565b60405180910390fd5b600061082b8383610826611d25565b611d3f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a1578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161089893929190613828565b60405180910390fd5b50505050565b60606000600754905060006040518060400160405280600181526020017f5b00000000000000000000000000000000000000000000000000000000000000815250905060005b828110156109bd57600061090082611f59565b610909836119af565b60405160200161091a92919061397f565b6040516020818303038152906040529050828160018661093a91906139f3565b8410610955576040518060200160405280600081525061098c565b6040518060400160405280600181526020017f2c000000000000000000000000000000000000000000000000000000000000008152505b60405160200161099e93929190613a27565b60405160208183030381529060405292505080806001019150506108ed565b50806040516020016109cf9190613aa4565b6040516020818303038152906040529050809250505090565b610a0383838360405180602001604052806000815250611861565b505050565b6000806009600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050428160000151101591505092915050565b60006009600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905092915050565b6060600080600754905060005b81811015610b7757426009600083815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610b6a578280610b6690613ac6565b9350505b8080600101915050610af8565b5060006040518060400160405280600181526020017f5b0000000000000000000000000000000000000000000000000000000000000081525090506000805b84811015610d7957426009600083815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610d6c576000821115610c455782604051602001610c339190613b5a565b60405160208183030381529060405292505b6000610c5082611f59565b610c59836119af565b610cb86009600086815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460001c612027565b610d146009600087815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611f59565b604051602001610d279493929190613d90565b60405160208183030381529060405290508381604051602001610d4b929190613e31565b60405160208183030381529060405293508280610d6790613ac6565b935050505b8080600101915050610bb6565b5081604051602001610d8b9190613aa4565b604051602081830303815290604052915081945050505050919050565b6000610db382611c60565b9050919050565b60606000600b60008581526020019081526020016000205490506000811080610de4575060075481115b80610e235750600073ffffffffffffffffffffffffffffffffffffffff16610e0b82610da8565b73ffffffffffffffffffffffffffffffffffffffff16145b15610e5a576040517fe943669800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e648184610a08565b15610f0d57600c60008281526020019081526020016000208054610e87906137f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb3906137f7565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b5050505050915050610f3f565b6040517f1ff3797300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb85760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610faf9190613103565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075482111561104657816040517ff3e63fa200000000000000000000000000000000000000000000000000000000815260040161103d91906132f9565b60405180910390fd5b600061105183610da8565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036110b8576040517fe931161100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426009600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611144576040517fa130c42200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600a600085815260200190815260200160002054905080341015611196576040517fac480a1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16346040516111bc90613e86565b60006040518083038185875af1925050503d80600081146111f9576040519150601f19603f3d011682016040523d82523d6000602084013e6111fe565b606091505b5050905080611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613ee7565b60405180910390fd5b60003361124e87611f59565b61125742611f59565b60405160200161126993929190613f9b565b604051602081830303815290604052805190602001209050604051806040016040528086426112989190613fe6565b8152602001828152506009600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155905050600e600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661144857600d6000878152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b85600b6000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fa3573a9c8a94ce4b27b49fa5d413f18db59fe2d5a9efe95569f4a7a86e1dd5b28787426114a59190613fe6565b84876040516114b7949392919061401a565b60405180910390a2505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060075482111561153657816040517ff3e63fa200000000000000000000000000000000000000000000000000000000815260040161152d91906132f9565b60405180910390fd5b6000600d60008481526020019081526020016000208054905090506000805b82811015611628576000600d600087815260200190815260200160002082815481106115845761158361405f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050426009600088815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541061161a57828061161690613ac6565b9350505b508080600101915050611555565b5060008167ffffffffffffffff811115611645576116446134aa565b5b6040519080825280602002602001820160405280156116735781602001602082028036833780820191505090505b5090506000805b848110801561168857508382105b156117ac576000600d600089815260200190815260200160002082815481106116b4576116b361405f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905042600960008a815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611798578084848151811061174f5761174e61405f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828061179490613ac6565b9350505b5080806117a490613ac6565b91505061167a565b5081945050505050919050565b6060600180546117c8906137f7565b80601f01602080910402602001604051908101604052809291908181526020018280546117f4906137f7565b80156118415780601f1061181657610100808354040283529160200191611841565b820191906000526020600020905b81548152906001019060200180831161182457829003601f168201915b5050505050905090565b61185d611856611d25565b8383612045565b5050565b61186c8484846107a5565b611880611877611d25565b858585856121b4565b50505050565b6009602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60606000600b600085815260200190815260200160002054905060008110806118e1575060075481115b806119205750600073ffffffffffffffffffffffffffffffffffffffff1661190882610da8565b73ffffffffffffffffffffffffffffffffffffffff16145b15611957576040517fe943669800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119618184610a08565b156119775761196f816119af565b9150506119a9565b6040517f1ff3797300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b60606119ba82612365565b9050919050565b600a6020528060005260406000206000915090505481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a7986600754612478565b611ac960075486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612496565b8282600c600060075481526020019081526020016000209182611aed929190614245565b5080600a60006007548152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167faaabadf30377b070ea448b56e05e18337b24c16080fd4d7cac341320baa8b65a600754878785604051611b569493929190614342565b60405180910390a260076000815480929190611b7190613ac6565b9190505550505050505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c4957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c595750611c58826124f2565b5b9050919050565b600080611c6c8361255c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cdf57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611cd691906132f9565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b611d3a8383836001612599565b505050565b600080611d4b8461255c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8d57611d8c81848661275e565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e1e57611dcf600085600080612599565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ea1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b606060006001611f6884612822565b01905060008167ffffffffffffffff811115611f8757611f866134aa565b5b6040519080825280601f01601f191660200182016040528015611fb95781602001600182028036833780820191505090505b509050600082602001820190505b60011561201c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120105761200f614382565b5b04945060008503611fc7575b819350505050919050565b606061203e82600161203885612975565b01612a2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b657816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016120ad9190613103565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121a79190612f92565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561235e578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016122139493929190614406565b6020604051808303816000875af192505050801561224f57506040513d601f19601f8201168201806040525081019061224c9190614467565b60015b6122d3573d806000811461227f576040519150601f19603f3d011682016040523d82523d6000602084013e612284565b606091505b5060008151036122cb57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016122c29190613103565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461235c57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016123539190613103565b60405180910390fd5b505b5050505050565b606061237082611c60565b506000600660008481526020019081526020016000208054612391906137f7565b80601f01602080910402602001604051908101604052809291908181526020018280546123bd906137f7565b801561240a5780601f106123df5761010080835404028352916020019161240a565b820191906000526020600020905b8154815290600101906020018083116123ed57829003601f168201915b50505050509050600061241b612c74565b90506000815103612430578192505050612473565b60008251111561246557808260405160200161244d929190613e31565b60405160208183030381529060405292505050612473565b61246e84612c8b565b925050505b919050565b612492828260405180602001604052806000815250612cf4565b5050565b806006600084815260200190815260200160002090816124b69190614494565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516124e691906132f9565b60405180910390a15050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806125d25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127065760006125e284611c60565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561264d57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612660575061265e81846119d9565b155b156126a257826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016126999190613103565b60405180910390fd5b811561270457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b612769838383612d18565b61281d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127de57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016127d591906132f9565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612814929190614566565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612880577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161287657612875614382565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106128bd576d04ee2d6d415b85acef810000000083816128b3576128b2614382565b5b0492506020810190505b662386f26fc1000083106128ec57662386f26fc1000083816128e2576128e1614382565b5b0492506010810190505b6305f5e1008310612915576305f5e100838161290b5761290a614382565b5b0492506008810190505b612710831061293a5761271083816129305761292f614382565b5b0492506004810190505b6064831061295d576064838161295357612952614382565b5b0492506002810190505b600a831061296c576001810190505b80915050919050565b6000806000905060006129996fffffffffffffffffffffffffffffffff8511612dd9565b90506080810284901c935060108102820191506129bf67ffffffffffffffff8511612dd9565b90506040810284901c935060088102820191506129e163ffffffff8511612dd9565b90506020810284901c93506004810282019150612a0161ffff8511612dd9565b90506010810284901c93506002810282019150612a2060ff8511612dd9565b820191508192505050919050565b6060600083905060006002846002612a46919061458f565b612a509190613fe6565b67ffffffffffffffff811115612a6957612a686134aa565b5b6040519080825280601f01601f191660200182016040528015612a9b5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612ad357612ad261405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b3757612b3661405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001856002612b77919061458f565b612b819190613fe6565b90505b6001811115612c21577f3031323334353637383961626364656600000000000000000000000000000000600f841660108110612bc357612bc261405f565b5b1a60f81b828281518110612bda57612bd961405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600483901c925080612c1a906145d1565b9050612b84565b5060008214612c695784846040517fe22e27eb000000000000000000000000000000000000000000000000000000008152600401612c609291906145fa565b60405180910390fd5b809250505092915050565b606060405180602001604052806000815250905090565b6060612c9682611c60565b506000612ca1612c74565b90506000815111612cc15760405180602001604052806000815250612cec565b80612ccb84611f59565b604051602001612cdc929190613e31565b6040516020818303038152906040525b915050919050565b612cfe8383612de5565b612d13612d09611d25565b60008585856121b4565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612dd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612d915750612d9084846119d9565b5b80612dcf57508273ffffffffffffffffffffffffffffffffffffffff16612db783611ce8565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e575760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612e4e9190613103565b60405180910390fd5b6000612e6583836000611d3f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ed95760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612ed09190613103565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612f2781612ef2565b8114612f3257600080fd5b50565b600081359050612f4481612f1e565b92915050565b600060208284031215612f6057612f5f612ee8565b5b6000612f6e84828501612f35565b91505092915050565b60008115159050919050565b612f8c81612f77565b82525050565b6000602082019050612fa76000830184612f83565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe7578082015181840152602081019050612fcc565b60008484015250505050565b6000601f19601f8301169050919050565b600061300f82612fad565b6130198185612fb8565b9350613029818560208601612fc9565b61303281612ff3565b840191505092915050565b600060208201905081810360008301526130578184613004565b905092915050565b6000819050919050565b6130728161305f565b811461307d57600080fd5b50565b60008135905061308f81613069565b92915050565b6000602082840312156130ab576130aa612ee8565b5b60006130b984828501613080565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ed826130c2565b9050919050565b6130fd816130e2565b82525050565b600060208201905061311860008301846130f4565b92915050565b613127816130e2565b811461313257600080fd5b50565b6000813590506131448161311e565b92915050565b6000806040838503121561316157613160612ee8565b5b600061316f85828601613135565b925050602061318085828601613080565b9150509250929050565b6000806000606084860312156131a3576131a2612ee8565b5b60006131b186828701613135565b93505060206131c286828701613135565b92505060406131d386828701613080565b9150509250925092565b600080604083850312156131f4576131f3612ee8565b5b600061320285828601613080565b925050602061321385828601613135565b9150509250929050565b6000819050919050565b6132308161321d565b82525050565b600060208201905061324b6000830184613227565b92915050565b60006020828403121561326757613266612ee8565b5b600061327584828501613135565b91505092915050565b6132878161321d565b811461329257600080fd5b50565b6000813590506132a48161327e565b92915050565b600080604083850312156132c1576132c0612ee8565b5b60006132cf85828601613295565b92505060206132e085828601613135565b9150509250929050565b6132f38161305f565b82525050565b600060208201905061330e60008301846132ea565b92915050565b6000806040838503121561332b5761332a612ee8565b5b600061333985828601613080565b925050602061334a85828601613080565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613389816130e2565b82525050565b600061339b8383613380565b60208301905092915050565b6000602082019050919050565b60006133bf82613354565b6133c9818561335f565b93506133d483613370565b8060005b838110156134055781516133ec888261338f565b97506133f7836133a7565b9250506001810190506133d8565b5085935050505092915050565b6000602082019050818103600083015261342c81846133b4565b905092915050565b61343d81612f77565b811461344857600080fd5b50565b60008135905061345a81613434565b92915050565b6000806040838503121561347757613476612ee8565b5b600061348585828601613135565b92505060206134968582860161344b565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134e282612ff3565b810181811067ffffffffffffffff82111715613501576135006134aa565b5b80604052505050565b6000613514612ede565b905061352082826134d9565b919050565b600067ffffffffffffffff8211156135405761353f6134aa565b5b61354982612ff3565b9050602081019050919050565b82818337600083830152505050565b600061357861357384613525565b61350a565b905082815260208101848484011115613594576135936134a5565b5b61359f848285613556565b509392505050565b600082601f8301126135bc576135bb6134a0565b5b81356135cc848260208601613565565b91505092915050565b600080600080608085870312156135ef576135ee612ee8565b5b60006135fd87828801613135565b945050602061360e87828801613135565b935050604061361f87828801613080565b925050606085013567ffffffffffffffff8111156136405761363f612eed565b5b61364c878288016135a7565b91505092959194509250565b600060408201905061366d60008301856132ea565b61367a6020830184613227565b9392505050565b6000806040838503121561369857613697612ee8565b5b60006136a685828601613135565b92505060206136b785828601613135565b9150509250929050565b600080fd5b600080fd5b60008083601f8401126136e1576136e06134a0565b5b8235905067ffffffffffffffff8111156136fe576136fd6136c1565b5b60208301915083600182028301111561371a576137196136c6565b5b9250929050565b6000806000806000806080878903121561373e5761373d612ee8565b5b600061374c89828a01613135565b965050602087013567ffffffffffffffff81111561376d5761376c612eed565b5b61377989828a016136cb565b9550955050604087013567ffffffffffffffff81111561379c5761379b612eed565b5b6137a889828a016136cb565b935093505060606137bb89828a01613080565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380f57607f821691505b602082108103613822576138216137c8565b5b50919050565b600060608201905061383d60008301866130f4565b61384a60208301856132ea565b61385760408301846130f4565b949350505050565b600081905092915050565b7f7b22746f6b656e4964223a200000000000000000000000000000000000000000600082015250565b60006138a0600c8361385f565b91506138ab8261386a565b600c82019050919050565b60006138c182612fad565b6138cb818561385f565b93506138db818560208601612fc9565b80840191505092915050565b7f2c2022746f6b656e557269223a20220000000000000000000000000000000000600082015250565b600061391d600f8361385f565b9150613928826138e7565b600f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b600061396960028361385f565b915061397482613933565b600282019050919050565b600061398a82613893565b915061399682856138b6565b91506139a182613910565b91506139ad82846138b6565b91506139b88261395c565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139fe8261305f565b9150613a098361305f565b9250828203905081811115613a2157613a206139c4565b5b92915050565b6000613a3382866138b6565b9150613a3f82856138b6565b9150613a4b82846138b6565b9150819050949350505050565b7f5d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613a8e60018361385f565b9150613a9982613a58565b600182019050919050565b6000613ab082846138b6565b9150613abb82613a81565b915081905092915050565b6000613ad18261305f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b0357613b026139c4565b5b600182019050919050565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b4460018361385f565b9150613b4f82613b0e565b600182019050919050565b6000613b6682846138b6565b9150613b7182613b37565b915081905092915050565b7f7b00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613bb260018361385f565b9150613bbd82613b7c565b600182019050919050565b7f22746f6b656e4964223a00000000000000000000000000000000000000000000600082015250565b6000613bfe600a8361385f565b9150613c0982613bc8565b600a82019050919050565b7f22746f6b656e557269223a220000000000000000000000000000000000000000600082015250565b6000613c4a600c8361385f565b9150613c5582613c14565b600c82019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c9660028361385f565b9150613ca182613c60565b600282019050919050565b7f226163636573734b6579223a2200000000000000000000000000000000000000600082015250565b6000613ce2600d8361385f565b9150613ced82613cac565b600d82019050919050565b7f2276616c6964697479223a000000000000000000000000000000000000000000600082015250565b6000613d2e600b8361385f565b9150613d3982613cf8565b600b82019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d7a60018361385f565b9150613d8582613d44565b600182019050919050565b6000613d9b82613ba5565b9150613da682613bf1565b9150613db282876138b6565b9150613dbd82613b37565b9150613dc882613c3d565b9150613dd482866138b6565b9150613ddf82613c89565b9150613dea82613cd5565b9150613df682856138b6565b9150613e0182613c89565b9150613e0c82613d21565b9150613e1882846138b6565b9150613e2382613d6d565b915081905095945050505050565b6000613e3d82856138b6565b9150613e4982846138b6565b91508190509392505050565b600081905092915050565b50565b6000613e70600083613e55565b9150613e7b82613e60565b600082019050919050565b6000613e9182613e63565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000613ed1601083612fb8565b9150613edc82613e9b565b602082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b60008160601b9050919050565b6000613f1f82613f07565b9050919050565b6000613f3182613f14565b9050919050565b613f49613f44826130e2565b613f26565b82525050565b7f2d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613f8560018361385f565b9150613f9082613f4f565b600182019050919050565b6000613fa78286613f38565b601482019150613fb682613f78565b9150613fc282856138b6565b9150613fcd82613f78565b9150613fd982846138b6565b9150819050949350505050565b6000613ff18261305f565b9150613ffc8361305f565b9250828201905080821115614014576140136139c4565b5b92915050565b600060808201905061402f60008301876132ea565b61403c60208301866132ea565b6140496040830185613227565b61405660608301846132ea565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026140fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826140be565b61410586836140be565b95508019841693508086168417925050509392505050565b6000819050919050565b600061414261413d6141388461305f565b61411d565b61305f565b9050919050565b6000819050919050565b61415c83614127565b61417061416882614149565b8484546140cb565b825550505050565b600090565b614185614178565b614190818484614153565b505050565b5b818110156141b4576141a960008261417d565b600181019050614196565b5050565b601f8211156141f9576141ca81614099565b6141d3846140ae565b810160208510156141e2578190505b6141f66141ee856140ae565b830182614195565b50505b505050565b600082821c905092915050565b600061421c600019846008026141fe565b1980831691505092915050565b6000614235838361420b565b9150826002028217905092915050565b61424f838361408e565b67ffffffffffffffff811115614268576142676134aa565b5b61427282546137f7565b61427d8282856141b8565b6000601f8311600181146142ac576000841561429a578287013590505b6142a48582614229565b86555061430c565b601f1984166142ba86614099565b60005b828110156142e2578489013582556001820191506020850194506020810190506142bd565b868310156142ff57848901356142fb601f89168261420b565b8355505b6001600288020188555050505b50505050505050565b60006143218385612fb8565b935061432e838584613556565b61433783612ff3565b840190509392505050565b600060608201905061435760008301876132ea565b818103602083015261436a818587614315565b905061437960408301846132ea565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b60006143d8826143b1565b6143e281856143bc565b93506143f2818560208601612fc9565b6143fb81612ff3565b840191505092915050565b600060808201905061441b60008301876130f4565b61442860208301866130f4565b61443560408301856132ea565b818103606083015261444781846143cd565b905095945050505050565b60008151905061446181612f1e565b92915050565b60006020828403121561447d5761447c612ee8565b5b600061448b84828501614452565b91505092915050565b61449d82612fad565b67ffffffffffffffff8111156144b6576144b56134aa565b5b6144c082546137f7565b6144cb8282856141b8565b600060209050601f8311600181146144fe57600084156144ec578287015190505b6144f68582614229565b86555061455e565b601f19841661450c86614099565b60005b828110156145345784890151825560018201915060208501945060208101905061450f565b86831015614551578489015161454d601f89168261420b565b8355505b6001600288020188555050505b505050505050565b600060408201905061457b60008301856130f4565b61458860208301846132ea565b9392505050565b600061459a8261305f565b91506145a58361305f565b92508282026145b38161305f565b915082820484148315176145ca576145c96139c4565b5b5092915050565b60006145dc8261305f565b9150600082036145ef576145ee6139c4565b5b600182039050919050565b600060408201905061460f60008301856132ea565b61461c60208301846132ea565b939250505056fea2646970667358221220ae7200ba52af8afe4a398ab6098fd5e2ebb03f321f91160fc9e2aba515f8e98164736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101665760003560e01c806370a08231116100d1578063b88d4fde1161008a578063c87b56dd11610064578063c87b56dd146105a0578063cabec0e0146105dd578063e985e9c51461061a578063eab68fd21461065757610166565b8063b88d4fde146104fc578063c337916614610525578063c59997581461056357610166565b806370a08231146103e75780638d1d44a9146104245780638da5cb5b1461044057806394dfc23a1461046b57806395d89b41146104a8578063a22cb465146104d357610166565b806342842e0e1161012357806342842e0e1461028d578063557bcdba146102b6578063595e741c146102f35780635d6a4413146103305780636352211e1461036d578063637836c1146103aa57610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b31461021057806323b872dd146102395780632acada4d14610262575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190612f4a565b610680565b60405161019f9190612f92565b60405180910390f35b3480156101b457600080fd5b506101bd6106e1565b6040516101ca919061303d565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190613095565b610773565b6040516102079190613103565b60405180910390f35b34801561021c57600080fd5b506102376004803603810190610232919061314a565b61078f565b005b34801561024557600080fd5b50610260600480360381019061025b919061318a565b6107a5565b005b34801561026e57600080fd5b506102776108a7565b604051610284919061303d565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af919061318a565b6109e8565b005b3480156102c257600080fd5b506102dd60048036038101906102d891906131dd565b610a08565b6040516102ea9190612f92565b60405180910390f35b3480156102ff57600080fd5b5061031a600480360381019061031591906131dd565b610a8d565b6040516103279190613236565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613251565b610aeb565b604051610364919061303d565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190613095565b610da8565b6040516103a19190613103565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc91906132aa565b610dba565b6040516103de919061303d565b60405180910390f35b3480156103f357600080fd5b5061040e60048036038101906104099190613251565b610f45565b60405161041b91906132f9565b60405180910390f35b61043e60048036038101906104399190613314565b610fff565b005b34801561044c57600080fd5b506104556114c7565b6040516104629190613103565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190613095565b6114ed565b60405161049f9190613412565b60405180910390f35b3480156104b457600080fd5b506104bd6117b9565b6040516104ca919061303d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190613460565b61184b565b005b34801561050857600080fd5b50610523600480360381019061051e91906135d5565b611861565b005b34801561053157600080fd5b5061054c600480360381019061054791906131dd565b611886565b60405161055a929190613658565b60405180910390f35b34801561056f57600080fd5b5061058a600480360381019061058591906132aa565b6118b7565b604051610597919061303d565b60405180910390f35b3480156105ac57600080fd5b506105c760048036038101906105c29190613095565b6119af565b6040516105d4919061303d565b60405180910390f35b3480156105e957600080fd5b5061060460048036038101906105ff9190613095565b6119c1565b60405161061191906132f9565b60405180910390f35b34801561062657600080fd5b50610641600480360381019061063c9190613681565b6119d9565b60405161064e9190612f92565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190613721565b611a6d565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106da57506106d982611b7e565b5b9050919050565b6060600080546106f0906137f7565b80601f016020809104026020016040519081016040528092919081815260200182805461071c906137f7565b80156107695780601f1061073e57610100808354040283529160200191610769565b820191906000526020600020905b81548152906001019060200180831161074c57829003601f168201915b5050505050905090565b600061077e82611c60565b5061078882611ce8565b9050919050565b6107a1828261079c611d25565b611d2d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108175760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161080e9190613103565b60405180910390fd5b600061082b8383610826611d25565b611d3f565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a1578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161089893929190613828565b60405180910390fd5b50505050565b60606000600754905060006040518060400160405280600181526020017f5b00000000000000000000000000000000000000000000000000000000000000815250905060005b828110156109bd57600061090082611f59565b610909836119af565b60405160200161091a92919061397f565b6040516020818303038152906040529050828160018661093a91906139f3565b8410610955576040518060200160405280600081525061098c565b6040518060400160405280600181526020017f2c000000000000000000000000000000000000000000000000000000000000008152505b60405160200161099e93929190613a27565b60405160208183030381529060405292505080806001019150506108ed565b50806040516020016109cf9190613aa4565b6040516020818303038152906040529050809250505090565b610a0383838360405180602001604052806000815250611861565b505050565b6000806009600085815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020604051806040016040529081600082015481526020016001820154815250509050428160000151101591505092915050565b60006009600084815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905092915050565b6060600080600754905060005b81811015610b7757426009600083815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610b6a578280610b6690613ac6565b9350505b8080600101915050610af8565b5060006040518060400160405280600181526020017f5b0000000000000000000000000000000000000000000000000000000000000081525090506000805b84811015610d7957426009600083815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115610d6c576000821115610c455782604051602001610c339190613b5a565b60405160208183030381529060405292505b6000610c5082611f59565b610c59836119af565b610cb86009600086815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015460001c612027565b610d146009600087815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611f59565b604051602001610d279493929190613d90565b60405160208183030381529060405290508381604051602001610d4b929190613e31565b60405160208183030381529060405293508280610d6790613ac6565b935050505b8080600101915050610bb6565b5081604051602001610d8b9190613aa4565b604051602081830303815290604052915081945050505050919050565b6000610db382611c60565b9050919050565b60606000600b60008581526020019081526020016000205490506000811080610de4575060075481115b80610e235750600073ffffffffffffffffffffffffffffffffffffffff16610e0b82610da8565b73ffffffffffffffffffffffffffffffffffffffff16145b15610e5a576040517fe943669800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e648184610a08565b15610f0d57600c60008281526020019081526020016000208054610e87906137f7565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb3906137f7565b8015610f005780601f10610ed557610100808354040283529160200191610f00565b820191906000526020600020905b815481529060010190602001808311610ee357829003601f168201915b5050505050915050610f3f565b6040517f1ff3797300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb85760006040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610faf9190613103565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075482111561104657816040517ff3e63fa200000000000000000000000000000000000000000000000000000000815260040161103d91906132f9565b60405180910390fd5b600061105183610da8565b90508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036110b8576040517fe931161100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426009600085815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611144576040517fa130c42200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600a600085815260200190815260200160002054905080341015611196576040517fac480a1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16346040516111bc90613e86565b60006040518083038185875af1925050503d80600081146111f9576040519150601f19603f3d011682016040523d82523d6000602084013e6111fe565b606091505b5050905080611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613ee7565b60405180910390fd5b60003361124e87611f59565b61125742611f59565b60405160200161126993929190613f9b565b604051602081830303815290604052805190602001209050604051806040016040528086426112989190613fe6565b8152602001828152506009600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010155905050600e600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661144857600d6000878152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e600088815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b85600b6000838152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fa3573a9c8a94ce4b27b49fa5d413f18db59fe2d5a9efe95569f4a7a86e1dd5b28787426114a59190613fe6565b84876040516114b7949392919061401a565b60405180910390a2505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060075482111561153657816040517ff3e63fa200000000000000000000000000000000000000000000000000000000815260040161152d91906132f9565b60405180910390fd5b6000600d60008481526020019081526020016000208054905090506000805b82811015611628576000600d600087815260200190815260200160002082815481106115845761158361405f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050426009600088815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541061161a57828061161690613ac6565b9350505b508080600101915050611555565b5060008167ffffffffffffffff811115611645576116446134aa565b5b6040519080825280602002602001820160405280156116735781602001602082028036833780820191505090505b5090506000805b848110801561168857508382105b156117ac576000600d600089815260200190815260200160002082815481106116b4576116b361405f565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905042600960008a815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611798578084848151811061174f5761174e61405f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050828061179490613ac6565b9350505b5080806117a490613ac6565b91505061167a565b5081945050505050919050565b6060600180546117c8906137f7565b80601f01602080910402602001604051908101604052809291908181526020018280546117f4906137f7565b80156118415780601f1061181657610100808354040283529160200191611841565b820191906000526020600020905b81548152906001019060200180831161182457829003601f168201915b5050505050905090565b61185d611856611d25565b8383612045565b5050565b61186c8484846107a5565b611880611877611d25565b858585856121b4565b50505050565b6009602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60606000600b600085815260200190815260200160002054905060008110806118e1575060075481115b806119205750600073ffffffffffffffffffffffffffffffffffffffff1661190882610da8565b73ffffffffffffffffffffffffffffffffffffffff16145b15611957576040517fe943669800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119618184610a08565b156119775761196f816119af565b9150506119a9565b6040517f1ff3797300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b92915050565b60606119ba82612365565b9050919050565b600a6020528060005260406000206000915090505481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611a7986600754612478565b611ac960075486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612496565b8282600c600060075481526020019081526020016000209182611aed929190614245565b5080600a60006007548152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff167faaabadf30377b070ea448b56e05e18337b24c16080fd4d7cac341320baa8b65a600754878785604051611b569493929190614342565b60405180910390a260076000815480929190611b7190613ac6565b9190505550505050505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c4957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c595750611c58826124f2565b5b9050919050565b600080611c6c8361255c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cdf57826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611cd691906132f9565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b611d3a8383836001612599565b505050565b600080611d4b8461255c565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611d8d57611d8c81848661275e565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e1e57611dcf600085600080612599565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611ea1576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b606060006001611f6884612822565b01905060008167ffffffffffffffff811115611f8757611f866134aa565b5b6040519080825280601f01601f191660200182016040528015611fb95781602001600182028036833780820191505090505b509050600082602001820190505b60011561201c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816120105761200f614382565b5b04945060008503611fc7575b819350505050919050565b606061203e82600161203885612975565b01612a2e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b657816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016120ad9190613103565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121a79190612f92565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561235e578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016122139493929190614406565b6020604051808303816000875af192505050801561224f57506040513d601f19601f8201168201806040525081019061224c9190614467565b60015b6122d3573d806000811461227f576040519150601f19603f3d011682016040523d82523d6000602084013e612284565b606091505b5060008151036122cb57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016122c29190613103565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461235c57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016123539190613103565b60405180910390fd5b505b5050505050565b606061237082611c60565b506000600660008481526020019081526020016000208054612391906137f7565b80601f01602080910402602001604051908101604052809291908181526020018280546123bd906137f7565b801561240a5780601f106123df5761010080835404028352916020019161240a565b820191906000526020600020905b8154815290600101906020018083116123ed57829003601f168201915b50505050509050600061241b612c74565b90506000815103612430578192505050612473565b60008251111561246557808260405160200161244d929190613e31565b60405160208183030381529060405292505050612473565b61246e84612c8b565b925050505b919050565b612492828260405180602001604052806000815250612cf4565b5050565b806006600084815260200190815260200160002090816124b69190614494565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516124e691906132f9565b60405180910390a15050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806125d25750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156127065760006125e284611c60565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561264d57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015612660575061265e81846119d9565b155b156126a257826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016126999190613103565b60405180910390fd5b811561270457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b612769838383612d18565b61281d57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127de57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016127d591906132f9565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612814929190614566565b60405180910390fd5b505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612880577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161287657612875614382565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106128bd576d04ee2d6d415b85acef810000000083816128b3576128b2614382565b5b0492506020810190505b662386f26fc1000083106128ec57662386f26fc1000083816128e2576128e1614382565b5b0492506010810190505b6305f5e1008310612915576305f5e100838161290b5761290a614382565b5b0492506008810190505b612710831061293a5761271083816129305761292f614382565b5b0492506004810190505b6064831061295d576064838161295357612952614382565b5b0492506002810190505b600a831061296c576001810190505b80915050919050565b6000806000905060006129996fffffffffffffffffffffffffffffffff8511612dd9565b90506080810284901c935060108102820191506129bf67ffffffffffffffff8511612dd9565b90506040810284901c935060088102820191506129e163ffffffff8511612dd9565b90506020810284901c93506004810282019150612a0161ffff8511612dd9565b90506010810284901c93506002810282019150612a2060ff8511612dd9565b820191508192505050919050565b6060600083905060006002846002612a46919061458f565b612a509190613fe6565b67ffffffffffffffff811115612a6957612a686134aa565b5b6040519080825280601f01601f191660200182016040528015612a9b5781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110612ad357612ad261405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110612b3757612b3661405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001856002612b77919061458f565b612b819190613fe6565b90505b6001811115612c21577f3031323334353637383961626364656600000000000000000000000000000000600f841660108110612bc357612bc261405f565b5b1a60f81b828281518110612bda57612bd961405f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600483901c925080612c1a906145d1565b9050612b84565b5060008214612c695784846040517fe22e27eb000000000000000000000000000000000000000000000000000000008152600401612c609291906145fa565b60405180910390fd5b809250505092915050565b606060405180602001604052806000815250905090565b6060612c9682611c60565b506000612ca1612c74565b90506000815111612cc15760405180602001604052806000815250612cec565b80612ccb84611f59565b604051602001612cdc929190613e31565b6040516020818303038152906040525b915050919050565b612cfe8383612de5565b612d13612d09611d25565b60008585856121b4565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612dd057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612d915750612d9084846119d9565b5b80612dcf57508273ffffffffffffffffffffffffffffffffffffffff16612db783611ce8565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e575760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612e4e9190613103565b60405180910390fd5b6000612e6583836000611d3f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ed95760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612ed09190613103565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612f2781612ef2565b8114612f3257600080fd5b50565b600081359050612f4481612f1e565b92915050565b600060208284031215612f6057612f5f612ee8565b5b6000612f6e84828501612f35565b91505092915050565b60008115159050919050565b612f8c81612f77565b82525050565b6000602082019050612fa76000830184612f83565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fe7578082015181840152602081019050612fcc565b60008484015250505050565b6000601f19601f8301169050919050565b600061300f82612fad565b6130198185612fb8565b9350613029818560208601612fc9565b61303281612ff3565b840191505092915050565b600060208201905081810360008301526130578184613004565b905092915050565b6000819050919050565b6130728161305f565b811461307d57600080fd5b50565b60008135905061308f81613069565b92915050565b6000602082840312156130ab576130aa612ee8565b5b60006130b984828501613080565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130ed826130c2565b9050919050565b6130fd816130e2565b82525050565b600060208201905061311860008301846130f4565b92915050565b613127816130e2565b811461313257600080fd5b50565b6000813590506131448161311e565b92915050565b6000806040838503121561316157613160612ee8565b5b600061316f85828601613135565b925050602061318085828601613080565b9150509250929050565b6000806000606084860312156131a3576131a2612ee8565b5b60006131b186828701613135565b93505060206131c286828701613135565b92505060406131d386828701613080565b9150509250925092565b600080604083850312156131f4576131f3612ee8565b5b600061320285828601613080565b925050602061321385828601613135565b9150509250929050565b6000819050919050565b6132308161321d565b82525050565b600060208201905061324b6000830184613227565b92915050565b60006020828403121561326757613266612ee8565b5b600061327584828501613135565b91505092915050565b6132878161321d565b811461329257600080fd5b50565b6000813590506132a48161327e565b92915050565b600080604083850312156132c1576132c0612ee8565b5b60006132cf85828601613295565b92505060206132e085828601613135565b9150509250929050565b6132f38161305f565b82525050565b600060208201905061330e60008301846132ea565b92915050565b6000806040838503121561332b5761332a612ee8565b5b600061333985828601613080565b925050602061334a85828601613080565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613389816130e2565b82525050565b600061339b8383613380565b60208301905092915050565b6000602082019050919050565b60006133bf82613354565b6133c9818561335f565b93506133d483613370565b8060005b838110156134055781516133ec888261338f565b97506133f7836133a7565b9250506001810190506133d8565b5085935050505092915050565b6000602082019050818103600083015261342c81846133b4565b905092915050565b61343d81612f77565b811461344857600080fd5b50565b60008135905061345a81613434565b92915050565b6000806040838503121561347757613476612ee8565b5b600061348585828601613135565b92505060206134968582860161344b565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134e282612ff3565b810181811067ffffffffffffffff82111715613501576135006134aa565b5b80604052505050565b6000613514612ede565b905061352082826134d9565b919050565b600067ffffffffffffffff8211156135405761353f6134aa565b5b61354982612ff3565b9050602081019050919050565b82818337600083830152505050565b600061357861357384613525565b61350a565b905082815260208101848484011115613594576135936134a5565b5b61359f848285613556565b509392505050565b600082601f8301126135bc576135bb6134a0565b5b81356135cc848260208601613565565b91505092915050565b600080600080608085870312156135ef576135ee612ee8565b5b60006135fd87828801613135565b945050602061360e87828801613135565b935050604061361f87828801613080565b925050606085013567ffffffffffffffff8111156136405761363f612eed565b5b61364c878288016135a7565b91505092959194509250565b600060408201905061366d60008301856132ea565b61367a6020830184613227565b9392505050565b6000806040838503121561369857613697612ee8565b5b60006136a685828601613135565b92505060206136b785828601613135565b9150509250929050565b600080fd5b600080fd5b60008083601f8401126136e1576136e06134a0565b5b8235905067ffffffffffffffff8111156136fe576136fd6136c1565b5b60208301915083600182028301111561371a576137196136c6565b5b9250929050565b6000806000806000806080878903121561373e5761373d612ee8565b5b600061374c89828a01613135565b965050602087013567ffffffffffffffff81111561376d5761376c612eed565b5b61377989828a016136cb565b9550955050604087013567ffffffffffffffff81111561379c5761379b612eed565b5b6137a889828a016136cb565b935093505060606137bb89828a01613080565b9150509295509295509295565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061380f57607f821691505b602082108103613822576138216137c8565b5b50919050565b600060608201905061383d60008301866130f4565b61384a60208301856132ea565b61385760408301846130f4565b949350505050565b600081905092915050565b7f7b22746f6b656e4964223a200000000000000000000000000000000000000000600082015250565b60006138a0600c8361385f565b91506138ab8261386a565b600c82019050919050565b60006138c182612fad565b6138cb818561385f565b93506138db818560208601612fc9565b80840191505092915050565b7f2c2022746f6b656e557269223a20220000000000000000000000000000000000600082015250565b600061391d600f8361385f565b9150613928826138e7565b600f82019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b600061396960028361385f565b915061397482613933565b600282019050919050565b600061398a82613893565b915061399682856138b6565b91506139a182613910565b91506139ad82846138b6565b91506139b88261395c565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006139fe8261305f565b9150613a098361305f565b9250828203905081811115613a2157613a206139c4565b5b92915050565b6000613a3382866138b6565b9150613a3f82856138b6565b9150613a4b82846138b6565b9150819050949350505050565b7f5d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613a8e60018361385f565b9150613a9982613a58565b600182019050919050565b6000613ab082846138b6565b9150613abb82613a81565b915081905092915050565b6000613ad18261305f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613b0357613b026139c4565b5b600182019050919050565b7f2c00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b4460018361385f565b9150613b4f82613b0e565b600182019050919050565b6000613b6682846138b6565b9150613b7182613b37565b915081905092915050565b7f7b00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613bb260018361385f565b9150613bbd82613b7c565b600182019050919050565b7f22746f6b656e4964223a00000000000000000000000000000000000000000000600082015250565b6000613bfe600a8361385f565b9150613c0982613bc8565b600a82019050919050565b7f22746f6b656e557269223a220000000000000000000000000000000000000000600082015250565b6000613c4a600c8361385f565b9150613c5582613c14565b600c82019050919050565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b6000613c9660028361385f565b9150613ca182613c60565b600282019050919050565b7f226163636573734b6579223a2200000000000000000000000000000000000000600082015250565b6000613ce2600d8361385f565b9150613ced82613cac565b600d82019050919050565b7f2276616c6964697479223a000000000000000000000000000000000000000000600082015250565b6000613d2e600b8361385f565b9150613d3982613cf8565b600b82019050919050565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613d7a60018361385f565b9150613d8582613d44565b600182019050919050565b6000613d9b82613ba5565b9150613da682613bf1565b9150613db282876138b6565b9150613dbd82613b37565b9150613dc882613c3d565b9150613dd482866138b6565b9150613ddf82613c89565b9150613dea82613cd5565b9150613df682856138b6565b9150613e0182613c89565b9150613e0c82613d21565b9150613e1882846138b6565b9150613e2382613d6d565b915081905095945050505050565b6000613e3d82856138b6565b9150613e4982846138b6565b91508190509392505050565b600081905092915050565b50565b6000613e70600083613e55565b9150613e7b82613e60565b600082019050919050565b6000613e9182613e63565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000613ed1601083612fb8565b9150613edc82613e9b565b602082019050919050565b60006020820190508181036000830152613f0081613ec4565b9050919050565b60008160601b9050919050565b6000613f1f82613f07565b9050919050565b6000613f3182613f14565b9050919050565b613f49613f44826130e2565b613f26565b82525050565b7f2d00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613f8560018361385f565b9150613f9082613f4f565b600182019050919050565b6000613fa78286613f38565b601482019150613fb682613f78565b9150613fc282856138b6565b9150613fcd82613f78565b9150613fd982846138b6565b9150819050949350505050565b6000613ff18261305f565b9150613ffc8361305f565b9250828201905080821115614014576140136139c4565b5b92915050565b600060808201905061402f60008301876132ea565b61403c60208301866132ea565b6140496040830185613227565b61405660608301846132ea565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026140fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826140be565b61410586836140be565b95508019841693508086168417925050509392505050565b6000819050919050565b600061414261413d6141388461305f565b61411d565b61305f565b9050919050565b6000819050919050565b61415c83614127565b61417061416882614149565b8484546140cb565b825550505050565b600090565b614185614178565b614190818484614153565b505050565b5b818110156141b4576141a960008261417d565b600181019050614196565b5050565b601f8211156141f9576141ca81614099565b6141d3846140ae565b810160208510156141e2578190505b6141f66141ee856140ae565b830182614195565b50505b505050565b600082821c905092915050565b600061421c600019846008026141fe565b1980831691505092915050565b6000614235838361420b565b9150826002028217905092915050565b61424f838361408e565b67ffffffffffffffff811115614268576142676134aa565b5b61427282546137f7565b61427d8282856141b8565b6000601f8311600181146142ac576000841561429a578287013590505b6142a48582614229565b86555061430c565b601f1984166142ba86614099565b60005b828110156142e2578489013582556001820191506020850194506020810190506142bd565b868310156142ff57848901356142fb601f89168261420b565b8355505b6001600288020188555050505b50505050505050565b60006143218385612fb8565b935061432e838584613556565b61433783612ff3565b840190509392505050565b600060608201905061435760008301876132ea565b818103602083015261436a818587614315565b905061437960408301846132ea565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600081519050919050565b600082825260208201905092915050565b60006143d8826143b1565b6143e281856143bc565b93506143f2818560208601612fc9565b6143fb81612ff3565b840191505092915050565b600060808201905061441b60008301876130f4565b61442860208301866130f4565b61443560408301856132ea565b818103606083015261444781846143cd565b905095945050505050565b60008151905061446181612f1e565b92915050565b60006020828403121561447d5761447c612ee8565b5b600061448b84828501614452565b91505092915050565b61449d82612fad565b67ffffffffffffffff8111156144b6576144b56134aa565b5b6144c082546137f7565b6144cb8282856141b8565b600060209050601f8311600181146144fe57600084156144ec578287015190505b6144f68582614229565b86555061455e565b601f19841661450c86614099565b60005b828110156145345784890151825560018201915060208501945060208101905061450f565b86831015614551578489015161454d601f89168261420b565b8355505b6001600288020188555050505b505050505050565b600060408201905061457b60008301856130f4565b61458860208301846132ea565b9392505050565b600061459a8261305f565b91506145a58361305f565b92508282026145b38161305f565b915082820484148315176145ca576145c96139c4565b5b5092915050565b60006145dc8261305f565b9150600082036145ef576145ee6139c4565b5b600182039050919050565b600060408201905061460f60008301856132ea565b61461c60208301846132ea565b939250505056fea2646970667358221220ae7200ba52af8afe4a398ab6098fd5e2ebb03f321f91160fc9e2aba515f8e98164736f6c63430008180033
[ 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.