ERC-721
NFT
Overview
Max Total Supply
3,280 APT
Holders
798
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
3 APTLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
AlienPunkThings
Compiler Version
v0.8.10+commit.fc410830
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT/*_______ ___ ___ _______ __ _ _______ __ __ __ _ ___ _ _______ __ __ ___ __ _ _______ _______| _ || | | | | || | | | | || | | || | | || | | | | || | | || | | | | || || || |_| || | | | | ___|| |_| | | _ || | | || |_| || |_| | |_ _|| |_| || | | |_| || ___|| _____|| || | | | | |___ | | | |_| || |_| || || _| | | | || | | || | __ | |_____| || |___ | | | ___|| _ | | ___|| || _ || |_ | | | || | | _ || || ||_____ || _ || || | | |___ | | | | | | | || | | || _ | | | | _ || | | | | || |_| | _____| ||__| |__||_______||___| |_______||_| |__| |___| |_______||_| |__||___| |_| |___| |__| |__||___| |_| |__||_______||_______|These aren't ordinary aliens...8,888 Alien Punk ThingsFirst 1500 are free, then 0.01 ETHAlien Punk Things are 8,888 unique and randomly generated NFTs.Traits are inspired by many NFTs including Cryptopunks, Alien Frens, Thingdoms, Cryptoadz, mfers, and more...Benefits to holding an NFT include discounted minting price on our next evolution project, eligibility for NFT givaways.Come join our welcoming community and Discord!*/pragma solidity ^0.8.0;import "./lib/ERC721EnumerableLite.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: BSD-3-Clausepragma solidity ^0.8.0;import "./ERC721B.sol";import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";/*** @dev This implements an optional extension of {ERC721} defined in the EIP that adds* enumerability of all the token ids in the contract as well as all token ids owned by each* account.*/abstract contract ERC721EnumerableLite is ERC721B, IERC721Enumerable {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721B) returns (bool) {return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId);}/*** @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.*/function tokenOfOwnerByIndex(address owner, uint256 index) public view override returns (uint256 tokenId) {require(index < ERC721B.balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)pragma solidity ^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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)pragma solidity ^0.8.0;/*** @dev String operations.*/library Strings {bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";/*** @dev Converts a `uint256` to its ASCII `string` decimal representation.*/function toString(uint256 value) internal pure returns (string memory) {// Inspired by OraclizeAPI's implementation - MIT licence// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.solif (value == 0) {return "0";}uint256 temp = value;uint256 digits;while (temp != 0) {digits++;temp /= 10;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (finance/PaymentSplitter.sol)pragma solidity ^0.8.0;import "../token/ERC20/utils/SafeERC20.sol";import "../utils/Address.sol";import "../utils/Context.sol";/*** @title PaymentSplitter* @dev This contract allows to split Ether payments among a group of accounts. The sender does not need to be aware* that the Ether will be split in this way, since it is handled transparently by the contract.** The split can be in equal parts or in any other arbitrary proportion. The way this is specified is by assigning each* account to a number of shares. Of all the Ether that this contract receives, each account will then be able to claim* an amount proportional to the percentage of total shares they were assigned.** `PaymentSplitter` follows a _pull payment_ model. This means that payments are not automatically forwarded to the* accounts but kept in this contract, and the actual transfer is triggered as a separate step by calling the {release}* function.** NOTE: This contract assumes that ERC20 tokens will behave similarly to native tokens (Ether). Rebasing tokens, and* tokens that apply fees during transfers, are likely to not be supported as expected. If in doubt, we encourage you* to run tests before sending real value to this contract.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/math/Math.sol)pragma solidity ^0.8.0;/*** @dev Standard math utilities missing in the Solidity language.*/library Math {/*** @dev Returns the largest of two numbers.*/function max(uint256 a, uint256 b) internal pure returns (uint256) {return a >= b ? a : b;}/*** @dev Returns the smallest of two numbers.*/function min(uint256 a, uint256 b) internal pure returns (uint256) {return a < b ? a : b;}/*** @dev Returns the average of two numbers. The result is rounded towards* zero.
1234567891011121314151617181920212223242526pragma solidity ^0.8.0;import "@openzeppelin/contracts/utils/Context.sol";import "@openzeppelin/contracts/utils/introspection/ERC165.sol";import "@openzeppelin/contracts/token/ERC721/IERC721.sol";import "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol";import "@openzeppelin/contracts/utils/Address.sol";import "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";/********************* @author: Squeebo *********************/abstract contract ERC721B is Context, ERC165, IERC721, IERC721Metadata {using Address for address;// Token namestring private _name;// Token symbolstring private _symbol;// Mapping from token ID to owner addressaddress[] internal _owners;// Mapping from token ID to approved address
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Enumerable.sol)pragma solidity ^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.
123456789101112131415161718192021222324// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)pragma solidity ^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 meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal view virtual returns (address) {return msg.sender;}function _msgData() internal view virtual returns (bytes calldata) {return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol)pragma solidity ^0.8.0;import "./IERC165.sol";/*** @dev Implementation of the {IERC165} interface.** Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check* for the additional interface id that will be supported. For example:** ```solidity* function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {* return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);* }* ```** Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.*/abstract contract ERC165 is IERC165 {/*** @dev See {IERC165-supportsInterface}.*/function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol)pragma solidity ^0.8.0;import "../../utils/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: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol)pragma solidity ^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: MIT// OpenZeppelin Contracts v4.4.1 (utils/Address.sol)pragma solidity ^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* ====*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol)pragma solidity ^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);
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^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: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.0;import "../IERC20.sol";import "../../../utils/Address.sol";/*** @title SafeERC20* @dev Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using Address for address;function safeTransfer(IERC20 token,address to,uint256 value) internal {_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC20 standard as defined in the EIP.*/interface IERC20 {/*** @dev Returns the amount of tokens in existence.*/function totalSupply() external view returns (uint256);/*** @dev Returns the amount of tokens owned by `account`.*/function balanceOf(address account) external view returns (uint256);/*** @dev Moves `amount` tokens from the caller's account to `recipient`.** Returns a boolean value indicating whether the operation succeeded.** Emits a {Transfer} event.*/
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":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20PaymentReleased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"PayeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PaymentReleased","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":[],"name":"_freeLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_freeMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_freeTracker","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_max","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_saleIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_txnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"flipSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"freeMintsRemaining","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"total","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"payee","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"released","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"shares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"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":"tokenId","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":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalReleased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405266354a6ba7a18000600d556122b8600e556014600f556000601060006101000a81548160ff0219169083151502179055506105dc601155600360125560006013556040518060600160405280730beaf25a1de14faf9db5ba0bad13b70267e3d01e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173bc3b2d37c5b32686b0804a7d6a317e15173d10a773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e0478e355cab72d60c31b9c73c2656826bc016f773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525060169060036200013292919062000725565b506040518060600160405280602d60ff168152602001602d60ff168152602001600a60ff1681525060179060036200016c929190620007b4565b503480156200017a57600080fd5b506016805480602002602001604051908101604052809291908181526020018280548015620001ff57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311620001b4575b505050505060178054806020026020016040519081016040528092919081815260200182805480156200025257602002820191906000526020600020905b8154815260200190600101908083116200023d575b50505050506040518060400160405280600f81526020017f416c69656e50756e6b5468696e677300000000000000000000000000000000008152506040518060400160405280600381526020017f41505400000000000000000000000000000000000000000000000000000000008152508160009080519060200190620002db9291906200080b565b508060019080519060200190620002f49291906200080b565b505050620003176200030b6200041d60201b60201c565b6200042560201b60201c565b80518251146200035e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003559062000942565b60405180910390fd5b6000825111620003a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200039c90620009b4565b60405180910390fd5b60005b82518110156200041457620003fe838281518110620003cc57620003cb620009d6565b5b6020026020010151838381518110620003ea57620003e9620009d6565b5b6020026020010151620004eb60201b60201c565b80806200040b9062000a3e565b915050620003a8565b50505062000d73565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200055e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005559062000b02565b60405180910390fd5b60008111620005a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200059b9062000b74565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541462000629576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006209062000c0c565b60405180910390fd5b600a829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600654620006e0919062000c2e565b6006819055507f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac82826040516200071992919062000ce1565b60405180910390a15050565b828054828255906000526020600020908101928215620007a1579160200282015b82811115620007a05782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000746565b5b509050620007b091906200089c565b5090565b828054828255906000526020600020908101928215620007f8579160200282015b82811115620007f7578251829060ff16905591602001919060010190620007d5565b5b5090506200080791906200089c565b5090565b828054620008199062000d3d565b90600052602060002090601f0160209004810192826200083d576000855562000889565b82601f106200085857805160ff191683800117855562000889565b8280016001018555821562000889579182015b82811115620008885782518255916020019190600101906200086b565b5b5090506200089891906200089c565b5090565b5b80821115620008b75760008160009055506001016200089d565b5090565b600082825260208201905092915050565b7f5061796d656e7453706c69747465723a2070617965657320616e64207368617260008201527f6573206c656e677468206d69736d617463680000000000000000000000000000602082015250565b60006200092a603283620008bb565b91506200093782620008cc565b604082019050919050565b600060208201905081810360008301526200095d816200091b565b9050919050565b7f5061796d656e7453706c69747465723a206e6f20706179656573000000000000600082015250565b60006200099c601a83620008bb565b9150620009a98262000964565b602082019050919050565b60006020820190508181036000830152620009cf816200098d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062000a4b8262000a34565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000a815762000a8062000a05565b5b600182019050919050565b7f5061796d656e7453706c69747465723a206163636f756e74206973207468652060008201527f7a65726f20616464726573730000000000000000000000000000000000000000602082015250565b600062000aea602c83620008bb565b915062000af78262000a8c565b604082019050919050565b6000602082019050818103600083015262000b1d8162000adb565b9050919050565b7f5061796d656e7453706c69747465723a20736861726573206172652030000000600082015250565b600062000b5c601d83620008bb565b915062000b698262000b24565b602082019050919050565b6000602082019050818103600083015262000b8f8162000b4d565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960008201527f2068617320736861726573000000000000000000000000000000000000000000602082015250565b600062000bf4602b83620008bb565b915062000c018262000b96565b604082019050919050565b6000602082019050818103600083015262000c278162000be5565b9050919050565b600062000c3b8262000a34565b915062000c488362000a34565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c805762000c7f62000a05565b5b828201905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cb88262000c8b565b9050919050565b62000cca8162000cab565b82525050565b62000cdb8162000a34565b82525050565b600060408201905062000cf8600083018562000cbf565b62000d07602083018462000cd0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d5657607f821691505b6020821081141562000d6d5762000d6c62000d0e565b5b50919050565b614fb88062000d836000396000f3fe60806040526004361061023f5760003560e01c80636352211e1161012e578063a22cb465116100ab578063d79779b21161006f578063d79779b21461090f578063e33b7de31461094c578063e77ebcde14610977578063e985e9c5146109a2578063f2fde38b146109df57610286565b8063a22cb46514610806578063b88d4fde1461082f578063c87b56dd14610858578063c9aef53414610895578063ce7c2ac2146108d257610286565b806395d89b41116100f257806395d89b411461072c5780639773aa78146107575780639852595c14610782578063a0712d68146107bf578063a0919f4f146107db57610286565b80636352211e1461063357806370a0823114610670578063715018a6146106ad5780638b83209b146106c45780638da5cb5b1461070157610286565b80632f745c59116101bc57806348b750441161018057806348b750441461054e5780634b7e2edf146105775780634f6ccce7146105a257806355f804b3146105df5780635d893ba01461060857610286565b80632f745c591461046957806334918dfd146104a65780633a98ef39146104bd578063406072a9146104e857806342842e0e1461052557610286565b80631450652411610203578063145065241461039657806318160ddd146103c157806319165587146103ec578063235b6ea11461041557806323b872dd1461044057610286565b806301ffc9a71461028b5780630654fa34146102c857806306fdde0314610305578063081812fc14610330578063095ea7b31461036d57610286565b36610286577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77061026d610a08565b3460405161027c9291906131f6565b60405180910390a1005b600080fd5b34801561029757600080fd5b506102b260048036038101906102ad919061328b565b610a10565b6040516102bf91906132d3565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061331a565b610a8a565b6040516102fc9190613347565b60405180910390f35b34801561031157600080fd5b5061031a610aa2565b60405161032791906133fb565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613449565b610b34565b6040516103649190613476565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190613491565b610bb9565b005b3480156103a257600080fd5b506103ab610cd1565b6040516103b89190613347565b60405180910390f35b3480156103cd57600080fd5b506103d6610cd7565b6040516103e39190613347565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e919061350f565b610ce4565b005b34801561042157600080fd5b5061042a610e8f565b6040516104379190613347565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061353c565b610e95565b005b34801561047557600080fd5b50610490600480360381019061048b9190613491565b610ef5565b60405161049d9190613347565b60405180910390f35b3480156104b257600080fd5b506104bb61103e565b005b3480156104c957600080fd5b506104d26110e6565b6040516104df9190613347565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a91906135cd565b6110f0565b60405161051c9190613347565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061353c565b611177565b005b34801561055a57600080fd5b50610575600480360381019061057091906135cd565b611197565b005b34801561058357600080fd5b5061058c611450565b6040516105999190613347565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613449565b611456565b6040516105d69190613347565b60405180910390f35b3480156105eb57600080fd5b5061060660048036038101906106019190613742565b6114a9565b005b34801561061457600080fd5b5061061d61153f565b60405161062a91906132d3565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190613449565b611552565b6040516106679190613476565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061331a565b61160f565b6040516106a49190613347565b60405180910390f35b3480156106b957600080fd5b506106c2611735565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190613449565b6117bd565b6040516106f89190613476565b60405180910390f35b34801561070d57600080fd5b50610716611805565b6040516107239190613476565b60405180910390f35b34801561073857600080fd5b5061074161182f565b60405161074e91906133fb565b60405180910390f35b34801561076357600080fd5b5061076c6118c1565b6040516107799190613347565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a4919061331a565b6118c7565b6040516107b69190613347565b60405180910390f35b6107d960048036038101906107d49190613449565b611910565b005b3480156107e757600080fd5b506107f0611ac5565b6040516107fd9190613347565b60405180910390f35b34801561081257600080fd5b5061082d600480360381019061082891906137b7565b611acb565b005b34801561083b57600080fd5b5061085660048036038101906108519190613898565b611c4c565b005b34801561086457600080fd5b5061087f600480360381019061087a9190613449565b611cae565b60405161088c91906133fb565b60405180910390f35b3480156108a157600080fd5b506108bc60048036038101906108b7919061331a565b611d2a565b6040516108c99190613347565b60405180910390f35b3480156108de57600080fd5b506108f960048036038101906108f4919061331a565b611d80565b6040516109069190613347565b60405180910390f35b34801561091b57600080fd5b506109366004803603810190610931919061391b565b611dc9565b6040516109439190613347565b60405180910390f35b34801561095857600080fd5b50610961611e12565b60405161096e9190613347565b60405180910390f35b34801561098357600080fd5b5061098c611e1c565b6040516109999190613347565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190613948565b611e22565b6040516109d691906132d3565b60405180910390f35b3480156109eb57600080fd5b50610a066004803603810190610a01919061331a565b611eb6565b005b600033905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a835750610a8282611fae565b5b9050919050565b60146020528060005260406000206000915090505481565b606060008054610ab1906139b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610add906139b7565b8015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b5050505050905090565b6000610b3f82612090565b610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7590613a5b565b60405180910390fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bc482611552565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613aed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c54610a08565b73ffffffffffffffffffffffffffffffffffffffff161480610c835750610c8281610c7d610a08565b611e22565b5b610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990613b7f565b60405180910390fd5b610ccc8383612118565b505050565b600e5481565b6000600280549050905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90613c11565b60405180910390fd5b6000610d70611e12565b47610d7b9190613c60565b90506000610d928383610d8d866118c7565b6121d1565b90506000811415610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf90613d28565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e279190613c60565b925050819055508060076000828254610e409190613c60565b92505081905550610e51838261223f565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051610e82929190613da7565b60405180910390a1505050565b600d5481565b610ea6610ea0610a08565b82612333565b610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90613e42565b60405180910390fd5b610ef0838383612411565b505050565b6000610f008361160f565b8210610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890613ed4565b60405180910390fd5b6000805b600280549050811015610ff45760028181548110610f6657610f65613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610fe35783821415610fd6578092505050611038565b81610fe090613f23565b91505b80610fed90613f23565b9050610f45565b506000611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90613ed4565b60405180910390fd5b505b92915050565b611046610a08565b73ffffffffffffffffffffffffffffffffffffffff16611064611805565b73ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190613fb8565b60405180910390fd5b601060009054906101000a900460ff1615601060006101000a81548160ff021916908315150217905550565b6000600654905090565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61119283838360405180602001604052806000815250611c4c565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121090613c11565b60405180910390fd5b600061122483611dc9565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125d9190613476565b602060405180830381865afa15801561127a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129e9190613fed565b6112a89190613c60565b905060006112c083836112bb87876110f0565b6121d1565b90506000811415611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613d28565b60405180910390fd5b80600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113929190613c60565b9250508190555080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113e89190613c60565b925050819055506113fa8484836125ca565b8373ffffffffffffffffffffffffffffffffffffffff167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a84836040516114429291906131f6565b60405180910390a250505050565b60115481565b6000611460610cd7565b82106114a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114989061408c565b60405180910390fd5b819050919050565b6114b1610a08565b73ffffffffffffffffffffffffffffffffffffffff166114cf611805565b73ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613fb8565b60405180910390fd5b806015908051906020019061153b9291906130f9565b5050565b601060009054906101000a900460ff1681565b6000806002838154811061156957611568613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd9061411e565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611677906141b0565b60405180910390fd5b600080600280549050905060005b8181101561172657600281815481106116aa576116a9613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611715578261171290613f23565b92505b8061171f90613f23565b905061168e565b50600090508192505050919050565b61173d610a08565b73ffffffffffffffffffffffffffffffffffffffff1661175b611805565b73ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613fb8565b60405180910390fd5b6117bb6000612650565b565b6000600a82815481106117d3576117d2613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461183e906139b7565b80601f016020809104026020016040519081016040528092919081815260200182805461186a906139b7565b80156118b75780601f1061188c576101008083540402835291602001916118b7565b820191906000526020600020905b81548152906001019060200180831161189a57829003601f168201915b5050505050905090565b600f5481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601060009054906101000a900460ff1661195f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119569061421c565b60405180910390fd5b600081116119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906142ae565b60405180910390fd5b600f548111156119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de9061431a565b60405180910390fd5b346119f182612716565b1115611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990614386565b60405180910390fd5b60006002805490509050600e548282611a4b9190613c60565b1115611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a83906143f2565b60405180910390fd5b60005b82811015611ac057611aad338380611aa690613f23565b94506128be565b8080611ab890613f23565b915050611a8f565b505050565b60135481565b611ad3610a08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b389061445e565b60405180910390fd5b8060046000611b4e610a08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611bfb610a08565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c4091906132d3565b60405180910390a35050565b611c5d611c57610a08565b83612333565b611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613e42565b60405180910390fd5b611ca8848484846128dc565b50505050565b6060611cb982612090565b611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef906144f0565b60405180910390fd5b6015611d0383612938565b604051602001611d149291906145e0565b6040516020818303038152906040529050919050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601254611d799190614604565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600754905090565b60125481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ebe610a08565b73ffffffffffffffffffffffffffffffffffffffff16611edc611805565b73ffffffffffffffffffffffffffffffffffffffff1614611f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2990613fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906146aa565b60405180910390fd5b611fab81612650565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061207957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612089575061208882612a99565b5b9050919050565b6000600280549050821080156121115750600073ffffffffffffffffffffffffffffffffffffffff16600283815481106120cd576120cc613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661218b83611552565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600654600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561222291906146ca565b61222c9190614753565b6122369190614604565b90509392505050565b80471015612282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612279906147d0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516122a890614821565b60006040518083038185875af1925050503d80600081146122e5576040519150601f19603f3d011682016040523d82523d6000602084013e6122ea565b606091505b505090508061232e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612325906148a8565b60405180910390fd5b505050565b600061233e82612090565b61237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749061493a565b60405180910390fd5b600061238883611552565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806123f757508373ffffffffffffffffffffffffffffffffffffffff166123df84610b34565b73ffffffffffffffffffffffffffffffffffffffff16145b8061240857506124078185611e22565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661243182611552565b73ffffffffffffffffffffffffffffffffffffffff1614612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e906149cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ee90614a5e565b60405180910390fd5b612502838383612b03565b61250d600082612118565b816002828154811061252257612521613ef4565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61264b8363a9059cbb60e01b84846040516024016125e99291906131f6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612b08565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600090506011546013541080156127705750601254601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561289d5761278160125484612bcf565b90506127d981601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012546127d49190614604565b612bcf565b9050601154816013546127ec9190613c60565b111561282d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282490614aca565b60405180910390fd5b80601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461287c9190613c60565b9250508190555080601360008282546128959190613c60565b925050819055505b600d5481846128ac9190614604565b6128b691906146ca565b915050919050565b6128d8828260405180602001604052806000815250612be8565b5050565b6128e7848484612411565b6128f384848484612c43565b612932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292990614b5c565b60405180910390fd5b50505050565b60606000821415612980576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612a94565b600082905060005b600082146129b257808061299b90613f23565b915050600a826129ab9190614753565b9150612988565b60008167ffffffffffffffff8111156129ce576129cd613617565b5b6040519080825280601f01601f191660200182016040528015612a005781602001600182028036833780820191505090505b5090505b60008514612a8d57600182612a199190614604565b9150600a85612a289190614b7c565b6030612a349190613c60565b60f81b818381518110612a4a57612a49613ef4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612a869190614753565b9450612a04565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b6000612b6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612dcb9092919063ffffffff16565b9050600081511115612bca5780806020019051810190612b8a9190614bc2565b612bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc090614c61565b60405180910390fd5b5b505050565b6000818310612bde5781612be0565b825b905092915050565b612bf28383612de3565b612bff6000848484612c43565b612c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3590614b5c565b60405180910390fd5b505050565b6000612c648473ffffffffffffffffffffffffffffffffffffffff16612f6b565b15612dbe578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612c8d610a08565b8786866040518563ffffffff1660e01b8152600401612caf9493929190614cd6565b6020604051808303816000875af1925050508015612ceb57506040513d601f19601f82011682018060405250810190612ce89190614d37565b60015b612d6e573d8060008114612d1b576040519150601f19603f3d011682016040523d82523d6000602084013e612d20565b606091505b50600081511415612d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5d90614b5c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612dc3565b600190505b949350505050565b6060612dda8484600085612f7e565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4a90614db0565b60405180910390fd5b612e5c81612090565b15612e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9390614e1c565b60405180910390fd5b612ea860008383612b03565b6002829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b606082471015612fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fba90614eae565b60405180910390fd5b612fcc85612f6b565b61300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300290614f1a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130349190614f6b565b60006040518083038185875af1925050503d8060008114613071576040519150601f19603f3d011682016040523d82523d6000602084013e613076565b606091505b5091509150613086828286613092565b92505050949350505050565b606083156130a2578290506130f2565b6000835111156130b55782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e991906133fb565b60405180910390fd5b9392505050565b828054613105906139b7565b90600052602060002090601f016020900481019282613127576000855561316e565b82601f1061314057805160ff191683800117855561316e565b8280016001018555821561316e579182015b8281111561316d578251825591602001919060010190613152565b5b50905061317b919061317f565b5090565b5b80821115613198576000816000905550600101613180565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131c78261319c565b9050919050565b6131d7816131bc565b82525050565b6000819050919050565b6131f0816131dd565b82525050565b600060408201905061320b60008301856131ce565b61321860208301846131e7565b9392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61326881613233565b811461327357600080fd5b50565b6000813590506132858161325f565b92915050565b6000602082840312156132a1576132a0613229565b5b60006132af84828501613276565b91505092915050565b60008115159050919050565b6132cd816132b8565b82525050565b60006020820190506132e860008301846132c4565b92915050565b6132f7816131bc565b811461330257600080fd5b50565b600081359050613314816132ee565b92915050565b6000602082840312156133305761332f613229565b5b600061333e84828501613305565b91505092915050565b600060208201905061335c60008301846131e7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339c578082015181840152602081019050613381565b838111156133ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006133cd82613362565b6133d7818561336d565b93506133e781856020860161337e565b6133f0816133b1565b840191505092915050565b6000602082019050818103600083015261341581846133c2565b905092915050565b613426816131dd565b811461343157600080fd5b50565b6000813590506134438161341d565b92915050565b60006020828403121561345f5761345e613229565b5b600061346d84828501613434565b91505092915050565b600060208201905061348b60008301846131ce565b92915050565b600080604083850312156134a8576134a7613229565b5b60006134b685828601613305565b92505060206134c785828601613434565b9150509250929050565b60006134dc8261319c565b9050919050565b6134ec816134d1565b81146134f757600080fd5b50565b600081359050613509816134e3565b92915050565b60006020828403121561352557613524613229565b5b6000613533848285016134fa565b91505092915050565b60008060006060848603121561355557613554613229565b5b600061356386828701613305565b935050602061357486828701613305565b925050604061358586828701613434565b9150509250925092565b600061359a826131bc565b9050919050565b6135aa8161358f565b81146135b557600080fd5b50565b6000813590506135c7816135a1565b92915050565b600080604083850312156135e4576135e3613229565b5b60006135f2858286016135b8565b925050602061360385828601613305565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61364f826133b1565b810181811067ffffffffffffffff8211171561366e5761366d613617565b5b80604052505050565b600061368161321f565b905061368d8282613646565b919050565b600067ffffffffffffffff8211156136ad576136ac613617565b5b6136b6826133b1565b9050602081019050919050565b82818337600083830152505050565b60006136e56136e084613692565b613677565b90508281526020810184848401111561370157613700613612565b5b61370c8482856136c3565b509392505050565b600082601f8301126137295761372861360d565b5b81356137398482602086016136d2565b91505092915050565b60006020828403121561375857613757613229565b5b600082013567ffffffffffffffff8111156137765761377561322e565b5b61378284828501613714565b91505092915050565b613794816132b8565b811461379f57600080fd5b50565b6000813590506137b18161378b565b92915050565b600080604083850312156137ce576137cd613229565b5b60006137dc85828601613305565b92505060206137ed858286016137a2565b9150509250929050565b600067ffffffffffffffff82111561381257613811613617565b5b61381b826133b1565b9050602081019050919050565b600061383b613836846137f7565b613677565b90508281526020810184848401111561385757613856613612565b5b6138628482856136c3565b509392505050565b600082601f83011261387f5761387e61360d565b5b813561388f848260208601613828565b91505092915050565b600080600080608085870312156138b2576138b1613229565b5b60006138c087828801613305565b94505060206138d187828801613305565b93505060406138e287828801613434565b925050606085013567ffffffffffffffff8111156139035761390261322e565b5b61390f8782880161386a565b91505092959194509250565b60006020828403121561393157613930613229565b5b600061393f848285016135b8565b91505092915050565b6000806040838503121561395f5761395e613229565b5b600061396d85828601613305565b925050602061397e85828601613305565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139cf57607f821691505b602082108114156139e3576139e2613988565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613a45602c8361336d565b9150613a50826139e9565b604082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad760218361336d565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613b6960388361336d565b9150613b7482613b0d565b604082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b6000613bfb60268361336d565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c6b826131dd565b9150613c76836131dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cab57613caa613c31565b5b828201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b6000613d12602b8361336d565b9150613d1d82613cb6565b604082019050919050565b60006020820190508181036000830152613d4181613d05565b9050919050565b6000819050919050565b6000613d6d613d68613d638461319c565b613d48565b61319c565b9050919050565b6000613d7f82613d52565b9050919050565b6000613d9182613d74565b9050919050565b613da181613d86565b82525050565b6000604082019050613dbc6000830185613d98565b613dc960208301846131e7565b9392505050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613e2c60318361336d565b9150613e3782613dd0565b604082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613ebe602b8361336d565b9150613ec982613e62565b604082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f2e826131dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f6157613f60613c31565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fa260208361336d565b9150613fad82613f6c565b602082019050919050565b60006020820190508181036000830152613fd181613f95565b9050919050565b600081519050613fe78161341d565b92915050565b60006020828403121561400357614002613229565b5b600061401184828501613fd8565b91505092915050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000614076602c8361336d565b91506140818261401a565b604082019050919050565b600060208201905081810360008301526140a581614069565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b600061410860298361336d565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600061419a602a8361336d565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f53616c65206973206e6f74206163746976650000000000000000000000000000600082015250565b600061420660128361336d565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f4e756d62657220746f206d696e74206d7573742062652067726561746572207460008201527f68616e2030000000000000000000000000000000000000000000000000000000602082015250565b600061429860258361336d565b91506142a38261423c565b604082019050919050565b600060208201905081810360008301526142c78161428b565b9050919050565b7f4f766572207472616e73616374696f6e206c696d697400000000000000000000600082015250565b600061430460168361336d565b915061430f826142ce565b602082019050919050565b60006020820190508181036000830152614333816142f7565b9050919050565b7f45746865722076616c75652073656e74206973206e6f7420636f727265637400600082015250565b6000614370601f8361336d565b915061437b8261433a565b602082019050919050565b6000602082019050818103600083015261439f81614363565b9050919050565b7f507572636861736520776f756c6420657863656564206d617820737570706c79600082015250565b60006143dc60208361336d565b91506143e7826143a6565b602082019050919050565b6000602082019050818103600083015261440b816143cf565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061444860198361336d565b915061445382614412565b602082019050919050565b600060208201905081810360008301526144778161443b565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006144da602f8361336d565b91506144e58261447e565b604082019050919050565b60006020820190508181036000830152614509816144cd565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461453d816139b7565b6145478186614510565b945060018216600081146145625760018114614573576145a6565b60ff198316865281860193506145a6565b61457c8561451b565b60005b8381101561459e5781548189015260018201915060208101905061457f565b838801955050505b50505092915050565b60006145ba82613362565b6145c48185614510565b93506145d481856020860161337e565b80840191505092915050565b60006145ec8285614530565b91506145f882846145af565b91508190509392505050565b600061460f826131dd565b915061461a836131dd565b92508282101561462d5761462c613c31565b5b828203905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061469460268361336d565b915061469f82614638565b604082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b60006146d5826131dd565b91506146e0836131dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471957614718613c31565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061475e826131dd565b9150614769836131dd565b92508261477957614778614724565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006147ba601d8361336d565b91506147c582614784565b602082019050919050565b600060208201905081810360008301526147e9816147ad565b9050919050565b600081905092915050565b50565b600061480b6000836147f0565b9150614816826147fb565b600082019050919050565b600061482c826147fe565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614892603a8361336d565b915061489d82614836565b604082019050919050565b600060208201905081810360008301526148c181614885565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614924602c8361336d565b915061492f826148c8565b604082019050919050565b6000602082019050818103600083015261495381614917565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b60006149b660298361336d565b91506149c18261495a565b604082019050919050565b600060208201905081810360008301526149e5816149a9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614a4860248361336d565b9150614a53826149ec565b604082019050919050565b60006020820190508181036000830152614a7781614a3b565b9050919050565b7f4e6f206d6f72652066726565206d696e747320617661696c61626c6500000000600082015250565b6000614ab4601c8361336d565b9150614abf82614a7e565b602082019050919050565b60006020820190508181036000830152614ae381614aa7565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614b4660328361336d565b9150614b5182614aea565b604082019050919050565b60006020820190508181036000830152614b7581614b39565b9050919050565b6000614b87826131dd565b9150614b92836131dd565b925082614ba257614ba1614724565b5b828206905092915050565b600081519050614bbc8161378b565b92915050565b600060208284031215614bd857614bd7613229565b5b6000614be684828501614bad565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000614c4b602a8361336d565b9150614c5682614bef565b604082019050919050565b60006020820190508181036000830152614c7a81614c3e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614ca882614c81565b614cb28185614c8c565b9350614cc281856020860161337e565b614ccb816133b1565b840191505092915050565b6000608082019050614ceb60008301876131ce565b614cf860208301866131ce565b614d0560408301856131e7565b8181036060830152614d178184614c9d565b905095945050505050565b600081519050614d318161325f565b92915050565b600060208284031215614d4d57614d4c613229565b5b6000614d5b84828501614d22565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614d9a60208361336d565b9150614da582614d64565b602082019050919050565b60006020820190508181036000830152614dc981614d8d565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614e06601c8361336d565b9150614e1182614dd0565b602082019050919050565b60006020820190508181036000830152614e3581614df9565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614e9860268361336d565b9150614ea382614e3c565b604082019050919050565b60006020820190508181036000830152614ec781614e8b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614f04601d8361336d565b9150614f0f82614ece565b602082019050919050565b60006020820190508181036000830152614f3381614ef7565b9050919050565b6000614f4582614c81565b614f4f81856147f0565b9350614f5f81856020860161337e565b80840191505092915050565b6000614f778284614f3a565b91508190509291505056fea2646970667358221220208e15936d3bfd28422ae98e58a22c23753006d699cc47958a79b1e82819865b64736f6c634300080a0033
Deployed Bytecode
0x60806040526004361061023f5760003560e01c80636352211e1161012e578063a22cb465116100ab578063d79779b21161006f578063d79779b21461090f578063e33b7de31461094c578063e77ebcde14610977578063e985e9c5146109a2578063f2fde38b146109df57610286565b8063a22cb46514610806578063b88d4fde1461082f578063c87b56dd14610858578063c9aef53414610895578063ce7c2ac2146108d257610286565b806395d89b41116100f257806395d89b411461072c5780639773aa78146107575780639852595c14610782578063a0712d68146107bf578063a0919f4f146107db57610286565b80636352211e1461063357806370a0823114610670578063715018a6146106ad5780638b83209b146106c45780638da5cb5b1461070157610286565b80632f745c59116101bc57806348b750441161018057806348b750441461054e5780634b7e2edf146105775780634f6ccce7146105a257806355f804b3146105df5780635d893ba01461060857610286565b80632f745c591461046957806334918dfd146104a65780633a98ef39146104bd578063406072a9146104e857806342842e0e1461052557610286565b80631450652411610203578063145065241461039657806318160ddd146103c157806319165587146103ec578063235b6ea11461041557806323b872dd1461044057610286565b806301ffc9a71461028b5780630654fa34146102c857806306fdde0314610305578063081812fc14610330578063095ea7b31461036d57610286565b36610286577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77061026d610a08565b3460405161027c9291906131f6565b60405180910390a1005b600080fd5b34801561029757600080fd5b506102b260048036038101906102ad919061328b565b610a10565b6040516102bf91906132d3565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea919061331a565b610a8a565b6040516102fc9190613347565b60405180910390f35b34801561031157600080fd5b5061031a610aa2565b60405161032791906133fb565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190613449565b610b34565b6040516103649190613476565b60405180910390f35b34801561037957600080fd5b50610394600480360381019061038f9190613491565b610bb9565b005b3480156103a257600080fd5b506103ab610cd1565b6040516103b89190613347565b60405180910390f35b3480156103cd57600080fd5b506103d6610cd7565b6040516103e39190613347565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e919061350f565b610ce4565b005b34801561042157600080fd5b5061042a610e8f565b6040516104379190613347565b60405180910390f35b34801561044c57600080fd5b506104676004803603810190610462919061353c565b610e95565b005b34801561047557600080fd5b50610490600480360381019061048b9190613491565b610ef5565b60405161049d9190613347565b60405180910390f35b3480156104b257600080fd5b506104bb61103e565b005b3480156104c957600080fd5b506104d26110e6565b6040516104df9190613347565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a91906135cd565b6110f0565b60405161051c9190613347565b60405180910390f35b34801561053157600080fd5b5061054c6004803603810190610547919061353c565b611177565b005b34801561055a57600080fd5b50610575600480360381019061057091906135cd565b611197565b005b34801561058357600080fd5b5061058c611450565b6040516105999190613347565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c49190613449565b611456565b6040516105d69190613347565b60405180910390f35b3480156105eb57600080fd5b5061060660048036038101906106019190613742565b6114a9565b005b34801561061457600080fd5b5061061d61153f565b60405161062a91906132d3565b60405180910390f35b34801561063f57600080fd5b5061065a60048036038101906106559190613449565b611552565b6040516106679190613476565b60405180910390f35b34801561067c57600080fd5b506106976004803603810190610692919061331a565b61160f565b6040516106a49190613347565b60405180910390f35b3480156106b957600080fd5b506106c2611735565b005b3480156106d057600080fd5b506106eb60048036038101906106e69190613449565b6117bd565b6040516106f89190613476565b60405180910390f35b34801561070d57600080fd5b50610716611805565b6040516107239190613476565b60405180910390f35b34801561073857600080fd5b5061074161182f565b60405161074e91906133fb565b60405180910390f35b34801561076357600080fd5b5061076c6118c1565b6040516107799190613347565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a4919061331a565b6118c7565b6040516107b69190613347565b60405180910390f35b6107d960048036038101906107d49190613449565b611910565b005b3480156107e757600080fd5b506107f0611ac5565b6040516107fd9190613347565b60405180910390f35b34801561081257600080fd5b5061082d600480360381019061082891906137b7565b611acb565b005b34801561083b57600080fd5b5061085660048036038101906108519190613898565b611c4c565b005b34801561086457600080fd5b5061087f600480360381019061087a9190613449565b611cae565b60405161088c91906133fb565b60405180910390f35b3480156108a157600080fd5b506108bc60048036038101906108b7919061331a565b611d2a565b6040516108c99190613347565b60405180910390f35b3480156108de57600080fd5b506108f960048036038101906108f4919061331a565b611d80565b6040516109069190613347565b60405180910390f35b34801561091b57600080fd5b506109366004803603810190610931919061391b565b611dc9565b6040516109439190613347565b60405180910390f35b34801561095857600080fd5b50610961611e12565b60405161096e9190613347565b60405180910390f35b34801561098357600080fd5b5061098c611e1c565b6040516109999190613347565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190613948565b611e22565b6040516109d691906132d3565b60405180910390f35b3480156109eb57600080fd5b50610a066004803603810190610a01919061331a565b611eb6565b005b600033905090565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a835750610a8282611fae565b5b9050919050565b60146020528060005260406000206000915090505481565b606060008054610ab1906139b7565b80601f0160208091040260200160405190810160405280929190818152602001828054610add906139b7565b8015610b2a5780601f10610aff57610100808354040283529160200191610b2a565b820191906000526020600020905b815481529060010190602001808311610b0d57829003601f168201915b5050505050905090565b6000610b3f82612090565b610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7590613a5b565b60405180910390fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bc482611552565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613aed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c54610a08565b73ffffffffffffffffffffffffffffffffffffffff161480610c835750610c8281610c7d610a08565b611e22565b5b610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb990613b7f565b60405180910390fd5b610ccc8383612118565b505050565b600e5481565b6000600280549050905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90613c11565b60405180910390fd5b6000610d70611e12565b47610d7b9190613c60565b90506000610d928383610d8d866118c7565b6121d1565b90506000811415610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf90613d28565b60405180910390fd5b80600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e279190613c60565b925050819055508060076000828254610e409190613c60565b92505081905550610e51838261223f565b7fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b0568382604051610e82929190613da7565b60405180910390a1505050565b600d5481565b610ea6610ea0610a08565b82612333565b610ee5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edc90613e42565b60405180910390fd5b610ef0838383612411565b505050565b6000610f008361160f565b8210610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890613ed4565b60405180910390fd5b6000805b600280549050811015610ff45760028181548110610f6657610f65613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610fe35783821415610fd6578092505050611038565b81610fe090613f23565b91505b80610fed90613f23565b9050610f45565b506000611036576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102d90613ed4565b60405180910390fd5b505b92915050565b611046610a08565b73ffffffffffffffffffffffffffffffffffffffff16611064611805565b73ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190613fb8565b60405180910390fd5b601060009054906101000a900460ff1615601060006101000a81548160ff021916908315150217905550565b6000600654905090565b6000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61119283838360405180602001604052806000815250611c4c565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121090613c11565b60405180910390fd5b600061122483611dc9565b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125d9190613476565b602060405180830381865afa15801561127a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129e9190613fed565b6112a89190613c60565b905060006112c083836112bb87876110f0565b6121d1565b90506000811415611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90613d28565b60405180910390fd5b80600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113929190613c60565b9250508190555080600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113e89190613c60565b925050819055506113fa8484836125ca565b8373ffffffffffffffffffffffffffffffffffffffff167f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a84836040516114429291906131f6565b60405180910390a250505050565b60115481565b6000611460610cd7565b82106114a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114989061408c565b60405180910390fd5b819050919050565b6114b1610a08565b73ffffffffffffffffffffffffffffffffffffffff166114cf611805565b73ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613fb8565b60405180910390fd5b806015908051906020019061153b9291906130f9565b5050565b601060009054906101000a900460ff1681565b6000806002838154811061156957611568613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611606576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fd9061411e565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611680576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611677906141b0565b60405180910390fd5b600080600280549050905060005b8181101561172657600281815481106116aa576116a9613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611715578261171290613f23565b92505b8061171f90613f23565b905061168e565b50600090508192505050919050565b61173d610a08565b73ffffffffffffffffffffffffffffffffffffffff1661175b611805565b73ffffffffffffffffffffffffffffffffffffffff16146117b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a890613fb8565b60405180910390fd5b6117bb6000612650565b565b6000600a82815481106117d3576117d2613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461183e906139b7565b80601f016020809104026020016040519081016040528092919081815260200182805461186a906139b7565b80156118b75780601f1061188c576101008083540402835291602001916118b7565b820191906000526020600020905b81548152906001019060200180831161189a57829003601f168201915b5050505050905090565b600f5481565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b601060009054906101000a900460ff1661195f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119569061421c565b60405180910390fd5b600081116119a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611999906142ae565b60405180910390fd5b600f548111156119e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119de9061431a565b60405180910390fd5b346119f182612716565b1115611a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2990614386565b60405180910390fd5b60006002805490509050600e548282611a4b9190613c60565b1115611a8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a83906143f2565b60405180910390fd5b60005b82811015611ac057611aad338380611aa690613f23565b94506128be565b8080611ab890613f23565b915050611a8f565b505050565b60135481565b611ad3610a08565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b389061445e565b60405180910390fd5b8060046000611b4e610a08565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611bfb610a08565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c4091906132d3565b60405180910390a35050565b611c5d611c57610a08565b83612333565b611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9390613e42565b60405180910390fd5b611ca8848484846128dc565b50505050565b6060611cb982612090565b611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef906144f0565b60405180910390fd5b6015611d0383612938565b604051602001611d149291906145e0565b6040516020818303038152906040529050919050565b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601254611d799190614604565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600754905090565b60125481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ebe610a08565b73ffffffffffffffffffffffffffffffffffffffff16611edc611805565b73ffffffffffffffffffffffffffffffffffffffff1614611f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2990613fb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f99906146aa565b60405180910390fd5b611fab81612650565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061207957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612089575061208882612a99565b5b9050919050565b6000600280549050821080156121115750600073ffffffffffffffffffffffffffffffffffffffff16600283815481106120cd576120cc613ef4565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661218b83611552565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600654600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561222291906146ca565b61222c9190614753565b6122369190614604565b90509392505050565b80471015612282576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612279906147d0565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516122a890614821565b60006040518083038185875af1925050503d80600081146122e5576040519150601f19603f3d011682016040523d82523d6000602084013e6122ea565b606091505b505090508061232e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612325906148a8565b60405180910390fd5b505050565b600061233e82612090565b61237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749061493a565b60405180910390fd5b600061238883611552565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806123f757508373ffffffffffffffffffffffffffffffffffffffff166123df84610b34565b73ffffffffffffffffffffffffffffffffffffffff16145b8061240857506124078185611e22565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661243182611552565b73ffffffffffffffffffffffffffffffffffffffff1614612487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247e906149cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ee90614a5e565b60405180910390fd5b612502838383612b03565b61250d600082612118565b816002828154811061252257612521613ef4565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61264b8363a9059cbb60e01b84846040516024016125e99291906131f6565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612b08565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080600090506011546013541080156127705750601254601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054105b1561289d5761278160125484612bcf565b90506127d981601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546012546127d49190614604565b612bcf565b9050601154816013546127ec9190613c60565b111561282d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161282490614aca565b60405180910390fd5b80601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461287c9190613c60565b9250508190555080601360008282546128959190613c60565b925050819055505b600d5481846128ac9190614604565b6128b691906146ca565b915050919050565b6128d8828260405180602001604052806000815250612be8565b5050565b6128e7848484612411565b6128f384848484612c43565b612932576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292990614b5c565b60405180910390fd5b50505050565b60606000821415612980576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612a94565b600082905060005b600082146129b257808061299b90613f23565b915050600a826129ab9190614753565b9150612988565b60008167ffffffffffffffff8111156129ce576129cd613617565b5b6040519080825280601f01601f191660200182016040528015612a005781602001600182028036833780820191505090505b5090505b60008514612a8d57600182612a199190614604565b9150600a85612a289190614b7c565b6030612a349190613c60565b60f81b818381518110612a4a57612a49613ef4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612a869190614753565b9450612a04565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b6000612b6a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612dcb9092919063ffffffff16565b9050600081511115612bca5780806020019051810190612b8a9190614bc2565b612bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc090614c61565b60405180910390fd5b5b505050565b6000818310612bde5781612be0565b825b905092915050565b612bf28383612de3565b612bff6000848484612c43565b612c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3590614b5c565b60405180910390fd5b505050565b6000612c648473ffffffffffffffffffffffffffffffffffffffff16612f6b565b15612dbe578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612c8d610a08565b8786866040518563ffffffff1660e01b8152600401612caf9493929190614cd6565b6020604051808303816000875af1925050508015612ceb57506040513d601f19601f82011682018060405250810190612ce89190614d37565b60015b612d6e573d8060008114612d1b576040519150601f19603f3d011682016040523d82523d6000602084013e612d20565b606091505b50600081511415612d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5d90614b5c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612dc3565b600190505b949350505050565b6060612dda8484600085612f7e565b90509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e4a90614db0565b60405180910390fd5b612e5c81612090565b15612e9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9390614e1c565b60405180910390fd5b612ea860008383612b03565b6002829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b606082471015612fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fba90614eae565b60405180910390fd5b612fcc85612f6b565b61300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161300290614f1a565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516130349190614f6b565b60006040518083038185875af1925050503d8060008114613071576040519150601f19603f3d011682016040523d82523d6000602084013e613076565b606091505b5091509150613086828286613092565b92505050949350505050565b606083156130a2578290506130f2565b6000835111156130b55782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e991906133fb565b60405180910390fd5b9392505050565b828054613105906139b7565b90600052602060002090601f016020900481019282613127576000855561316e565b82601f1061314057805160ff191683800117855561316e565b8280016001018555821561316e579182015b8281111561316d578251825591602001919060010190613152565b5b50905061317b919061317f565b5090565b5b80821115613198576000816000905550600101613180565b5090565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131c78261319c565b9050919050565b6131d7816131bc565b82525050565b6000819050919050565b6131f0816131dd565b82525050565b600060408201905061320b60008301856131ce565b61321860208301846131e7565b9392505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61326881613233565b811461327357600080fd5b50565b6000813590506132858161325f565b92915050565b6000602082840312156132a1576132a0613229565b5b60006132af84828501613276565b91505092915050565b60008115159050919050565b6132cd816132b8565b82525050565b60006020820190506132e860008301846132c4565b92915050565b6132f7816131bc565b811461330257600080fd5b50565b600081359050613314816132ee565b92915050565b6000602082840312156133305761332f613229565b5b600061333e84828501613305565b91505092915050565b600060208201905061335c60008301846131e7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561339c578082015181840152602081019050613381565b838111156133ab576000848401525b50505050565b6000601f19601f8301169050919050565b60006133cd82613362565b6133d7818561336d565b93506133e781856020860161337e565b6133f0816133b1565b840191505092915050565b6000602082019050818103600083015261341581846133c2565b905092915050565b613426816131dd565b811461343157600080fd5b50565b6000813590506134438161341d565b92915050565b60006020828403121561345f5761345e613229565b5b600061346d84828501613434565b91505092915050565b600060208201905061348b60008301846131ce565b92915050565b600080604083850312156134a8576134a7613229565b5b60006134b685828601613305565b92505060206134c785828601613434565b9150509250929050565b60006134dc8261319c565b9050919050565b6134ec816134d1565b81146134f757600080fd5b50565b600081359050613509816134e3565b92915050565b60006020828403121561352557613524613229565b5b6000613533848285016134fa565b91505092915050565b60008060006060848603121561355557613554613229565b5b600061356386828701613305565b935050602061357486828701613305565b925050604061358586828701613434565b9150509250925092565b600061359a826131bc565b9050919050565b6135aa8161358f565b81146135b557600080fd5b50565b6000813590506135c7816135a1565b92915050565b600080604083850312156135e4576135e3613229565b5b60006135f2858286016135b8565b925050602061360385828601613305565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61364f826133b1565b810181811067ffffffffffffffff8211171561366e5761366d613617565b5b80604052505050565b600061368161321f565b905061368d8282613646565b919050565b600067ffffffffffffffff8211156136ad576136ac613617565b5b6136b6826133b1565b9050602081019050919050565b82818337600083830152505050565b60006136e56136e084613692565b613677565b90508281526020810184848401111561370157613700613612565b5b61370c8482856136c3565b509392505050565b600082601f8301126137295761372861360d565b5b81356137398482602086016136d2565b91505092915050565b60006020828403121561375857613757613229565b5b600082013567ffffffffffffffff8111156137765761377561322e565b5b61378284828501613714565b91505092915050565b613794816132b8565b811461379f57600080fd5b50565b6000813590506137b18161378b565b92915050565b600080604083850312156137ce576137cd613229565b5b60006137dc85828601613305565b92505060206137ed858286016137a2565b9150509250929050565b600067ffffffffffffffff82111561381257613811613617565b5b61381b826133b1565b9050602081019050919050565b600061383b613836846137f7565b613677565b90508281526020810184848401111561385757613856613612565b5b6138628482856136c3565b509392505050565b600082601f83011261387f5761387e61360d565b5b813561388f848260208601613828565b91505092915050565b600080600080608085870312156138b2576138b1613229565b5b60006138c087828801613305565b94505060206138d187828801613305565b93505060406138e287828801613434565b925050606085013567ffffffffffffffff8111156139035761390261322e565b5b61390f8782880161386a565b91505092959194509250565b60006020828403121561393157613930613229565b5b600061393f848285016135b8565b91505092915050565b6000806040838503121561395f5761395e613229565b5b600061396d85828601613305565b925050602061397e85828601613305565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139cf57607f821691505b602082108114156139e3576139e2613988565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613a45602c8361336d565b9150613a50826139e9565b604082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ad760218361336d565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b6000613b6960388361336d565b9150613b7482613b0d565b604082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060008201527f7368617265730000000000000000000000000000000000000000000000000000602082015250565b6000613bfb60268361336d565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613c6b826131dd565b9150613c76836131dd565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cab57613caa613c31565b5b828201905092915050565b7f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060008201527f647565207061796d656e74000000000000000000000000000000000000000000602082015250565b6000613d12602b8361336d565b9150613d1d82613cb6565b604082019050919050565b60006020820190508181036000830152613d4181613d05565b9050919050565b6000819050919050565b6000613d6d613d68613d638461319c565b613d48565b61319c565b9050919050565b6000613d7f82613d52565b9050919050565b6000613d9182613d74565b9050919050565b613da181613d86565b82525050565b6000604082019050613dbc6000830185613d98565b613dc960208301846131e7565b9392505050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b6000613e2c60318361336d565b9150613e3782613dd0565b604082019050919050565b60006020820190508181036000830152613e5b81613e1f565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000613ebe602b8361336d565b9150613ec982613e62565b604082019050919050565b60006020820190508181036000830152613eed81613eb1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613f2e826131dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f6157613f60613c31565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613fa260208361336d565b9150613fad82613f6c565b602082019050919050565b60006020820190508181036000830152613fd181613f95565b9050919050565b600081519050613fe78161341d565b92915050565b60006020828403121561400357614002613229565b5b600061401184828501613fd8565b91505092915050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000614076602c8361336d565b91506140818261401a565b604082019050919050565b600060208201905081810360008301526140a581614069565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b600061410860298361336d565b9150614113826140ac565b604082019050919050565b60006020820190508181036000830152614137816140fb565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600061419a602a8361336d565b91506141a58261413e565b604082019050919050565b600060208201905081810360008301526141c98161418d565b9050919050565b7f53616c65206973206e6f74206163746976650000000000000000000000000000600082015250565b600061420660128361336d565b9150614211826141d0565b602082019050919050565b60006020820190508181036000830152614235816141f9565b9050919050565b7f4e756d62657220746f206d696e74206d7573742062652067726561746572207460008201527f68616e2030000000000000000000000000000000000000000000000000000000602082015250565b600061429860258361336d565b91506142a38261423c565b604082019050919050565b600060208201905081810360008301526142c78161428b565b9050919050565b7f4f766572207472616e73616374696f6e206c696d697400000000000000000000600082015250565b600061430460168361336d565b915061430f826142ce565b602082019050919050565b60006020820190508181036000830152614333816142f7565b9050919050565b7f45746865722076616c75652073656e74206973206e6f7420636f727265637400600082015250565b6000614370601f8361336d565b915061437b8261433a565b602082019050919050565b6000602082019050818103600083015261439f81614363565b9050919050565b7f507572636861736520776f756c6420657863656564206d617820737570706c79600082015250565b60006143dc60208361336d565b91506143e7826143a6565b602082019050919050565b6000602082019050818103600083015261440b816143cf565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b600061444860198361336d565b915061445382614412565b602082019050919050565b600060208201905081810360008301526144778161443b565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006144da602f8361336d565b91506144e58261447e565b604082019050919050565b60006020820190508181036000830152614509816144cd565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461453d816139b7565b6145478186614510565b945060018216600081146145625760018114614573576145a6565b60ff198316865281860193506145a6565b61457c8561451b565b60005b8381101561459e5781548189015260018201915060208101905061457f565b838801955050505b50505092915050565b60006145ba82613362565b6145c48185614510565b93506145d481856020860161337e565b80840191505092915050565b60006145ec8285614530565b91506145f882846145af565b91508190509392505050565b600061460f826131dd565b915061461a836131dd565b92508282101561462d5761462c613c31565b5b828203905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061469460268361336d565b915061469f82614638565b604082019050919050565b600060208201905081810360008301526146c381614687565b9050919050565b60006146d5826131dd565b91506146e0836131dd565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561471957614718613c31565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061475e826131dd565b9150614769836131dd565b92508261477957614778614724565b5b828204905092915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006147ba601d8361336d565b91506147c582614784565b602082019050919050565b600060208201905081810360008301526147e9816147ad565b9050919050565b600081905092915050565b50565b600061480b6000836147f0565b9150614816826147fb565b600082019050919050565b600061482c826147fe565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000614892603a8361336d565b915061489d82614836565b604082019050919050565b600060208201905081810360008301526148c181614885565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614924602c8361336d565b915061492f826148c8565b604082019050919050565b6000602082019050818103600083015261495381614917565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b60006149b660298361336d565b91506149c18261495a565b604082019050919050565b600060208201905081810360008301526149e5816149a9565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614a4860248361336d565b9150614a53826149ec565b604082019050919050565b60006020820190508181036000830152614a7781614a3b565b9050919050565b7f4e6f206d6f72652066726565206d696e747320617661696c61626c6500000000600082015250565b6000614ab4601c8361336d565b9150614abf82614a7e565b602082019050919050565b60006020820190508181036000830152614ae381614aa7565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000614b4660328361336d565b9150614b5182614aea565b604082019050919050565b60006020820190508181036000830152614b7581614b39565b9050919050565b6000614b87826131dd565b9150614b92836131dd565b925082614ba257614ba1614724565b5b828206905092915050565b600081519050614bbc8161378b565b92915050565b600060208284031215614bd857614bd7613229565b5b6000614be684828501614bad565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000614c4b602a8361336d565b9150614c5682614bef565b604082019050919050565b60006020820190508181036000830152614c7a81614c3e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000614ca882614c81565b614cb28185614c8c565b9350614cc281856020860161337e565b614ccb816133b1565b840191505092915050565b6000608082019050614ceb60008301876131ce565b614cf860208301866131ce565b614d0560408301856131e7565b8181036060830152614d178184614c9d565b905095945050505050565b600081519050614d318161325f565b92915050565b600060208284031215614d4d57614d4c613229565b5b6000614d5b84828501614d22565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000614d9a60208361336d565b9150614da582614d64565b602082019050919050565b60006020820190508181036000830152614dc981614d8d565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614e06601c8361336d565b9150614e1182614dd0565b602082019050919050565b60006020820190508181036000830152614e3581614df9565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614e9860268361336d565b9150614ea382614e3c565b604082019050919050565b60006020820190508181036000830152614ec781614e8b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000614f04601d8361336d565b9150614f0f82614ece565b602082019050919050565b60006020820190508181036000830152614f3381614ef7565b9050919050565b6000614f4582614c81565b614f4f81856147f0565b9350614f5f81856020860161337e565b80840191505092915050565b6000614f778284614f3a565b91508190509291505056fea2646970667358221220208e15936d3bfd28422ae98e58a22c23753006d699cc47958a79b1e82819865b64736f6c634300080a0033
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.