ERC-721
NFT
Overview
Max Total Supply
21,000 CT
Holders
9,433
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 CTLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
CryptoTrunks
Compiler Version
v0.6.6+commit.6c089d02
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.6;// Truffleimport "@openzeppelin/contracts/token/ERC721/ERC721.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/utils/Counters.sol";import "@chainlink/contracts/v0.6/ChainlinkClient.sol";// import "@chainlink/contracts/src/v0.6/VRFConsumerBase.sol";// Modified VRFConsumerBase to not conflict with ChainlinkClient.import "./VRFConsumerBase.sol";// Remix//import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/token/ERC721/ERC721.sol";//import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/access/Ownable.sol";//import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.4.0/contracts/utils/Counters.sol";//import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/ChainlinkClient.sol";//import "https://github.com/smartcontractkit/chainlink/blob/develop/evm-contracts/src/v0.6/VRFConsumerBase.sol";contract CryptoTrunks is ERC721, Ownable, ChainlinkClient, VRFConsumerBase {using Counters for Counters.Counter;// Pausable.bool private _paused;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "../../utils/Context.sol";import "./IERC721.sol";import "./IERC721Metadata.sol";import "./IERC721Enumerable.sol";import "./IERC721Receiver.sol";import "../../introspection/ERC165.sol";import "../../math/SafeMath.sol";import "../../utils/Address.sol";import "../../utils/EnumerableSet.sol";import "../../utils/EnumerableMap.sol";import "../../utils/Strings.sol";/*** @title ERC721 Non-Fungible Token Standard basic implementation* @dev see https://eips.ethereum.org/EIPS/eip-721*/contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {using SafeMath for uint256;using Address for address;using EnumerableSet for EnumerableSet.UintSet;using EnumerableMap for EnumerableMap.UintToAddressMap;using Strings for uint256;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** By default, the owner account will be the one that deploys the contract. This* can later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);/*** @dev Initializes the contract setting the deployer as the initial owner.*/constructor () internal {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "../math/SafeMath.sol";/*** @title Counters* @author Matt Condon (@shrugs)* @dev Provides counters that can only be incremented or decremented by one. This can be used e.g. to track the number* of elements in a mapping, issuing ERC721 ids, or counting request ids.** Include with `using Counters for Counters.Counter;`* Since it is not possible to overflow a 256 bit integer with increments of one, `increment` can skip the {SafeMath}* overflow check, thereby saving gas. This does assume however correct usage, in that the underlying `_value` is never* directly accessed.*/library Counters {using SafeMath for uint256;struct Counter {// This variable should never be directly accessed by users of the library: interactions must be restricted to// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add// this feature: see https://github.com/ethereum/solidity/issues/4637uint256 _value; // default: 0}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;import "./Chainlink.sol";import "./interfaces/ENSInterface.sol";import "./interfaces/LinkTokenInterface.sol";import "./interfaces/ChainlinkRequestInterface.sol";import "./interfaces/PointerInterface.sol";import { ENSResolver as ENSResolver_Chainlink } from "./vendor/ENSResolver.sol";/*** @title The ChainlinkClient contract* @notice Contract writers can inherit this contract in order to create requests for the* Chainlink network*/contract ChainlinkClient {using Chainlink for Chainlink.Request;uint256 constant internal LINK = 10**18;uint256 constant private AMOUNT_OVERRIDE = 0;address constant private SENDER_OVERRIDE = address(0);uint256 constant private ARGS_VERSION = 1;bytes32 constant private ENS_TOKEN_SUBNAME = keccak256("link");bytes32 constant private ENS_ORACLE_SUBNAME = keccak256("oracle");address constant private LINK_TOKEN_POINTER = 0xC89bD4E1632D3A43CB03AAAd5262cbe4038Bc571;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;import "@chainlink/contracts/v0.6/vendor/SafeMathChainlink.sol";import "@chainlink/contracts/v0.6/interfaces/LinkTokenInterface.sol";import "@chainlink/contracts/v0.6/VRFRequestIDBase.sol";// import "./vendor/SafeMathChainlink.sol";// import "./interfaces/LinkTokenInterface.sol";// import "./VRFRequestIDBase.sol";/** ***************************************************************************** @notice Interface for contracts using VRF randomness* ****************************************************************************** @dev PURPOSE** @dev Reggie the Random Oracle (not his real job) wants to provide randomness* @dev to Vera the verifier in such a way that Vera can be sure he's not* @dev making his output up to suit himself. Reggie provides Vera a public key* @dev to which he knows the secret key. Each time Vera provides a seed to* @dev Reggie, he gives back a value which is computed completely* @dev deterministically from the seed and the secret key.** @dev Reggie provides a proof by which Vera can verify that the output was* @dev correctly computed once Reggie tells it to her, but without that proof,* @dev the output is indistinguishable to her from a uniform random sample
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/** @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 GSN 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 payable) {return msg.sender;}function _msgData() internal view virtual returns (bytes memory) {this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.8.0;import "../../introspection/IERC165.sol";/*** @dev Required interface of an ERC721 compliant contract.*/interface IERC721 is IERC165 {/*** @dev Emitted when `tokenId` token is transferred from `from` to `to`.*/event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);/*** @dev 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: MITpragma solidity >=0.6.2 <0.8.0;import "./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: MITpragma solidity >=0.6.2 <0.8.0;import "./IERC721.sol";/*** @title ERC-721 Non-Fungible Token Standard, optional enumeration extension* @dev See https://eips.ethereum.org/EIPS/eip-721*/interface IERC721Enumerable is IERC721 {/*** @dev Returns the total amount of tokens stored by the contract.*/function totalSupply() external view returns (uint256);/*** @dev Returns a token ID owned by `owner` at a given `index` of its token list.* Use along with {balanceOf} to enumerate all of ``owner``'s tokens.*/function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);/*** @dev Returns a token ID at a given `index` of all the tokens stored by the contract.* Use along with {totalSupply} to enumerate all tokens.
123456789101112131415161718192021// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @title ERC721 token receiver interface* @dev Interface for any contract that wants to support safeTransfers* from ERC721 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 `IERC721.onERC721Received.selector`.*/function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts may inherit from this and call {_registerInterface} to declare* their support of an interface.*/abstract contract ERC165 is IERC165 {/** bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7*/bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;/*** @dev Mapping of interface ids to whether or not it's supported.*/mapping(bytes4 => bool) private _supportedInterfaces;constructor () internal {// Derived contracts need only register support for their own interfaces,// we register support for ERC165 itself here
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev Wrappers over Solidity's arithmetic operations with added overflow* checks.** Arithmetic operations in Solidity wrap on overflow. This can easily result* in bugs, because programmers usually assume that an overflow raises an* error, which is the standard behavior in high level programming languages.* `SafeMath` restores this intuition by reverting the transaction when 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 SafeMath {/*** @dev Returns the addition of two unsigned integers, with an overflow flag.** _Available since v3.4._*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {uint256 c = a + b;if (c < a) return (false, 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.2 <0.8.0;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*/function isContract(address account) internal view returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev Library for managing* https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive* types.** Sets have the following properties:** - Elements are added, removed, and checked for existence in constant time* (O(1)).* - Elements are enumerated in O(n). No guarantees are made on the ordering.** ```* contract Example {* // Add the library methods* using EnumerableSet for EnumerableSet.AddressSet;** // Declare a set state variable* EnumerableSet.AddressSet private mySet;* }* ```** As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev Library for managing an enumerable variant of Solidity's* https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]* type.** Maps have the following properties:** - Entries are added, removed, and checked for existence in constant time* (O(1)).* - Entries are enumerated in O(n). No guarantees are made on the ordering.** ```* contract Example {* // Add the library methods* using EnumerableMap for EnumerableMap.UintToAddressMap;** // Declare a set state variable* EnumerableMap.UintToAddressMap private myMap;* }* ```** As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev String operations.*/library Strings {/*** @dev Converts a `uint256` to its ASCII `string` representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;temp /= 10;}bytes memory buffer = new bytes(digits);uint256 index = digits - 1;
123456789101112131415161718192021222324// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** 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[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;import { CBORChainlink } from "./vendor/CBORChainlink.sol";import { BufferChainlink } from "./vendor/BufferChainlink.sol";/*** @title Library for common Chainlink functions* @dev Uses imported CBOR library for encoding to buffer*/library Chainlink {uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecaseusing CBORChainlink for BufferChainlink.buffer;struct Request {bytes32 id;address callbackAddress;bytes4 callbackFunctionId;uint256 nonce;BufferChainlink.buffer buf;}/*** @notice Initializes a Chainlink request* @dev Sets the ID, callback address, and callback function signature on the request
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;interface ENSInterface {// Logged when the owner of a node assigns a new owner to a subnode.event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);// Logged when the owner of a node transfers ownership to a new account.event Transfer(bytes32 indexed node, address owner);// Logged when the resolver for a node changes.event NewResolver(bytes32 indexed node, address resolver);// Logged when the TTL of a node changesevent NewTTL(bytes32 indexed node, uint64 ttl);function setSubnodeOwner(bytes32 node, bytes32 label, address _owner) external;function setResolver(bytes32 node, address _resolver) external;function setOwner(bytes32 node, address _owner) external;function setTTL(bytes32 node, uint64 _ttl) external;function owner(bytes32 node) external view returns (address);function resolver(bytes32 node) external view returns (address);function ttl(bytes32 node) external view returns (uint64);
1234567891011121314151617// SPDX-License-Identifier: MITpragma solidity ^0.6.0;interface LinkTokenInterface {function allowance(address owner, address spender) external view returns (uint256 remaining);function approve(address spender, uint256 value) external returns (bool success);function balanceOf(address owner) external view returns (uint256 balance);function decimals() external view returns (uint8 decimalPlaces);function decreaseApproval(address spender, uint256 addedValue) external returns (bool success);function increaseApproval(address spender, uint256 subtractedValue) external;function name() external view returns (string memory tokenName);function symbol() external view returns (string memory tokenSymbol);function totalSupply() external view returns (uint256 totalTokensIssued);function transfer(address to, uint256 value) external returns (bool success);function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool success);function transferFrom(address from, address to, uint256 value) external returns (bool success);}
12345678910111213141516171819202122// SPDX-License-Identifier: MITpragma solidity ^0.6.0;interface ChainlinkRequestInterface {function oracleRequest(address sender,uint256 requestPrice,bytes32 serviceAgreementID,address callbackAddress,bytes4 callbackFunctionId,uint256 nonce,uint256 dataVersion,bytes calldata data) external;function cancelOracleRequest(bytes32 requestId,uint256 payment,bytes4 callbackFunctionId,uint256 expiration) external;}
123456// SPDX-License-Identifier: MITpragma solidity ^0.6.0;interface PointerInterface {function getAddress() external view returns (address);}
123456// SPDX-License-Identifier: MITpragma solidity ^0.6.0;abstract contract ENSResolver {function addr(bytes32 node) public view virtual returns (address);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity >= 0.4.19 < 0.7.0;import { BufferChainlink } from "./BufferChainlink.sol";library CBORChainlink {using BufferChainlink for BufferChainlink.buffer;uint8 private constant MAJOR_TYPE_INT = 0;uint8 private constant MAJOR_TYPE_NEGATIVE_INT = 1;uint8 private constant MAJOR_TYPE_BYTES = 2;uint8 private constant MAJOR_TYPE_STRING = 3;uint8 private constant MAJOR_TYPE_ARRAY = 4;uint8 private constant MAJOR_TYPE_MAP = 5;uint8 private constant MAJOR_TYPE_TAG = 6;uint8 private constant MAJOR_TYPE_CONTENT_FREE = 7;uint8 private constant TAG_TYPE_BIGNUM = 2;uint8 private constant TAG_TYPE_NEGATIVE_BIGNUM = 3;function encodeType(BufferChainlink.buffer memory buf, uint8 major, uint value) private pure {if(value <= 23) {buf.appendUint8(uint8((major << 5) | value));} else if(value <= 0xFF) {buf.appendUint8(uint8((major << 5) | 24));buf.appendInt(value, 1);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;/*** @dev A library for working with mutable byte buffers in Solidity.** Byte buffers are mutable and expandable, and provide a variety of primitives* for writing to them. At any time you can fetch a bytes object containing the* current contents of the buffer. The bytes object should not be stored between* operations, as it may change due to resizing of the buffer.*/library BufferChainlink {/*** @dev Represents a mutable buffer. Buffers have a current value (buf) and* a capacity. The capacity may be longer than the current value, in* which case it can be extended without the need to allocate more memory.*/struct buffer {bytes buf;uint capacity;}/*** @dev Initializes a buffer with an initial capacity.* @param buf The buffer to initialize.* @param capacity The number of bytes of space to allocate the buffer.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;/*** @dev Wrappers over Solidity's arithmetic operations with added overflow* checks.** Arithmetic operations in Solidity wrap on overflow. This can easily result* in bugs, because programmers usually assume that an overflow raises an* error, which is the standard behavior in high level programming languages.* `SafeMath` restores this intuition by reverting the transaction when 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 SafeMathChainlink {/*** @dev Returns the addition of two unsigned integers, reverting on* overflow.** Counterpart to Solidity's `+` operator.** Requirements:* - Addition cannot overflow.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.6.0;contract VRFRequestIDBase {/*** @notice returns the seed which is actually input to the VRF coordinator** @dev To prevent repetition of VRF output due to repetition of the* @dev user-supplied seed, that seed is combined in a hash with the* @dev user-specific nonce, and the address of the consuming contract. The* @dev risk of repetition is mostly mitigated by inclusion of a blockhash in* @dev the final seed, but the nonce does protect against repetition in* @dev requests which are included in a single block.** @param _userSeed VRF seed input provided by user* @param _requester Address of the requesting contract* @param _nonce User-specific nonce at the time of the request*/function makeVRFInputSeed(bytes32 _keyHash, uint256 _userSeed,address _requester, uint256 _nonce)internal pure returns (uint256){return uint256(keccak256(abi.encode(_keyHash, _userSeed, _requester, _nonce)));}
12345678910111213141516171819{"optimizer": {"enabled": false,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"ChainlinkRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultId","type":"uint256"}],"name":"RemoteMintFulfilled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"requestId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"firstTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultId","type":"uint256"}],"name":"RemoteMintTwentyFulfilled","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":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fetchGenesisSeedFromVRF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_resultId","type":"uint256"}],"name":"fulfill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"uint256","name":"_resultId","type":"uint256"}],"name":"fulfillTwenty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBaseFeeTier","outputs":[{"internalType":"uint256","name":"baseFeeTier","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeTier","outputs":[{"internalType":"uint256","name":"feeTier","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGenerativeMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGenesisMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGenesisRandomSeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracle","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numberToMint","type":"uint256"}],"name":"mintGenesisTrunk","outputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"randomSeed","type":"uint256"},{"internalType":"bool","name":"isBasic","type":"bool"}],"name":"mintTrunk","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintTwentyTrunks","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"requestId","type":"bytes32"},{"internalType":"uint256","name":"randomness","type":"uint256"}],"name":"rawFulfillRandomness","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"string","name":"baseURI_","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"togglePaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oracle","type":"address"},{"internalType":"bytes32","name":"_jobId","type":"bytes32"},{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLink","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c06040526001600f553480156200001657600080fd5b5073f0d54349addcf704f77ae15b96510dea15cb795273514910771af9ca656af840dff83e8264ecf986ca6040518060400160405280600c81526020017f43727970746f5472756e6b7300000000000000000000000000000000000000008152506040518060400160405280600281526020017f4354000000000000000000000000000000000000000000000000000000000000815250620000c56301ffc9a760e01b620002db60201b60201c565b8160069080519060200190620000dd929190620004f6565b508060079080519060200190620000f6929190620004f6565b506200010f6380ac58cd60e01b620002db60201b60201c565b62000127635b5e139f60e01b620002db60201b60201c565b6200013f63780e9d6360e01b620002db60201b60201c565b5050600062000153620003e460201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b8152505050506200028c604051806060016040528060268152602001620065b660269139620003ec60201b60201c565b6200029c6200040860201b60201c565b7faa77729d3466ca35ae8d28b3bbac7cc36a5031efdc430821c02bc31a238af44560001b601881905550671bc16d674ec80000601981905550620005a5565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b806009908051906020019062000404929190620004f6565b5050565b620004b073c89bd4e1632d3a43cb03aaad5262cbe4038bc57173ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b1580156200046757600080fd5b505afa1580156200047c573d6000803e3d6000fd5b505050506040513d60208110156200049357600080fd5b8101908080519060200190929190505050620004b260201b60201c565b565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200053957805160ff19168380011785556200056a565b828001600101855582156200056a579182015b82811115620005695782518255916020019190600101906200054c565b5b5090506200057991906200057d565b5090565b620005a291905b808211156200059e57600081600090555060010162000584565b5090565b90565b60805160601c60a05160601c615fe2620005d4600039806124c752806148225250806147e65250615fe26000f3fe6080604052600436106102305760003560e01c80636c0360eb1161012e57806394985ddd116100ab578063c87b56dd1161006f578063c87b56dd14610ddd578063da01ed5614610e91578063dbb765ac14610ea8578063e985e9c514610eed578063f2fde38b14610f7657610230565b806394985ddd14610b1657806395d89b4114610b5b578063a22cb46514610beb578063a57eaa3814610c48578063b88d4fde14610ccb57610230565b8063833b1fce116100f2578063833b1fce146109fa5780638da5cb5b14610a5f5780638dc654a214610ab65780638ebc4dd014610acd57806393b4a53214610af857610230565b80636c0360eb1461085e5780636c933fb3146108ee57806370a0823114610953578063715018a6146109b857806377ff0c84146109cf57610230565b806336566f06116101bc57806349ec57321161018057806349ec5732146106b45780634f6ccce7146106df57806355f804b31461072e5780635c975abb146107b45780636352211e146107e357610230565b806336566f06146105785780633ccfd60b1461058f5780633f81449a146105a657806342842e0e146105f45780634357855e1461066f57610230565b8063095ea7b311610203578063095ea7b3146103dd5780630ae067dd1461043857806318160ddd1461046357806323b872dd1461048e5780632f745c591461050957610230565b806301ffc9a71461023557806306fdde03146102a7578063078aad4814610337578063081812fc14610362575b600080fd5b34801561024157600080fd5b5061028d6004803603602081101561025857600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fc7565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc61102e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fc5780820151818401526020810190506102e1565b50505050905090810190601f1680156103295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034357600080fd5b5061034c6110d0565b6040518082815260200191505060405180910390f35b34801561036e57600080fd5b5061039b6004803603602081101561038557600080fd5b81019080803590602001909291905050506110e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e957600080fd5b506104366004803603604081101561040057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117c565b005b34801561044457600080fd5b5061044d6112c0565b6040518082815260200191505060405180910390f35b34801561046f57600080fd5b506104786112ca565b6040518082815260200191505060405180910390f35b34801561049a57600080fd5b50610507600480360360608110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112db565b005b34801561051557600080fd5b506105626004803603604081101561052c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611351565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b5061058d6113ac565b005b34801561059b57600080fd5b506105a4611487565b005b6105de600480360360408110156105bc57600080fd5b810190808035906020019092919080351515906020019092919050505061158c565b6040518082815260200191505060405180910390f35b34801561060057600080fd5b5061066d6004803603606081101561061757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611794565b005b34801561067b57600080fd5b506106b26004803603604081101561069257600080fd5b8101908080359060200190929190803590602001909291905050506117b4565b005b3480156106c057600080fd5b506106c9611a2a565b6040518082815260200191505060405180910390f35b3480156106eb57600080fd5b506107186004803603602081101561070257600080fd5b8101908080359060200190929190505050611a3b565b6040518082815260200191505060405180910390f35b34801561073a57600080fd5b506107b26004803603602081101561075157600080fd5b810190808035906020019064010000000081111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460018302840111640100000000831117156107a257600080fd5b9091929391929390505050611a5e565b005b3480156107c057600080fd5b506107c9611b5e565b604051808215151515815260200191505060405180910390f35b3480156107ef57600080fd5b5061081c6004803603602081101561080657600080fd5b8101908080359060200190929190505050611b75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086a57600080fd5b50610873611bac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b3578082015181840152602081019050610898565b50505050905090810190601f1680156108e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108fa57600080fd5b506109516004803603606081101561091157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611c4e565b005b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d51565b6040518082815260200191505060405180910390f35b3480156109c457600080fd5b506109cd611e26565b005b3480156109db57600080fd5b506109e4611f96565b6040518082815260200191505060405180910390f35b348015610a0657600080fd5b50610a0f611ff6565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610a6b57600080fd5b50610a7461202f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ac257600080fd5b50610acb612059565b005b348015610ad957600080fd5b50610ae261229e565b6040518082815260200191505060405180910390f35b610b0061238a565b6040518082815260200191505060405180910390f35b348015610b2257600080fd5b50610b5960048036036040811015610b3957600080fd5b8101908080359060200190929190803590602001909291905050506124c5565b005b348015610b6757600080fd5b50610b70612594565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb0578082015181840152602081019050610b95565b50505050905090810190601f168015610bdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bf757600080fd5b50610c4660048036036040811015610c0e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612636565b005b610c7460048036036020811015610c5e57600080fd5b81019080803590602001909291905050506127ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610cb7578082015181840152602081019050610c9c565b505050509050019250505060405180910390f35b348015610cd757600080fd5b50610ddb60048036036080811015610cee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d5557600080fd5b820183602082011115610d6757600080fd5b80359060200191846001830284011164010000000083111715610d8957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506128d7565b005b348015610de957600080fd5b50610e1660048036036020811015610e0057600080fd5b810190808035906020019092919050505061294f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e56578082015181840152602081019050610e3b565b50505050905090810190601f168015610e835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e9d57600080fd5b50610ea6612c20565b005b348015610eb457600080fd5b50610eeb60048036036040811015610ecb57600080fd5b810190808035906020019092919080359060200190929190505050612cda565b005b348015610ef957600080fd5b50610f5c60048036036040811015610f1057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f19565b604051808215151515815260200191505060405180910390f35b348015610f8257600080fd5b50610fc560048036036020811015610f9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fad565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110c65780601f1061109b576101008083540402835291602001916110c6565b820191906000526020600020905b8154815290600101906020018083116110a957829003601f168201915b5050505050905090565b60006110dc60136131a2565b905090565b60006110ec826131b0565b611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e56602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061118782611b75565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615f066021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661122d6131cd565b73ffffffffffffffffffffffffffffffffffffffff16148061125c575061125b816112566131cd565b612f19565b5b6112b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615da96038913960400191505060405180910390fd5b6112bb83836131d5565b505050565b6000601a54905090565b60006112d6600261328e565b905090565b6112ec6112e66131cd565b826132a3565b611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f276031913960400191505060405180910390fd5b61134c838383613397565b505050565b60006113a482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135da90919063ffffffff16565b905092915050565b6113b46131cd565b73ffffffffffffffffffffffffffffffffffffffff166113d261202f565b73ffffffffffffffffffffffffffffffffffffffff161461145b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601260009054906101000a900460ff1615601260006101000a81548160ff021916908315150217905550565b61148f6131cd565b73ffffffffffffffffffffffffffffffffffffffff166114ad61202f565b73ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600061154061202f565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611588573d6000803e3d6000fd5b5050565b600061159661229e565b3410156115a257600080fd5b6115aa611f96565b3410156115b657600080fd5b601260009054906101000a900460ff16156115e05766b1a2bc2ec500003410156115df57600080fd5b5b6001601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1601601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550614c2c61ffff1661169b60136131a2565b106116a557600080fd5b6116af60136135f4565b60006116bb60136131a2565b6105dc61ffff160190506116cf338261360a565b82156116e8576116e36000801b8286613628565b61178a565b60006116f48583613686565b905060405180604001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815250601b60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b8091505092915050565b6117af838383604051806020016040528060008152506128d7565b505050565b816010600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615f856028913960400191505060405180910390fd5b6010600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a2600082116118dc57600080fd5b6118e4615b05565b601b6000858152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614156119a257600080fd5b6103e8670de0b6b3a76400006103e885816119b957fe5b0602816119c257fe5b04601c6000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a248482600001516103e88681611a1e57fe5b04613628565b50505050565b6000611a3660146131a2565b905090565b600080611a5283600261393090919063ffffffff16565b50905080915050919050565b611a666131cd565b73ffffffffffffffffffffffffffffffffffffffff16611a8461202f565b73ffffffffffffffffffffffffffffffffffffffff1614611b0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b5a82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061395f565b5050565b6000601260009054906101000a900460ff16905090565b6000611ba582604051806060016040528060298152602001615e0b6029913960026139799092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c445780601f10611c1957610100808354040283529160200191611c44565b820191906000526020600020905b815481529060010190602001808311611c2757829003601f168201915b5050505050905090565b611c566131cd565b73ffffffffffffffffffffffffffffffffffffffff16611c7461202f565b73ffffffffffffffffffffffffffffffffffffffff1614611cfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160168190555080601781905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615de1602a913960400191505060405180910390fd5b611e1f600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613998565b9050919050565b611e2e6131cd565b73ffffffffffffffffffffffffffffffffffffffff16611e4c61202f565b73ffffffffffffffffffffffffffffffffffffffff1614611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611fee576000915050611ff3565b809150505b90565b6000806000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601654601754925092509250909192565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6120616131cd565b73ffffffffffffffffffffffffffffffffffffffff1661207f61202f565b73ffffffffffffffffffffffffffffffffffffffff1614612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006121126139ad565b9050600061211e61202f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156121ba57600080fd5b505afa1580156121ce573d6000803e3d6000fd5b505050506040513d60208110156121e457600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561225e57600080fd5b505af1158015612272573d6000803e3d6000fd5b505050506040513d602081101561228857600080fd5b8101908080519060200190929190505050505050565b600080601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16905060008161ffff161415612308576000915050612387565b6000600a905060058261ffff16101561232457600a905061236e565b60148261ffff16101561233a57600f905061236d565b60328261ffff161015612350576014905061236c565b60648261ffff161015612366576019905061236b565b601e90505b5b5b5b600a8166b1a2bc2ec50000028161238157fe5b04925050505b90565b6000670de0b6b3a76400003410156123a157600080fd5b614c2c61ffff1660146123b460136131a2565b0111156123c057600080fd5b600060016123ce60136131a2565b6105dc61ffff160101905060008090505b60148160ff16101561241d576123f560136135f4565b6124103361240360136131a2565b6105dc61ffff160161360a565b80806001019150506123df565b506000612429826139d7565b905060405180604001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815250601b60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050819250505090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6125908282613bfd565b5050565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561262c5780601f106126015761010080835404028352916020019161262c565b820191906000526020600020905b81548152906001019060200180831161260f57829003601f168201915b5050505050905090565b61263e6131cd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600560006126ec6131cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166127996131cd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b606060018210156127fe57600080fd5b601482111561280c57600080fd5b61281660146131a2565b6105dc61ffff160382111561282a57600080fd5b816706f05b59d3b200000234101561284157600080fd5b60608267ffffffffffffffff8111801561285a57600080fd5b506040519080825280602002602001820160405280156128895781602001602082028036833780820191505090505b50905060008090505b838110156128cd5760006128a4613c08565b9050808383815181106128b357fe5b602002602001018181525050508080600101915050612892565b5080915050919050565b6128e86128e26131cd565b836132a3565b61293d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f276031913960400191505060405180910390fd5b61294984848484613c66565b50505050565b606061295a826131b0565b6129af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615ed7602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a585780601f10612a2d57610100808354040283529160200191612a58565b820191906000526020600020905b815481529060010190602001808311612a3b57829003601f168201915b505050505090506060612a69611bac565b9050600081511415612a7f578192505050612c1b565b600082511115612b505780826040516020018083805190602001908083835b60208310612ac15780518252602082019150602081019050602083039250612a9e565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612b125780518252602082019150602081019050602083039250612aef565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612c1b565b80612b5a85613cd8565b6040516020018083805190602001908083835b60208310612b905780518252602082019150602081019050602083039250612b6d565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612be15780518252602082019150602081019050602083039250612bbe565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b612c286131cd565b73ffffffffffffffffffffffffffffffffffffffff16612c4661202f565b73ffffffffffffffffffffffffffffffffffffffff1614612ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612cd7613e1f565b50565b816010600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615f856028913960400191505060405180910390fd5b6010600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a260008211612e0257600080fd5b612e0a615b05565b601b6000858152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415612ec857600080fd5b7fba5fa991644d83dca35e4bf68fdf7f9a99d626811f7de928598d003cd46007a48482600001518560405180848152602001838152602001828152602001935050505060405180910390a150505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612fb56131cd565b73ffffffffffffffffffffffffffffffffffffffff16612fd361202f565b73ffffffffffffffffffffffffffffffffffffffff161461305c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156130e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600001549050919050565b60006131c6826002613e4390919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661324883611b75565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061329c82600001613e5d565b9050919050565b60006132ae826131b0565b613303576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615d7d602c913960400191505060405180910390fd5b600061330e83611b75565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061337d57508373ffffffffffffffffffffffffffffffffffffffff16613365846110e1565b73ffffffffffffffffffffffffffffffffffffffff16145b8061338e575061338d8185612f19565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166133b782611b75565b73ffffffffffffffffffffffffffffffffffffffff1614613423576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615eae6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615d336024913960400191505060405180910390fd5b6134b4838383613e6e565b6134bf6000826131d5565b61351081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e7390919063ffffffff16565b5061356281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e8d90919063ffffffff16565b5061357981836002613ea79092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006135e98360000183613edc565b60001c905092915050565b6001816000016000828254019250508190555050565b613624828260405180602001604052806000815250613f5f565b5050565b61363a8261363583613cd8565b613fd0565b7f30afd89c8602c15d27198d1247b4ef0dcfde2c85b2928f552d084ccdb2b8cb2b83838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6000613690615b35565b6136a460165430634357855e60e01b61405a565b905060606136b13361408b565b6136ba86613cd8565b6136c386613cd8565b6040516020018080615f58602d9139602d0184805190602001908083835b6020831061370457805182526020820191506020810190506020830392506136e1565b6001836020036101000a038019825116818451168082178552505050505050905001807f26736565643d000000000000000000000000000000000000000000000000000081525060060183805190602001908083835b6020831061377d578051825260208201915060208101905060208303925061375a565b6001836020036101000a038019825116818451168082178552505050505050905001807f26746f6b656e3d0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b602083106137f657805182526020820191506020810190506020830392506137d3565b6001836020036101000a038019825116818451168082178552505050505050905001935050505060405160208183030381529060405290506138786040518060400160405280600381526020017f676574000000000000000000000000000000000000000000000000000000000081525082846140eb9092919063ffffffff16565b6138f76040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f726573756c740000000000000000000000000000000000000000000000000000815250846140eb9092919063ffffffff16565b613926601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360175461411e565b9250505092915050565b60008060008061394386600001866143d6565b915091508160001c8160001c8090509350935050509250929050565b8060099080519060200190613975929190615ba2565b5050565b600061398c846000018460001b8461446f565b60001c90509392505050565b60006139a682600001614565565b9050919050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006139e1615b35565b6139f56016543063dbb765ac60e01b61405a565b90506060613a023361408b565b613a0b85613cd8565b6040516020018080615cff6034913960340183805190602001908083835b60208310613a4c5780518252602082019150602081019050602083039250613a29565b6001836020036101000a038019825116818451168082178552505050505050905001807f26746f6b656e3d0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b60208310613ac55780518252602082019150602081019050602083039250613aa2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050613b466040518060400160405280600381526020017f676574000000000000000000000000000000000000000000000000000000000081525082846140eb9092919063ffffffff16565b613bc56040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f726573756c740000000000000000000000000000000000000000000000000000815250846140eb9092919063ffffffff16565b613bf4601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360175461411e565b92505050919050565b80601a819055505050565b60006105dc61ffff16613c1b60146131a2565b10613c2557600080fd5b613c2f60146135f4565b6000601a541415613c3f57600080fd5b6000613c53613c4e60146131a2565b614576565b9050613c5f338261360a565b8091505090565b613c71848484613397565b613c7d8484848461459d565b613cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c846032913960400191505060405180910390fd5b50505050565b60606000821415613d20576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613e1a565b600082905060005b60008214613d4a578080600101915050600a8281613d4257fe5b049150613d28565b60608167ffffffffffffffff81118015613d6357600080fd5b506040519080825280601f01601f191660200182016040528015613d965781602001600182028036833780820191505090505b50905060006001830390508593505b60008414613e1257600a8481613db757fe5b0660300160f81b82828060019003935081518110613dd157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481613e0a57fe5b049350613da5565b819450505050505b919050565b600080601a5414613e2f57600080fd5b613e3e601854601954436147e2565b905090565b6000613e55836000018360001b6149f0565b905092915050565b600081600001805490509050919050565b505050565b6000613e85836000018360001b614a13565b905092915050565b6000613e9f836000018360001b614afb565b905092915050565b6000613ed3846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b614b6b565b90509392505050565b600081836000018054905011613f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615c626022913960400191505060405180910390fd5b826000018281548110613f4c57fe5b9060005260206000200154905092915050565b613f698383614c47565b613f76600084848461459d565b613fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c846032913960400191505060405180910390fd5b505050565b613fd9826131b0565b61402e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e82602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190614055929190615ba2565b505050565b614062615b35565b61406a615b35565b61408185858584614e3b909392919063ffffffff16565b9150509392505050565b60606140e482604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052614eeb565b9050919050565b61410282846080015161517190919063ffffffff16565b61411981846080015161517190919063ffffffff16565b505050565b600030600f54604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600f54836060018181525050836010600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea0858461425687615196565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156142dd5780820151818401526020810190506142c2565b50505050905090810190601f16801561430a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561432b57600080fd5b505af115801561433f573d6000803e3d6000fd5b505050506040513d602081101561435557600080fd5b81019080805190602001909291905050506143bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615cdc6023913960400191505060405180910390fd5b6001600f600082825401925050819055508090509392505050565b60008082846000018054905011614438576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615e346022913960400191505060405180910390fd5b600084600001848154811061444957fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390614536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144fb5780820151818401526020810190506144e0565b50505050905090810190601f1680156145285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061454957fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600060016105dc61ffff16601a5464054f174c958502018161459457fe5b06019050919050565b60006145be8473ffffffffffffffffffffffffffffffffffffffff16615362565b6145cb57600190506147da565b606061476163150b7a0260e01b6145e06131cd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614690578082015181840152602081019050614675565b50505050905090810190601f1680156146bd5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c84603291398773ffffffffffffffffffffffffffffffffffffffff166153759092919063ffffffff16565b9050600081806020019051602081101561477a57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000000000000000000000000000000000000000000085878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156148f15780820151818401526020810190506148d6565b50505050905090810190601f16801561491e5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561493f57600080fd5b505af1158015614953573d6000803e3d6000fd5b505050506040513d602081101561496957600080fd5b810190808051906020019092919050505050600061499c858430601160008a81526020019081526020016000205461538d565b90506149c56001601160008881526020019081526020016000205461540790919063ffffffff16565b60116000878152602001908152602001600020819055506149e6858261548f565b9150509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114614aef5760006001820390506000600186600001805490500390506000866000018281548110614a5e57fe5b9060005260206000200154905080876000018481548110614a7b57fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ab357fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614af5565b60009150505b92915050565b6000614b0783836154c8565b614b60578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614b65565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415614c1257846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050614c40565b82856000016001830381548110614c2557fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b614cf3816131b0565b15614d66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b614d7260008383613e6e565b614dc381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e8d90919063ffffffff16565b50614dda81836002613ea79092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b614e43615b35565b614e5385608001516101006154eb565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6060806040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506060600284510260020167ffffffffffffffff81118015614f4657600080fd5b506040519080825280601f01601f191660200182016040528015614f795781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110614faa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061500757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008090505b84518110156151665782600486838151811061505457fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061509357fe5b602001015160f81c60f81b8260028302600201815181106150b057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b8683815181106150f157fe5b602001015160f81c60f81b1660f81c60ff168151811061510d57fe5b602001015160f81c60f81b82600283026003018151811061512a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061503c565b508092505050919050565b61517e826003835161553f565b615191818361568490919063ffffffff16565b505050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156152c55780820151818401526020810190506152aa565b50505050905090810190601f1680156152f25780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b600080823b905060008111915050919050565b606061538484846000856156a6565b90509392505050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015615485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6154f3615c22565b6000602083816154ff57fe5b0614615518576020828161550f57fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b6017811161556c576155668160058460ff16901b60ff16178461584f90919063ffffffff16565b5061567f565b60ff81116155ae57615591601860058460ff16901b178461584f90919063ffffffff16565b506155a88160018561586f9092919063ffffffff16565b5061567e565b61ffff81116155f1576155d4601960058460ff16901b178461584f90919063ffffffff16565b506155eb8160028561586f9092919063ffffffff16565b5061567d565b63ffffffff811161563657615619601a60058460ff16901b178461584f90919063ffffffff16565b506156308160048561586f9092919063ffffffff16565b5061567c565b67ffffffffffffffff811161567b57615662601b60058460ff16901b178461584f90919063ffffffff16565b506156798160088561586f9092919063ffffffff16565b505b5b5b5b5b505050565b61568c615c22565b61569e83846000015151848551615891565b905092915050565b606082471015615701576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615d576026913960400191505060405180910390fd5b61570a85615362565b61577c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106157cc57805182526020820191506020810190506020830392506157a9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461582e576040519150601f19603f3d011682016040523d82523d6000602084013e615833565b606091505b509150915061584382828661594a565b92505050949350505050565b615857615c22565b6158678384600001515184615a16565b905092915050565b615877615c22565b615888848560000151518585615a64565b90509392505050565b615899615c22565b82518211156158a757600080fd5b846020015182850111156158d2576158d18560026158cb8860200151888701615ac5565b02615ae1565b5b6000808651805187602083010193508088870111156158f15787860182525b60208701925050505b6020841061591d57805182526020820191506020810190506020840393506158fa565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b6060831561595a57829050615a0f565b60008351111561596d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156159d45780820151818401526020810190506159b9565b50505050905090810190601f168015615a015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b615a1e615c22565b83602001518310615a3b57615a3a846002866020015102615ae1565b5b8351805160208583010184815381861415615a57576001820183525b5050508390509392505050565b615a6c615c22565b84602001518483011115615a8a57615a8985600286850102615ae1565b5b60006001836101000a0390508551838682010185831982511617815281518588011115615ab75784870182525b505085915050949350505050565b600081831115615ad757829050615adb565b8190505b92915050565b606082600001519050615af483836154eb565b50615aff8382615684565b50505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160008152602001615b9c615c22565b81525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615be357805160ff1916838001178555615c11565b82800160010185558215615c11579182015b82811115615c10578251825591602001919060010190615bf5565b5b509050615c1e9190615c3c565b5090565b604051806040016040528060608152602001600081525090565b615c5e91905b80821115615c5a576000816000905550600101615c42565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c6568747470733a2f2f736572766963652e63727970746f7472756e6b732e636f2f6d696e745f7477656e74793f616464726573733d4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656468747470733a2f2f736572766963652e63727970746f7472756e6b732e636f2f6d696e743f616464726573733d536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220ce359c36df2bb9f1f17c2c6695d12153a99ab3a291bc98c2504e2828fc372eee64736f6c6343000606003368747470733a2f2f736572766963652e63727970746f7472756e6b732e636f2f746f6b656e2f
Deployed Bytecode
0x6080604052600436106102305760003560e01c80636c0360eb1161012e57806394985ddd116100ab578063c87b56dd1161006f578063c87b56dd14610ddd578063da01ed5614610e91578063dbb765ac14610ea8578063e985e9c514610eed578063f2fde38b14610f7657610230565b806394985ddd14610b1657806395d89b4114610b5b578063a22cb46514610beb578063a57eaa3814610c48578063b88d4fde14610ccb57610230565b8063833b1fce116100f2578063833b1fce146109fa5780638da5cb5b14610a5f5780638dc654a214610ab65780638ebc4dd014610acd57806393b4a53214610af857610230565b80636c0360eb1461085e5780636c933fb3146108ee57806370a0823114610953578063715018a6146109b857806377ff0c84146109cf57610230565b806336566f06116101bc57806349ec57321161018057806349ec5732146106b45780634f6ccce7146106df57806355f804b31461072e5780635c975abb146107b45780636352211e146107e357610230565b806336566f06146105785780633ccfd60b1461058f5780633f81449a146105a657806342842e0e146105f45780634357855e1461066f57610230565b8063095ea7b311610203578063095ea7b3146103dd5780630ae067dd1461043857806318160ddd1461046357806323b872dd1461048e5780632f745c591461050957610230565b806301ffc9a71461023557806306fdde03146102a7578063078aad4814610337578063081812fc14610362575b600080fd5b34801561024157600080fd5b5061028d6004803603602081101561025857600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610fc7565b604051808215151515815260200191505060405180910390f35b3480156102b357600080fd5b506102bc61102e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fc5780820151818401526020810190506102e1565b50505050905090810190601f1680156103295780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034357600080fd5b5061034c6110d0565b6040518082815260200191505060405180910390f35b34801561036e57600080fd5b5061039b6004803603602081101561038557600080fd5b81019080803590602001909291905050506110e1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e957600080fd5b506104366004803603604081101561040057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061117c565b005b34801561044457600080fd5b5061044d6112c0565b6040518082815260200191505060405180910390f35b34801561046f57600080fd5b506104786112ca565b6040518082815260200191505060405180910390f35b34801561049a57600080fd5b50610507600480360360608110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112db565b005b34801561051557600080fd5b506105626004803603604081101561052c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611351565b6040518082815260200191505060405180910390f35b34801561058457600080fd5b5061058d6113ac565b005b34801561059b57600080fd5b506105a4611487565b005b6105de600480360360408110156105bc57600080fd5b810190808035906020019092919080351515906020019092919050505061158c565b6040518082815260200191505060405180910390f35b34801561060057600080fd5b5061066d6004803603606081101561061757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611794565b005b34801561067b57600080fd5b506106b26004803603604081101561069257600080fd5b8101908080359060200190929190803590602001909291905050506117b4565b005b3480156106c057600080fd5b506106c9611a2a565b6040518082815260200191505060405180910390f35b3480156106eb57600080fd5b506107186004803603602081101561070257600080fd5b8101908080359060200190929190505050611a3b565b6040518082815260200191505060405180910390f35b34801561073a57600080fd5b506107b26004803603602081101561075157600080fd5b810190808035906020019064010000000081111561076e57600080fd5b82018360208201111561078057600080fd5b803590602001918460018302840111640100000000831117156107a257600080fd5b9091929391929390505050611a5e565b005b3480156107c057600080fd5b506107c9611b5e565b604051808215151515815260200191505060405180910390f35b3480156107ef57600080fd5b5061081c6004803603602081101561080657600080fd5b8101908080359060200190929190505050611b75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561086a57600080fd5b50610873611bac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b3578082015181840152602081019050610898565b50505050905090810190601f1680156108e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108fa57600080fd5b506109516004803603606081101561091157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611c4e565b005b34801561095f57600080fd5b506109a26004803603602081101561097657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d51565b6040518082815260200191505060405180910390f35b3480156109c457600080fd5b506109cd611e26565b005b3480156109db57600080fd5b506109e4611f96565b6040518082815260200191505060405180910390f35b348015610a0657600080fd5b50610a0f611ff6565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610a6b57600080fd5b50610a7461202f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ac257600080fd5b50610acb612059565b005b348015610ad957600080fd5b50610ae261229e565b6040518082815260200191505060405180910390f35b610b0061238a565b6040518082815260200191505060405180910390f35b348015610b2257600080fd5b50610b5960048036036040811015610b3957600080fd5b8101908080359060200190929190803590602001909291905050506124c5565b005b348015610b6757600080fd5b50610b70612594565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb0578082015181840152602081019050610b95565b50505050905090810190601f168015610bdd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bf757600080fd5b50610c4660048036036040811015610c0e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612636565b005b610c7460048036036020811015610c5e57600080fd5b81019080803590602001909291905050506127ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610cb7578082015181840152602081019050610c9c565b505050509050019250505060405180910390f35b348015610cd757600080fd5b50610ddb60048036036080811015610cee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610d5557600080fd5b820183602082011115610d6757600080fd5b80359060200191846001830284011164010000000083111715610d8957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506128d7565b005b348015610de957600080fd5b50610e1660048036036020811015610e0057600080fd5b810190808035906020019092919050505061294f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e56578082015181840152602081019050610e3b565b50505050905090810190601f168015610e835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e9d57600080fd5b50610ea6612c20565b005b348015610eb457600080fd5b50610eeb60048036036040811015610ecb57600080fd5b810190808035906020019092919080359060200190929190505050612cda565b005b348015610ef957600080fd5b50610f5c60048036036040811015610f1057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f19565b604051808215151515815260200191505060405180910390f35b348015610f8257600080fd5b50610fc560048036036020811015610f9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fad565b005b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110c65780601f1061109b576101008083540402835291602001916110c6565b820191906000526020600020905b8154815290600101906020018083116110a957829003601f168201915b5050505050905090565b60006110dc60136131a2565b905090565b60006110ec826131b0565b611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e56602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061118782611b75565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615f066021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661122d6131cd565b73ffffffffffffffffffffffffffffffffffffffff16148061125c575061125b816112566131cd565b612f19565b5b6112b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180615da96038913960400191505060405180910390fd5b6112bb83836131d5565b505050565b6000601a54905090565b60006112d6600261328e565b905090565b6112ec6112e66131cd565b826132a3565b611341576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f276031913960400191505060405180910390fd5b61134c838383613397565b505050565b60006113a482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206135da90919063ffffffff16565b905092915050565b6113b46131cd565b73ffffffffffffffffffffffffffffffffffffffff166113d261202f565b73ffffffffffffffffffffffffffffffffffffffff161461145b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b601260009054906101000a900460ff1615601260006101000a81548160ff021916908315150217905550565b61148f6131cd565b73ffffffffffffffffffffffffffffffffffffffff166114ad61202f565b73ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600061154061202f565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611588573d6000803e3d6000fd5b5050565b600061159661229e565b3410156115a257600080fd5b6115aa611f96565b3410156115b657600080fd5b601260009054906101000a900460ff16156115e05766b1a2bc2ec500003410156115df57600080fd5b5b6001601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff1601601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff160217905550614c2c61ffff1661169b60136131a2565b106116a557600080fd5b6116af60136135f4565b60006116bb60136131a2565b6105dc61ffff160190506116cf338261360a565b82156116e8576116e36000801b8286613628565b61178a565b60006116f48583613686565b905060405180604001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815250601b60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050505b8091505092915050565b6117af838383604051806020016040528060008152506128d7565b505050565b816010600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615f856028913960400191505060405180910390fd5b6010600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a2600082116118dc57600080fd5b6118e4615b05565b601b6000858152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614156119a257600080fd5b6103e8670de0b6b3a76400006103e885816119b957fe5b0602816119c257fe5b04601c6000836020015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a248482600001516103e88681611a1e57fe5b04613628565b50505050565b6000611a3660146131a2565b905090565b600080611a5283600261393090919063ffffffff16565b50905080915050919050565b611a666131cd565b73ffffffffffffffffffffffffffffffffffffffff16611a8461202f565b73ffffffffffffffffffffffffffffffffffffffff1614611b0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611b5a82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061395f565b5050565b6000601260009054906101000a900460ff16905090565b6000611ba582604051806060016040528060298152602001615e0b6029913960026139799092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c445780601f10611c1957610100808354040283529160200191611c44565b820191906000526020600020905b815481529060010190602001808311611c2757829003601f168201915b5050505050905090565b611c566131cd565b73ffffffffffffffffffffffffffffffffffffffff16611c7461202f565b73ffffffffffffffffffffffffffffffffffffffff1614611cfd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b82601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160168190555080601781905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615de1602a913960400191505060405180910390fd5b611e1f600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613998565b9050919050565b611e2e6131cd565b73ffffffffffffffffffffffffffffffffffffffff16611e4c61202f565b73ffffffffffffffffffffffffffffffffffffffff1614611ed5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080601c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611fee576000915050611ff3565b809150505b90565b6000806000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601654601754925092509250909192565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6120616131cd565b73ffffffffffffffffffffffffffffffffffffffff1661207f61202f565b73ffffffffffffffffffffffffffffffffffffffff1614612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006121126139ad565b9050600061211e61202f565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156121ba57600080fd5b505afa1580156121ce573d6000803e3d6000fd5b505050506040513d60208110156121e457600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561225e57600080fd5b505af1158015612272573d6000803e3d6000fd5b505050506040513d602081101561228857600080fd5b8101908080519060200190929190505050505050565b600080601d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16905060008161ffff161415612308576000915050612387565b6000600a905060058261ffff16101561232457600a905061236e565b60148261ffff16101561233a57600f905061236d565b60328261ffff161015612350576014905061236c565b60648261ffff161015612366576019905061236b565b601e90505b5b5b5b600a8166b1a2bc2ec50000028161238157fe5b04925050505b90565b6000670de0b6b3a76400003410156123a157600080fd5b614c2c61ffff1660146123b460136131a2565b0111156123c057600080fd5b600060016123ce60136131a2565b6105dc61ffff160101905060008090505b60148160ff16101561241d576123f560136135f4565b6124103361240360136131a2565b6105dc61ffff160161360a565b80806001019150506123df565b506000612429826139d7565b905060405180604001604052808381526020013373ffffffffffffffffffffffffffffffffffffffff16815250601b60008381526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050819250505090565b7f000000000000000000000000f0d54349addcf704f77ae15b96510dea15cb795273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c7920565246436f6f7264696e61746f722063616e2066756c66696c6c0081525060200191505060405180910390fd5b6125908282613bfd565b5050565b606060078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561262c5780601f106126015761010080835404028352916020019161262c565b820191906000526020600020905b81548152906001019060200180831161260f57829003601f168201915b5050505050905090565b61263e6131cd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600560006126ec6131cd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166127996131cd565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b606060018210156127fe57600080fd5b601482111561280c57600080fd5b61281660146131a2565b6105dc61ffff160382111561282a57600080fd5b816706f05b59d3b200000234101561284157600080fd5b60608267ffffffffffffffff8111801561285a57600080fd5b506040519080825280602002602001820160405280156128895781602001602082028036833780820191505090505b50905060008090505b838110156128cd5760006128a4613c08565b9050808383815181106128b357fe5b602002602001018181525050508080600101915050612892565b5080915050919050565b6128e86128e26131cd565b836132a3565b61293d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615f276031913960400191505060405180910390fd5b61294984848484613c66565b50505050565b606061295a826131b0565b6129af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615ed7602f913960400191505060405180910390fd5b6060600860008481526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a585780601f10612a2d57610100808354040283529160200191612a58565b820191906000526020600020905b815481529060010190602001808311612a3b57829003601f168201915b505050505090506060612a69611bac565b9050600081511415612a7f578192505050612c1b565b600082511115612b505780826040516020018083805190602001908083835b60208310612ac15780518252602082019150602081019050602083039250612a9e565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612b125780518252602082019150602081019050602083039250612aef565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612c1b565b80612b5a85613cd8565b6040516020018083805190602001908083835b60208310612b905780518252602082019150602081019050602083039250612b6d565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612be15780518252602082019150602081019050602083039250612bbe565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b612c286131cd565b73ffffffffffffffffffffffffffffffffffffffff16612c4661202f565b73ffffffffffffffffffffffffffffffffffffffff1614612ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b612cd7613e1f565b50565b816010600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615f856028913960400191505060405180910390fd5b6010600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055807f7cc135e0cebb02c3480ae5d74d377283180a2601f8f644edf7987b009316c63a60405160405180910390a260008211612e0257600080fd5b612e0a615b05565b601b6000858152602001908152602001600020604051806040016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff161415612ec857600080fd5b7fba5fa991644d83dca35e4bf68fdf7f9a99d626811f7de928598d003cd46007a48482600001518560405180848152602001838152602001828152602001935050505060405180910390a150505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b612fb56131cd565b73ffffffffffffffffffffffffffffffffffffffff16612fd361202f565b73ffffffffffffffffffffffffffffffffffffffff161461305c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156130e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615cb66026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081600001549050919050565b60006131c6826002613e4390919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661324883611b75565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061329c82600001613e5d565b9050919050565b60006132ae826131b0565b613303576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615d7d602c913960400191505060405180910390fd5b600061330e83611b75565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061337d57508373ffffffffffffffffffffffffffffffffffffffff16613365846110e1565b73ffffffffffffffffffffffffffffffffffffffff16145b8061338e575061338d8185612f19565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166133b782611b75565b73ffffffffffffffffffffffffffffffffffffffff1614613423576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180615eae6029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156134a9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615d336024913960400191505060405180910390fd5b6134b4838383613e6e565b6134bf6000826131d5565b61351081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e7390919063ffffffff16565b5061356281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e8d90919063ffffffff16565b5061357981836002613ea79092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60006135e98360000183613edc565b60001c905092915050565b6001816000016000828254019250508190555050565b613624828260405180602001604052806000815250613f5f565b5050565b61363a8261363583613cd8565b613fd0565b7f30afd89c8602c15d27198d1247b4ef0dcfde2c85b2928f552d084ccdb2b8cb2b83838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b6000613690615b35565b6136a460165430634357855e60e01b61405a565b905060606136b13361408b565b6136ba86613cd8565b6136c386613cd8565b6040516020018080615f58602d9139602d0184805190602001908083835b6020831061370457805182526020820191506020810190506020830392506136e1565b6001836020036101000a038019825116818451168082178552505050505050905001807f26736565643d000000000000000000000000000000000000000000000000000081525060060183805190602001908083835b6020831061377d578051825260208201915060208101905060208303925061375a565b6001836020036101000a038019825116818451168082178552505050505050905001807f26746f6b656e3d0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b602083106137f657805182526020820191506020810190506020830392506137d3565b6001836020036101000a038019825116818451168082178552505050505050905001935050505060405160208183030381529060405290506138786040518060400160405280600381526020017f676574000000000000000000000000000000000000000000000000000000000081525082846140eb9092919063ffffffff16565b6138f76040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f726573756c740000000000000000000000000000000000000000000000000000815250846140eb9092919063ffffffff16565b613926601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360175461411e565b9250505092915050565b60008060008061394386600001866143d6565b915091508160001c8160001c8090509350935050509250929050565b8060099080519060200190613975929190615ba2565b5050565b600061398c846000018460001b8461446f565b60001c90509392505050565b60006139a682600001614565565b9050919050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006139e1615b35565b6139f56016543063dbb765ac60e01b61405a565b90506060613a023361408b565b613a0b85613cd8565b6040516020018080615cff6034913960340183805190602001908083835b60208310613a4c5780518252602082019150602081019050602083039250613a29565b6001836020036101000a038019825116818451168082178552505050505050905001807f26746f6b656e3d0000000000000000000000000000000000000000000000000081525060070182805190602001908083835b60208310613ac55780518252602082019150602081019050602083039250613aa2565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050613b466040518060400160405280600381526020017f676574000000000000000000000000000000000000000000000000000000000081525082846140eb9092919063ffffffff16565b613bc56040518060400160405280600481526020017f70617468000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f726573756c740000000000000000000000000000000000000000000000000000815250846140eb9092919063ffffffff16565b613bf4601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168360175461411e565b92505050919050565b80601a819055505050565b60006105dc61ffff16613c1b60146131a2565b10613c2557600080fd5b613c2f60146135f4565b6000601a541415613c3f57600080fd5b6000613c53613c4e60146131a2565b614576565b9050613c5f338261360a565b8091505090565b613c71848484613397565b613c7d8484848461459d565b613cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c846032913960400191505060405180910390fd5b50505050565b60606000821415613d20576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613e1a565b600082905060005b60008214613d4a578080600101915050600a8281613d4257fe5b049150613d28565b60608167ffffffffffffffff81118015613d6357600080fd5b506040519080825280601f01601f191660200182016040528015613d965781602001600182028036833780820191505090505b50905060006001830390508593505b60008414613e1257600a8481613db757fe5b0660300160f81b82828060019003935081518110613dd157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481613e0a57fe5b049350613da5565b819450505050505b919050565b600080601a5414613e2f57600080fd5b613e3e601854601954436147e2565b905090565b6000613e55836000018360001b6149f0565b905092915050565b600081600001805490509050919050565b505050565b6000613e85836000018360001b614a13565b905092915050565b6000613e9f836000018360001b614afb565b905092915050565b6000613ed3846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b614b6b565b90509392505050565b600081836000018054905011613f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615c626022913960400191505060405180910390fd5b826000018281548110613f4c57fe5b9060005260206000200154905092915050565b613f698383614c47565b613f76600084848461459d565b613fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180615c846032913960400191505060405180910390fd5b505050565b613fd9826131b0565b61402e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615e82602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190614055929190615ba2565b505050565b614062615b35565b61406a615b35565b61408185858584614e3b909392919063ffffffff16565b9150509392505050565b60606140e482604051602001808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052614eeb565b9050919050565b61410282846080015161517190919063ffffffff16565b61411981846080015161517190919063ffffffff16565b505050565b600030600f54604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140182815260200192505050604051602081830303815290604052805190602001209050600f54836060018181525050836010600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550807fb5e6e01e79f91267dc17b4e6314d5d4d03593d2ceee0fbb452b750bd70ea5af960405160405180910390a2600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634000aea0858461425687615196565b6040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156142dd5780820151818401526020810190506142c2565b50505050905090810190601f16801561430a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561432b57600080fd5b505af115801561433f573d6000803e3d6000fd5b505050506040513d602081101561435557600080fd5b81019080805190602001909291905050506143bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615cdc6023913960400191505060405180910390fd5b6001600f600082825401925050819055508090509392505050565b60008082846000018054905011614438576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615e346022913960400191505060405180910390fd5b600084600001848154811061444957fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390614536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144fb5780820151818401526020810190506144e0565b50505050905090810190601f1680156145285780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5084600001600182038154811061454957fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b600060016105dc61ffff16601a5464054f174c958502018161459457fe5b06019050919050565b60006145be8473ffffffffffffffffffffffffffffffffffffffff16615362565b6145cb57600190506147da565b606061476163150b7a0260e01b6145e06131cd565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015614690578082015181840152602081019050614675565b50505050905090810190601f1680156146bd5780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051806060016040528060328152602001615c84603291398773ffffffffffffffffffffffffffffffffffffffff166153759092919063ffffffff16565b9050600081806020019051602081101561477a57600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b60007f000000000000000000000000514910771af9ca656af840dff83e8264ecf986ca73ffffffffffffffffffffffffffffffffffffffff16634000aea07f000000000000000000000000f0d54349addcf704f77ae15b96510dea15cb795285878660405160200180838152602001828152602001925050506040516020818303038152906040526040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156148f15780820151818401526020810190506148d6565b50505050905090810190601f16801561491e5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561493f57600080fd5b505af1158015614953573d6000803e3d6000fd5b505050506040513d602081101561496957600080fd5b810190808051906020019092919050505050600061499c858430601160008a81526020019081526020016000205461538d565b90506149c56001601160008881526020019081526020016000205461540790919063ffffffff16565b60116000878152602001908152602001600020819055506149e6858261548f565b9150509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114614aef5760006001820390506000600186600001805490500390506000866000018281548110614a5e57fe5b9060005260206000200154905080876000018481548110614a7b57fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614ab357fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614af5565b60009150505b92915050565b6000614b0783836154c8565b614b60578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614b65565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415614c1257846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050614c40565b82856000016001830381548110614c2557fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b614cf3816131b0565b15614d66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b614d7260008383613e6e565b614dc381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613e8d90919063ffffffff16565b50614dda81836002613ea79092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b614e43615b35565b614e5385608001516101006154eb565b508385600001818152505082856020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508185604001907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050849050949350505050565b6060806040518060400160405280601081526020017f303132333435363738396162636465660000000000000000000000000000000081525090506060600284510260020167ffffffffffffffff81118015614f4657600080fd5b506040519080825280601f01601f191660200182016040528015614f795781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110614faa57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061500757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060008090505b84518110156151665782600486838151811061505457fe5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916901c60f81c60ff168151811061509357fe5b602001015160f81c60f81b8260028302600201815181106150b057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535082600f60f81b8683815181106150f157fe5b602001015160f81c60f81b1660f81c60ff168151811061510d57fe5b602001015160f81c60f81b82600283026003018151811061512a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505061503c565b508092505050919050565b61517e826003835161553f565b615191818361568490919063ffffffff16565b505050565b6060634042994660e01b60008084600001518560200151866040015187606001516001896080015160000151604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001857bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156152c55780820151818401526020810190506152aa565b50505050905090810190601f1680156152f25780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050919050565b600080823b905060008111915050919050565b606061538484846000856156a6565b90509392505050565b600084848484604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019450505050506040516020818303038152906040528051906020012060001c9050949350505050565b600080828401905083811015615485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008282604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b6154f3615c22565b6000602083816154ff57fe5b0614615518576020828161550f57fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b6017811161556c576155668160058460ff16901b60ff16178461584f90919063ffffffff16565b5061567f565b60ff81116155ae57615591601860058460ff16901b178461584f90919063ffffffff16565b506155a88160018561586f9092919063ffffffff16565b5061567e565b61ffff81116155f1576155d4601960058460ff16901b178461584f90919063ffffffff16565b506155eb8160028561586f9092919063ffffffff16565b5061567d565b63ffffffff811161563657615619601a60058460ff16901b178461584f90919063ffffffff16565b506156308160048561586f9092919063ffffffff16565b5061567c565b67ffffffffffffffff811161567b57615662601b60058460ff16901b178461584f90919063ffffffff16565b506156798160088561586f9092919063ffffffff16565b505b5b5b5b5b505050565b61568c615c22565b61569e83846000015151848551615891565b905092915050565b606082471015615701576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615d576026913960400191505060405180910390fd5b61570a85615362565b61577c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106157cc57805182526020820191506020810190506020830392506157a9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461582e576040519150601f19603f3d011682016040523d82523d6000602084013e615833565b606091505b509150915061584382828661594a565b92505050949350505050565b615857615c22565b6158678384600001515184615a16565b905092915050565b615877615c22565b615888848560000151518585615a64565b90509392505050565b615899615c22565b82518211156158a757600080fd5b846020015182850111156158d2576158d18560026158cb8860200151888701615ac5565b02615ae1565b5b6000808651805187602083010193508088870111156158f15787860182525b60208701925050505b6020841061591d57805182526020820191506020810190506020840393506158fa565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b6060831561595a57829050615a0f565b60008351111561596d5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156159d45780820151818401526020810190506159b9565b50505050905090810190601f168015615a015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b615a1e615c22565b83602001518310615a3b57615a3a846002866020015102615ae1565b5b8351805160208583010184815381861415615a57576001820183525b5050508390509392505050565b615a6c615c22565b84602001518483011115615a8a57615a8985600286850102615ae1565b5b60006001836101000a0390508551838682010185831982511617815281518588011115615ab75784870182525b505085915050949350505050565b600081831115615ad757829050615adb565b8190505b92915050565b606082600001519050615af483836154eb565b50615aff8382615684565b50505050565b604051806040016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b6040518060a0016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160008152602001615b9c615c22565b81525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615be357805160ff1916838001178555615c11565b82800160010185558215615c11579182015b82811115615c10578251825591602001919060010190615bf5565b5b509050615c1e9190615c3c565b5090565b604051806040016040528060608152602001600081525090565b615c5e91905b80821115615c5a576000816000905550600101615c42565b5090565b9056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373756e61626c6520746f207472616e73666572416e6443616c6c20746f206f7261636c6568747470733a2f2f736572766963652e63727970746f7472756e6b732e636f2f6d696e745f7477656e74793f616464726573733d4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656468747470733a2f2f736572766963652e63727970746f7472756e6b732e636f2f6d696e743f616464726573733d536f75726365206d75737420626520746865206f7261636c65206f66207468652072657175657374a2646970667358221220ce359c36df2bb9f1f17c2c6695d12153a99ab3a291bc98c2504e2828fc372eee64736f6c63430006060033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.