ETH Price: $2,516.18 (+13.62%)
 

Overview

Max Total Supply

1,255 pr

Holders

1,110

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Filtered by Token Holder
cryptoi.eth
Balance
1 pr
0xAFda0Bca77fD0bFF88c761BCA75fEa64eA2AFAD4
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
pixelrobbers

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 11 : pixelrobbers.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: Unlicensed
import '@openzeppelin/contracts/security/ReentrancyGuard.sol';
import '@openzeppelin/contracts/access/Ownable.sol';
import '@openzeppelin/contracts/utils/Arrays.sol';
import '@openzeppelin/contracts/utils/Strings.sol';
import 'erc721a/contracts/extensions/ERC721AQueryable.sol';
import 'erc721a/contracts/ERC721A.sol';
pragma solidity >=0.8.13 <0.9.0;
contract pixelrobbers is ERC721A, Ownable, ReentrancyGuard {
using Strings for uint256;
// ================== Variables Start =======================
string public uri;
string public uriSuffix = ".json";
string public hiddenMetadataUri = "";
uint256 public cost1 = 0 ether;
uint256 public cost2 = 0.002 ether;
uint256 public supplyLimit = 3333;
uint256 public maxMintAmountPerTx = 1;
uint256 public maxLimitPerWallet = 1;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 11 : ERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev ERC721 token receiver interface.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard,
* including the Metadata extension. Built to optimize for lower gas during batch mints.
*
* Assumes serials are sequentially minted starting at `_startTokenId()`
* (defaults to 0, e.g. 0, 1, 2, 3..).
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 11 : ERC721AQueryable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721AQueryable.sol';
import '../ERC721A.sol';
/**
* @title ERC721A Queryable
* @dev ERC721A subclass with convenience query functions.
*/
abstract contract ERC721AQueryable is ERC721A, IERC721AQueryable {
/**
* @dev Returns the `TokenOwnership` struct at `tokenId` without reverting.
*
* If the `tokenId` is out of bounds:
* - `addr` = `address(0)`
* - `startTimestamp` = `0`
* - `burned` = `false`
* - `extraData` = `0`
*
* If the `tokenId` is burned:
* - `addr` = `<Address of owner before token was burned>`
* - `startTimestamp` = `<Timestamp when token was burned>`
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 11 : Strings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @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.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 11 : Arrays.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Arrays.sol)
pragma solidity ^0.8.0;
import "./math/Math.sol";
/**
* @dev Collection of functions related to array types.
*/
library Arrays {
/**
* @dev Searches a sorted `array` and returns the first index that contains
* a value greater or equal to `element`. If no such index exists (i.e. all
* values in the array are strictly less than `element`), the array length is
* returned. Time complexity O(log n).
*
* `array` is expected to be sorted in ascending order, and to contain no
* repeated elements.
*/
function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {
if (array.length == 0) {
return 0;
}
uint256 low = 0;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 11 : Ownable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 11 : ReentrancyGuard.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 11 : IERC721AQueryable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import '../IERC721A.sol';
/**
* @dev Interface of an ERC721AQueryable compliant contract.
*/
interface IERC721AQueryable is IERC721A {
/**
* Invalid query range (`start` >= `stop`).
*/
error InvalidQueryRange();
/**
* @dev Returns the `TokenOwnership` struct at `tokenId` without reverting.
*
* If the `tokenId` is out of bounds:
* - `addr` = `address(0)`
* - `startTimestamp` = `0`
* - `burned` = `false`
*
* If the `tokenId` is burned:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 11 : IERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of an ERC721A compliant contract.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* The caller cannot approve to their own address.
*/
error ApproveToCaller();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 11 : Math.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @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) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 11 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"}],"name":"Airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"Mint","outputs":[],"stateMutability":"payable","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":"cost1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost2","outputs":[{"internalType":"uint256","name":"","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":[],"name":"hiddenMetadataUri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLimitPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmountPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"sale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_hiddenMetadataUri","type":"string"}],"name":"setHiddenMetadataUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMintAmountPerTx","type":"uint256"}],"name":"setMaxMintAmountPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setRevealed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_sale","type":"bool"}],"name":"setSaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriSuffix","type":"string"}],"name":"setUriSuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cost1","type":"uint256"}],"name":"setcost1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cost2","type":"uint256"}],"name":"setcost2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimitPerWallet","type":"uint256"}],"name":"setmaxLimitPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_supplyLimit","type":"uint256"}],"name":"setsupplyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"}],"name":"seturi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supplyLimit","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":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensOfOwner","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"},{"inputs":[],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uriSuffix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600b90805190602001906200005192919062000299565b5060405180602001604052806000815250600c90805190602001906200007992919062000299565b506000600d5566071afd498d0000600e55610d05600f55600160105560016011556000601260006101000a81548160ff0219169083151502179055506001601260016101000a81548160ff021916908315150217905550348015620000dd57600080fd5b506040518060400160405280600c81526020017f706978656c726f626265727300000000000000000000000000000000000000008152506040518060400160405280600281526020017f707200000000000000000000000000000000000000000000000000000000000081525081600290805190602001906200016292919062000299565b5080600390805190602001906200017b92919062000299565b506200018c620001c260201b60201c565b6000819055505050620001b4620001a8620001cb60201b60201c565b620001d360201b60201c565b6001600981905550620003ad565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002a79062000378565b90600052602060002090601f016020900481019282620002cb576000855562000317565b82601f10620002e657805160ff191683800117855562000317565b8280016001018555821562000317579182015b8281111562000316578251825591602001919060010190620002f9565b5b5090506200032691906200032a565b5090565b5b80821115620003455760008160009055506001016200032b565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200039157607f821691505b602082108103620003a757620003a662000349565b5b50919050565b61394680620003bd6000396000f3fe6080604052600436106102505760003560e01c8063715018a611610139578063b071401b116100b6578063da5e1f4d1161007a578063da5e1f4d1461087c578063e0a80853146108a5578063e985e9c5146108ce578063eac989f81461090b578063f2fde38b14610936578063f64849801461095f57610250565b8063b071401b1461079b578063b88d4fde146107c4578063c87b56dd146107ed578063d897833e1461082a578063d9f0a6711461085357610250565b806395d89b41116100fd57806395d89b41146106c65780639a1b2885146106f1578063a035b1fe1461071c578063a22cb46514610747578063a45ba8e71461077057610250565b8063715018a6146105f35780637871e1541461060a5780638462151c146106335780638da5cb5b1461067057806394354fd01461069b57610250565b806323b872dd116101d2578063518302271161019657806351830227146104cd5780635503a0e8146104f85780635a0b8b23146105235780636352211e1461054e5780636ad1fe021461058b57806370a08231146105b657610250565b806323b872dd1461041057806333573dc2146104395780633ccfd60b1461046457806342842e0e1461047b5780634fdd43cb146104a457610250565b8063095ea7b311610219578063095ea7b31461033f57806316ba10e01461036857806318160ddd1461039157806319d1997a146103bc57806321a3c248146103e757610250565b806275770a1461025557806301ffc9a71461027e57806306fdde03146102bb57806307883703146102e6578063081812fc14610302575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906128a3565b610988565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612928565b61099a565b6040516102b29190612970565b60405180910390f35b3480156102c757600080fd5b506102d0610a2c565b6040516102dd9190612a24565b60405180910390f35b61030060048036038101906102fb91906128a3565b610abe565b005b34801561030e57600080fd5b50610329600480360381019061032491906128a3565b610c84565b6040516103369190612a87565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612ace565b610d00565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612c43565b610e41565b005b34801561039d57600080fd5b506103a6610e63565b6040516103b39190612c9b565b60405180910390f35b3480156103c857600080fd5b506103d1610e7a565b6040516103de9190612c9b565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906128a3565b610e80565b005b34801561041c57600080fd5b5061043760048036038101906104329190612cb6565b610e92565b005b34801561044557600080fd5b5061044e6111b4565b60405161045b9190612c9b565b60405180910390f35b34801561047057600080fd5b506104796111ba565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612cb6565b611297565b005b3480156104b057600080fd5b506104cb60048036038101906104c69190612c43565b6112b7565b005b3480156104d957600080fd5b506104e26112d9565b6040516104ef9190612970565b60405180910390f35b34801561050457600080fd5b5061050d6112ec565b60405161051a9190612a24565b60405180910390f35b34801561052f57600080fd5b5061053861137a565b6040516105459190612c9b565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906128a3565b611380565b6040516105829190612a87565b60405180910390f35b34801561059757600080fd5b506105a0611392565b6040516105ad9190612970565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190612d09565b6113a5565b6040516105ea9190612c9b565b60405180910390f35b3480156105ff57600080fd5b5061060861145d565b005b34801561061657600080fd5b50610631600480360381019061062c9190612d36565b611471565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d09565b6114de565b6040516106679190612e34565b60405180910390f35b34801561067c57600080fd5b50610685611622565b6040516106929190612a87565b60405180910390f35b3480156106a757600080fd5b506106b061164c565b6040516106bd9190612c9b565b60405180910390f35b3480156106d257600080fd5b506106db611652565b6040516106e89190612a24565b60405180910390f35b3480156106fd57600080fd5b506107066116e4565b6040516107139190612c9b565b60405180910390f35b34801561072857600080fd5b506107316116ea565b60405161073e9190612c9b565b60405180910390f35b34801561075357600080fd5b5061076e60048036038101906107699190612e82565b611710565b005b34801561077c57600080fd5b50610785611887565b6040516107929190612a24565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906128a3565b611915565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190612f63565b611927565b005b3480156107f957600080fd5b50610814600480360381019061080f91906128a3565b61199a565b6040516108219190612a24565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612fe6565b611af2565b005b34801561085f57600080fd5b5061087a600480360381019061087591906128a3565b611b17565b005b34801561088857600080fd5b506108a3600480360381019061089e91906128a3565b611b29565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190612fe6565b611b3b565b005b3480156108da57600080fd5b506108f560048036038101906108f09190613013565b611b60565b6040516109029190612970565b60405180910390f35b34801561091757600080fd5b50610920611bf4565b60405161092d9190612a24565b60405180910390f35b34801561094257600080fd5b5061095d60048036038101906109589190612d09565b611c82565b005b34801561096b57600080fd5b5061098660048036038101906109819190612c43565b611d05565b005b610990611d27565b80600f8190555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109f557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a255750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610a3b90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6790613082565b8015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b5050505050905090565b6000610ac8610e63565b9050601260009054906101000a900460ff16610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906130ff565b60405180910390fd5b600082118015610b2b57506010548211155b610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b619061316b565b60405180910390fd5b600f5482610b76610e63565b610b8091906131ba565b1115610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061325c565b60405180910390fd5b60115482610bce336113a5565b610bd891906131ba565b1115610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906132c8565b60405180910390fd5b81610c2382611da5565b610c2d91906132e8565b341015610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c669061338e565b60405180910390fd5b610c80610c7a611dc6565b83611dce565b5050565b6000610c8f82611dec565b610cc5576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d0b82611380565b90508073ffffffffffffffffffffffffffffffffffffffff16610d2c611e4b565b73ffffffffffffffffffffffffffffffffffffffff1614610d8f57610d5881610d53611e4b565b611b60565b610d8e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610e49611d27565b80600b9080519060200190610e5f929190612767565b5050565b6000610e6d611e53565b6001546000540303905090565b600f5481565b610e88611d27565b80600e8190555050565b6000610e9d82611e5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f04576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f1084611f28565b91509150610f268187610f21611e4b565b611f4a565b610f7257610f3b86610f36611e4b565b611b60565b610f71576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fe58686866001611f8e565b8015610ff057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110be8561109a888887611f94565b7c020000000000000000000000000000000000000000000000000000000017611fbc565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036111445760006001850190506000600460008381526020019081526020016000205403611142576000548114611141578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111ac8686866001611fe7565b505050505050565b600d5481565b6111c2611d27565b600260095403611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906133fa565b60405180910390fd5b60026009819055506000611219611622565b73ffffffffffffffffffffffffffffffffffffffff164760405161123c9061344b565b60006040518083038185875af1925050503d8060008114611279576040519150601f19603f3d011682016040523d82523d6000602084013e61127e565b606091505b505090508061128c57600080fd5b506001600981905550565b6112b283838360405180602001604052806000815250611927565b505050565b6112bf611d27565b80600c90805190602001906112d5929190612767565b5050565b601260019054906101000a900460ff1681565b600b80546112f990613082565b80601f016020809104026020016040519081016040528092919081815260200182805461132590613082565b80156113725780601f1061134757610100808354040283529160200191611372565b820191906000526020600020905b81548152906001019060200180831161135557829003601f168201915b505050505081565b60115481565b600061138b82611e5c565b9050919050565b601260009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611465611d27565b61146f6000611fed565b565b611479611d27565b600f5482611485610e63565b61148f91906131ba565b11156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c79061325c565b60405180910390fd5b6114da8183611dce565b5050565b606060006114eb836113a5565b67ffffffffffffffff81111561150457611503612b18565b5b6040519080825280602002602001820160405280156115325781602001602082028036833780820191505090505b509050600061153f6120b3565b905060008060005b8381101561161557600061155a826120bc565b905080604001511561156c5750611608565b600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146115ac57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160657818685806001019650815181106115f9576115f8613460565b5b6020026020010181815250505b505b8080600101915050611547565b5083945050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606003805461166190613082565b80601f016020809104026020016040519081016040528092919081815260200182805461168d90613082565b80156116da5780601f106116af576101008083540402835291602001916116da565b820191906000526020600020905b8154815290600101906020018083116116bd57829003601f168201915b5050505050905090565b600e5481565b60006103e86116f7610e63565b101561170757600d54905061170d565b600e5490505b90565b611718611e4b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177c576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611789611e4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611836611e4b565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161187b9190612970565b60405180910390a35050565b600c805461189490613082565b80601f01602080910402602001604051908101604052809291908181526020018280546118c090613082565b801561190d5780601f106118e25761010080835404028352916020019161190d565b820191906000526020600020905b8154815290600101906020018083116118f057829003601f168201915b505050505081565b61191d611d27565b8060108190555050565b611932848484610e92565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119945761195d848484846120e7565b611993576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606119a582611dec565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613501565b60405180910390fd5b60001515601260019054906101000a900460ff16151503611a9157600c8054611a0c90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3890613082565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b50505050509050611aed565b6000611a9b612237565b90506000815111611abb5760405180602001604052806000815250611ae9565b80611ac5846122c9565b600b604051602001611ad9939291906135f1565b6040516020818303038152906040525b9150505b919050565b611afa611d27565b80601260006101000a81548160ff02191690831515021790555050565b611b1f611d27565b8060118190555050565b611b31611d27565b80600d8190555050565b611b43611d27565b80601260016101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a8054611c0190613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2d90613082565b8015611c7a5780601f10611c4f57610100808354040283529160200191611c7a565b820191906000526020600020905b815481529060010190602001808311611c5d57829003601f168201915b505050505081565b611c8a611d27565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613694565b60405180910390fd5b611d0281611fed565b50565b611d0d611d27565b80600a9080519060200190611d23929190612767565b5050565b611d2f611dc6565b73ffffffffffffffffffffffffffffffffffffffff16611d4d611622565b73ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613700565b60405180910390fd5b565b60006103e8821015611dbb57600d549050611dc1565b600e5490505b919050565b600033905090565b611de8828260405180602001604052806000815250612429565b5050565b600081611df7611e53565b11158015611e06575060005482105b8015611e44575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611e6b611e53565b11611ef157600054811015611ef05760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611eee575b60008103611ee4576004600083600190039350838152602001908152602001600020549050611eba565b8092505050611f23565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600690508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611fab8686846124c6565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b6120c46127ed565b6120e060046000848152602001908152602001600020546124cf565b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261210d611e4b565b8786866040518563ffffffff1660e01b815260040161212f9493929190613775565b6020604051808303816000875af192505050801561216b57506040513d601f19601f8201168201806040525081019061216891906137d6565b60015b6121e4573d806000811461219b576040519150601f19603f3d011682016040523d82523d6000602084013e6121a0565b606091505b5060008151036121dc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461224690613082565b80601f016020809104026020016040519081016040528092919081815260200182805461227290613082565b80156122bf5780601f10612294576101008083540402835291602001916122bf565b820191906000526020600020905b8154815290600101906020018083116122a257829003601f168201915b5050505050905090565b606060008203612310576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612424565b600082905060005b6000821461234257808061232b90613803565b915050600a8261233b919061387a565b9150612318565b60008167ffffffffffffffff81111561235e5761235d612b18565b5b6040519080825280601f01601f1916602001820160405280156123905781602001600182028036833780820191505090505b5090505b6000851461241d576001826123a991906138ab565b9150600a856123b891906138df565b60306123c491906131ba565b60f81b8183815181106123da576123d9613460565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612416919061387a565b9450612394565b8093505050505b919050565b6124338383612585565b60008373ffffffffffffffffffffffffffffffffffffffff163b146124c157600080549050600083820390505b61247360008683806001019450866120e7565b6124a9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124605781600054146124be57600080fd5b50505b505050565b60009392505050565b6124d76127ed565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361262b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126386000848385611f8e565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506126af836126a06000866000611f94565b6126a985612757565b17611fbc565b60046000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106126d3578060008190555050506127526000848385611fe7565b505050565b60006001821460e11b9050919050565b82805461277390613082565b90600052602060002090601f01602090048101928261279557600085556127dc565b82601f106127ae57805160ff19168380011785556127dc565b828001600101855582156127dc579182015b828111156127db5782518255916020019190600101906127c0565b5b5090506127e9919061283c565b5090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b5b8082111561285557600081600090555060010161283d565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6128808161286d565b811461288b57600080fd5b50565b60008135905061289d81612877565b92915050565b6000602082840312156128b9576128b8612863565b5b60006128c78482850161288e565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612905816128d0565b811461291057600080fd5b50565b600081359050612922816128fc565b92915050565b60006020828403121561293e5761293d612863565b5b600061294c84828501612913565b91505092915050565b60008115159050919050565b61296a81612955565b82525050565b60006020820190506129856000830184612961565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c55780820151818401526020810190506129aa565b838111156129d4576000848401525b50505050565b6000601f19601f8301169050919050565b60006129f68261298b565b612a008185612996565b9350612a108185602086016129a7565b612a19816129da565b840191505092915050565b60006020820190508181036000830152612a3e81846129eb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7182612a46565b9050919050565b612a8181612a66565b82525050565b6000602082019050612a9c6000830184612a78565b92915050565b612aab81612a66565b8114612ab657600080fd5b50565b600081359050612ac881612aa2565b92915050565b60008060408385031215612ae557612ae4612863565b5b6000612af385828601612ab9565b9250506020612b048582860161288e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b50826129da565b810181811067ffffffffffffffff82111715612b6f57612b6e612b18565b5b80604052505050565b6000612b82612859565b9050612b8e8282612b47565b919050565b600067ffffffffffffffff821115612bae57612bad612b18565b5b612bb7826129da565b9050602081019050919050565b82818337600083830152505050565b6000612be6612be184612b93565b612b78565b905082815260208101848484011115612c0257612c01612b13565b5b612c0d848285612bc4565b509392505050565b600082601f830112612c2a57612c29612b0e565b5b8135612c3a848260208601612bd3565b91505092915050565b600060208284031215612c5957612c58612863565b5b600082013567ffffffffffffffff811115612c7757612c76612868565b5b612c8384828501612c15565b91505092915050565b612c958161286d565b82525050565b6000602082019050612cb06000830184612c8c565b92915050565b600080600060608486031215612ccf57612cce612863565b5b6000612cdd86828701612ab9565b9350506020612cee86828701612ab9565b9250506040612cff8682870161288e565b9150509250925092565b600060208284031215612d1f57612d1e612863565b5b6000612d2d84828501612ab9565b91505092915050565b60008060408385031215612d4d57612d4c612863565b5b6000612d5b8582860161288e565b9250506020612d6c85828601612ab9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dab8161286d565b82525050565b6000612dbd8383612da2565b60208301905092915050565b6000602082019050919050565b6000612de182612d76565b612deb8185612d81565b9350612df683612d92565b8060005b83811015612e27578151612e0e8882612db1565b9750612e1983612dc9565b925050600181019050612dfa565b5085935050505092915050565b60006020820190508181036000830152612e4e8184612dd6565b905092915050565b612e5f81612955565b8114612e6a57600080fd5b50565b600081359050612e7c81612e56565b92915050565b60008060408385031215612e9957612e98612863565b5b6000612ea785828601612ab9565b9250506020612eb885828601612e6d565b9150509250929050565b600067ffffffffffffffff821115612edd57612edc612b18565b5b612ee6826129da565b9050602081019050919050565b6000612f06612f0184612ec2565b612b78565b905082815260208101848484011115612f2257612f21612b13565b5b612f2d848285612bc4565b509392505050565b600082601f830112612f4a57612f49612b0e565b5b8135612f5a848260208601612ef3565b91505092915050565b60008060008060808587031215612f7d57612f7c612863565b5b6000612f8b87828801612ab9565b9450506020612f9c87828801612ab9565b9350506040612fad8782880161288e565b925050606085013567ffffffffffffffff811115612fce57612fcd612868565b5b612fda87828801612f35565b91505092959194509250565b600060208284031215612ffc57612ffb612863565b5b600061300a84828501612e6d565b91505092915050565b6000806040838503121561302a57613029612863565b5b600061303885828601612ab9565b925050602061304985828601612ab9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061309a57607f821691505b6020821081036130ad576130ac613053565b5b50919050565b7f5468652053616c65206973207061757365642100000000000000000000000000600082015250565b60006130e9601383612996565b91506130f4826130b3565b602082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b6000613155601483612996565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131c58261286d565b91506131d08361286d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132055761320461318b565b5b828201905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b6000613246601483612996565b915061325182613210565b602082019050919050565b6000602082019050818103600083015261327581613239565b9050919050565b7f4d6178206d696e74207065722077616c6c657420657863656564656421000000600082015250565b60006132b2601d83612996565b91506132bd8261327c565b602082019050919050565b600060208201905081810360008301526132e1816132a5565b9050919050565b60006132f38261286d565b91506132fe8361286d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133375761333661318b565b5b828202905092915050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b6000613378601383612996565b915061338382613342565b602082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006133e4601f83612996565b91506133ef826133ae565b602082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b600081905092915050565b50565b600061343560008361341a565b915061344082613425565b600082019050919050565b600061345682613428565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006134eb602f83612996565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b600081905092915050565b60006135378261298b565b6135418185613521565b93506135518185602086016129a7565b80840191505092915050565b60008190508160005260206000209050919050565b6000815461357f81613082565b6135898186613521565b945060018216600081146135a457600181146135b5576135e8565b60ff198316865281860193506135e8565b6135be8561355d565b60005b838110156135e0578154818901526001820191506020810190506135c1565b838801955050505b50505092915050565b60006135fd828661352c565b9150613609828561352c565b91506136158284613572565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061367e602683612996565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ea602083612996565b91506136f5826136b4565b602082019050919050565b60006020820190508181036000830152613719816136dd565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061374782613720565b613751818561372b565b93506137618185602086016129a7565b61376a816129da565b840191505092915050565b600060808201905061378a6000830187612a78565b6137976020830186612a78565b6137a46040830185612c8c565b81810360608301526137b6818461373c565b905095945050505050565b6000815190506137d0816128fc565b92915050565b6000602082840312156137ec576137eb612863565b5b60006137fa848285016137c1565b91505092915050565b600061380e8261286d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138405761383f61318b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138858261286d565b91506138908361286d565b9250826138a05761389f61384b565b5b828204905092915050565b60006138b68261286d565b91506138c18361286d565b9250828210156138d4576138d361318b565b5b828203905092915050565b60006138ea8261286d565b91506138f58361286d565b9250826139055761390461384b565b5b82820690509291505056fea26469706673582212203a71ec369515b15b2d0d078d511443b1e871b6281d44db002c7b08eab83b12b264736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102505760003560e01c8063715018a611610139578063b071401b116100b6578063da5e1f4d1161007a578063da5e1f4d1461087c578063e0a80853146108a5578063e985e9c5146108ce578063eac989f81461090b578063f2fde38b14610936578063f64849801461095f57610250565b8063b071401b1461079b578063b88d4fde146107c4578063c87b56dd146107ed578063d897833e1461082a578063d9f0a6711461085357610250565b806395d89b41116100fd57806395d89b41146106c65780639a1b2885146106f1578063a035b1fe1461071c578063a22cb46514610747578063a45ba8e71461077057610250565b8063715018a6146105f35780637871e1541461060a5780638462151c146106335780638da5cb5b1461067057806394354fd01461069b57610250565b806323b872dd116101d2578063518302271161019657806351830227146104cd5780635503a0e8146104f85780635a0b8b23146105235780636352211e1461054e5780636ad1fe021461058b57806370a08231146105b657610250565b806323b872dd1461041057806333573dc2146104395780633ccfd60b1461046457806342842e0e1461047b5780634fdd43cb146104a457610250565b8063095ea7b311610219578063095ea7b31461033f57806316ba10e01461036857806318160ddd1461039157806319d1997a146103bc57806321a3c248146103e757610250565b806275770a1461025557806301ffc9a71461027e57806306fdde03146102bb57806307883703146102e6578063081812fc14610302575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906128a3565b610988565b005b34801561028a57600080fd5b506102a560048036038101906102a09190612928565b61099a565b6040516102b29190612970565b60405180910390f35b3480156102c757600080fd5b506102d0610a2c565b6040516102dd9190612a24565b60405180910390f35b61030060048036038101906102fb91906128a3565b610abe565b005b34801561030e57600080fd5b50610329600480360381019061032491906128a3565b610c84565b6040516103369190612a87565b60405180910390f35b34801561034b57600080fd5b5061036660048036038101906103619190612ace565b610d00565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612c43565b610e41565b005b34801561039d57600080fd5b506103a6610e63565b6040516103b39190612c9b565b60405180910390f35b3480156103c857600080fd5b506103d1610e7a565b6040516103de9190612c9b565b60405180910390f35b3480156103f357600080fd5b5061040e600480360381019061040991906128a3565b610e80565b005b34801561041c57600080fd5b5061043760048036038101906104329190612cb6565b610e92565b005b34801561044557600080fd5b5061044e6111b4565b60405161045b9190612c9b565b60405180910390f35b34801561047057600080fd5b506104796111ba565b005b34801561048757600080fd5b506104a2600480360381019061049d9190612cb6565b611297565b005b3480156104b057600080fd5b506104cb60048036038101906104c69190612c43565b6112b7565b005b3480156104d957600080fd5b506104e26112d9565b6040516104ef9190612970565b60405180910390f35b34801561050457600080fd5b5061050d6112ec565b60405161051a9190612a24565b60405180910390f35b34801561052f57600080fd5b5061053861137a565b6040516105459190612c9b565b60405180910390f35b34801561055a57600080fd5b50610575600480360381019061057091906128a3565b611380565b6040516105829190612a87565b60405180910390f35b34801561059757600080fd5b506105a0611392565b6040516105ad9190612970565b60405180910390f35b3480156105c257600080fd5b506105dd60048036038101906105d89190612d09565b6113a5565b6040516105ea9190612c9b565b60405180910390f35b3480156105ff57600080fd5b5061060861145d565b005b34801561061657600080fd5b50610631600480360381019061062c9190612d36565b611471565b005b34801561063f57600080fd5b5061065a60048036038101906106559190612d09565b6114de565b6040516106679190612e34565b60405180910390f35b34801561067c57600080fd5b50610685611622565b6040516106929190612a87565b60405180910390f35b3480156106a757600080fd5b506106b061164c565b6040516106bd9190612c9b565b60405180910390f35b3480156106d257600080fd5b506106db611652565b6040516106e89190612a24565b60405180910390f35b3480156106fd57600080fd5b506107066116e4565b6040516107139190612c9b565b60405180910390f35b34801561072857600080fd5b506107316116ea565b60405161073e9190612c9b565b60405180910390f35b34801561075357600080fd5b5061076e60048036038101906107699190612e82565b611710565b005b34801561077c57600080fd5b50610785611887565b6040516107929190612a24565b60405180910390f35b3480156107a757600080fd5b506107c260048036038101906107bd91906128a3565b611915565b005b3480156107d057600080fd5b506107eb60048036038101906107e69190612f63565b611927565b005b3480156107f957600080fd5b50610814600480360381019061080f91906128a3565b61199a565b6040516108219190612a24565b60405180910390f35b34801561083657600080fd5b50610851600480360381019061084c9190612fe6565b611af2565b005b34801561085f57600080fd5b5061087a600480360381019061087591906128a3565b611b17565b005b34801561088857600080fd5b506108a3600480360381019061089e91906128a3565b611b29565b005b3480156108b157600080fd5b506108cc60048036038101906108c79190612fe6565b611b3b565b005b3480156108da57600080fd5b506108f560048036038101906108f09190613013565b611b60565b6040516109029190612970565b60405180910390f35b34801561091757600080fd5b50610920611bf4565b60405161092d9190612a24565b60405180910390f35b34801561094257600080fd5b5061095d60048036038101906109589190612d09565b611c82565b005b34801561096b57600080fd5b5061098660048036038101906109819190612c43565b611d05565b005b610990611d27565b80600f8190555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109f557506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a255750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610a3b90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6790613082565b8015610ab45780601f10610a8957610100808354040283529160200191610ab4565b820191906000526020600020905b815481529060010190602001808311610a9757829003601f168201915b5050505050905090565b6000610ac8610e63565b9050601260009054906101000a900460ff16610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b10906130ff565b60405180910390fd5b600082118015610b2b57506010548211155b610b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b619061316b565b60405180910390fd5b600f5482610b76610e63565b610b8091906131ba565b1115610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb89061325c565b60405180910390fd5b60115482610bce336113a5565b610bd891906131ba565b1115610c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c10906132c8565b60405180910390fd5b81610c2382611da5565b610c2d91906132e8565b341015610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c669061338e565b60405180910390fd5b610c80610c7a611dc6565b83611dce565b5050565b6000610c8f82611dec565b610cc5576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610d0b82611380565b90508073ffffffffffffffffffffffffffffffffffffffff16610d2c611e4b565b73ffffffffffffffffffffffffffffffffffffffff1614610d8f57610d5881610d53611e4b565b611b60565b610d8e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610e49611d27565b80600b9080519060200190610e5f929190612767565b5050565b6000610e6d611e53565b6001546000540303905090565b600f5481565b610e88611d27565b80600e8190555050565b6000610e9d82611e5c565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f04576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f1084611f28565b91509150610f268187610f21611e4b565b611f4a565b610f7257610f3b86610f36611e4b565b611b60565b610f71576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fd8576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fe58686866001611f8e565b8015610ff057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110be8561109a888887611f94565b7c020000000000000000000000000000000000000000000000000000000017611fbc565b600460008681526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008416036111445760006001850190506000600460008381526020019081526020016000205403611142576000548114611141578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111ac8686866001611fe7565b505050505050565b600d5481565b6111c2611d27565b600260095403611207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fe906133fa565b60405180910390fd5b60026009819055506000611219611622565b73ffffffffffffffffffffffffffffffffffffffff164760405161123c9061344b565b60006040518083038185875af1925050503d8060008114611279576040519150601f19603f3d011682016040523d82523d6000602084013e61127e565b606091505b505090508061128c57600080fd5b506001600981905550565b6112b283838360405180602001604052806000815250611927565b505050565b6112bf611d27565b80600c90805190602001906112d5929190612767565b5050565b601260019054906101000a900460ff1681565b600b80546112f990613082565b80601f016020809104026020016040519081016040528092919081815260200182805461132590613082565b80156113725780601f1061134757610100808354040283529160200191611372565b820191906000526020600020905b81548152906001019060200180831161135557829003601f168201915b505050505081565b60115481565b600061138b82611e5c565b9050919050565b601260009054906101000a900460ff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361140c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611465611d27565b61146f6000611fed565b565b611479611d27565b600f5482611485610e63565b61148f91906131ba565b11156114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c79061325c565b60405180910390fd5b6114da8183611dce565b5050565b606060006114eb836113a5565b67ffffffffffffffff81111561150457611503612b18565b5b6040519080825280602002602001820160405280156115325781602001602082028036833780820191505090505b509050600061153f6120b3565b905060008060005b8381101561161557600061155a826120bc565b905080604001511561156c5750611608565b600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146115ac57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160657818685806001019650815181106115f9576115f8613460565b5b6020026020010181815250505b505b8080600101915050611547565b5083945050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606003805461166190613082565b80601f016020809104026020016040519081016040528092919081815260200182805461168d90613082565b80156116da5780601f106116af576101008083540402835291602001916116da565b820191906000526020600020905b8154815290600101906020018083116116bd57829003601f168201915b5050505050905090565b600e5481565b60006103e86116f7610e63565b101561170757600d54905061170d565b600e5490505b90565b611718611e4b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361177c576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611789611e4b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611836611e4b565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161187b9190612970565b60405180910390a35050565b600c805461189490613082565b80601f01602080910402602001604051908101604052809291908181526020018280546118c090613082565b801561190d5780601f106118e25761010080835404028352916020019161190d565b820191906000526020600020905b8154815290600101906020018083116118f057829003601f168201915b505050505081565b61191d611d27565b8060108190555050565b611932848484610e92565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119945761195d848484846120e7565b611993576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606119a582611dec565b6119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db90613501565b60405180910390fd5b60001515601260019054906101000a900460ff16151503611a9157600c8054611a0c90613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3890613082565b8015611a855780601f10611a5a57610100808354040283529160200191611a85565b820191906000526020600020905b815481529060010190602001808311611a6857829003601f168201915b50505050509050611aed565b6000611a9b612237565b90506000815111611abb5760405180602001604052806000815250611ae9565b80611ac5846122c9565b600b604051602001611ad9939291906135f1565b6040516020818303038152906040525b9150505b919050565b611afa611d27565b80601260006101000a81548160ff02191690831515021790555050565b611b1f611d27565b8060118190555050565b611b31611d27565b80600d8190555050565b611b43611d27565b80601260016101000a81548160ff02191690831515021790555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600a8054611c0190613082565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2d90613082565b8015611c7a5780601f10611c4f57610100808354040283529160200191611c7a565b820191906000526020600020905b815481529060010190602001808311611c5d57829003601f168201915b505050505081565b611c8a611d27565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611cf9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf090613694565b60405180910390fd5b611d0281611fed565b50565b611d0d611d27565b80600a9080519060200190611d23929190612767565b5050565b611d2f611dc6565b73ffffffffffffffffffffffffffffffffffffffff16611d4d611622565b73ffffffffffffffffffffffffffffffffffffffff1614611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90613700565b60405180910390fd5b565b60006103e8821015611dbb57600d549050611dc1565b600e5490505b919050565b600033905090565b611de8828260405180602001604052806000815250612429565b5050565b600081611df7611e53565b11158015611e06575060005482105b8015611e44575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b60008082905080611e6b611e53565b11611ef157600054811015611ef05760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611eee575b60008103611ee4576004600083600190039350838152602001908152602001600020549050611eba565b8092505050611f23565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600690508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611fab8686846124c6565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008054905090565b6120c46127ed565b6120e060046000848152602001908152602001600020546124cf565b9050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261210d611e4b565b8786866040518563ffffffff1660e01b815260040161212f9493929190613775565b6020604051808303816000875af192505050801561216b57506040513d601f19601f8201168201806040525081019061216891906137d6565b60015b6121e4573d806000811461219b576040519150601f19603f3d011682016040523d82523d6000602084013e6121a0565b606091505b5060008151036121dc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6060600a805461224690613082565b80601f016020809104026020016040519081016040528092919081815260200182805461227290613082565b80156122bf5780601f10612294576101008083540402835291602001916122bf565b820191906000526020600020905b8154815290600101906020018083116122a257829003601f168201915b5050505050905090565b606060008203612310576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612424565b600082905060005b6000821461234257808061232b90613803565b915050600a8261233b919061387a565b9150612318565b60008167ffffffffffffffff81111561235e5761235d612b18565b5b6040519080825280601f01601f1916602001820160405280156123905781602001600182028036833780820191505090505b5090505b6000851461241d576001826123a991906138ab565b9150600a856123b891906138df565b60306123c491906131ba565b60f81b8183815181106123da576123d9613460565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612416919061387a565b9450612394565b8093505050505b919050565b6124338383612585565b60008373ffffffffffffffffffffffffffffffffffffffff163b146124c157600080549050600083820390505b61247360008683806001019450866120e7565b6124a9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124605781600054146124be57600080fd5b50505b505050565b60009392505050565b6124d76127ed565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036125f1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000820361262b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126386000848385611f8e565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506126af836126a06000866000611f94565b6126a985612757565b17611fbc565b60046000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106126d3578060008190555050506127526000848385611fe7565b505050565b60006001821460e11b9050919050565b82805461277390613082565b90600052602060002090601f01602090048101928261279557600085556127dc565b82601f106127ae57805160ff19168380011785556127dc565b828001600101855582156127dc579182015b828111156127db5782518255916020019190600101906127c0565b5b5090506127e9919061283c565b5090565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b5b8082111561285557600081600090555060010161283d565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6128808161286d565b811461288b57600080fd5b50565b60008135905061289d81612877565b92915050565b6000602082840312156128b9576128b8612863565b5b60006128c78482850161288e565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612905816128d0565b811461291057600080fd5b50565b600081359050612922816128fc565b92915050565b60006020828403121561293e5761293d612863565b5b600061294c84828501612913565b91505092915050565b60008115159050919050565b61296a81612955565b82525050565b60006020820190506129856000830184612961565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c55780820151818401526020810190506129aa565b838111156129d4576000848401525b50505050565b6000601f19601f8301169050919050565b60006129f68261298b565b612a008185612996565b9350612a108185602086016129a7565b612a19816129da565b840191505092915050565b60006020820190508181036000830152612a3e81846129eb565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7182612a46565b9050919050565b612a8181612a66565b82525050565b6000602082019050612a9c6000830184612a78565b92915050565b612aab81612a66565b8114612ab657600080fd5b50565b600081359050612ac881612aa2565b92915050565b60008060408385031215612ae557612ae4612863565b5b6000612af385828601612ab9565b9250506020612b048582860161288e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612b50826129da565b810181811067ffffffffffffffff82111715612b6f57612b6e612b18565b5b80604052505050565b6000612b82612859565b9050612b8e8282612b47565b919050565b600067ffffffffffffffff821115612bae57612bad612b18565b5b612bb7826129da565b9050602081019050919050565b82818337600083830152505050565b6000612be6612be184612b93565b612b78565b905082815260208101848484011115612c0257612c01612b13565b5b612c0d848285612bc4565b509392505050565b600082601f830112612c2a57612c29612b0e565b5b8135612c3a848260208601612bd3565b91505092915050565b600060208284031215612c5957612c58612863565b5b600082013567ffffffffffffffff811115612c7757612c76612868565b5b612c8384828501612c15565b91505092915050565b612c958161286d565b82525050565b6000602082019050612cb06000830184612c8c565b92915050565b600080600060608486031215612ccf57612cce612863565b5b6000612cdd86828701612ab9565b9350506020612cee86828701612ab9565b9250506040612cff8682870161288e565b9150509250925092565b600060208284031215612d1f57612d1e612863565b5b6000612d2d84828501612ab9565b91505092915050565b60008060408385031215612d4d57612d4c612863565b5b6000612d5b8582860161288e565b9250506020612d6c85828601612ab9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612dab8161286d565b82525050565b6000612dbd8383612da2565b60208301905092915050565b6000602082019050919050565b6000612de182612d76565b612deb8185612d81565b9350612df683612d92565b8060005b83811015612e27578151612e0e8882612db1565b9750612e1983612dc9565b925050600181019050612dfa565b5085935050505092915050565b60006020820190508181036000830152612e4e8184612dd6565b905092915050565b612e5f81612955565b8114612e6a57600080fd5b50565b600081359050612e7c81612e56565b92915050565b60008060408385031215612e9957612e98612863565b5b6000612ea785828601612ab9565b9250506020612eb885828601612e6d565b9150509250929050565b600067ffffffffffffffff821115612edd57612edc612b18565b5b612ee6826129da565b9050602081019050919050565b6000612f06612f0184612ec2565b612b78565b905082815260208101848484011115612f2257612f21612b13565b5b612f2d848285612bc4565b509392505050565b600082601f830112612f4a57612f49612b0e565b5b8135612f5a848260208601612ef3565b91505092915050565b60008060008060808587031215612f7d57612f7c612863565b5b6000612f8b87828801612ab9565b9450506020612f9c87828801612ab9565b9350506040612fad8782880161288e565b925050606085013567ffffffffffffffff811115612fce57612fcd612868565b5b612fda87828801612f35565b91505092959194509250565b600060208284031215612ffc57612ffb612863565b5b600061300a84828501612e6d565b91505092915050565b6000806040838503121561302a57613029612863565b5b600061303885828601612ab9565b925050602061304985828601612ab9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061309a57607f821691505b6020821081036130ad576130ac613053565b5b50919050565b7f5468652053616c65206973207061757365642100000000000000000000000000600082015250565b60006130e9601383612996565b91506130f4826130b3565b602082019050919050565b60006020820190508181036000830152613118816130dc565b9050919050565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b6000613155601483612996565b91506131608261311f565b602082019050919050565b6000602082019050818103600083015261318481613148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131c58261286d565b91506131d08361286d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132055761320461318b565b5b828201905092915050565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b6000613246601483612996565b915061325182613210565b602082019050919050565b6000602082019050818103600083015261327581613239565b9050919050565b7f4d6178206d696e74207065722077616c6c657420657863656564656421000000600082015250565b60006132b2601d83612996565b91506132bd8261327c565b602082019050919050565b600060208201905081810360008301526132e1816132a5565b9050919050565b60006132f38261286d565b91506132fe8361286d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156133375761333661318b565b5b828202905092915050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b6000613378601383612996565b915061338382613342565b602082019050919050565b600060208201905081810360008301526133a78161336b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006133e4601f83612996565b91506133ef826133ae565b602082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b600081905092915050565b50565b600061343560008361341a565b915061344082613425565b600082019050919050565b600061345682613428565b9150819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006134eb602f83612996565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b600081905092915050565b60006135378261298b565b6135418185613521565b93506135518185602086016129a7565b80840191505092915050565b60008190508160005260206000209050919050565b6000815461357f81613082565b6135898186613521565b945060018216600081146135a457600181146135b5576135e8565b60ff198316865281860193506135e8565b6135be8561355d565b60005b838110156135e0578154818901526001820191506020810190506135c1565b838801955050505b50505092915050565b60006135fd828661352c565b9150613609828561352c565b91506136158284613572565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061367e602683612996565b915061368982613622565b604082019050919050565b600060208201905081810360008301526136ad81613671565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136ea602083612996565b91506136f5826136b4565b602082019050919050565b60006020820190508181036000830152613719816136dd565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061374782613720565b613751818561372b565b93506137618185602086016129a7565b61376a816129da565b840191505092915050565b600060808201905061378a6000830187612a78565b6137976020830186612a78565b6137a46040830185612c8c565b81810360608301526137b6818461373c565b905095945050505050565b6000815190506137d0816128fc565b92915050565b6000602082840312156137ec576137eb612863565b5b60006137fa848285016137c1565b91505092915050565b600061380e8261286d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036138405761383f61318b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138858261286d565b91506138908361286d565b9250826138a05761389f61384b565b5b828204905092915050565b60006138b68261286d565b91506138c18361286d565b9250828210156138d4576138d361318b565b5b828203905092915050565b60006138ea8261286d565b91506138f58361286d565b9250826139055761390461384b565b5b82820690509291505056fea26469706673582212203a71ec369515b15b2d0d078d511443b1e871b6281d44db002c7b08eab83b12b264736f6c634300080e0033

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.