ETH Price: $1,996.82 (+0.06%)
Gas: 0.4 Gwei
 

Overview

TokenID

810

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ScottiePippenSP33

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
default evmVersion
File 1 of 20 : ScottiePippenSP33.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";
import {IERC165} from "openzeppelin-contracts/utils/introspection/IERC165.sol";
import {ERC721PartnerSeaDrop} from "../ERC721PartnerSeaDrop.sol";
import {ERC721SeaDrop} from "../ERC721SeaDrop.sol";
/*
@@@@@@@@
@@@@@@@@@@@@@@@
@@@@@ @@ @ @ @@@@@
@@@@@@ @@ @ @ @@@@@@
@@@@ @@ @@ @ @ @@ @@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ @@ @ #@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ @@ @#@@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@ @@@@ @@ @@ @@@@ @@ @@@@@ @@@@
@@@@@ @@@@*@@ @@ @@@@ @@ @@@@ @@@@@
#@@@@ /@@@@@ @@@@@@ @@ @@@@,@@ @@@( @@@@@ @@@@@
@@@@ @@@@* @@@@@@ @@.@@@@@@@ @@@ @@@@ @@@@
@@@@& &@@@ @@@@@ @@@@@@@@@@@@@ @@@@ @@@@
@@@@ @@@ #@@@@ @@@@@@@@@@@@@ @@@ @@@@@
@@@@ @@@ @@@@(@@@@@@@@@@@@ @@@ @@@@
@@@@ @@ @@@@@@@@@@@@@@@@ @@ @@@@
@@@ @@ @@@@@@@@@@@@@@@ @ @@@(
@@@@ @@@@@@@@@@@@@ @@@
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 20 : 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 20 : 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 20 : 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 20 : 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 20 : 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 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);
function isRegistered(address addr) external returns (bool);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 20 : DefaultOperatorFilterer721.sol
1
2
3
4
5
6
7
8
9
10
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {OperatorFilterer721} from "./OperatorFilterer721.sol";
abstract contract DefaultOperatorFilterer721 is OperatorFilterer721 {
address constant DEFAULT_SUBSCRIPTION = address(0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6);
constructor() OperatorFilterer721(DEFAULT_SUBSCRIPTION, true) {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 20 : OperatorFilterer721.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";
abstract contract OperatorFilterer721 {
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry constant operatorFilterRegistry =
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(operatorFilterRegistry).code.length > 0) {
if (subscribe) {
operatorFilterRegistry.registerAndSubscribe(address(this), subscriptionOrRegistrantToCopy);
} else {
if (subscriptionOrRegistrantToCopy != address(0)) {
operatorFilterRegistry.registerAndCopyEntries(address(this), subscriptionOrRegistrantToCopy);
} else {
operatorFilterRegistry.register(address(this));
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 20 : 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 20 : 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 20 : TwoStepAdministered.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.0;
import {TwoStepOwnable} from "./TwoStepOwnable.sol";
contract TwoStepAdministered is TwoStepOwnable {
event AdministratorUpdated(
address indexed previousAdministrator,
address indexed newAdministrator
);
event PotentialAdministratorUpdated(address newPotentialAdministrator);
error OnlyAdministrator();
error OnlyOwnerOrAdministrator();
error NotNextAdministrator();
error NewAdministratorIsZeroAddress();
address public administrator;
address public potentialAdministrator;
modifier onlyAdministrator() virtual {
if (msg.sender != administrator) {
revert OnlyAdministrator();
}
_;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 20 : 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 13 of 20 : 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";
/**
* @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
ERC721A,
TwoStepOwnable,
ISeaDropTokenContractMetadata
{
/// @notice Throw if the max supply exceeds uint64, a limit
// due to the storage of bit-packed variables in ERC721A.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 20 : ERC721PartnerSeaDrop.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 { ERC721SeaDrop } from "./ERC721SeaDrop.sol";
import { ISeaDrop } from "./interfaces/ISeaDrop.sol";
import {
AllowListData,
PublicDrop,
TokenGatedDropStage,
SignedMintValidationParams
} from "./lib/SeaDropStructs.sol";
import { TwoStepAdministered } from "utility-contracts/TwoStepAdministered.sol";
/**
* @title ERC721PartnerSeaDrop
* @author James Wenzel (emo.eth)
* @author Ryan Ghods (ralxz.eth)
* @author Stephan Min (stephanm.eth)
* @notice ERC721PartnerSeaDrop is a token contract that contains methods
* to properly interact with SeaDrop, with additional administrative
* functionality tailored for business requirements around partnered
* mints with off-chain agreements in place between two parties.
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 20 : 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 { ERC721A } from "ERC721A/ERC721A.sol";
import { ReentrancyGuard } from "solmate/utils/ReentrancyGuard.sol";
import {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 20 : 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";
import {
IERC165
} from "openzeppelin-contracts/utils/introspection/IERC165.sol";
interface INonFungibleSeaDropToken is ISeaDropTokenContractMetadata, IERC165 {
/**
* @dev Revert with an error if a contract is not an allowed
* SeaDrop address.
*/
error OnlyAllowedSeaDrop();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 20 : 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 18 of 20 : 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;
interface ISeaDropTokenContractMetadata {
/**
* @dev Emit an event when the max token supply is updated.
*/
event MaxSupplyUpdated(uint256 newMaxSupply);
/**
* @dev Emit an event with the previous and new provenance hash after
* being updated.
*/
event ProvenanceHashUpdated(bytes32 previousHash, bytes32 newHash);
/**
* @dev Emit an event when the URI for the collection-level metadata
* is updated.
*/
event ContractURIUpdated(string newContractURI);
/**
* @dev Emit an event for partial reveals/updates.
* Batch update implementation should be left to contract.
*
* @param startTokenId The start token id.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 19 of 20 : 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 20 of 20 : 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/=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",
"userdoc",
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"administrator","type":"address"},{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AdministratorMustInitializeWithFee","type":"error"},{"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":[],"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":"NewAdministratorIsZeroAddress","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NotNextAdministrator","type":"error"},{"inputs":[],"name":"NotNextOwner","type":"error"},{"inputs":[],"name":"OnlyAdministrator","type":"error"},{"inputs":[],"name":"OnlyAllowedSeaDrop","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"OnlyOwnerOrAdministrator","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":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdministrator","type":"address"},{"indexed":true,"internalType":"address","name":"newAdministrator","type":"address"}],"name":"AdministratorUpdated","type":"event"},{"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":"PotentialAdministratorUpdated","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":"uint256","name":"value","type":"uint256"}],"name":"RoyaltiesPercentUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"RoyaltiesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newTermsURI","type":"string"}],"name":"TermsURIUpdated","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":"acceptAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"administrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelAdministrationTransfer","outputs":[],"stateMutability":"nonpayable","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":[],"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":"potentialAdministrator","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":"renounceAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royalties","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltyPercent","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":"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":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setRoyaltyPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newTermsURI","type":"string"}],"name":"setTermsURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"termsURI","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":"newAdministrator","type":"address"}],"name":"transferAdministration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"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"}]

60806040526001600e553480156200001657600080fd5b506040516200526b3803806200526b8339810160408190526200003991620004d2565b8383838381848483733cc6cdda760b79bafa08df41ecfa224f810dceb660018484818160026200006a838262000678565b50600362000079828262000678565b50506001600055506200008b62000273565b50506daaeb6d7670e522a718067333cd4e3b15620001d25780156200012057604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200010157600080fd5b505af115801562000116573d6000803e3d6000fd5b50505050620001d2565b6001600160a01b03821615620001715760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000e6565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001b857600080fd5b505af1158015620001cd573d6000803e3d6000fd5b505050505b5050805160005b8181101562000238576001600f6000858481518110620001fd57620001fd62000744565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620001d9565b5081516200024e9060109060208501906200035e565b50505050506200026481620002a060201b60201c565b5050505050505050506200075a565b303b15620002935760405162dc149f60e41b815260040160405180910390fd5b6200029e336200030c565b565b303b15620002c05760405162dc149f60e41b815260040160405180910390fd5b601180546001600160a01b0319166001600160a01b0383169081179091556040516000907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908290a350565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054828255906000526020600020908101928215620003b6579160200282015b82811115620003b657825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200037f565b50620003c4929150620003c8565b5090565b5b80821115620003c45760008155600101620003c9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620004205762000420620003df565b604052919050565b600082601f8301126200043a57600080fd5b81516001600160401b03811115620004565762000456620003df565b60206200046c601f8301601f19168201620003f5565b82815285828487010111156200048157600080fd5b60005b83811015620004a157858101830151828201840152820162000484565b506000928101909101919091529392505050565b80516001600160a01b0381168114620004cd57600080fd5b919050565b60008060008060808587031215620004e957600080fd5b84516001600160401b03808211156200050157600080fd5b6200050f8883890162000428565b95506020915081870151818111156200052757600080fd5b6200053589828a0162000428565b9550506200054660408801620004b5565b93506060870151818111156200055b57600080fd5b8701601f810189136200056d57600080fd5b805182811115620005825762000582620003df565b8060051b925062000595848401620003f5565b818152928201840192848101908b851115620005b057600080fd5b928501925b84841015620005d957620005c984620004b5565b82529285019290850190620005b5565b989b979a50959850505050505050565b600181811c90821680620005fe57607f821691505b6020821081036200061f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200067357600081815260208120601f850160051c810160208610156200064e5750805b601f850160051c820191505b818110156200066f578281556001016200065a565b5050505b505050565b81516001600160401b03811115620006945762000694620003df565b620006ac81620006a58454620005e9565b8462000625565b602080601f831160018114620006e45760008415620006cb5750858301515b600019600386901b1c1916600185901b1785556200066f565b600085815260208120601f198616915b828110156200071557888601518255948401946001909101908401620006f4565b5085821015620007345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b614b01806200076a6000396000f3fe60806040526004361061033f5760003560e01c80637a05bc82116101b0578063c6ab67a3116100ec578063e8a3d48511610095578063f053dc5c1161006f578063f053dc5c146109ab578063f2fde38b146109d6578063f53d0a8e146109f6578063f5c925d914610a2357600080fd5b8063e8a3d4851461092b578063e985e9c514610940578063f0025d961461099657600080fd5b8063cb743ba8116100c6578063cb743ba8146108c9578063d5abeb01146108e9578063d5e7feb8146108fe57600080fd5b8063c6ab67a31461087f578063c780b63d14610894578063c87b56dd146108a957600080fd5b806395d89b41116101595780639f67756d116101335780639f67756d1461080a578063a22cb4651461081f578063b81095a01461083f578063b88d4fde1461085f57600080fd5b806395d89b41146107c05780639794ed40146107d55780639a4fc640146107ea57600080fd5b80638da5cb5b1161018a5780638da5cb5b14610755578063913ee93d14610780578063938e3d7b146107a057600080fd5b80637a05bc82146106da5780637bc2be76146106fa578063840e15d41461071a57600080fd5b806342842e0e1161027f57806364869dad116102285780636f8b44b0116102025780636f8b44b01461067057806370a0823114610690578063715018a6146106b057806379ba5097146106c557600080fd5b806364869dad1461062857806366251b691461063b5780636c0360eb1461065b57600080fd5b806355f804b31161025957806355f804b3146105c857806360c308b6146105e85780636352211e1461060857600080fd5b806342842e0e1461056857806348a4c10114610588578063511aa644146105a857600080fd5b806318160ddd116102ec57806323b872dd116102c657806323b872dd146104bc5780632a55205a146104dc5780632a9e63c6146105285780633680620d1461054857600080fd5b806318160ddd146104425780631b73593c1461048757806323452b9c146104a757600080fd5b8063095ea7b31161031d578063095ea7b3146103e0578063099b6bfa1461040257806315922b281461042257600080fd5b806301ffc9a71461034457806306fdde0314610379578063081812fc1461039b575b600080fd5b34801561035057600080fd5b5061036461035f366004613898565b610a38565b60405190151581526020015b60405180910390f35b34801561038557600080fd5b5061038e610a94565b6040516103709190613923565b3480156103a757600080fd5b506103bb6103b6366004613936565b610b26565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610370565b3480156103ec57600080fd5b506104006103fb366004613978565b610b90565b005b34801561040e57600080fd5b5061040061041d366004613936565b610ca5565b34801561042e57600080fd5b5061040061043d3660046139a2565b610d4f565b34801561044e57600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610370565b34801561049357600080fd5b506104006104a23660046139c4565b610d88565b3480156104b357600080fd5b50610400611095565b3480156104c857600080fd5b506104006104d7366004613a21565b6110fc565b3480156104e857600080fd5b506104fc6104f73660046139a2565b6112c2565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610370565b34801561053457600080fd5b50610400610543366004613a5d565b611304565b34801561055457600080fd5b50610400610563366004613a78565b611386565b34801561057457600080fd5b50610400610583366004613a21565b6114e5565b34801561059457600080fd5b506104006105a3366004613ae6565b61169b565b3480156105b457600080fd5b506104006105c3366004613c7d565b6117e2565b3480156105d457600080fd5b506104006105e3366004613db0565b611aaf565b3480156105f457600080fd5b50610400610603366004613df2565b611af6565b34801561061457600080fd5b506103bb610623366004613936565b611b74565b610400610636366004613978565b611b7f565b34801561064757600080fd5b50610400610656366004613e67565b611c8f565b34801561066757600080fd5b5061038e611d51565b34801561067c57600080fd5b5061040061068b366004613936565b611d60565b34801561069c57600080fd5b506104796106ab366004613a5d565b611de2565b3480156106bc57600080fd5b50610400611e64565b3480156106d157600080fd5b50610400611e78565b3480156106e657600080fd5b506104006106f5366004613e9a565b611f32565b34801561070657600080fd5b50610400610715366004613eed565b61205c565b34801561072657600080fd5b5061073a610735366004613a5d565b6122ec565b60408051938452602084019290925290820152606001610370565b34801561076157600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff166103bb565b34801561078c57600080fd5b5061040061079b366004613a5d565b612359565b3480156107ac57600080fd5b506104006107bb366004613db0565b61246a565b3480156107cc57600080fd5b5061038e6124b1565b3480156107e157600080fd5b506104006124c0565b3480156107f657600080fd5b50610400610805366004613936565b61256a565b34801561081657600080fd5b50601354610479565b34801561082b57600080fd5b5061040061083a366004613f5c565b6125a7565b34801561084b57600080fd5b5061040061085a366004613db0565b61263e565b34801561086b57600080fd5b5061040061087a366004613f88565b612685565b34801561088b57600080fd5b50600d54610479565b3480156108a057600080fd5b50610400612849565b3480156108b557600080fd5b5061038e6108c4366004613936565b6128f1565b3480156108d557600080fd5b506104006108e4366004613ae6565b61298e565b3480156108f557600080fd5b50600a54610479565b34801561090a57600080fd5b506012546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561093757600080fd5b5061038e612ac0565b34801561094c57600080fd5b5061036461095b366004613e67565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156109a257600080fd5b50610400612acf565b3480156109b757600080fd5b5060145473ffffffffffffffffffffffffffffffffffffffff166103bb565b3480156109e257600080fd5b506104006109f1366004613a5d565b612b55565b348015610a0257600080fd5b506011546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a2f57600080fd5b5061038e612c1d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a000000000000000000000000000000000000000000000000000000001480610a8e5750610a8e82612c2c565b92915050565b606060028054610aa390614066565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90614066565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b6000610b3182612cce565b610b67576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9b82611b74565b90503373ffffffffffffffffffffffffffffffffffffffff821614610c245773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610c24576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610cad612d1c565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610d09576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b610d57612d1c565b604051819083907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a35050565b60085473ffffffffffffffffffffffffffffffffffffffff163314610df85760115473ffffffffffffffffffffffffffffffffffffffff163314610df8576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff161515600114610e5e576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fbc6a629c00000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff85169063bc6a629c9060240160c060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef91906140ee565b90506000610f0236859003850185614186565b60115490915073ffffffffffffffffffffffffffffffffffffffff163314610f8057816060015161ffff16600003610f66576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808083015161ffff1690820152600160a0820152610fba565b606082015161ffff8116610f95576001610f97565b805b61ffff9081166060850152608092830151169183019190915250600160a0820152805b604080517f01308e65000000000000000000000000000000000000000000000000000000008152825169ffffffffffffffffffff166004820152602083015165ffffffffffff9081166024830152918301519091166044820152606082015161ffff9081166064830152608083015116608482015260a0820151151560a482015273ffffffffffffffffffffffffffffffffffffffff8616906301308e659060c401600060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050505050505050565b61109d612d1c565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020015b60405180910390a1565b826daaeb6d7670e522a718067333cd4e3b156112b1573373ffffffffffffffffffffffffffffffffffffffff82160361113f5761113a848484612d6d565b6112bc565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb9190614207565b801561127457506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190614207565b6112b1576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6112bc848484612d6d565b50505050565b6000806013546064846112d59190614253565b6112df919061428e565b60145473ffffffffffffffffffffffffffffffffffffffff16925090505b9250929050565b61130c612d1c565b601480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd5419617a76058d936d9c770696e69d21dbd0fed8e2a7efd13761089591f4bea906020015b60405180910390a150565b60085473ffffffffffffffffffffffffffffffffffffffff1633146113f65760115473ffffffffffffffffffffffffffffffffffffffff1633146113f6576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff16151560011461145c576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063ebb4a55f906114ae908590600401614352565b600060405180830381600087803b1580156114c857600080fd5b505af11580156114dc573d6000803e3d6000fd5b50505050505050565b826daaeb6d7670e522a718067333cd4e3b15611690573373ffffffffffffffffffffffffffffffffffffffff8216036115235761113a848484613027565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190614207565b801561165857506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116589190614207565b611690576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024016112a8565b6112bc848484613027565b60115473ffffffffffffffffffffffffffffffffffffffff1633146116ec576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114611752576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528315156024830152851690638e7d1e43906044015b600060405180830381600087803b1580156117c457600080fd5b505af11580156117d8573d6000803e3d6000fd5b5050505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146118525760115473ffffffffffffffffffffffffffffffffffffffff163314611852576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff1615156001146118b8576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f81bf9af300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8481166024830152600091908616906381bf9af39060440160e060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190614496565b601154909150839073ffffffffffffffffffffffffffffffffffffffff1633146119de57816020015162ffffff166000036119b9576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a08083015161ffff9081169183019190915260c08084015190911690820152611a21565b602082015162ffffff81166119f45760016119f6565b805b62ffffff1660208401525060a08082015161ffff9081169184019190915260c0918201511690820152805b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690634d38017890611a75908890859060040161454e565b600060405180830381600087803b158015611a8f57600080fd5b505af1158015611aa3573d6000803e3d6000fd5b50505050505050505050565b611ab7612d1c565b600b611ac4828483614633565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610d4392919061474d565b60085473ffffffffffffffffffffffffffffffffffffffff163314611b665760115473ffffffffffffffffffffffffffffffffffffffff163314611b66576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b708282613042565b5050565b6000610a8e826131b2565b336000818152600f602052604090205460ff161515600114611bcd576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5482611bfc6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b611c069190614761565b1115611c805781611c386000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b611c429190614761565b600a546040517fe12d2314000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016112a8565b611c8a8383613271565b505050565b611c97612d1c565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff161515600114611cfd576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906312738db8906024016114ae565b6060611d5b6133af565b905090565b611d68612d1c565b67ffffffffffffffff811115611dad576040517fb43e9137000000000000000000000000000000000000000000000000000000008152600481018290526024016112a8565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200161137b565b600073ffffffffffffffffffffffffffffffffffffffff8216611e31576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b611e6c612d1c565b611e7660006133be565b565b60095473ffffffffffffffffffffffffffffffffffffffff16338114611eca576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1611f2f816133be565b50565b60085473ffffffffffffffffffffffffffffffffffffffff163314611fa25760115473ffffffffffffffffffffffffffffffffffffffff163314611fa2576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612008576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b957d0cb906117aa908690869060040161474d565b60085473ffffffffffffffffffffffffffffffffffffffff1633146120cc5760115473ffffffffffffffffffffffffffffffffffffffff1633146120cc576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612132576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0b0e8a6e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff848116602483015260009190861690630b0e8a6e9060440161010060405180830381865afa1580156121a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cd91906147ab565b905060006121e036859003850185614869565b60115490915073ffffffffffffffffffffffffffffffffffffffff16331461225e57816020015161ffff16600003612244576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c08083015161ffff1690820152600160e0820152612298565b602082015161ffff8116612273576001612275565b805b61ffff908116602085015260c092830151169183019190915250600160e0820152805b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063fd9ab22a90611a759088908590600401614905565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff16908061234c6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b60115473ffffffffffffffffffffffffffffffffffffffff1633146123aa576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166123f7576040517fd4daf9fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f9060200161137b565b612472612d1c565b600c61247f828483614633565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610d4392919061474d565b606060038054610aa390614066565b60115473ffffffffffffffffffffffffffffffffffffffff163314612511576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f906020016110f2565b612572612d1c565b60138190556040518181527f54784f0a8e965ac071087c7e741edc40068899b397593f3bd57fbb1c494688419060200161137b565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612646612d1c565b6015612653828483614633565b507f3185899364ca0af6bd6989e3742bf89f0f430b43bb3f84e3380c7c08595854ae8282604051610d4392919061474d565b836daaeb6d7670e522a718067333cd4e3b15612836573373ffffffffffffffffffffffffffffffffffffffff8216036126c9576126c485858585613435565b612842565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015612731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127559190614207565b80156127fe57506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156127da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fe9190614207565b612836576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024016112a8565b61284285858585613435565b5050505050565b60115473ffffffffffffffffffffffffffffffffffffffff16331461289a576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560405160009033907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908390a3565b60606128fc82612cce565b612932576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061293c6133af565b9050805160000361295c5760405180602001604052806000815250612987565b806129668461349f565b6040516020016129779291906149b8565b6040516020818303038152906040525b9392505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146129fe5760115473ffffffffffffffffffffffffffffffffffffffff1633146129fe576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612a64576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528315156024830152851690637f2a5cca906044016117aa565b6060600c8054610aa390614066565b60125473ffffffffffffffffffffffffffffffffffffffff16338114612b21576040517f53bb059b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b2a81613501565b50601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b612b5d612d1c565b73ffffffffffffffffffffffffffffffffffffffff8116612baa576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200161137b565b606060158054610aa390614066565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e000000000000000000000000000000000000000000000000000000001480612cbf57507fffffffff0000000000000000000000000000000000000000000000000000000082167f37c62e4e00000000000000000000000000000000000000000000000000000000145b80610a8e5750610a8e82613572565b600081600111158015612ce2575060005482105b8015610a8e5750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b60085473ffffffffffffffffffffffffffffffffffffffff163314611e76576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d78826131b2565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ddf576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612e7c5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612e7c576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612ec9576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612ed457600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612fc357600184016000818152600460205260408120549003612fc1576000548114612fc15760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b611c8a83838360405180602001604052806000815250612685565b6010548160005b828110156130d1576000600f60006010848154811061306a5761306a6149e7565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613049565b5060005b81811015613165576001600f60008787858181106130f5576130f56149e7565b905060200201602081019061310a9190613a5d565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016130d5565b50613172601085856137cd565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d84846040516131a4929190614a16565b60405180910390a150505050565b6000818060011161323f5760005481101561323f57600081815260046020526040812054907c01000000000000000000000000000000000000000000000000000000008216900361323d575b8060000361298757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016000818152600460205260409020546131fe565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054908290036132af576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461336b57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613333565b50816000036133a6576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6060600b8054610aa390614066565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6134408484846110fc565b73ffffffffffffffffffffffffffffffffffffffff83163b156112bc5761346984848484613653565b6112bc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806134b957508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b601180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d8312290600090a350565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061360557507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610a8e5750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906136ae903390899088908890600401614a6f565b6020604051808303816000875af1925050508015613707575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261370491810190614aae565b60015b61377e573d808015613735576040519150601f19603f3d011682016040523d82523d6000602084013e61373a565b606091505b508051600003613776576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b828054828255906000526020600020908101928215613845579160200282015b828111156138455781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906137ed565b50613851929150613855565b5090565b5b808211156138515760008155600101613856565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611f2f57600080fd5b6000602082840312156138aa57600080fd5b81356129878161386a565b60005b838110156138d05781810151838201526020016138b8565b50506000910152565b600081518084526138f18160208601602086016138b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061298760208301846138d9565b60006020828403121561394857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461397357600080fd5b919050565b6000806040838503121561398b57600080fd5b6139948361394f565b946020939093013593505050565b600080604083850312156139b557600080fd5b50508035926020909101359150565b60008082840360e08112156139d857600080fd5b6139e18461394f565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215613a1357600080fd5b506020830190509250929050565b600080600060608486031215613a3657600080fd5b613a3f8461394f565b9250613a4d6020850161394f565b9150604084013590509250925092565b600060208284031215613a6f57600080fd5b6129878261394f565b60008060408385031215613a8b57600080fd5b613a948361394f565b9150602083013567ffffffffffffffff811115613ab057600080fd5b830160608186031215613ac257600080fd5b809150509250929050565b8015158114611f2f57600080fd5b803561397381613acd565b600080600060608486031215613afb57600080fd5b613b048461394f565b9250613b126020850161394f565b91506040840135613b2281613acd565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b60405290565b60405160c0810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b604051610100810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c1357613c13613b2d565b604052919050565b69ffffffffffffffffffff81168114611f2f57600080fd5b62ffffff81168114611f2f57600080fd5b64ffffffffff81168114611f2f57600080fd5b803561397381613c44565b61ffff81168114611f2f57600080fd5b803561397381613c62565b6000806000838503610120811215613c9457600080fd5b613c9d8561394f565b9350613cab6020860161394f565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613cdd57600080fd5b50613ce6613b5c565b6040850135613cf481613c1b565b81526060850135613d0481613c33565b60208201526080850135613d1781613c44565b604082015260a0850135613d2a81613c44565b6060820152613d3b60c08601613c57565b6080820152613d4c60e08601613c72565b60a0820152613d5e6101008601613c72565b60c0820152809150509250925092565b60008083601f840112613d8057600080fd5b50813567ffffffffffffffff811115613d9857600080fd5b6020830191508360208285010111156112fd57600080fd5b60008060208385031215613dc357600080fd5b823567ffffffffffffffff811115613dda57600080fd5b613de685828601613d6e565b90969095509350505050565b60008060208385031215613e0557600080fd5b823567ffffffffffffffff80821115613e1d57600080fd5b818501915085601f830112613e3157600080fd5b813581811115613e4057600080fd5b8660208260051b8501011115613e5557600080fd5b60209290920196919550909350505050565b60008060408385031215613e7a57600080fd5b613e838361394f565b9150613e916020840161394f565b90509250929050565b600080600060408486031215613eaf57600080fd5b613eb88461394f565b9250602084013567ffffffffffffffff811115613ed457600080fd5b613ee086828701613d6e565b9497909650939450505050565b6000806000838503610140811215613f0457600080fd5b613f0d8561394f565b9350613f1b6020860161394f565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613f4e57600080fd5b506040840190509250925092565b60008060408385031215613f6f57600080fd5b613f788361394f565b91506020830135613ac281613acd565b60008060008060808587031215613f9e57600080fd5b613fa78561394f565b93506020613fb681870161394f565b935060408601359250606086013567ffffffffffffffff80821115613fda57600080fd5b818801915088601f830112613fee57600080fd5b81358181111561400057614000613b2d565b614030847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613bcc565b9150808252898482850101111561404657600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c9082168061407a57607f821691505b6020821081036140b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b65ffffffffffff81168114611f2f57600080fd5b8051613973816140b9565b805161397381613c62565b805161397381613acd565b600060c0828403121561410057600080fd5b614108613b85565b825161411381613c1b565b81526020830151614123816140b9565b60208201526040830151614136816140b9565b6040820152606083015161414981613c62565b6060820152608083015161415c81613c62565b608082015260a083015161416f81613acd565b60a08201529392505050565b8035613973816140b9565b600060c0828403121561419857600080fd5b6141a0613b85565b82356141ab81613c1b565b815260208301356141bb816140b9565b602082015260408301356141ce816140b9565b604082015260608301356141e181613c62565b606082015260808301356141f481613c62565b608082015260a083013561416f81613acd565b60006020828403121561421957600080fd5b815161298781613acd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082614289577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082028115828204841417610a8e57610a8e614224565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261432357600080fd5b830160208101925035905067ffffffffffffffff81111561434357600080fd5b8036038213156112fd57600080fd5b6000602080835260808301843582850152818501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261439757600080fd5b8501828101903567ffffffffffffffff8111156143b357600080fd5b8060051b8036038313156143c657600080fd5b606060408801529281905260a09286018301928290870160005b83811015614438577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6089870301825261441983866142ee565b6144248882846142a5565b9750505091860191908601906001016143e0565b505050505061444a60408601866142ee565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08583030160608601526144818284836142a5565b9695505050505050565b805161397381613c44565b600060e082840312156144a857600080fd5b60405160e0810181811067ffffffffffffffff821117156144cb576144cb613b2d565b60405282516144d981613c1b565b815260208301516144e981613c33565b602082015260408301516144fc81613c44565b6040820152606083015161450f81613c44565b60608201526145206080840161448b565b608082015261453160a084016140d8565b60a082015261454260c084016140d8565b60c08201529392505050565b60006101008201905073ffffffffffffffffffffffffffffffffffffffff8416825269ffffffffffffffffffff835116602083015262ffffff6020840151166040830152604083015164ffffffffff80821660608501528060608601511660808501528060808601511660a0850152505060a08301516145d460c084018261ffff169052565b5060c083015161ffff811660e08401525b509392505050565b601f821115611c8a57600081815260208120601f850160051c810160208610156146145750805b601f850160051c820191505b8181101561301f57828155600101614620565b67ffffffffffffffff83111561464b5761464b613b2d565b61465f836146598354614066565b836145ed565b6000601f8411600181146146b1576000851561467b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612842565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561470057868501358255602094850194600190920191016146e0565b508682101561473b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020815260006137c56020830184866142a5565b80820180821115610a8e57610a8e614224565b60ff81168114611f2f57600080fd5b805161397381614774565b63ffffffff81168114611f2f57600080fd5b80516139738161478e565b600061010082840312156147be57600080fd5b6147c6613ba8565b82516147d181613c1b565b815260208301516147e181613c62565b60208201526147f2604084016140cd565b6040820152614803606084016140cd565b606082015261481460808401614783565b608082015261482560a084016147a0565b60a082015261483660c084016140d8565b60c082015261484760e084016140e3565b60e08201529392505050565b803561397381614774565b80356139738161478e565b6000610100828403121561487c57600080fd5b614884613ba8565b823561488f81613c1b565b8152602083013561489f81613c62565b60208201526148b06040840161417b565b60408201526148c16060840161417b565b60608201526148d260808401614853565b60808201526148e360a0840161485e565b60a08201526148f460c08401613c72565b60c082015261484760e08401613adb565b60006101208201905073ffffffffffffffffffffffffffffffffffffffff8416825269ffffffffffffffffffff835116602083015261ffff602084015116604083015265ffffffffffff60408401511660608301526060830151614973608084018265ffffffffffff169052565b50608083015160ff811660a08401525060a083015163ffffffff811660c08401525060c083015161ffff811660e08401525060e08301518015156101008401526145e5565b600083516149ca8184602088016138b5565b8351908301906149de8183602088016138b5565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208082528181018390526000908460408401835b86811015614a645773ffffffffffffffffffffffffffffffffffffffff614a518461394f565b1682529183019190830190600101614a2b565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261448160808301846138d9565b600060208284031215614ac057600080fd5b81516129878161386a56fea2646970667358221220b28c5312dad0729f87375f526c9ff3f32b55d15c93e58552b259fc6a763ab6c464736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004468a5b725e2c63056131121cd33b66848e1dd870000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001353636f747469652050697070656e205350333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000001353434f545449452d50495050454e2d5350333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5

Deployed Bytecode

0x60806040526004361061033f5760003560e01c80637a05bc82116101b0578063c6ab67a3116100ec578063e8a3d48511610095578063f053dc5c1161006f578063f053dc5c146109ab578063f2fde38b146109d6578063f53d0a8e146109f6578063f5c925d914610a2357600080fd5b8063e8a3d4851461092b578063e985e9c514610940578063f0025d961461099657600080fd5b8063cb743ba8116100c6578063cb743ba8146108c9578063d5abeb01146108e9578063d5e7feb8146108fe57600080fd5b8063c6ab67a31461087f578063c780b63d14610894578063c87b56dd146108a957600080fd5b806395d89b41116101595780639f67756d116101335780639f67756d1461080a578063a22cb4651461081f578063b81095a01461083f578063b88d4fde1461085f57600080fd5b806395d89b41146107c05780639794ed40146107d55780639a4fc640146107ea57600080fd5b80638da5cb5b1161018a5780638da5cb5b14610755578063913ee93d14610780578063938e3d7b146107a057600080fd5b80637a05bc82146106da5780637bc2be76146106fa578063840e15d41461071a57600080fd5b806342842e0e1161027f57806364869dad116102285780636f8b44b0116102025780636f8b44b01461067057806370a0823114610690578063715018a6146106b057806379ba5097146106c557600080fd5b806364869dad1461062857806366251b691461063b5780636c0360eb1461065b57600080fd5b806355f804b31161025957806355f804b3146105c857806360c308b6146105e85780636352211e1461060857600080fd5b806342842e0e1461056857806348a4c10114610588578063511aa644146105a857600080fd5b806318160ddd116102ec57806323b872dd116102c657806323b872dd146104bc5780632a55205a146104dc5780632a9e63c6146105285780633680620d1461054857600080fd5b806318160ddd146104425780631b73593c1461048757806323452b9c146104a757600080fd5b8063095ea7b31161031d578063095ea7b3146103e0578063099b6bfa1461040257806315922b281461042257600080fd5b806301ffc9a71461034457806306fdde0314610379578063081812fc1461039b575b600080fd5b34801561035057600080fd5b5061036461035f366004613898565b610a38565b60405190151581526020015b60405180910390f35b34801561038557600080fd5b5061038e610a94565b6040516103709190613923565b3480156103a757600080fd5b506103bb6103b6366004613936565b610b26565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610370565b3480156103ec57600080fd5b506104006103fb366004613978565b610b90565b005b34801561040e57600080fd5b5061040061041d366004613936565b610ca5565b34801561042e57600080fd5b5061040061043d3660046139a2565b610d4f565b34801561044e57600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610370565b34801561049357600080fd5b506104006104a23660046139c4565b610d88565b3480156104b357600080fd5b50610400611095565b3480156104c857600080fd5b506104006104d7366004613a21565b6110fc565b3480156104e857600080fd5b506104fc6104f73660046139a2565b6112c2565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610370565b34801561053457600080fd5b50610400610543366004613a5d565b611304565b34801561055457600080fd5b50610400610563366004613a78565b611386565b34801561057457600080fd5b50610400610583366004613a21565b6114e5565b34801561059457600080fd5b506104006105a3366004613ae6565b61169b565b3480156105b457600080fd5b506104006105c3366004613c7d565b6117e2565b3480156105d457600080fd5b506104006105e3366004613db0565b611aaf565b3480156105f457600080fd5b50610400610603366004613df2565b611af6565b34801561061457600080fd5b506103bb610623366004613936565b611b74565b610400610636366004613978565b611b7f565b34801561064757600080fd5b50610400610656366004613e67565b611c8f565b34801561066757600080fd5b5061038e611d51565b34801561067c57600080fd5b5061040061068b366004613936565b611d60565b34801561069c57600080fd5b506104796106ab366004613a5d565b611de2565b3480156106bc57600080fd5b50610400611e64565b3480156106d157600080fd5b50610400611e78565b3480156106e657600080fd5b506104006106f5366004613e9a565b611f32565b34801561070657600080fd5b50610400610715366004613eed565b61205c565b34801561072657600080fd5b5061073a610735366004613a5d565b6122ec565b60408051938452602084019290925290820152606001610370565b34801561076157600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff166103bb565b34801561078c57600080fd5b5061040061079b366004613a5d565b612359565b3480156107ac57600080fd5b506104006107bb366004613db0565b61246a565b3480156107cc57600080fd5b5061038e6124b1565b3480156107e157600080fd5b506104006124c0565b3480156107f657600080fd5b50610400610805366004613936565b61256a565b34801561081657600080fd5b50601354610479565b34801561082b57600080fd5b5061040061083a366004613f5c565b6125a7565b34801561084b57600080fd5b5061040061085a366004613db0565b61263e565b34801561086b57600080fd5b5061040061087a366004613f88565b612685565b34801561088b57600080fd5b50600d54610479565b3480156108a057600080fd5b50610400612849565b3480156108b557600080fd5b5061038e6108c4366004613936565b6128f1565b3480156108d557600080fd5b506104006108e4366004613ae6565b61298e565b3480156108f557600080fd5b50600a54610479565b34801561090a57600080fd5b506012546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561093757600080fd5b5061038e612ac0565b34801561094c57600080fd5b5061036461095b366004613e67565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156109a257600080fd5b50610400612acf565b3480156109b757600080fd5b5060145473ffffffffffffffffffffffffffffffffffffffff166103bb565b3480156109e257600080fd5b506104006109f1366004613a5d565b612b55565b348015610a0257600080fd5b506011546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b348015610a2f57600080fd5b5061038e612c1d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a000000000000000000000000000000000000000000000000000000001480610a8e5750610a8e82612c2c565b92915050565b606060028054610aa390614066565b80601f0160208091040260200160405190810160405280929190818152602001828054610acf90614066565b8015610b1c5780601f10610af157610100808354040283529160200191610b1c565b820191906000526020600020905b815481529060010190602001808311610aff57829003601f168201915b5050505050905090565b6000610b3182612cce565b610b67576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000610b9b82611b74565b90503373ffffffffffffffffffffffffffffffffffffffff821614610c245773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610c24576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610cad612d1c565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610d09576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b610d57612d1c565b604051819083907fa367e77d52123b7db91661964f869e6d260e9050507402788a87ca8ad38687e790600090a35050565b60085473ffffffffffffffffffffffffffffffffffffffff163314610df85760115473ffffffffffffffffffffffffffffffffffffffff163314610df8576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff161515600114610e5e576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fbc6a629c00000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff85169063bc6a629c9060240160c060405180830381865afa158015610ecb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eef91906140ee565b90506000610f0236859003850185614186565b60115490915073ffffffffffffffffffffffffffffffffffffffff163314610f8057816060015161ffff16600003610f66576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808083015161ffff1690820152600160a0820152610fba565b606082015161ffff8116610f95576001610f97565b805b61ffff9081166060850152608092830151169183019190915250600160a0820152805b604080517f01308e65000000000000000000000000000000000000000000000000000000008152825169ffffffffffffffffffff166004820152602083015165ffffffffffff9081166024830152918301519091166044820152606082015161ffff9081166064830152608083015116608482015260a0820151151560a482015273ffffffffffffffffffffffffffffffffffffffff8616906301308e659060c401600060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050505050505050565b61109d612d1c565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020015b60405180910390a1565b826daaeb6d7670e522a718067333cd4e3b156112b1573373ffffffffffffffffffffffffffffffffffffffff82160361113f5761113a848484612d6d565b6112bc565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156111a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cb9190614207565b801561127457506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611250573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112749190614207565b6112b1576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6112bc848484612d6d565b50505050565b6000806013546064846112d59190614253565b6112df919061428e565b60145473ffffffffffffffffffffffffffffffffffffffff16925090505b9250929050565b61130c612d1c565b601480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd5419617a76058d936d9c770696e69d21dbd0fed8e2a7efd13761089591f4bea906020015b60405180910390a150565b60085473ffffffffffffffffffffffffffffffffffffffff1633146113f65760115473ffffffffffffffffffffffffffffffffffffffff1633146113f6576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff16151560011461145c576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063ebb4a55f906114ae908590600401614352565b600060405180830381600087803b1580156114c857600080fd5b505af11580156114dc573d6000803e3d6000fd5b50505050505050565b826daaeb6d7670e522a718067333cd4e3b15611690573373ffffffffffffffffffffffffffffffffffffffff8216036115235761113a848484613027565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa15801561158b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115af9190614207565b801561165857506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611634573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116589190614207565b611690576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024016112a8565b6112bc848484613027565b60115473ffffffffffffffffffffffffffffffffffffffff1633146116ec576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114611752576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528315156024830152851690638e7d1e43906044015b600060405180830381600087803b1580156117c457600080fd5b505af11580156117d8573d6000803e3d6000fd5b5050505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146118525760115473ffffffffffffffffffffffffffffffffffffffff163314611852576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff1615156001146118b8576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f81bf9af300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8481166024830152600091908616906381bf9af39060440160e060405180830381865afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190614496565b601154909150839073ffffffffffffffffffffffffffffffffffffffff1633146119de57816020015162ffffff166000036119b9576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a08083015161ffff9081169183019190915260c08084015190911690820152611a21565b602082015162ffffff81166119f45760016119f6565b805b62ffffff1660208401525060a08082015161ffff9081169184019190915260c0918201511690820152805b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff871690634d38017890611a75908890859060040161454e565b600060405180830381600087803b158015611a8f57600080fd5b505af1158015611aa3573d6000803e3d6000fd5b50505050505050505050565b611ab7612d1c565b600b611ac4828483614633565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad8282604051610d4392919061474d565b60085473ffffffffffffffffffffffffffffffffffffffff163314611b665760115473ffffffffffffffffffffffffffffffffffffffff163314611b66576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b708282613042565b5050565b6000610a8e826131b2565b336000818152600f602052604090205460ff161515600114611bcd576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5482611bfc6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b611c069190614761565b1115611c805781611c386000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b611c429190614761565b600a546040517fe12d2314000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016112a8565b611c8a8383613271565b505050565b611c97612d1c565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600f6020526040902054829060ff161515600114611cfd576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528416906312738db8906024016114ae565b6060611d5b6133af565b905090565b611d68612d1c565b67ffffffffffffffff811115611dad576040517fb43e9137000000000000000000000000000000000000000000000000000000008152600481018290526024016112a8565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c9060200161137b565b600073ffffffffffffffffffffffffffffffffffffffff8216611e31576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b611e6c612d1c565b611e7660006133be565b565b60095473ffffffffffffffffffffffffffffffffffffffff16338114611eca576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1611f2f816133be565b50565b60085473ffffffffffffffffffffffffffffffffffffffff163314611fa25760115473ffffffffffffffffffffffffffffffffffffffff163314611fa2576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612008576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063b957d0cb906117aa908690869060040161474d565b60085473ffffffffffffffffffffffffffffffffffffffff1633146120cc5760115473ffffffffffffffffffffffffffffffffffffffff1633146120cc576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612132576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f0b0e8a6e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff848116602483015260009190861690630b0e8a6e9060440161010060405180830381865afa1580156121a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cd91906147ab565b905060006121e036859003850185614869565b60115490915073ffffffffffffffffffffffffffffffffffffffff16331461225e57816020015161ffff16600003612244576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c08083015161ffff1690820152600160e0820152612298565b602082015161ffff8116612273576001612275565b805b61ffff908116602085015260c092830151169183019190915250600160e0820152805b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063fd9ab22a90611a759088908590600401614905565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff16908061234c6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b60115473ffffffffffffffffffffffffffffffffffffffff1633146123aa576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166123f7576040517fd4daf9fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f9060200161137b565b612472612d1c565b600c61247f828483614633565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610d4392919061474d565b606060038054610aa390614066565b60115473ffffffffffffffffffffffffffffffffffffffff163314612511576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f906020016110f2565b612572612d1c565b60138190556040518181527f54784f0a8e965ac071087c7e741edc40068899b397593f3bd57fbb1c494688419060200161137b565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612646612d1c565b6015612653828483614633565b507f3185899364ca0af6bd6989e3742bf89f0f430b43bb3f84e3380c7c08595854ae8282604051610d4392919061474d565b836daaeb6d7670e522a718067333cd4e3b15612836573373ffffffffffffffffffffffffffffffffffffffff8216036126c9576126c485858585613435565b612842565b6040517fc61711340000000000000000000000000000000000000000000000000000000081523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015612731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127559190614207565b80156127fe57506040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156127da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127fe9190614207565b612836576040517fede71dcc0000000000000000000000000000000000000000000000000000000081523360048201526024016112a8565b61284285858585613435565b5050505050565b60115473ffffffffffffffffffffffffffffffffffffffff16331461289a576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560405160009033907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908390a3565b60606128fc82612cce565b612932576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061293c6133af565b9050805160000361295c5760405180602001604052806000815250612987565b806129668461349f565b6040516020016129779291906149b8565b6040516020818303038152906040525b9392505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146129fe5760115473ffffffffffffffffffffffffffffffffffffffff1633146129fe576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166000908152600f6020526040902054839060ff161515600114612a64576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301528315156024830152851690637f2a5cca906044016117aa565b6060600c8054610aa390614066565b60125473ffffffffffffffffffffffffffffffffffffffff16338114612b21576040517f53bb059b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b2a81613501565b50601280547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b612b5d612d1c565b73ffffffffffffffffffffffffffffffffffffffff8116612baa576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200161137b565b606060158054610aa390614066565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e000000000000000000000000000000000000000000000000000000001480612cbf57507fffffffff0000000000000000000000000000000000000000000000000000000082167f37c62e4e00000000000000000000000000000000000000000000000000000000145b80610a8e5750610a8e82613572565b600081600111158015612ce2575060005482105b8015610a8e5750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b60085473ffffffffffffffffffffffffffffffffffffffff163314611e76576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d78826131b2565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ddf576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612e7c5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612e7c576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612ec9576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612ed457600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612fc357600184016000818152600460205260408120549003612fc1576000548114612fc15760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b611c8a83838360405180602001604052806000815250612685565b6010548160005b828110156130d1576000600f60006010848154811061306a5761306a6149e7565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613049565b5060005b81811015613165576001600f60008787858181106130f5576130f56149e7565b905060200201602081019061310a9190613a5d565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016130d5565b50613172601085856137cd565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d84846040516131a4929190614a16565b60405180910390a150505050565b6000818060011161323f5760005481101561323f57600081815260046020526040812054907c01000000000000000000000000000000000000000000000000000000008216900361323d575b8060000361298757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016000818152600460205260409020546131fe565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008054908290036132af576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461336b57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613333565b50816000036133a6576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6060600b8054610aa390614066565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6134408484846110fc565b73ffffffffffffffffffffffffffffffffffffffff83163b156112bc5761346984848484613653565b6112bc576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806134b957508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b601180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d8312290600090a350565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061360557507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610a8e5750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906136ae903390899088908890600401614a6f565b6020604051808303816000875af1925050508015613707575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261370491810190614aae565b60015b61377e573d808015613735576040519150601f19603f3d011682016040523d82523d6000602084013e61373a565b606091505b508051600003613776576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b828054828255906000526020600020908101928215613845579160200282015b828111156138455781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906137ed565b50613851929150613855565b5090565b5b808211156138515760008155600101613856565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611f2f57600080fd5b6000602082840312156138aa57600080fd5b81356129878161386a565b60005b838110156138d05781810151838201526020016138b8565b50506000910152565b600081518084526138f18160208601602086016138b5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061298760208301846138d9565b60006020828403121561394857600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461397357600080fd5b919050565b6000806040838503121561398b57600080fd5b6139948361394f565b946020939093013593505050565b600080604083850312156139b557600080fd5b50508035926020909101359150565b60008082840360e08112156139d857600080fd5b6139e18461394f565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215613a1357600080fd5b506020830190509250929050565b600080600060608486031215613a3657600080fd5b613a3f8461394f565b9250613a4d6020850161394f565b9150604084013590509250925092565b600060208284031215613a6f57600080fd5b6129878261394f565b60008060408385031215613a8b57600080fd5b613a948361394f565b9150602083013567ffffffffffffffff811115613ab057600080fd5b830160608186031215613ac257600080fd5b809150509250929050565b8015158114611f2f57600080fd5b803561397381613acd565b600080600060608486031215613afb57600080fd5b613b048461394f565b9250613b126020850161394f565b91506040840135613b2281613acd565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b60405290565b60405160c0810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b604051610100810167ffffffffffffffff81118282101715613b7f57613b7f613b2d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c1357613c13613b2d565b604052919050565b69ffffffffffffffffffff81168114611f2f57600080fd5b62ffffff81168114611f2f57600080fd5b64ffffffffff81168114611f2f57600080fd5b803561397381613c44565b61ffff81168114611f2f57600080fd5b803561397381613c62565b6000806000838503610120811215613c9457600080fd5b613c9d8561394f565b9350613cab6020860161394f565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613cdd57600080fd5b50613ce6613b5c565b6040850135613cf481613c1b565b81526060850135613d0481613c33565b60208201526080850135613d1781613c44565b604082015260a0850135613d2a81613c44565b6060820152613d3b60c08601613c57565b6080820152613d4c60e08601613c72565b60a0820152613d5e6101008601613c72565b60c0820152809150509250925092565b60008083601f840112613d8057600080fd5b50813567ffffffffffffffff811115613d9857600080fd5b6020830191508360208285010111156112fd57600080fd5b60008060208385031215613dc357600080fd5b823567ffffffffffffffff811115613dda57600080fd5b613de685828601613d6e565b90969095509350505050565b60008060208385031215613e0557600080fd5b823567ffffffffffffffff80821115613e1d57600080fd5b818501915085601f830112613e3157600080fd5b813581811115613e4057600080fd5b8660208260051b8501011115613e5557600080fd5b60209290920196919550909350505050565b60008060408385031215613e7a57600080fd5b613e838361394f565b9150613e916020840161394f565b90509250929050565b600080600060408486031215613eaf57600080fd5b613eb88461394f565b9250602084013567ffffffffffffffff811115613ed457600080fd5b613ee086828701613d6e565b9497909650939450505050565b6000806000838503610140811215613f0457600080fd5b613f0d8561394f565b9350613f1b6020860161394f565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613f4e57600080fd5b506040840190509250925092565b60008060408385031215613f6f57600080fd5b613f788361394f565b91506020830135613ac281613acd565b60008060008060808587031215613f9e57600080fd5b613fa78561394f565b93506020613fb681870161394f565b935060408601359250606086013567ffffffffffffffff80821115613fda57600080fd5b818801915088601f830112613fee57600080fd5b81358181111561400057614000613b2d565b614030847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613bcc565b9150808252898482850101111561404657600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c9082168061407a57607f821691505b6020821081036140b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b65ffffffffffff81168114611f2f57600080fd5b8051613973816140b9565b805161397381613c62565b805161397381613acd565b600060c0828403121561410057600080fd5b614108613b85565b825161411381613c1b565b81526020830151614123816140b9565b60208201526040830151614136816140b9565b6040820152606083015161414981613c62565b6060820152608083015161415c81613c62565b608082015260a083015161416f81613acd565b60a08201529392505050565b8035613973816140b9565b600060c0828403121561419857600080fd5b6141a0613b85565b82356141ab81613c1b565b815260208301356141bb816140b9565b602082015260408301356141ce816140b9565b604082015260608301356141e181613c62565b606082015260808301356141f481613c62565b608082015260a083013561416f81613acd565b60006020828403121561421957600080fd5b815161298781613acd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082614289577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082028115828204841417610a8e57610a8e614224565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261432357600080fd5b830160208101925035905067ffffffffffffffff81111561434357600080fd5b8036038213156112fd57600080fd5b6000602080835260808301843582850152818501357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe186360301811261439757600080fd5b8501828101903567ffffffffffffffff8111156143b357600080fd5b8060051b8036038313156143c657600080fd5b606060408801529281905260a09286018301928290870160005b83811015614438577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6089870301825261441983866142ee565b6144248882846142a5565b9750505091860191908601906001016143e0565b505050505061444a60408601866142ee565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08583030160608601526144818284836142a5565b9695505050505050565b805161397381613c44565b600060e082840312156144a857600080fd5b60405160e0810181811067ffffffffffffffff821117156144cb576144cb613b2d565b60405282516144d981613c1b565b815260208301516144e981613c33565b602082015260408301516144fc81613c44565b6040820152606083015161450f81613c44565b60608201526145206080840161448b565b608082015261453160a084016140d8565b60a082015261454260c084016140d8565b60c08201529392505050565b60006101008201905073ffffffffffffffffffffffffffffffffffffffff8416825269ffffffffffffffffffff835116602083015262ffffff6020840151166040830152604083015164ffffffffff80821660608501528060608601511660808501528060808601511660a0850152505060a08301516145d460c084018261ffff169052565b5060c083015161ffff811660e08401525b509392505050565b601f821115611c8a57600081815260208120601f850160051c810160208610156146145750805b601f850160051c820191505b8181101561301f57828155600101614620565b67ffffffffffffffff83111561464b5761464b613b2d565b61465f836146598354614066565b836145ed565b6000601f8411600181146146b1576000851561467b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612842565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561470057868501358255602094850194600190920191016146e0565b508682101561473b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020815260006137c56020830184866142a5565b80820180821115610a8e57610a8e614224565b60ff81168114611f2f57600080fd5b805161397381614774565b63ffffffff81168114611f2f57600080fd5b80516139738161478e565b600061010082840312156147be57600080fd5b6147c6613ba8565b82516147d181613c1b565b815260208301516147e181613c62565b60208201526147f2604084016140cd565b6040820152614803606084016140cd565b606082015261481460808401614783565b608082015261482560a084016147a0565b60a082015261483660c084016140d8565b60c082015261484760e084016140e3565b60e08201529392505050565b803561397381614774565b80356139738161478e565b6000610100828403121561487c57600080fd5b614884613ba8565b823561488f81613c1b565b8152602083013561489f81613c62565b60208201526148b06040840161417b565b60408201526148c16060840161417b565b60608201526148d260808401614853565b60808201526148e360a0840161485e565b60a08201526148f460c08401613c72565b60c082015261484760e08401613adb565b60006101208201905073ffffffffffffffffffffffffffffffffffffffff8416825269ffffffffffffffffffff835116602083015261ffff602084015116604083015265ffffffffffff60408401511660608301526060830151614973608084018265ffffffffffff169052565b50608083015160ff811660a08401525060a083015163ffffffff811660c08401525060c083015161ffff811660e08401525060e08301518015156101008401526145e5565b600083516149ca8184602088016138b5565b8351908301906149de8183602088016138b5565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208082528181018390526000908460408401835b86811015614a645773ffffffffffffffffffffffffffffffffffffffff614a518461394f565b1682529183019190830190600101614a2b565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff80871683528086166020840152508360408301526080606083015261448160808301846138d9565b600060208284031215614ac057600080fd5b81516129878161386a56fea2646970667358221220b28c5312dad0729f87375f526c9ff3f32b55d15c93e58552b259fc6a763ab6c464736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004468a5b725e2c63056131121cd33b66848e1dd870000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001353636f747469652050697070656e205350333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000001353434f545449452d50495050454e2d5350333300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5

-----Decoded View---------------
Arg [0] : name (string): Scottie Pippen SP33
Arg [1] : symbol (string): SCOTTIE-PIPPEN-SP33
Arg [2] : administrator (address): 0x4468A5B725E2C63056131121cD33b66848E1dd87
Arg [3] : allowedSeaDrop (address[]): 0x00005EA00Ac477B1030CE78506496e8C2dE24bf5

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000004468a5b725e2c63056131121cd33b66848e1dd87
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [5] : 53636f747469652050697070656e205350333300000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [7] : 53434f545449452d50495050454e2d5350333300000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [9] : 00000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5


Loading...
Loading
Loading...
Loading
[ 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.