ETH Price: $2,113.72 (-9.92%)

Token

NFT.NYC 2023 General Admission Pass (NFTNYC2023GA)
 

Overview

Max Total Supply

224 NFTNYC2023GA

Holders

204

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
cryptosaleclub.eth
Balance
1 NFTNYC2023GA
0xd5De76CeE426690Bf11A90ebf50a71131648B6a4
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

NFT.NYC, the leading annual Non-Fungible Token event will return to New York City in 2023 (April 12-14). Each General Admission Pass is redeemable for a General Admission Ticket to the April 2023 event PLUS: - 1 x bonus piece of merch from OpenSea and other NFT.NYC partners. - The first 50 General Admission Passes minted will receive an additional General Admission Ticket at no charge. - Mints 51-750 have a 1-in-5 chance of receiving a free upgrade from a General Admission Ticket to a VIP Access Ticket. NFT.NYC 2023 General Admission Passes are available exclusively on OpenSea. OpenSea has participated in NFT.NYC as its Foundational Partner since inception in 2018. **Redemption of Benefits will only be available from March 12, 2023 via the app.nft.nyc platform. Please check the redemption status of each Pass Benefit via the unique link in the description prior to purchasing on secondary sale. Pass must be redeemed for a ticket on app.nft.nyc to grant admission to NFT.NYC.

# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xB049020C...EAff8EA98
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ERC721SeaDrop

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion
File 1 of 18 : ERC721SeaDrop.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
pragma solidity 0.8.17;
import {
ERC721ContractMetadata,
ISeaDropTokenContractMetadata
} from "./ERC721ContractMetadata.sol";
import {
INonFungibleSeaDropToken
} from "./interfaces/INonFungibleSeaDropToken.sol";
import { ISeaDrop } from "./interfaces/ISeaDrop.sol";
import {
AllowListData,
PublicDrop,
TokenGatedDropStage,
SignedMintValidationParams
} from "./lib/SeaDropStructs.sol";
import {
ERC721SeaDropStructsErrorsAndEvents
} from "./lib/ERC721SeaDropStructsErrorsAndEvents.sol";
import { ERC721A } from "ERC721A/ERC721A.sol";
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 18 : 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.2.2
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev Interface of ERC721 token receiver.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @title ERC721A
*
* @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)
* Non-Fungible Token Standard, including the Metadata extension.
* Optimized for lower gas during batch mints.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 18 : 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.2.2
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of ERC721A.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* Cannot query the balance for the zero address.
*/
error BalanceQueryForZeroAddress();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 18 : IERC2981.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
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)
pragma solidity ^0.8.0;
import "../utils/introspection/IERC165.sol";
/**
* @dev Interface for the NFT Royalty Standard.
*
* A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal
* support for royalty payments across all NFT marketplaces and ecosystem participants.
*
* _Available since v4.5._
*/
interface IERC2981 is IERC165 {
/**
* @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
*/
function royaltyInfo(uint256 tokenId, uint256 salePrice)
external
view
returns (address receiver, uint256 royaltyAmount);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 18 : IERC165.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
// 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);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 18 : DefaultOperatorFilterer.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {OperatorFilterer} from "./OperatorFilterer.sol";
/**
* @title DefaultOperatorFilterer
* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.
*/
abstract contract DefaultOperatorFilterer is OperatorFilterer {
address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);
constructor() OperatorFilterer(DEFAULT_SUBSCRIPTION, true) {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 18 : IOperatorFilterRegistry.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
pragma solidity ^0.8.13;
interface IOperatorFilterRegistry {
function isOperatorAllowed(address registrant, address operator) external view returns (bool);
function register(address registrant) external;
function registerAndSubscribe(address registrant, address subscription) external;
function registerAndCopyEntries(address registrant, address registrantToCopy) external;
function unregister(address addr) external;
function updateOperator(address registrant, address operator, bool filtered) external;
function updateOperators(address registrant, address[] calldata operators, bool filtered) external;
function updateCodeHash(address registrant, bytes32 codehash, bool filtered) external;
function updateCodeHashes(address registrant, bytes32[] calldata codeHashes, bool filtered) external;
function subscribe(address registrant, address registrantToSubscribe) external;
function unsubscribe(address registrant, bool copyExistingEntries) external;
function subscriptionOf(address addr) external returns (address registrant);
function subscribers(address registrant) external returns (address[] memory);
function subscriberAt(address registrant, uint256 index) external returns (address);
function copyEntriesOf(address registrant, address registrantToCopy) external;
function isOperatorFiltered(address registrant, address operator) external returns (bool);
function isCodeHashOfFiltered(address registrant, address operatorWithCode) external returns (bool);
function isCodeHashFiltered(address registrant, bytes32 codeHash) external returns (bool);
function filteredOperators(address addr) external returns (address[] memory);
function filteredCodeHashes(address addr) external returns (bytes32[] memory);
function filteredOperatorAt(address registrant, uint256 index) external returns (address);
function filteredCodeHashAt(address registrant, uint256 index) external returns (bytes32);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 18 : OperatorFilterer.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
pragma solidity ^0.8.13;
import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";
/**
* @title OperatorFilterer
* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another
* registrant's entries in the OperatorFilterRegistry.
* @dev This smart contract is meant to be inherited by token contracts so they can use the following:
* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.
* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.
*/
abstract contract OperatorFilterer {
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =
IOperatorFilterRegistry(0x000000000000AAeB6D7670E522A718067333cd4E);
constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
// If an inheriting token contract is deployed to a network without the registry deployed, the modifier
// will not revert, but the contract will need to be registered with the registry once it is deployed in
// order for the modifier to filter addresses.
if (address(OPERATOR_FILTER_REGISTRY).code.length > 0) {
if (subscribe) {
OPERATOR_FILTER_REGISTRY.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 18 : ReentrancyGuard.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Gas optimized reentrancy protection for smart contracts.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ReentrancyGuard.sol)
/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/security/ReentrancyGuard.sol)
abstract contract ReentrancyGuard {
uint256 private locked = 1;
modifier nonReentrant() virtual {
require(locked == 1, "REENTRANCY");
locked = 2;
_;
locked = 1;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 18 : ConstructorInitializable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4;
/**
* @author emo.eth
* @notice Abstract smart contract that provides an onlyUninitialized modifier which only allows calling when
* from within a constructor of some sort, whether directly instantiating an inherting contract,
* or when delegatecalling from a proxy
*/
abstract contract ConstructorInitializable {
error AlreadyInitialized();
modifier onlyConstructor() {
if (address(this).code.length != 0) {
revert AlreadyInitialized();
}
_;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 18 : TwoStepOwnable.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
pragma solidity >=0.8.4;
import {ConstructorInitializable} from "./ConstructorInitializable.sol";
/**
@notice A two-step extension of Ownable, where the new owner must claim ownership of the contract after owner initiates transfer
Owner can cancel the transfer at any point before the new owner claims ownership.
Helpful in guarding against transferring ownership to an address that is unable to act as the Owner.
*/
abstract contract TwoStepOwnable is ConstructorInitializable {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
address internal potentialOwner;
event PotentialOwnerUpdated(address newPotentialAdministrator);
error NewOwnerIsZeroAddress();
error NotNextOwner();
error OnlyOwner();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 18 : ERC721ContractMetadata.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
pragma solidity 0.8.17;
import {
ISeaDropTokenContractMetadata
} from "./interfaces/ISeaDropTokenContractMetadata.sol";
import { ERC721A } from "ERC721A/ERC721A.sol";
import { TwoStepOwnable } from "utility-contracts/TwoStepOwnable.sol";
import { IERC2981 } from "openzeppelin-contracts/interfaces/IERC2981.sol";
import {
IERC165
} from "openzeppelin-contracts/utils/introspection/IERC165.sol";
/**
* @title ERC721ContractMetadata
* @author James Wenzel (emo.eth)
* @author Ryan Ghods (ralxz.eth)
* @author Stephan Min (stephanm.eth)
* @notice ERC721ContractMetadata is a token contract that extends ERC721A
* with additional metadata and ownership capabilities.
*/
contract ERC721ContractMetadata is
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 18 : INonFungibleSeaDropToken.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
pragma solidity 0.8.17;
import {
ISeaDropTokenContractMetadata
} from "../interfaces/ISeaDropTokenContractMetadata.sol";
import {
AllowListData,
PublicDrop,
TokenGatedDropStage,
SignedMintValidationParams
} from "../lib/SeaDropStructs.sol";
interface INonFungibleSeaDropToken is ISeaDropTokenContractMetadata {
/**
* @dev Revert with an error if a contract is not an allowed
* SeaDrop address.
*/
error OnlyAllowedSeaDrop();
/**
* @dev Emit an event when allowed SeaDrop contracts are updated.
*/
event AllowedSeaDropUpdated(address[] allowedSeaDrop);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 18 : ISeaDrop.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
pragma solidity 0.8.17;
import {
AllowListData,
MintParams,
PublicDrop,
TokenGatedDropStage,
TokenGatedMintParams,
SignedMintValidationParams
} from "../lib/SeaDropStructs.sol";
import { SeaDropErrorsAndEvents } from "../lib/SeaDropErrorsAndEvents.sol";
interface ISeaDrop is SeaDropErrorsAndEvents {
/**
* @notice Mint a public drop.
*
* @param nftContract The nft contract to mint.
* @param feeRecipient The fee recipient.
* @param minterIfNotPayer The mint recipient if different than the payer.
* @param quantity The number of tokens to mint.
*/
function mintPublic(
address nftContract,
address feeRecipient,
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 18 : ISeaDropTokenContractMetadata.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
pragma solidity 0.8.17;
import { IERC2981 } from "openzeppelin-contracts/interfaces/IERC2981.sol";
interface ISeaDropTokenContractMetadata is IERC2981 {
/**
* @notice Throw if the max supply exceeds uint64, a limit
* due to the storage of bit-packed variables in ERC721A.
*/
error CannotExceedMaxSupplyOfUint64(uint256 newMaxSupply);
/**
* @dev Revert with an error when attempting to set the provenance
* hash after the mint has started.
*/
error ProvenanceHashCannotBeSetAfterMintStarted();
/**
* @dev Revert if the royalty basis points is greater than 10_000.
*/
error InvalidRoyaltyBasisPoints(uint256 basisPoints);
/**
* @dev Revert if the royalty address is being set to the zero address.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 18 : ERC721SeaDropStructsErrorsAndEvents.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
pragma solidity 0.8.17;
import {
AllowListData,
PublicDrop,
SignedMintValidationParams,
TokenGatedDropStage
} from "./SeaDropStructs.sol";
interface ERC721SeaDropStructsErrorsAndEvents {
/**
* @notice Revert with an error if mint exceeds the max supply.
*/
error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);
/**
* @notice Revert with an error if the number of token gated
* allowedNftTokens doesn't match the length of supplied
* drop stages.
*/
error TokenGatedMismatch();
/**
* @notice Revert with an error if the number of signers doesn't match
* the length of supplied signedMintValidationParams
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 18 : SeaDropErrorsAndEvents.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
pragma solidity 0.8.17;
import { PublicDrop, TokenGatedDropStage, SignedMintValidationParams } from "./SeaDropStructs.sol";
interface SeaDropErrorsAndEvents {
/**
* @dev Revert with an error if the drop stage is not active.
*/
error NotActive(
uint256 currentTimestamp,
uint256 startTimestamp,
uint256 endTimestamp
);
/**
* @dev Revert with an error if the mint quantity is zero.
*/
error MintQuantityCannotBeZero();
/**
* @dev Revert with an error if the mint quantity exceeds the max allowed
* to be minted per wallet.
*/
error MintQuantityExceedsMaxMintedPerWallet(uint256 total, uint256 allowed);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 18 of 18 : SeaDropStructs.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
pragma solidity 0.8.17;
/**
* @notice A struct defining public drop data.
* Designed to fit efficiently in one storage slot.
*
* @param mintPrice The mint price per token. (Up to 1.2m
* of native token, e.g. ETH, MATIC)
* @param startTime The start time, ensure this is not zero.
* @param endTIme The end time, ensure this is not zero.
* @param maxTotalMintableByWallet Maximum total number of mints a user is
* allowed. (The limit for this field is
* 2^16 - 1)
* @param feeBps Fee out of 10_000 basis points to be
* collected.
* @param restrictFeeRecipients If false, allow any fee recipient;
* if true, check fee recipient is allowed.
*/
struct PublicDrop {
uint80 mintPrice; // 80/256 bits
uint48 startTime; // 128/256 bits
uint48 endTime; // 176/256 bits
uint16 maxTotalMintableByWallet; // 224/256 bits
uint16 feeBps; // 240/256 bits
bool restrictFeeRecipients; // 248/256 bits
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
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
{
"remappings": [
"ERC721A/=lib/ERC721A/contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/forge-std/src/",
"murky/=lib/murky/src/",
"openzeppelin-contracts-upgradeable/=lib/operator-filter-registry/lib/openzeppelin-contracts-upgradeable/contracts/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/",
"operator-filter-registry/=lib/operator-filter-registry/src/",
"seadrop/=src/",
"solmate/=lib/solmate/src/",
"utility-contracts/=lib/utility-contracts/src/"
],
"optimizer": {
"enabled": true,
"runs": 1000000
},
"metadata": {
"bytecodeHash": "ipfs"
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"CannotExceedMaxSupplyOfUint64","type":"error"},{"inputs":[{"internalType":"uint256","name":"basisPoints","type":"uint256"}],"name":"InvalidRoyaltyBasisPoints","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintQuantityExceedsMaxSupply","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NotNextOwner","type":"error"},{"inputs":[],"name":"OnlyAllowedSeaDrop","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"ProvenanceHashCannotBeSetAfterMintStarted","type":"error"},{"inputs":[],"name":"RoyaltyAddressCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"SignersMismatch","type":"error"},{"inputs":[],"name":"TokenGatedMismatch","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":false,"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"AllowedSeaDropUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseURI","type":"string"}],"name":"BaseURIUpdated","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":false,"internalType":"string","name":"newContractURI","type":"string"}],"name":"ContractURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"MaxSupplyUpdated","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":"newPotentialAdministrator","type":"address"}],"name":"PotentialOwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"previousHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newHash","type":"bytes32"}],"name":"ProvenanceHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"bps","type":"uint256"}],"name":"RoyaltyInfoUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SeaDropTokenDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"startTokenId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"endTokenId","type":"uint256"}],"name":"TokenURIUpdated","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":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startTokenId","type":"uint256"},{"internalType":"uint256","name":"endTokenId","type":"uint256"}],"name":"emitBatchTokenURIUpdated","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"getMintStats","outputs":[{"internalType":"uint256","name":"minterNumMinted","type":"uint256"},{"internalType":"uint256","name":"currentTotalSupply","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mintSeaDrop","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"},{"internalType":"string","name":"dropURI","type":"string"},{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"string[]","name":"publicKeyURIs","type":"string[]"},{"internalType":"string","name":"allowListURI","type":"string"}],"internalType":"struct AllowListData","name":"allowListData","type":"tuple"},{"internalType":"address","name":"creatorPayoutAddress","type":"address"},{"internalType":"bytes32","name":"provenanceHash","type":"bytes32"},{"internalType":"address[]","name":"allowedFeeRecipients","type":"address[]"},{"internalType":"address[]","name":"disallowedFeeRecipients","type":"address[]"},{"internalType":"address[]","name":"allowedPayers","type":"address[]"},{"internalType":"address[]","name":"disallowedPayers","type":"address[]"},{"internalType":"address[]","name":"tokenGatedAllowedNftTokens","type":"address[]"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint32","name":"maxTokenSupplyForStage","type":"uint32"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct TokenGatedDropStage[]","name":"tokenGatedDropStages","type":"tuple[]"},{"internalType":"address[]","name":"disallowedTokenGatedAllowedNftTokens","type":"address[]"},{"internalType":"address[]","name":"signers","type":"address[]"},{"components":[{"internalType":"uint80","name":"minMintPrice","type":"uint80"},{"internalType":"uint24","name":"maxMaxTotalMintableByWallet","type":"uint24"},{"internalType":"uint40","name":"minStartTime","type":"uint40"},{"internalType":"uint40","name":"maxEndTime","type":"uint40"},{"internalType":"uint40","name":"maxMaxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"minFeeBps","type":"uint16"},{"internalType":"uint16","name":"maxFeeBps","type":"uint16"}],"internalType":"struct SignedMintValidationParams[]","name":"signedMintValidationParams","type":"tuple[]"},{"internalType":"address[]","name":"disallowedSigners","type":"address[]"}],"internalType":"struct ERC721SeaDropStructsErrorsAndEvents.MultiConfigureStruct","name":"config","type":"tuple"}],"name":"multiConfigure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenanceHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltyBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","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":"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":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newProvenanceHash","type":"bytes32"}],"name":"setProvenanceHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"royaltyAddress","type":"address"},{"internalType":"uint96","name":"royaltyBps","type":"uint96"}],"internalType":"struct ISeaDropTokenContractMetadata.RoyaltyInfo","name":"newInfo","type":"tuple"}],"name":"setRoyaltyInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPotentialOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"string[]","name":"publicKeyURIs","type":"string[]"},{"internalType":"string","name":"allowListURI","type":"string"}],"internalType":"struct AllowListData","name":"allowListData","type":"tuple"}],"name":"updateAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"updateAllowedFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"updateAllowedSeaDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"payoutAddress","type":"address"}],"name":"updateCreatorPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"string","name":"dropURI","type":"string"}],"name":"updateDropURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"updatePayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"}],"name":"updatePublicDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"uint80","name":"minMintPrice","type":"uint80"},{"internalType":"uint24","name":"maxMaxTotalMintableByWallet","type":"uint24"},{"internalType":"uint40","name":"minStartTime","type":"uint40"},{"internalType":"uint40","name":"maxEndTime","type":"uint40"},{"internalType":"uint40","name":"maxMaxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"minFeeBps","type":"uint16"},{"internalType":"uint16","name":"maxFeeBps","type":"uint16"}],"internalType":"struct SignedMintValidationParams","name":"signedMintValidationParams","type":"tuple"}],"name":"updateSignedMintValidationParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"allowedNftToken","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint32","name":"maxTokenSupplyForStage","type":"uint32"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct TokenGatedDropStage","name":"dropStage","type":"tuple"}],"name":"updateTokenGatedDrop","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526001600f553480156200001657600080fd5b50604051620051e6380380620051e6833981016040819052620000399162000450565b733cc6cdda760b79bafa08df41ecfa224f810dceb66001848481816002620000628382620005f6565b506003620000718282620005f6565b5050600160005550620000836200027a565b50506daaeb6d7670e522a718067333cd4e3b15620001ca5780156200011857604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620000f957600080fd5b505af11580156200010e573d6000803e3d6000fd5b50505050620001ca565b6001600160a01b03821615620001695760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000de565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001b057600080fd5b505af1158015620001c5573d6000803e3d6000fd5b505050505b5050805160005b818110156200023057600160106000858481518110620001f557620001f5620006c2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620001d1565b50815162000246906011906020850190620002f9565b506040517fd7aca75208b9be5ffc04c6a01922020ffd62b55e68e502e317f5344960279af890600090a150505050620006d8565b303b156200029a5760405162dc149f60e41b815260040160405180910390fd5b620002a533620002a7565b565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805482825590600052602060002090810192821562000351579160200282015b828111156200035157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200031a565b506200035f92915062000363565b5090565b5b808211156200035f576000815560010162000364565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003bb57620003bb6200037a565b604052919050565b600082601f830112620003d557600080fd5b81516001600160401b03811115620003f157620003f16200037a565b602062000407601f8301601f1916820162000390565b82815285828487010111156200041c57600080fd5b60005b838110156200043c5785810183015182820184015282016200041f565b506000928101909101919091529392505050565b6000806000606084860312156200046657600080fd5b83516001600160401b03808211156200047e57600080fd5b6200048c87838801620003c3565b9450602091508186015181811115620004a457600080fd5b620004b288828901620003c3565b945050604086015181811115620004c857600080fd5b8601601f81018813620004da57600080fd5b805182811115620004ef57620004ef6200037a565b8060051b92506200050284840162000390565b818152928201840192848101908a8511156200051d57600080fd5b928501925b848410156200055757835192506001600160a01b0383168314620005465760008081fd5b828252928501929085019062000522565b8096505050505050509250925092565b600181811c908216806200057c57607f821691505b6020821081036200059d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f157600081815260208120601f850160051c81016020861015620005cc5750805b601f850160051c820191505b81811015620005ed57828155600101620005d8565b5050505b505050565b81516001600160401b038111156200061257620006126200037a565b6200062a8162000623845462000567565b84620005a3565b602080601f831160018114620006625760008415620006495750858301515b600019600386901b1c1916600185901b178555620005ed565b600085815260208120601f198616915b82811015620006935788860151825594840194600190910190840162000672565b5085821015620006b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b614afe80620006e86000396000f3fe6080604052600436106102f25760003560e01c806366251b691161018f578063938e3d7b116100e1578063c87b56dd1161008a578063e8a3d48511610064578063e8a3d485146108ba578063e985e9c5146108cf578063f2fde38b1461092557600080fd5b8063c87b56dd14610865578063cb743ba814610885578063d5abeb01146108a557600080fd5b8063ad2f852a116100bb578063ad2f852a14610805578063b88d4fde14610830578063c6ab67a31461085057600080fd5b8063938e3d7b146107b057806395d89b41146107d0578063a22cb465146107e557600080fd5b806379ba509711610143578063840e15d41161011d578063840e15d41461072a5780638da5cb5b14610765578063911f456b1461079057600080fd5b806379ba5097146106d55780637a05bc82146106ea5780637bc2be761461070a57600080fd5b80636f8b44b0116101745780636f8b44b01461068057806370a08231146106a0578063715018a6146106c057600080fd5b806366251b691461064b5780636c0360eb1461066b57600080fd5b80633680620d1161024857806348a4c101116101fc57806360c308b6116101d657806360c308b6146105f85780636352211e1461061857806364869dad1461063857600080fd5b806348a4c10114610598578063511aa644146105b857806355f804b3146105d857600080fd5b806342260b5d1161022d57806342260b5d1461051d57806342842e0e1461055857806344dae42c1461057857600080fd5b80633680620d146104db57806341f43434146104fb57600080fd5b806315922b28116102aa57806323452b9c1161028457806323452b9c1461045a57806323b872dd1461046f5780632a55205a1461048f57600080fd5b806315922b28146103d557806318160ddd146103f55780631b73593c1461043a57600080fd5b8063081812fc116102db578063081812fc1461034e578063095ea7b314610393578063099b6bfa146103b557600080fd5b806301ffc9a7146102f757806306fdde031461032c575b600080fd5b34801561030357600080fd5b506103176103123660046135cb565b610945565b60405190151581526020015b60405180910390f35b34801561033857600080fd5b506103416109ed565b6040516103239190613656565b34801561035a57600080fd5b5061036e610369366004613669565b610a7f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b34801561039f57600080fd5b506103b36103ae3660046136a4565b610ae9565b005b3480156103c157600080fd5b506103b36103d0366004613669565b610b02565b3480156103e157600080fd5b506103b36103f03660046136d0565b610bac565b34801561040157600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610323565b34801561044657600080fd5b506103b36104553660046136f2565b610be5565b34801561046657600080fd5b506103b3610c7e565b34801561047b57600080fd5b506103b361048a366004613751565b610ce4565b34801561049b57600080fd5b506104af6104aa3660046136d0565b610d1c565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610323565b3480156104e757600080fd5b506103b36104f6366004613792565b610d85565b34801561050757600080fd5b5061036e6daaeb6d7670e522a718067333cd4e81565b34801561052957600080fd5b50600e547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1661042c565b34801561056457600080fd5b506103b3610573366004613751565b610de8565b34801561058457600080fd5b506103b36105933660046137e9565b610e1a565b3480156105a457600080fd5b506103b36105b336600461381f565b610f8b565b3480156105c457600080fd5b506103b36105d3366004613965565b61102b565b3480156105e457600080fd5b506103b36105f3366004613a9b565b611090565b34801561060457600080fd5b506103b3610613366004613add565b6110d7565b34801561062457600080fd5b5061036e610633366004613669565b6110ed565b6103b36106463660046136a4565b6110f8565b34801561065757600080fd5b506103b3610666366004613b52565b611238565b34801561067757600080fd5b5061034161129d565b34801561068c57600080fd5b506103b361069b366004613669565b6112ac565b3480156106ac57600080fd5b5061042c6106bb366004613b80565b61132e565b3480156106cc57600080fd5b506103b36113b0565b3480156106e157600080fd5b506103b36113c4565b3480156106f657600080fd5b506103b3610705366004613b9d565b61147e565b34801561071657600080fd5b506103b3610725366004613bf2565b6114e3565b34801561073657600080fd5b5061074a610745366004613b80565b611548565b60408051938452602084019290925290820152606001610323565b34801561077157600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff1661036e565b34801561079c57600080fd5b506103b36107ab366004613c65565b6115b5565b3480156107bc57600080fd5b506103b36107cb366004613a9b565b612350565b3480156107dc57600080fd5b50610341612397565b3480156107f157600080fd5b506103b3610800366004613ca1565b6123a6565b34801561081157600080fd5b50600e5473ffffffffffffffffffffffffffffffffffffffff1661036e565b34801561083c57600080fd5b506103b361084b366004613ccf565b6123ba565b34801561085c57600080fd5b50600d5461042c565b34801561087157600080fd5b50610341610880366004613669565b6123f4565b34801561089157600080fd5b506103b36108a036600461381f565b612491565b3480156108b157600080fd5b50600a5461042c565b3480156108c657600080fd5b506103416124fe565b3480156108db57600080fd5b506103176108ea366004613b52565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561093157600080fd5b506103b3610940366004613b80565b61250d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e0000000000000000000000000000000000000000000000000000000014806109d857507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b806109e757506109e7826125d5565b92915050565b6060600280546109fc90613db1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2890613db1565b8015610a755780601f10610a4a57610100808354040283529160200191610a75565b820191906000526020600020905b815481529060010190602001808311610a5857829003601f168201915b5050505050905090565b6000610a8a8261262b565b610ac0576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b81610af381612679565b610afd838361277e565b505050565b610b0a612893565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610b66576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b610bb4612893565b604051819083907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a35050565b610bed612893565b610bf682612923565b6040517f01308e6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906301308e6590610c48908490600401613ea2565b600060405180830381600087803b158015610c6257600080fd5b505af1158015610c76573d6000803e3d6000fd5b505050505050565b610c86612987565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff81163314610d0b57610d0b33612679565b610d168484846129d8565b50505050565b600e8054600091829161271090610d59907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1686613edf565b610d639190613ef6565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b610d8d612893565b610d9682612923565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f90610c489084906004016140ee565b8273ffffffffffffffffffffffffffffffffffffffff81163314610e0f57610e0f33612679565b610d16848484612c8e565b610e22612893565b6000610e316020830183613b80565b73ffffffffffffffffffffffffffffffffffffffff1603610e7e576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710610e91604083016020840161411b565b6bffffffffffffffffffffffff161115610efd57610eb5604082016020830161411b565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b80600e610f0a8282614138565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d9050610f3b6020830183613b80565b610f4b604084016020850161411b565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b610f93612893565b610f9c83612923565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b15801561100e57600080fd5b505af1158015611022573d6000803e3d6000fd5b50505050505050565b611033612893565b61103c83612923565b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634d38017890610ff4908590859060040161419d565b611098612893565b600b6110a5828483614277565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610ba0929190614391565b6110df612987565b6110e98282612ca9565b5050565b60006109e782612e19565b600f54600114611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610ef4565b6002600f5561117233612923565b600a54816111a16000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6111ab91906143a5565b111561122557806111dd6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6111e791906143a5565b600a546040517fe12d231400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610ef4565b61122f8282612ed8565b50506001600f55565b611240612893565b61124982612923565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db890602401610c48565b60606112a7612ef2565b905090565b6112b4612893565b67ffffffffffffffff8111156112f9576040517fb43e913700000000000000000000000000000000000000000000000000000000815260048101829052602401610ef4565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001610f80565b600073ffffffffffffffffffffffffffffffffffffffff821661137d576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b6113b8612987565b6113c26000612f01565b565b60095473ffffffffffffffffffffffffffffffffffffffff16338114611416576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a161147b81612f01565b50565b611486612893565b61148f83612923565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb90610ff49085908590600401614391565b6114eb612893565b6114f483612923565b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063fd9ab22a90610ff49085908590600401614489565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff1690806115a86000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b6115bd612987565b80351561162f576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b15801561161657600080fd5b505af115801561162a573d6000803e3d6000fd5b505050505b61163c60208201826144b4565b1590506116a657306355f804b361165660208401846144b4565b6040518363ffffffff1660e01b8152600401611673929190614391565b600060405180830381600087803b15801561168d57600080fd5b505af11580156116a1573d6000803e3d6000fd5b505050505b6116b360408201826144b4565b15905061171d573063938e3d7b6116cd60408401846144b4565b6040518363ffffffff1660e01b81526004016116ea929190614391565b600060405180830381600087803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b505050505b61173d61173060e0830160c08401614519565b65ffffffffffff16151590565b61175061173060c0840160a08501614519565b176001036117c25730631b73593c61176e6080840160608501613b80565b836080016040518363ffffffff1660e01b815260040161178f929190614534565b600060405180830381600087803b1580156117a957600080fd5b505af11580156117bd573d6000803e3d6000fd5b505050505b6117d06101408201826144b4565b15905061184c5730637a05bc826117ed6080840160608501613b80565b6117fb6101408501856144b4565b6040518463ffffffff1660e01b81526004016118199392919061455e565b600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b505050505b600061185c610160830183614597565b35146118d65730633680620d6118786080840160608501613b80565b611886610160850185614597565b6040518363ffffffff1660e01b81526004016118a39291906145d5565b600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050505b60006118ea6101a083016101808401613b80565b73ffffffffffffffffffffffffffffffffffffffff16146119b357306366251b6961191b6080840160608501613b80565b61192d6101a085016101808601613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b15801561199a57600080fd5b505af11580156119ae573d6000803e3d6000fd5b505050505b6101a081013515611a2d576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b158015611a1457600080fd5b505af1158015611a28573d6000803e3d6000fd5b505050505b6000611a3d6101c0830183614604565b90501115611b415760005b611a566101c0830183614604565b9050811015611b3f57306348a4c101611a756080850160608601613b80565b611a836101c0860186614604565b85818110611a9357611a9361466c565b9050602002016020810190611aa89190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611b1c57600080fd5b505af1158015611b30573d6000803e3d6000fd5b50505050806001019050611a48565b505b6000611b516101e0830183614604565b90501115611c555760005b611b6a6101e0830183614604565b9050811015611c5357306348a4c101611b896080850160608601613b80565b611b976101e0860186614604565b85818110611ba757611ba761466c565b9050602002016020810190611bbc9190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b50505050806001019050611b5c565b505b6000611c65610200830183614604565b90501115611d695760005b611c7e610200830183614604565b9050811015611d67573063cb743ba8611c9d6080850160608601613b80565b611cab610200860186614604565b85818110611cbb57611cbb61466c565b9050602002016020810190611cd09190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611d4457600080fd5b505af1158015611d58573d6000803e3d6000fd5b50505050806001019050611c70565b505b6000611d79610220830183614604565b90501115611e7d5760005b611d92610220830183614604565b9050811015611e7b573063cb743ba8611db16080850160608601613b80565b611dbf610220860186614604565b85818110611dcf57611dcf61466c565b9050602002016020810190611de49190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611e5857600080fd5b505af1158015611e6c573d6000803e3d6000fd5b50505050806001019050611d84565b505b6000611e8d61026083018361469b565b90501115611fd157611ea3610240820182614604565b9050611eb361026083018361469b565b905014611eec576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b611efd61026083018361469b565b9050811015611fcf5730637bc2be76611f1c6080850160608601613b80565b611f2a610240860186614604565b85818110611f3a57611f3a61466c565b9050602002016020810190611f4f9190613b80565b611f5d61026087018761469b565b86818110611f6d57611f6d61466c565b905061010002016040518463ffffffff1660e01b8152600401611f9293929190614703565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b50505050806001019050611eef565b505b6000611fe1610280830183614604565b905011156120ec5760005b611ffa610280830183614604565b90508110156120ea576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be7661205a6080860160608701613b80565b612068610280870187614604565b868181106120785761207861466c565b905060200201602081019061208d9190613b80565b846040518463ffffffff1660e01b81526004016120ac93929190614736565b600060405180830381600087803b1580156120c657600080fd5b505af11580156120da573d6000803e3d6000fd5b5050505081600101915050611fec565b505b60006120fc6102c08301836147f9565b9050111561223f576121126102a0820182614604565b90506121226102c08301836147f9565b90501461215b576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b61216c6102c08301836147f9565b905081101561223d573063511aa64461218b6080850160608601613b80565b6121996102a0860186614604565b858181106121a9576121a961466c565b90506020020160208101906121be9190613b80565b6121cc6102c08701876147f9565b868181106121dc576121dc61466c565b905060e002016040518463ffffffff1660e01b815260040161220093929190614860565b600060405180830381600087803b15801561221a57600080fd5b505af115801561222e573d6000803e3d6000fd5b5050505080600101905061215e565b505b600061224f6102e0830183614604565b9050111561147b5760005b6122686102e0830183614604565b90508110156110e9576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa6446122c06080860160608701613b80565b6122ce6102e0870187614604565b868181106122de576122de61466c565b90506020020160208101906122f39190613b80565b846040518463ffffffff1660e01b815260040161231293929190614929565b600060405180830381600087803b15801561232c57600080fd5b505af1158015612340573d6000803e3d6000fd5b505050508160010191505061225a565b612358612893565b600c612365828483614277565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610ba0929190614391565b6060600380546109fc90613db1565b816123b081612679565b610afd8383612f78565b8373ffffffffffffffffffffffffffffffffffffffff811633146123e1576123e133612679565b6123ed8585858561300f565b5050505050565b60606123ff8261262b565b612435576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061243f612ef2565b9050805160000361245f576040518060200160405280600081525061248a565b8061246984613079565b60405160200161247a9291906149c5565b6040516020818303038152906040525b9392505050565b612499612893565b6124a283612923565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca90604401610ff4565b6060600c80546109fc90613db1565b612515612987565b73ffffffffffffffffffffffffffffffffffffffff8116612562576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001610f80565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806109e757506109e7826130db565b60008160011115801561263f575060005482105b80156109e75750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b1561147b576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561270c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273091906149f4565b61147b576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610ef4565b6000612789826110ed565b90503373ffffffffffffffffffffffffffffffffffffffff8216146128125773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16612812576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b3033146128e96128b860085473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b176000036113c2576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16151560011461147b576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146113c2576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006129e382612e19565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612a4a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612ae75773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612ae7576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612b34576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612b3f57600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612c2e57600184016000818152600460205260408120549003612c2c576000548114612c2c5760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610c76565b610afd838383604051806020016040528060008152506123ba565b6011548160005b82811015612d385760006010600060118481548110612cd157612cd161466c565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612cb0565b5060005b81811015612dcc57600160106000878785818110612d5c57612d5c61466c565b9050602002016020810190612d719190613b80565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612d3c565b50612dd960118585613500565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8484604051612e0b929190614a11565b60405180910390a150505050565b60008180600111612ea657600054811015612ea657600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003612ea4575b8060000361248a57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600081815260046020526040902054612e65565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110e98282604051806020016040528060008152506131bc565b6060600b80546109fc90613db1565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61301a848484610ce4565b73ffffffffffffffffffffffffffffffffffffffff83163b15610d165761304384848484613248565b610d16576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061309357508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061316e57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806109e75750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6131c683836133c2565b73ffffffffffffffffffffffffffffffffffffffff83163b15610afd576000548281035b6131fd6000868380600101945086613248565b613233576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106131ea5781600054146123ed57600080fd5b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906132a3903390899088908890600401614a6c565b6020604051808303816000875af19250505080156132fc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526132f991810190614aab565b60015b613373573d80801561332a576040519150601f19603f3d011682016040523d82523d6000602084013e61332f565b606091505b50805160000361336b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6000805490829003613400576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146134bc57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613484565b50816000036134f7576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b828054828255906000526020600020908101928215613578579160200282015b828111156135785781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190613520565b50613584929150613588565b5090565b5b808211156135845760008155600101613589565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461147b57600080fd5b6000602082840312156135dd57600080fd5b813561248a8161359d565b60005b838110156136035781810151838201526020016135eb565b50506000910152565b600081518084526136248160208601602086016135e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061248a602083018461360c565b60006020828403121561367b57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461147b57600080fd5b600080604083850312156136b757600080fd5b82356136c281613682565b946020939093013593505050565b600080604083850312156136e357600080fd5b50508035926020909101359150565b60008082840360e081121561370657600080fd5b833561371181613682565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08201121561374357600080fd5b506020830190509250929050565b60008060006060848603121561376657600080fd5b833561377181613682565b9250602084013561378181613682565b929592945050506040919091013590565b600080604083850312156137a557600080fd5b82356137b081613682565b9150602083013567ffffffffffffffff8111156137cc57600080fd5b8301606081860312156137de57600080fd5b809150509250929050565b6000604082840312156137fb57600080fd5b50919050565b801515811461147b57600080fd5b803561381a81613801565b919050565b60008060006060848603121561383457600080fd5b833561383f81613682565b9250602084013561384f81613682565b9150604084013561385f81613801565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156138bc576138bc61386a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139095761390961386a565b604052919050565b803569ffffffffffffffffffff8116811461381a57600080fd5b803562ffffff8116811461381a57600080fd5b803564ffffffffff8116811461381a57600080fd5b803561ffff8116811461381a57600080fd5b600080600083850361012081121561397c57600080fd5b843561398781613682565b9350602085013561399781613682565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820112156139c957600080fd5b506139d2613899565b6139de60408601613911565b81526139ec6060860161392b565b60208201526139fd6080860161393e565b6040820152613a0e60a0860161393e565b6060820152613a1f60c0860161393e565b6080820152613a3060e08601613953565b60a0820152613a426101008601613953565b60c0820152809150509250925092565b60008083601f840112613a6457600080fd5b50813567ffffffffffffffff811115613a7c57600080fd5b602083019150836020828501011115613a9457600080fd5b9250929050565b60008060208385031215613aae57600080fd5b823567ffffffffffffffff811115613ac557600080fd5b613ad185828601613a52565b90969095509350505050565b60008060208385031215613af057600080fd5b823567ffffffffffffffff80821115613b0857600080fd5b818501915085601f830112613b1c57600080fd5b813581811115613b2b57600080fd5b8660208260051b8501011115613b4057600080fd5b60209290920196919550909350505050565b60008060408385031215613b6557600080fd5b8235613b7081613682565b915060208301356137de81613682565b600060208284031215613b9257600080fd5b813561248a81613682565b600080600060408486031215613bb257600080fd5b8335613bbd81613682565b9250602084013567ffffffffffffffff811115613bd957600080fd5b613be586828701613a52565b9497909650939450505050565b6000806000838503610140811215613c0957600080fd5b8435613c1481613682565b93506020850135613c2481613682565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613c5757600080fd5b506040840190509250925092565b600060208284031215613c7757600080fd5b813567ffffffffffffffff811115613c8e57600080fd5b8201610300818503121561248a57600080fd5b60008060408385031215613cb457600080fd5b8235613cbf81613682565b915060208301356137de81613801565b60008060008060808587031215613ce557600080fd5b8435613cf081613682565b9350602085810135613d0181613682565b935060408601359250606086013567ffffffffffffffff80821115613d2557600080fd5b818801915088601f830112613d3957600080fd5b813581811115613d4b57613d4b61386a565b613d7b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016138c2565b91508082528984828501011115613d9157600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c90821680613dc557607f821691505b6020821081036137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b803565ffffffffffff8116811461381a57600080fd5b69ffffffffffffffffffff613e2882613911565b168252613e3760208201613dfe565b65ffffffffffff808216602085015280613e5360408501613dfe565b1660408501525050613e6760608201613953565b61ffff808216606085015280613e7f60808501613953565b166080850152505060a0810135613e9581613801565b80151560a0840152505050565b60c081016109e78284613e14565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176109e7576109e7613eb0565b600082613f2c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613faf57600080fd5b830160208101925035905067ffffffffffffffff811115613fcf57600080fd5b803603821315613a9457600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261401e57600080fd5b8401818101903567ffffffffffffffff81111561403a57600080fd5b8060051b80360383131561404d57600080fd5b6060848901529381905260809387018401938290880160005b838110156140be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a880301825261409f8386613f7a565b6140aa898284613f31565b985050509185019190850190600101614066565b5050505050506140d16040840184613f7a565b85830360408701526140e4838284613f31565b9695505050505050565b60208152600061248a6020830184613fde565b6bffffffffffffffffffffffff8116811461147b57600080fd5b60006020828403121561412d57600080fd5b813561248a81614101565b813561414381613682565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff00000000000000000000000000000000000000008181845416178355602084013561419381614101565b60a01b1617905550565b73ffffffffffffffffffffffffffffffffffffffff83168152610100810161248a602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f821115610afd57600081815260208120601f850160051c810160208610156142585750805b601f850160051c820191505b81811015610c7657828155600101614264565b67ffffffffffffffff83111561428f5761428f61386a565b6142a38361429d8354613db1565b83614231565b6000601f8411600181146142f557600085156142bf5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556123ed565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156143445786850135825560209485019460019092019101614324565b508682101561437f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020815260006133ba602083018486613f31565b808201808211156109e7576109e7613eb0565b803563ffffffff8116811461381a57600080fd5b69ffffffffffffffffffff6143e082613911565b16825261ffff6143f260208301613953565b16602083015261440460408201613dfe565b65ffffffffffff80821660408501528061442060608501613dfe565b1660608501525050608081013560ff8116811461443c57600080fd5b60ff16608083015261445060a082016143b8565b63ffffffff1660a083015261446760c08201613953565b61ffff1660c083015261447c60e0820161380f565b80151560e0840152505050565b73ffffffffffffffffffffffffffffffffffffffff83168152610120810161248a60208301846143cc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126144e957600080fd5b83018035915067ffffffffffffffff82111561450457600080fd5b602001915036819003821315613a9457600080fd5b60006020828403121561452b57600080fd5b61248a82613dfe565b73ffffffffffffffffffffffffffffffffffffffff8316815260e0810161248a6020830184613e14565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061458e604083018486613f31565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126145cb57600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006133ba6040830184613fde565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261463957600080fd5b83018035915067ffffffffffffffff82111561465457600080fd5b6020019150600581901b3603821315613a9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126146d057600080fd5b83018035915067ffffffffffffffff8211156146eb57600080fd5b6020019150600881901b3603821315613a9457600080fd5b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261014081016133ba60408301846143cc565b60006101408201905073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525069ffffffffffffffffffff835116604083015261ffff602084015116606083015265ffffffffffff604084015116608083015260608301516147ae60a084018265ffffffffffff169052565b50608083015160ff811660c08401525060a083015163ffffffff811660e08401525060c083015161ffff81166101008401525060e08301518015156101208401525b50949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261482e57600080fd5b83018035915067ffffffffffffffff82111561484957600080fd5b602001915060e081023603821315613a9457600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610120810169ffffffffffffffffffff61489a84613911565b16604083015262ffffff6148b06020850161392b565b1660608301526148c26040840161393e565b64ffffffffff8082166080850152806148dd6060870161393e565b1660a0850152806148f06080870161393e565b1660c0850152505061490460a08401613953565b61ffff1660e083015261491960c08401613953565b61ffff81166101008401526147f0565b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261012081016133ba604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b600083516149d78184602088016135e8565b8351908301906149eb8183602088016135e8565b01949350505050565b600060208284031215614a0657600080fd5b815161248a81613801565b60208082528181018390526000908460408401835b86811015614a61578235614a3981613682565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101614a26565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526140e4608083018461360c565b600060208284031215614abd57600080fd5b815161248a8161359d56fea2646970667358221220a6631fc135eda6340a2482f0dc52a62efe2b341e779495a95ca1ed3db8a87f1864736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000d53796c7669612773207465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000353594c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5

Deployed Bytecode

0x6080604052600436106102f25760003560e01c806366251b691161018f578063938e3d7b116100e1578063c87b56dd1161008a578063e8a3d48511610064578063e8a3d485146108ba578063e985e9c5146108cf578063f2fde38b1461092557600080fd5b8063c87b56dd14610865578063cb743ba814610885578063d5abeb01146108a557600080fd5b8063ad2f852a116100bb578063ad2f852a14610805578063b88d4fde14610830578063c6ab67a31461085057600080fd5b8063938e3d7b146107b057806395d89b41146107d0578063a22cb465146107e557600080fd5b806379ba509711610143578063840e15d41161011d578063840e15d41461072a5780638da5cb5b14610765578063911f456b1461079057600080fd5b806379ba5097146106d55780637a05bc82146106ea5780637bc2be761461070a57600080fd5b80636f8b44b0116101745780636f8b44b01461068057806370a08231146106a0578063715018a6146106c057600080fd5b806366251b691461064b5780636c0360eb1461066b57600080fd5b80633680620d1161024857806348a4c101116101fc57806360c308b6116101d657806360c308b6146105f85780636352211e1461061857806364869dad1461063857600080fd5b806348a4c10114610598578063511aa644146105b857806355f804b3146105d857600080fd5b806342260b5d1161022d57806342260b5d1461051d57806342842e0e1461055857806344dae42c1461057857600080fd5b80633680620d146104db57806341f43434146104fb57600080fd5b806315922b28116102aa57806323452b9c1161028457806323452b9c1461045a57806323b872dd1461046f5780632a55205a1461048f57600080fd5b806315922b28146103d557806318160ddd146103f55780631b73593c1461043a57600080fd5b8063081812fc116102db578063081812fc1461034e578063095ea7b314610393578063099b6bfa146103b557600080fd5b806301ffc9a7146102f757806306fdde031461032c575b600080fd5b34801561030357600080fd5b506103176103123660046135cb565b610945565b60405190151581526020015b60405180910390f35b34801561033857600080fd5b506103416109ed565b6040516103239190613656565b34801561035a57600080fd5b5061036e610369366004613669565b610a7f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b34801561039f57600080fd5b506103b36103ae3660046136a4565b610ae9565b005b3480156103c157600080fd5b506103b36103d0366004613669565b610b02565b3480156103e157600080fd5b506103b36103f03660046136d0565b610bac565b34801561040157600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610323565b34801561044657600080fd5b506103b36104553660046136f2565b610be5565b34801561046657600080fd5b506103b3610c7e565b34801561047b57600080fd5b506103b361048a366004613751565b610ce4565b34801561049b57600080fd5b506104af6104aa3660046136d0565b610d1c565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610323565b3480156104e757600080fd5b506103b36104f6366004613792565b610d85565b34801561050757600080fd5b5061036e6daaeb6d7670e522a718067333cd4e81565b34801561052957600080fd5b50600e547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1661042c565b34801561056457600080fd5b506103b3610573366004613751565b610de8565b34801561058457600080fd5b506103b36105933660046137e9565b610e1a565b3480156105a457600080fd5b506103b36105b336600461381f565b610f8b565b3480156105c457600080fd5b506103b36105d3366004613965565b61102b565b3480156105e457600080fd5b506103b36105f3366004613a9b565b611090565b34801561060457600080fd5b506103b3610613366004613add565b6110d7565b34801561062457600080fd5b5061036e610633366004613669565b6110ed565b6103b36106463660046136a4565b6110f8565b34801561065757600080fd5b506103b3610666366004613b52565b611238565b34801561067757600080fd5b5061034161129d565b34801561068c57600080fd5b506103b361069b366004613669565b6112ac565b3480156106ac57600080fd5b5061042c6106bb366004613b80565b61132e565b3480156106cc57600080fd5b506103b36113b0565b3480156106e157600080fd5b506103b36113c4565b3480156106f657600080fd5b506103b3610705366004613b9d565b61147e565b34801561071657600080fd5b506103b3610725366004613bf2565b6114e3565b34801561073657600080fd5b5061074a610745366004613b80565b611548565b60408051938452602084019290925290820152606001610323565b34801561077157600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff1661036e565b34801561079c57600080fd5b506103b36107ab366004613c65565b6115b5565b3480156107bc57600080fd5b506103b36107cb366004613a9b565b612350565b3480156107dc57600080fd5b50610341612397565b3480156107f157600080fd5b506103b3610800366004613ca1565b6123a6565b34801561081157600080fd5b50600e5473ffffffffffffffffffffffffffffffffffffffff1661036e565b34801561083c57600080fd5b506103b361084b366004613ccf565b6123ba565b34801561085c57600080fd5b50600d5461042c565b34801561087157600080fd5b50610341610880366004613669565b6123f4565b34801561089157600080fd5b506103b36108a036600461381f565b612491565b3480156108b157600080fd5b50600a5461042c565b3480156108c657600080fd5b506103416124fe565b3480156108db57600080fd5b506103176108ea366004613b52565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561093157600080fd5b506103b3610940366004613b80565b61250d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e0000000000000000000000000000000000000000000000000000000014806109d857507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b806109e757506109e7826125d5565b92915050565b6060600280546109fc90613db1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2890613db1565b8015610a755780601f10610a4a57610100808354040283529160200191610a75565b820191906000526020600020905b815481529060010190602001808311610a5857829003601f168201915b5050505050905090565b6000610a8a8261262b565b610ac0576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b81610af381612679565b610afd838361277e565b505050565b610b0a612893565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610b66576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b610bb4612893565b604051819083907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a35050565b610bed612893565b610bf682612923565b6040517f01308e6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906301308e6590610c48908490600401613ea2565b600060405180830381600087803b158015610c6257600080fd5b505af1158015610c76573d6000803e3d6000fd5b505050505050565b610c86612987565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff81163314610d0b57610d0b33612679565b610d168484846129d8565b50505050565b600e8054600091829161271090610d59907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1686613edf565b610d639190613ef6565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b610d8d612893565b610d9682612923565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f90610c489084906004016140ee565b8273ffffffffffffffffffffffffffffffffffffffff81163314610e0f57610e0f33612679565b610d16848484612c8e565b610e22612893565b6000610e316020830183613b80565b73ffffffffffffffffffffffffffffffffffffffff1603610e7e576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710610e91604083016020840161411b565b6bffffffffffffffffffffffff161115610efd57610eb5604082016020830161411b565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b80600e610f0a8282614138565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d9050610f3b6020830183613b80565b610f4b604084016020850161411b565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b610f93612893565b610f9c83612923565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b15801561100e57600080fd5b505af1158015611022573d6000803e3d6000fd5b50505050505050565b611033612893565b61103c83612923565b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634d38017890610ff4908590859060040161419d565b611098612893565b600b6110a5828483614277565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610ba0929190614391565b6110df612987565b6110e98282612ca9565b5050565b60006109e782612e19565b600f54600114611164576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610ef4565b6002600f5561117233612923565b600a54816111a16000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6111ab91906143a5565b111561122557806111dd6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6111e791906143a5565b600a546040517fe12d231400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610ef4565b61122f8282612ed8565b50506001600f55565b611240612893565b61124982612923565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db890602401610c48565b60606112a7612ef2565b905090565b6112b4612893565b67ffffffffffffffff8111156112f9576040517fb43e913700000000000000000000000000000000000000000000000000000000815260048101829052602401610ef4565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001610f80565b600073ffffffffffffffffffffffffffffffffffffffff821661137d576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b6113b8612987565b6113c26000612f01565b565b60095473ffffffffffffffffffffffffffffffffffffffff16338114611416576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a161147b81612f01565b50565b611486612893565b61148f83612923565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb90610ff49085908590600401614391565b6114eb612893565b6114f483612923565b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063fd9ab22a90610ff49085908590600401614489565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff1690806115a86000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b6115bd612987565b80351561162f576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b15801561161657600080fd5b505af115801561162a573d6000803e3d6000fd5b505050505b61163c60208201826144b4565b1590506116a657306355f804b361165660208401846144b4565b6040518363ffffffff1660e01b8152600401611673929190614391565b600060405180830381600087803b15801561168d57600080fd5b505af11580156116a1573d6000803e3d6000fd5b505050505b6116b360408201826144b4565b15905061171d573063938e3d7b6116cd60408401846144b4565b6040518363ffffffff1660e01b81526004016116ea929190614391565b600060405180830381600087803b15801561170457600080fd5b505af1158015611718573d6000803e3d6000fd5b505050505b61173d61173060e0830160c08401614519565b65ffffffffffff16151590565b61175061173060c0840160a08501614519565b176001036117c25730631b73593c61176e6080840160608501613b80565b836080016040518363ffffffff1660e01b815260040161178f929190614534565b600060405180830381600087803b1580156117a957600080fd5b505af11580156117bd573d6000803e3d6000fd5b505050505b6117d06101408201826144b4565b15905061184c5730637a05bc826117ed6080840160608501613b80565b6117fb6101408501856144b4565b6040518463ffffffff1660e01b81526004016118199392919061455e565b600060405180830381600087803b15801561183357600080fd5b505af1158015611847573d6000803e3d6000fd5b505050505b600061185c610160830183614597565b35146118d65730633680620d6118786080840160608501613b80565b611886610160850185614597565b6040518363ffffffff1660e01b81526004016118a39291906145d5565b600060405180830381600087803b1580156118bd57600080fd5b505af11580156118d1573d6000803e3d6000fd5b505050505b60006118ea6101a083016101808401613b80565b73ffffffffffffffffffffffffffffffffffffffff16146119b357306366251b6961191b6080840160608501613b80565b61192d6101a085016101808601613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b15801561199a57600080fd5b505af11580156119ae573d6000803e3d6000fd5b505050505b6101a081013515611a2d576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b158015611a1457600080fd5b505af1158015611a28573d6000803e3d6000fd5b505050505b6000611a3d6101c0830183614604565b90501115611b415760005b611a566101c0830183614604565b9050811015611b3f57306348a4c101611a756080850160608601613b80565b611a836101c0860186614604565b85818110611a9357611a9361466c565b9050602002016020810190611aa89190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611b1c57600080fd5b505af1158015611b30573d6000803e3d6000fd5b50505050806001019050611a48565b505b6000611b516101e0830183614604565b90501115611c555760005b611b6a6101e0830183614604565b9050811015611c5357306348a4c101611b896080850160608601613b80565b611b976101e0860186614604565b85818110611ba757611ba761466c565b9050602002016020810190611bbc9190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611c3057600080fd5b505af1158015611c44573d6000803e3d6000fd5b50505050806001019050611b5c565b505b6000611c65610200830183614604565b90501115611d695760005b611c7e610200830183614604565b9050811015611d67573063cb743ba8611c9d6080850160608601613b80565b611cab610200860186614604565b85818110611cbb57611cbb61466c565b9050602002016020810190611cd09190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611d4457600080fd5b505af1158015611d58573d6000803e3d6000fd5b50505050806001019050611c70565b505b6000611d79610220830183614604565b90501115611e7d5760005b611d92610220830183614604565b9050811015611e7b573063cb743ba8611db16080850160608601613b80565b611dbf610220860186614604565b85818110611dcf57611dcf61466c565b9050602002016020810190611de49190613b80565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611e5857600080fd5b505af1158015611e6c573d6000803e3d6000fd5b50505050806001019050611d84565b505b6000611e8d61026083018361469b565b90501115611fd157611ea3610240820182614604565b9050611eb361026083018361469b565b905014611eec576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b611efd61026083018361469b565b9050811015611fcf5730637bc2be76611f1c6080850160608601613b80565b611f2a610240860186614604565b85818110611f3a57611f3a61466c565b9050602002016020810190611f4f9190613b80565b611f5d61026087018761469b565b86818110611f6d57611f6d61466c565b905061010002016040518463ffffffff1660e01b8152600401611f9293929190614703565b600060405180830381600087803b158015611fac57600080fd5b505af1158015611fc0573d6000803e3d6000fd5b50505050806001019050611eef565b505b6000611fe1610280830183614604565b905011156120ec5760005b611ffa610280830183614604565b90508110156120ea576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be7661205a6080860160608701613b80565b612068610280870187614604565b868181106120785761207861466c565b905060200201602081019061208d9190613b80565b846040518463ffffffff1660e01b81526004016120ac93929190614736565b600060405180830381600087803b1580156120c657600080fd5b505af11580156120da573d6000803e3d6000fd5b5050505081600101915050611fec565b505b60006120fc6102c08301836147f9565b9050111561223f576121126102a0820182614604565b90506121226102c08301836147f9565b90501461215b576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b61216c6102c08301836147f9565b905081101561223d573063511aa64461218b6080850160608601613b80565b6121996102a0860186614604565b858181106121a9576121a961466c565b90506020020160208101906121be9190613b80565b6121cc6102c08701876147f9565b868181106121dc576121dc61466c565b905060e002016040518463ffffffff1660e01b815260040161220093929190614860565b600060405180830381600087803b15801561221a57600080fd5b505af115801561222e573d6000803e3d6000fd5b5050505080600101905061215e565b505b600061224f6102e0830183614604565b9050111561147b5760005b6122686102e0830183614604565b90508110156110e9576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa6446122c06080860160608701613b80565b6122ce6102e0870187614604565b868181106122de576122de61466c565b90506020020160208101906122f39190613b80565b846040518463ffffffff1660e01b815260040161231293929190614929565b600060405180830381600087803b15801561232c57600080fd5b505af1158015612340573d6000803e3d6000fd5b505050508160010191505061225a565b612358612893565b600c612365828483614277565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610ba0929190614391565b6060600380546109fc90613db1565b816123b081612679565b610afd8383612f78565b8373ffffffffffffffffffffffffffffffffffffffff811633146123e1576123e133612679565b6123ed8585858561300f565b5050505050565b60606123ff8261262b565b612435576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061243f612ef2565b9050805160000361245f576040518060200160405280600081525061248a565b8061246984613079565b60405160200161247a9291906149c5565b6040516020818303038152906040525b9392505050565b612499612893565b6124a283612923565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca90604401610ff4565b6060600c80546109fc90613db1565b612515612987565b73ffffffffffffffffffffffffffffffffffffffff8116612562576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001610f80565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806109e757506109e7826130db565b60008160011115801561263f575060005482105b80156109e75750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b1561147b576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561270c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273091906149f4565b61147b576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610ef4565b6000612789826110ed565b90503373ffffffffffffffffffffffffffffffffffffffff8216146128125773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16612812576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b3033146128e96128b860085473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b176000036113c2576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff16151560011461147b576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146113c2576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006129e382612e19565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612a4a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612ae75773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612ae7576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612b34576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612b3f57600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612c2e57600184016000818152600460205260408120549003612c2c576000548114612c2c5760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610c76565b610afd838383604051806020016040528060008152506123ba565b6011548160005b82811015612d385760006010600060118481548110612cd157612cd161466c565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612cb0565b5060005b81811015612dcc57600160106000878785818110612d5c57612d5c61466c565b9050602002016020810190612d719190613b80565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612d3c565b50612dd960118585613500565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8484604051612e0b929190614a11565b60405180910390a150505050565b60008180600111612ea657600054811015612ea657600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003612ea4575b8060000361248a57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600081815260046020526040902054612e65565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110e98282604051806020016040528060008152506131bc565b6060600b80546109fc90613db1565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61301a848484610ce4565b73ffffffffffffffffffffffffffffffffffffffff83163b15610d165761304384848484613248565b610d16576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a90048061309357508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061316e57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806109e75750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6131c683836133c2565b73ffffffffffffffffffffffffffffffffffffffff83163b15610afd576000548281035b6131fd6000868380600101945086613248565b613233576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106131ea5781600054146123ed57600080fd5b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906132a3903390899088908890600401614a6c565b6020604051808303816000875af19250505080156132fc575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526132f991810190614aab565b60015b613373573d80801561332a576040519150601f19603f3d011682016040523d82523d6000602084013e61332f565b606091505b50805160000361336b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b6000805490829003613400576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146134bc57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613484565b50816000036134f7576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b828054828255906000526020600020908101928215613578579160200282015b828111156135785781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff843516178255602090920191600190910190613520565b50613584929150613588565b5090565b5b808211156135845760008155600101613589565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461147b57600080fd5b6000602082840312156135dd57600080fd5b813561248a8161359d565b60005b838110156136035781810151838201526020016135eb565b50506000910152565b600081518084526136248160208601602086016135e8565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061248a602083018461360c565b60006020828403121561367b57600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461147b57600080fd5b600080604083850312156136b757600080fd5b82356136c281613682565b946020939093013593505050565b600080604083850312156136e357600080fd5b50508035926020909101359150565b60008082840360e081121561370657600080fd5b833561371181613682565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08201121561374357600080fd5b506020830190509250929050565b60008060006060848603121561376657600080fd5b833561377181613682565b9250602084013561378181613682565b929592945050506040919091013590565b600080604083850312156137a557600080fd5b82356137b081613682565b9150602083013567ffffffffffffffff8111156137cc57600080fd5b8301606081860312156137de57600080fd5b809150509250929050565b6000604082840312156137fb57600080fd5b50919050565b801515811461147b57600080fd5b803561381a81613801565b919050565b60008060006060848603121561383457600080fd5b833561383f81613682565b9250602084013561384f81613682565b9150604084013561385f81613801565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156138bc576138bc61386a565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156139095761390961386a565b604052919050565b803569ffffffffffffffffffff8116811461381a57600080fd5b803562ffffff8116811461381a57600080fd5b803564ffffffffff8116811461381a57600080fd5b803561ffff8116811461381a57600080fd5b600080600083850361012081121561397c57600080fd5b843561398781613682565b9350602085013561399781613682565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820112156139c957600080fd5b506139d2613899565b6139de60408601613911565b81526139ec6060860161392b565b60208201526139fd6080860161393e565b6040820152613a0e60a0860161393e565b6060820152613a1f60c0860161393e565b6080820152613a3060e08601613953565b60a0820152613a426101008601613953565b60c0820152809150509250925092565b60008083601f840112613a6457600080fd5b50813567ffffffffffffffff811115613a7c57600080fd5b602083019150836020828501011115613a9457600080fd5b9250929050565b60008060208385031215613aae57600080fd5b823567ffffffffffffffff811115613ac557600080fd5b613ad185828601613a52565b90969095509350505050565b60008060208385031215613af057600080fd5b823567ffffffffffffffff80821115613b0857600080fd5b818501915085601f830112613b1c57600080fd5b813581811115613b2b57600080fd5b8660208260051b8501011115613b4057600080fd5b60209290920196919550909350505050565b60008060408385031215613b6557600080fd5b8235613b7081613682565b915060208301356137de81613682565b600060208284031215613b9257600080fd5b813561248a81613682565b600080600060408486031215613bb257600080fd5b8335613bbd81613682565b9250602084013567ffffffffffffffff811115613bd957600080fd5b613be586828701613a52565b9497909650939450505050565b6000806000838503610140811215613c0957600080fd5b8435613c1481613682565b93506020850135613c2481613682565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613c5757600080fd5b506040840190509250925092565b600060208284031215613c7757600080fd5b813567ffffffffffffffff811115613c8e57600080fd5b8201610300818503121561248a57600080fd5b60008060408385031215613cb457600080fd5b8235613cbf81613682565b915060208301356137de81613801565b60008060008060808587031215613ce557600080fd5b8435613cf081613682565b9350602085810135613d0181613682565b935060408601359250606086013567ffffffffffffffff80821115613d2557600080fd5b818801915088601f830112613d3957600080fd5b813581811115613d4b57613d4b61386a565b613d7b847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016138c2565b91508082528984828501011115613d9157600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c90821680613dc557607f821691505b6020821081036137fb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b803565ffffffffffff8116811461381a57600080fd5b69ffffffffffffffffffff613e2882613911565b168252613e3760208201613dfe565b65ffffffffffff808216602085015280613e5360408501613dfe565b1660408501525050613e6760608201613953565b61ffff808216606085015280613e7f60808501613953565b166080850152505060a0810135613e9581613801565b80151560a0840152505050565b60c081016109e78284613e14565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176109e7576109e7613eb0565b600082613f2c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613faf57600080fd5b830160208101925035905067ffffffffffffffff811115613fcf57600080fd5b803603821315613a9457600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261401e57600080fd5b8401818101903567ffffffffffffffff81111561403a57600080fd5b8060051b80360383131561404d57600080fd5b6060848901529381905260809387018401938290880160005b838110156140be577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a880301825261409f8386613f7a565b6140aa898284613f31565b985050509185019190850190600101614066565b5050505050506140d16040840184613f7a565b85830360408701526140e4838284613f31565b9695505050505050565b60208152600061248a6020830184613fde565b6bffffffffffffffffffffffff8116811461147b57600080fd5b60006020828403121561412d57600080fd5b813561248a81614101565b813561414381613682565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff00000000000000000000000000000000000000008181845416178355602084013561419381614101565b60a01b1617905550565b73ffffffffffffffffffffffffffffffffffffffff83168152610100810161248a602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f821115610afd57600081815260208120601f850160051c810160208610156142585750805b601f850160051c820191505b81811015610c7657828155600101614264565b67ffffffffffffffff83111561428f5761428f61386a565b6142a38361429d8354613db1565b83614231565b6000601f8411600181146142f557600085156142bf5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556123ed565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156143445786850135825560209485019460019092019101614324565b508682101561437f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020815260006133ba602083018486613f31565b808201808211156109e7576109e7613eb0565b803563ffffffff8116811461381a57600080fd5b69ffffffffffffffffffff6143e082613911565b16825261ffff6143f260208301613953565b16602083015261440460408201613dfe565b65ffffffffffff80821660408501528061442060608501613dfe565b1660608501525050608081013560ff8116811461443c57600080fd5b60ff16608083015261445060a082016143b8565b63ffffffff1660a083015261446760c08201613953565b61ffff1660c083015261447c60e0820161380f565b80151560e0840152505050565b73ffffffffffffffffffffffffffffffffffffffff83168152610120810161248a60208301846143cc565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126144e957600080fd5b83018035915067ffffffffffffffff82111561450457600080fd5b602001915036819003821315613a9457600080fd5b60006020828403121561452b57600080fd5b61248a82613dfe565b73ffffffffffffffffffffffffffffffffffffffff8316815260e0810161248a6020830184613e14565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061458e604083018486613f31565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126145cb57600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006133ba6040830184613fde565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261463957600080fd5b83018035915067ffffffffffffffff82111561465457600080fd5b6020019150600581901b3603821315613a9457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126146d057600080fd5b83018035915067ffffffffffffffff8211156146eb57600080fd5b6020019150600881901b3603821315613a9457600080fd5b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261014081016133ba60408301846143cc565b60006101408201905073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525069ffffffffffffffffffff835116604083015261ffff602084015116606083015265ffffffffffff604084015116608083015260608301516147ae60a084018265ffffffffffff169052565b50608083015160ff811660c08401525060a083015163ffffffff811660e08401525060c083015161ffff81166101008401525060e08301518015156101208401525b50949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261482e57600080fd5b83018035915067ffffffffffffffff82111561484957600080fd5b602001915060e081023603821315613a9457600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610120810169ffffffffffffffffffff61489a84613911565b16604083015262ffffff6148b06020850161392b565b1660608301526148c26040840161393e565b64ffffffffff8082166080850152806148dd6060870161393e565b1660a0850152806148f06080870161393e565b1660c0850152505061490460a08401613953565b61ffff1660e083015261491960c08401613953565b61ffff81166101008401526147f0565b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261012081016133ba604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b600083516149d78184602088016135e8565b8351908301906149eb8183602088016135e8565b01949350505050565b600060208284031215614a0657600080fd5b815161248a81613801565b60208082528181018390526000908460408401835b86811015614a61578235614a3981613682565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101614a26565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526140e4608083018461360c565b600060208284031215614abd57600080fd5b815161248a8161359d56fea2646970667358221220a6631fc135eda6340a2482f0dc52a62efe2b341e779495a95ca1ed3db8a87f1864736f6c63430008110033

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.