ERC-721
NFT
Overview
Max Total Supply
4,000 HH
Holders
1,060
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
2 HHLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xa62e4a4D...3AA147EF7 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ERC721SeaDrop
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.17;import {ERC721ContractMetadata,ISeaDropTokenContractMetadata} from "./ERC721ContractMetadata.sol";import {INonFungibleSeaDropToken} from "./interfaces/INonFungibleSeaDropToken.sol";import { ISeaDrop } from "./interfaces/ISeaDrop.sol";import {AllowListData,PublicDrop,TokenGatedDropStage,SignedMintValidationParams} from "./lib/SeaDropStructs.sol";import {ERC721SeaDropStructsErrorsAndEvents} from "./lib/ERC721SeaDropStructsErrorsAndEvents.sol";import { ERC721A } from "ERC721A/ERC721A.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.2// Creator: Chiru Labspragma 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.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.2// Creator: Chiru Labspragma 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();/**
12345678910111213141516171819202122232425// 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)externalviewreturns (address receiver, uint256 royaltyAmount);}
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)pragma solidity ^0.8.0;/*** @dev Interface of the ERC165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[EIP].** Implementers can declare support of contract interfaces, which can then be* queried by others ({ERC165Checker}).** For an implementation, see {ERC165}.*/interface IERC165 {/*** @dev Returns true if this contract implements the interface defined by* `interfaceId`. See the corresponding* https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]* to learn more about how these ids are created.** This function call must use less than 30 000 gas.*/function supportsInterface(bytes4 interfaceId) external view returns (bool);}
1234567891011121314151617// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {OperatorFilterer} from "./OperatorFilterer.sol";import {CANONICAL_CORI_SUBSCRIPTION} from "./lib/Constants.sol";/*** @title DefaultOperatorFilterer* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.* @dev Please note that if your token contract does not provide an owner with EIP-173, it must provide* administration methods on the contract itself to interact with the registry otherwise the subscription* will be locked to the options set during construction.*/abstract contract DefaultOperatorFilterer is OperatorFilterer {/// @dev The constructor that is called when the contract is being deployed.constructor() OperatorFilterer(CANONICAL_CORI_SUBSCRIPTION, true) {}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;interface IOperatorFilterRegistry {/*** @notice Returns true if operator is not filtered for a given token, either by address or codeHash. Also returns* true if supplied registrant address is not registered.*/function isOperatorAllowed(address registrant, address operator) external view returns (bool);/*** @notice Registers an address with the registry. May be called by address itself or by EIP-173 owner.*/function register(address registrant) external;/*** @notice Registers an address with the registry and "subscribes" to another address's filtered operators and codeHashes.*/function registerAndSubscribe(address registrant, address subscription) external;/*** @notice Registers an address with the registry and copies the filtered operators and codeHashes from another* address without subscribing.*/function registerAndCopyEntries(address registrant, address registrantToCopy) external;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.13;import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";import {CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS} from "./lib/Constants.sol";/*** @title OperatorFilterer* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another* registrant's entries in the OperatorFilterRegistry.* @dev This smart contract is meant to be inherited by token contracts so they can use the following:* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.* Please note that if your token contract does not provide an owner with EIP-173, it must provide* administration methods on the contract itself to interact with the registry otherwise the subscription* will be locked to the options set during construction.*/abstract contract OperatorFilterer {/// @dev Emitted when an operator is not allowed.error OperatorNotAllowed(address operator);IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =IOperatorFilterRegistry(CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS);/// @dev The constructor that is called when the contract is being deployed.constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
12345// SPDX-License-Identifier: MITpragma solidity ^0.8.17;address constant CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS = 0x000000000000AAeB6D7670E522A718067333cd4E;address constant CANONICAL_CORI_SUBSCRIPTION = 0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6;
12345678910111213141516171819// SPDX-License-Identifier: AGPL-3.0-onlypragma 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;}}
12345678910111213141516171819// SPDX-License-Identifier: MITpragma 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();}_;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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 transferOwner 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();
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.17;import {ISeaDropTokenContractMetadata} from "./interfaces/ISeaDropTokenContractMetadata.sol";import { ERC721A } from "ERC721A/ERC721A.sol";import { TwoStepOwnable } from "utility-contracts/TwoStepOwnable.sol";import { IERC2981 } from "openzeppelin-contracts/interfaces/IERC2981.sol";import {IERC165} from "openzeppelin-contracts/utils/introspection/IERC165.sol";/*** @title ERC721ContractMetadata* @author James Wenzel (emo.eth)* @author Ryan Ghods (ralxz.eth)* @author Stephan Min (stephanm.eth)* @notice ERC721ContractMetadata is a token contract that extends ERC721A* with additional metadata and ownership capabilities.*/contract ERC721ContractMetadata is
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.17;import {ISeaDropTokenContractMetadata} from "./ISeaDropTokenContractMetadata.sol";import {AllowListData,PublicDrop,TokenGatedDropStage,SignedMintValidationParams} from "../lib/SeaDropStructs.sol";interface INonFungibleSeaDropToken is ISeaDropTokenContractMetadata {/*** @dev Revert with an error if a contract is not an allowed* SeaDrop address.*/error OnlyAllowedSeaDrop();/*** @dev Emit an event when allowed SeaDrop contracts are updated.*/event AllowedSeaDropUpdated(address[] allowedSeaDrop);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.17;import { IERC2981 } from "openzeppelin-contracts/interfaces/IERC2981.sol";interface ISeaDropTokenContractMetadata is IERC2981 {/*** @notice Throw if the max supply exceeds uint64, a limit* due to the storage of bit-packed variables in ERC721A.*/error CannotExceedMaxSupplyOfUint64(uint256 newMaxSupply);/*** @dev Revert with an error when attempting to set the provenance* hash after the mint has started.*/error ProvenanceHashCannotBeSetAfterMintStarted();/*** @dev Revert if the royalty basis points is greater than 10_000.*/error InvalidRoyaltyBasisPoints(uint256 basisPoints);/*** @dev Revert if the royalty address is being set to the zero address.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.17;import {AllowListData,PublicDrop,SignedMintValidationParams,TokenGatedDropStage} from "./SeaDropStructs.sol";interface ERC721SeaDropStructsErrorsAndEvents {/*** @notice Revert with an error if mint exceeds the max supply.*/error MintQuantityExceedsMaxSupply(uint256 total, uint256 maxSupply);/*** @notice Revert with an error if the number of token gated* allowedNftTokens doesn't match the length of supplied* drop stages.*/error TokenGatedMismatch();/*** @notice Revert with an error if the number of signers doesn't match* the length of supplied signedMintValidationParams
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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 bitsuint48 startTime; // 128/256 bitsuint48 endTime; // 176/256 bitsuint16 maxTotalMintableByWallet; // 224/256 bitsuint16 feeBps; // 240/256 bitsbool restrictFeeRecipients; // 248/256 bits
1234567891011121314151617181920212223242526{"remappings": ["ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/","ERC721A/=lib/ERC721A/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/operator-filter-registry/lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/","operator-filter-registry/=lib/operator-filter-registry/src/","seadrop/=src/","solmate/=lib/solmate/src/","utility-contracts/=lib/utility-contracts/src/"],"optimizer": {"enabled": true,"runs": 1000000},"metadata": {"bytecodeHash": "ipfs"},"outputSelection": {"*": {"*": ["evm.bytecode",
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"CannotExceedMaxSupplyOfUint64","type":"error"},{"inputs":[{"internalType":"uint256","name":"basisPoints","type":"uint256"}],"name":"InvalidRoyaltyBasisPoints","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintQuantityExceedsMaxSupply","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NotNextOwner","type":"error"},{"inputs":[],"name":"OnlyAllowedSeaDrop","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"ProvenanceHashCannotBeSetAfterMintStarted","type":"error"},{"inputs":[],"name":"RoyaltyAddressCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"SignersMismatch","type":"error"},{"inputs":[],"name":"TokenGatedMismatch","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"AllowedSeaDropUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"newContractURI","type":"string"}],"name":"ContractURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"MaxSupplyUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newPotentialAdministrator","type":"address"}],"name":"PotentialOwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"previousHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newHash","type":"bytes32"}],"name":"ProvenanceHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"bps","type":"uint256"}],"name":"RoyaltyInfoUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SeaDropTokenDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"emitBatchMetadataUpdate","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":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"string","name":"baseURI","type":"string"},{"internalType":"string","name":"contractURI","type":"string"},{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"},{"internalType":"string","name":"dropURI","type":"string"},{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"string[]","name":"publicKeyURIs","type":"string[]"},{"internalType":"string","name":"allowListURI","type":"string"}],"internalType":"struct AllowListData","name":"allowListData","type":"tuple"},{"internalType":"address","name":"creatorPayoutAddress","type":"address"},{"internalType":"bytes32","name":"provenanceHash","type":"bytes32"},{"internalType":"address[]","name":"allowedFeeRecipients","type":"address[]"},{"internalType":"address[]","name":"disallowedFeeRecipients","type":"address[]"},{"internalType":"address[]","name":"allowedPayers","type":"address[]"},{"internalType":"address[]","name":"disallowedPayers","type":"address[]"},{"internalType":"address[]","name":"tokenGatedAllowedNftTokens","type":"address[]"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint32","name":"maxTokenSupplyForStage","type":"uint32"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct TokenGatedDropStage[]","name":"tokenGatedDropStages","type":"tuple[]"},{"internalType":"address[]","name":"disallowedTokenGatedAllowedNftTokens","type":"address[]"},{"internalType":"address[]","name":"signers","type":"address[]"},{"components":[{"internalType":"uint80","name":"minMintPrice","type":"uint80"},{"internalType":"uint24","name":"maxMaxTotalMintableByWallet","type":"uint24"},{"internalType":"uint40","name":"minStartTime","type":"uint40"},{"internalType":"uint40","name":"maxEndTime","type":"uint40"},{"internalType":"uint40","name":"maxMaxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"minFeeBps","type":"uint16"},{"internalType":"uint16","name":"maxFeeBps","type":"uint16"}],"internalType":"struct SignedMintValidationParams[]","name":"signedMintValidationParams","type":"tuple[]"},{"internalType":"address[]","name":"disallowedSigners","type":"address[]"}],"internalType":"struct ERC721SeaDropStructsErrorsAndEvents.MultiConfigureStruct","name":"config","type":"tuple"}],"name":"multiConfigure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenanceHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"royaltyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltyBasisPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newProvenanceHash","type":"bytes32"}],"name":"setProvenanceHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setRevealStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"royaltyAddress","type":"address"},{"internalType":"uint96","name":"royaltyBps","type":"uint96"}],"internalType":"struct ISeaDropTokenContractMetadata.RoyaltyInfo","name":"newInfo","type":"tuple"}],"name":"setRoyaltyInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uriSuffix","type":"string"}],"name":"setURISuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"unrevealedURI","type":"string"}],"name":"setUnrevealedURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPotentialOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"string[]","name":"publicKeyURIs","type":"string[]"},{"internalType":"string","name":"allowListURI","type":"string"}],"internalType":"struct AllowListData","name":"allowListData","type":"tuple"}],"name":"updateAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"updateAllowedFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"allowedSeaDrop","type":"address[]"}],"name":"updateAllowedSeaDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"payoutAddress","type":"address"}],"name":"updateCreatorPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"string","name":"dropURI","type":"string"}],"name":"updateDropURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"payer","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"updatePayer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct PublicDrop","name":"publicDrop","type":"tuple"}],"name":"updatePublicDrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"signer","type":"address"},{"components":[{"internalType":"uint80","name":"minMintPrice","type":"uint80"},{"internalType":"uint24","name":"maxMaxTotalMintableByWallet","type":"uint24"},{"internalType":"uint40","name":"minStartTime","type":"uint40"},{"internalType":"uint40","name":"maxEndTime","type":"uint40"},{"internalType":"uint40","name":"maxMaxTokenSupplyForStage","type":"uint40"},{"internalType":"uint16","name":"minFeeBps","type":"uint16"},{"internalType":"uint16","name":"maxFeeBps","type":"uint16"}],"internalType":"struct SignedMintValidationParams","name":"signedMintValidationParams","type":"tuple"}],"name":"updateSignedMintValidationParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"seaDropImpl","type":"address"},{"internalType":"address","name":"allowedNftToken","type":"address"},{"components":[{"internalType":"uint80","name":"mintPrice","type":"uint80"},{"internalType":"uint16","name":"maxTotalMintableByWallet","type":"uint16"},{"internalType":"uint48","name":"startTime","type":"uint48"},{"internalType":"uint48","name":"endTime","type":"uint48"},{"internalType":"uint8","name":"dropStageIndex","type":"uint8"},{"internalType":"uint32","name":"maxTokenSupplyForStage","type":"uint32"},{"internalType":"uint16","name":"feeBps","type":"uint16"},{"internalType":"bool","name":"restrictFeeRecipients","type":"bool"}],"internalType":"struct TokenGatedDropStage","name":"dropStage","type":"tuple"}],"name":"updateTokenGatedDrop","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260016012553480156200001657600080fd5b506040516200564538038062005645833981016040819052620000399162000450565b733cc6cdda760b79bafa08df41ecfa224f810dceb66001848481816002620000628382620005f6565b506003620000718282620005f6565b5050600160005550620000836200027a565b50506daaeb6d7670e522a718067333cd4e3b15620001ca5780156200011857604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620000f957600080fd5b505af11580156200010e573d6000803e3d6000fd5b50505050620001ca565b6001600160a01b03821615620001695760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000de565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001b057600080fd5b505af1158015620001c5573d6000803e3d6000fd5b505050505b5050805160005b818110156200023057600160136000858481518110620001f557620001f5620006c2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620001d1565b50815162000246906014906020850190620002f9565b506040517fd7aca75208b9be5ffc04c6a01922020ffd62b55e68e502e317f5344960279af890600090a150505050620006d8565b303b156200029a5760405162dc149f60e41b815260040160405180910390fd5b620002a533620002a7565b565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b82805482825590600052602060002090810192821562000351579160200282015b828111156200035157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200031a565b506200035f92915062000363565b5090565b5b808211156200035f576000815560010162000364565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620003bb57620003bb6200037a565b604052919050565b600082601f830112620003d557600080fd5b81516001600160401b03811115620003f157620003f16200037a565b602062000407601f8301601f1916820162000390565b82815285828487010111156200041c57600080fd5b60005b838110156200043c5785810183015182820184015282016200041f565b506000928101909101919091529392505050565b6000806000606084860312156200046657600080fd5b83516001600160401b03808211156200047e57600080fd5b6200048c87838801620003c3565b9450602091508186015181811115620004a457600080fd5b620004b288828901620003c3565b945050604086015181811115620004c857600080fd5b8601601f81018813620004da57600080fd5b805182811115620004ef57620004ef6200037a565b8060051b92506200050284840162000390565b818152928201840192848101908a8511156200051d57600080fd5b928501925b848410156200055757835192506001600160a01b0383168314620005465760008081fd5b828252928501929085019062000522565b8096505050505050509250925092565b600181811c908216806200057c57607f821691505b6020821081036200059d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f157600081815260208120601f850160051c81016020861015620005cc5750805b601f850160051c820191505b81811015620005ed57828155600101620005d8565b5050505b505050565b81516001600160401b038111156200061257620006126200037a565b6200062a8162000623845462000567565b84620005a3565b602080601f831160018114620006625760008415620006495750858301515b600019600386901b1c1916600185901b178555620005ed565b600085815260208120601f198616915b82811015620006935788860151825594840194600190910190840162000672565b5085821015620006b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b614f5d80620006e86000396000f3fe608060405234801561001057600080fd5b506004361061032b5760003560e01c80636f8b44b0116101b257806395d89b41116100f9578063c87b56dd116100a2578063e8a3d4851161007c578063e8a3d48514610717578063e985e9c51461071f578063f2fde38b14610768578063fe2c7fee1461077b57600080fd5b8063c87b56dd146106e9578063cb743ba8146106fc578063d5abeb011461070f57600080fd5b8063ad2f852a116100d3578063ad2f852a146106b0578063b88d4fde146106ce578063c6ab67a3146106e157600080fd5b806395d89b4114610682578063a22cb4651461068a578063a48301141461069d57600080fd5b806381b3e5751161015b5780638da5cb5b116101355780638da5cb5b1461063e578063911f456b1461065c578063938e3d7b1461066f57600080fd5b806381b3e575146105ea578063840e15d4146105fd57806384c99fb41461062b57600080fd5b806379ba50971161018c57806379ba5097146105bc5780637a05bc82146105c45780637bc2be76146105d757600080fd5b80636f8b44b01461058e57806370a08231146105a1578063715018a6146105b457600080fd5b806342260b5d1161027657806360c308b61161021f57806366251b69116101f957806366251b691461056057806367243482146105735780636c0360eb1461058657600080fd5b806360c308b6146105275780636352211e1461053a57806364869dad1461054d57600080fd5b806348a4c1011161025057806348a4c101146104ee578063511aa6441461050157806355f804b31461051457600080fd5b806342260b5d1461049a57806342842e0e146104c857806344dae42c146104db57600080fd5b80631b73593c116102d85780632a55205a116102b25780632a55205a146104335780633680620d1461047257806341f434341461048557600080fd5b80631b73593c1461040557806323452b9c1461041857806323b872dd1461042057600080fd5b8063095ea7b311610309578063095ea7b3146103a5578063099b6bfa146103ba57806318160ddd146103cd57600080fd5b806301ffc9a71461033057806306fdde0314610358578063081812fc1461036d575b600080fd5b61034361033e3660046138f9565b61078e565b60405190151581526020015b60405180910390f35b610360610836565b60405161034f9190613984565b61038061037b366004613997565b6108c8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034f565b6103b86103b33660046139d2565b610932565b005b6103b86103c8366004613997565b61094b565b600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b60405190815260200161034f565b6103b86104133660046139fe565b6109f5565b6103b8610a8e565b6103b861042e366004613a5d565b610af4565b610446610441366004613a9e565b610b2c565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091520161034f565b6103b8610480366004613ac0565b610b95565b6103806daaeb6d7670e522a718067333cd4e81565b6011547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166103f7565b6103b86104d6366004613a5d565b610bf8565b6103b86104e9366004613b17565b610c2a565b6103b86104fc366004613b4d565b610d9b565b6103b861050f366004613c93565b610e3b565b6103b8610522366004613dc9565b610ea0565b6103b8610535366004613e50565b610f34565b610380610548366004613997565b610f46565b6103b861055b3660046139d2565b610f51565b6103b861056e366004613e86565b611092565b6103b8610581366004613eb4565b6110f7565b610360611275565b6103b861059c366004613997565b611284565b6103f76105af366004613f20565b611306565b6103b8611388565b6103b861139c565b6103b86105d2366004613f3d565b611456565b6103b86105e5366004613f92565b6114bb565b6103b86105f8366004613dc9565b611520565b61061061060b366004613f20565b6115ae565b6040805193845260208401929092529082015260600161034f565b6103b8610639366004614005565b61161b565b60085473ffffffffffffffffffffffffffffffffffffffff16610380565b6103b861066a366004614022565b6116cd565b6103b861067d366004613dc9565b612468565b6103606124af565b6103b861069836600461405e565b6124be565b6103b86106ab366004613a9e565b6124d2565b60115473ffffffffffffffffffffffffffffffffffffffff16610380565b6103b86106dc36600461408c565b612510565b6010546103f7565b6103606106f7366004613997565b61254a565b6103b861070a366004613b4d565b6126b8565b600a546103f7565b610360612725565b61034361072d366004613e86565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103b8610776366004613f20565b612734565b6103b8610789366004613dc9565b6127fc565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e00000000000000000000000000000000000000000000000000000000148061082157507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b806108305750610830826128b0565b92915050565b6060600280546108459061416e565b80601f01602080910402602001604051908101604052809291908181526020018280546108719061416e565b80156108be5780601f10610893576101008083540402835291602001916108be565b820191906000526020600020905b8154815290600101906020018083116108a157829003601f168201915b5050505050905090565b60006108d382612952565b610909576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b8161093c816129a0565b6109468383612aa5565b505050565b610953612bba565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01156109af576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601080549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b6109fd612bba565b610a0682612c4a565b6040517f01308e6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906301308e6590610a5890849060040161425f565b600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b505050505050565b610a96612cae565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff81163314610b1b57610b1b336129a0565b610b26848484612cff565b50505050565b60118054600091829161271090610b69907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff168661429c565b610b7391906142b3565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b610b9d612bba565b610ba682612c4a565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f90610a589084906004016144ab565b8273ffffffffffffffffffffffffffffffffffffffff81163314610c1f57610c1f336129a0565b610b26848484612fb5565b610c32612bba565b6000610c416020830183613f20565b73ffffffffffffffffffffffffffffffffffffffff1603610c8e576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710610ca160408301602084016144d8565b6bffffffffffffffffffffffff161115610d0d57610cc560408201602083016144d8565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b806011610d1a82826144f5565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d9050610d4b6020830183613f20565b610d5b60408401602085016144d8565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b610da3612bba565b610dac83612c4a565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b50505050505050565b610e43612bba565b610e4c83612c4a565b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634d38017890610e04908590859060040161455a565b610ea8612bba565b600b610eb5828483614634565b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610f30577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180610f1160005490565b610f1b919061474e565b604080519283526020830191909152016109e9565b5050565b610f3c612cae565b610f308282612fd0565b600061083082613140565b601254600114610fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610d04565b6002601255610fcb33612c4a565b600a5481610ffa6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6110049190614761565b111561107f57806110366000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6110409190614761565b600a545b6040517fe12d231400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610d04565b6110898282613206565b50506001601255565b61109a612bba565b6110a382612c4a565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db890602401610a58565b6110ff612cae565b82811461119057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f455243373231506172746e657253656144726f703a2061697264726f703a206160448201527f63636f756e74732e6c656e67746820213d20616d6f756e74732e6c656e6774686064820152608401610d04565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905b84811015610a8657600a548484838181106111d5576111d5614774565b9050602002013583011115611208578383828181106111f6576111f6614774565b905060200201358201611044600a5490565b83838281811061121a5761121a614774565b905060200201358201915061126d86868381811061123a5761123a614774565b905060200201602081019061124f9190613f20565b85858481811061126157611261614774565b90506020020135613220565b6001016111b8565b606061127f61335e565b905090565b61128c612bba565b67ffffffffffffffff8111156112d1576040517fb43e913700000000000000000000000000000000000000000000000000000000815260048101829052602401610d04565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001610d90565b600073ffffffffffffffffffffffffffffffffffffffff8216611355576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b611390612cae565b61139a600061336d565b565b60095473ffffffffffffffffffffffffffffffffffffffff163381146113ee576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a16114538161336d565b50565b61145e612bba565b61146783612c4a565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb90610e0490859085906004016147a3565b6114c3612bba565b6114cc83612c4a565b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063fd9ab22a90610e049085908590600401614888565b60085473ffffffffffffffffffffffffffffffffffffffff1633146115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f6e6c79206f776e65722063616e2073657420555249207375666669780000006044820152606401610d04565b600c610946828483614634565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff16908061160e6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79206f776e65722063616e207365742072657665616c207374617475736044820152606401610d04565b600e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6116d5612cae565b803515611747576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b61175460208201826148b3565b1590506117be57306355f804b361176e60208401846148b3565b6040518363ffffffff1660e01b815260040161178b9291906147a3565b600060405180830381600087803b1580156117a557600080fd5b505af11580156117b9573d6000803e3d6000fd5b505050505b6117cb60408201826148b3565b159050611835573063938e3d7b6117e560408401846148b3565b6040518363ffffffff1660e01b81526004016118029291906147a3565b600060405180830381600087803b15801561181c57600080fd5b505af1158015611830573d6000803e3d6000fd5b505050505b61185561184860e0830160c08401614918565b65ffffffffffff16151590565b61186861184860c0840160a08501614918565b176001036118da5730631b73593c6118866080840160608501613f20565b836080016040518363ffffffff1660e01b81526004016118a7929190614933565b600060405180830381600087803b1580156118c157600080fd5b505af11580156118d5573d6000803e3d6000fd5b505050505b6118e86101408201826148b3565b1590506119645730637a05bc826119056080840160608501613f20565b6119136101408501856148b3565b6040518463ffffffff1660e01b81526004016119319392919061495d565b600060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050505b6000611974610160830183614996565b35146119ee5730633680620d6119906080840160608501613f20565b61199e610160850185614996565b6040518363ffffffff1660e01b81526004016119bb9291906149d4565b600060405180830381600087803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050505b6000611a026101a083016101808401613f20565b73ffffffffffffffffffffffffffffffffffffffff1614611acb57306366251b69611a336080840160608501613f20565b611a456101a085016101808601613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b505050505b6101a081013515611b45576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b158015611b2c57600080fd5b505af1158015611b40573d6000803e3d6000fd5b505050505b6000611b556101c0830183614a03565b90501115611c595760005b611b6e6101c0830183614a03565b9050811015611c5757306348a4c101611b8d6080850160608601613f20565b611b9b6101c0860186614a03565b85818110611bab57611bab614774565b9050602002016020810190611bc09190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611c3457600080fd5b505af1158015611c48573d6000803e3d6000fd5b50505050806001019050611b60565b505b6000611c696101e0830183614a03565b90501115611d6d5760005b611c826101e0830183614a03565b9050811015611d6b57306348a4c101611ca16080850160608601613f20565b611caf6101e0860186614a03565b85818110611cbf57611cbf614774565b9050602002016020810190611cd49190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611d4857600080fd5b505af1158015611d5c573d6000803e3d6000fd5b50505050806001019050611c74565b505b6000611d7d610200830183614a03565b90501115611e815760005b611d96610200830183614a03565b9050811015611e7f573063cb743ba8611db56080850160608601613f20565b611dc3610200860186614a03565b85818110611dd357611dd3614774565b9050602002016020810190611de89190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611e5c57600080fd5b505af1158015611e70573d6000803e3d6000fd5b50505050806001019050611d88565b505b6000611e91610220830183614a03565b90501115611f955760005b611eaa610220830183614a03565b9050811015611f93573063cb743ba8611ec96080850160608601613f20565b611ed7610220860186614a03565b85818110611ee757611ee7614774565b9050602002016020810190611efc9190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611f7057600080fd5b505af1158015611f84573d6000803e3d6000fd5b50505050806001019050611e9c565b505b6000611fa5610260830183614a6b565b905011156120e957611fbb610240820182614a03565b9050611fcb610260830183614a6b565b905014612004576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b612015610260830183614a6b565b90508110156120e75730637bc2be766120346080850160608601613f20565b612042610240860186614a03565b8581811061205257612052614774565b90506020020160208101906120679190613f20565b612075610260870187614a6b565b8681811061208557612085614774565b905061010002016040518463ffffffff1660e01b81526004016120aa93929190614ad3565b600060405180830381600087803b1580156120c457600080fd5b505af11580156120d8573d6000803e3d6000fd5b50505050806001019050612007565b505b60006120f9610280830183614a03565b905011156122045760005b612112610280830183614a03565b9050811015612202576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be766121726080860160608701613f20565b612180610280870187614a03565b8681811061219057612190614774565b90506020020160208101906121a59190613f20565b846040518463ffffffff1660e01b81526004016121c493929190614b06565b600060405180830381600087803b1580156121de57600080fd5b505af11580156121f2573d6000803e3d6000fd5b5050505081600101915050612104565b505b60006122146102c0830183614bc9565b905011156123575761222a6102a0820182614a03565b905061223a6102c0830183614bc9565b905014612273576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b6122846102c0830183614bc9565b9050811015612355573063511aa6446122a36080850160608601613f20565b6122b16102a0860186614a03565b858181106122c1576122c1614774565b90506020020160208101906122d69190613f20565b6122e46102c0870187614bc9565b868181106122f4576122f4614774565b905060e002016040518463ffffffff1660e01b815260040161231893929190614c30565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050806001019050612276565b505b60006123676102e0830183614a03565b905011156114535760005b6123806102e0830183614a03565b9050811015610f30576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa6446123d86080860160608701613f20565b6123e66102e0870187614a03565b868181106123f6576123f6614774565b905060200201602081019061240b9190613f20565b846040518463ffffffff1660e01b815260040161242a93929190614cf9565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b5050505081600101915050612372565b612470612bba565b600f61247d828483614634565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac3737882826040516109e99291906147a3565b6060600380546108459061416e565b816124c8816129a0565b61094683836133e4565b6124da612bba565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91016109e9565b8373ffffffffffffffffffffffffffffffffffffffff8116331461253757612537336129a0565b6125438585858561347b565b5050505050565b606061255582612952565b6125e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610d04565b600e5460ff1661267d57600d80546125f89061416e565b80601f01602080910402602001604051908101604052809291908181526020018280546126249061416e565b80156126715780601f1061264657610100808354040283529160200191612671565b820191906000526020600020905b81548152906001019060200180831161265457829003601f168201915b50505050509050919050565b61268561335e565b61268e836134e5565b600c6040516020016126a293929190614d95565b6040516020818303038152906040529050919050565b6126c0612bba565b6126c983612c4a565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca90604401610e04565b6060600f80546108459061416e565b61273c612cae565b73ffffffffffffffffffffffffffffffffffffffff8116612789576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001610d90565b60085473ffffffffffffffffffffffffffffffffffffffff1633146128a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f6e6c79206f776e65722063616e2073657420756e72657665616c656420555260448201527f49000000000000000000000000000000000000000000000000000000000000006064820152608401610d04565b600d610946828483614634565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061294357507f49064906000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610830575061083082613547565b600081600111158015612966575060005482105b80156108305750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b15611453576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015612a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a579190614e53565b611453576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610d04565b6000612ab082610f46565b90503373ffffffffffffffffffffffffffffffffffffffff821614612b395773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16612b39576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b303314612c10612bdf60085473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b1760000361139a576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526013602052604090205460ff161515600114611453576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff16331461139a576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d0a82613140565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612d71576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612e0e5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612e0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612e5b576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612e6657600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612f5557600184016000818152600460205260408120549003612f53576000548114612f535760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610a86565b61094683838360405180602001604052806000815250612510565b6014548160005b8281101561305f5760006013600060148481548110612ff857612ff8614774565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612fd7565b5060005b818110156130f35760016013600087878581811061308357613083614774565b90506020020160208101906130989190613f20565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613063565b506131006014858561382e565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8484604051613132929190614e70565b60405180910390a150505050565b600081806001116131d4576000548110156131d457600081815260046020526040812054907c0100000000000000000000000000000000000000000000000000000000821690036131d2575b806000036131cb57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181526004602052604090205461318c565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f30828260405180602001604052806000815250613628565b600080549082900361325e576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461331a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016132e2565b5081600003613355576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6060600b80546108459061416e565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b613486848484610af4565b73ffffffffffffffffffffffffffffffffffffffff83163b15610b26576134af848484846136b4565b610b26576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806134ff57508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806135da57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806108305750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6136328383613220565b73ffffffffffffffffffffffffffffffffffffffff83163b15610946576000548281035b61366960008683806001019450866136b4565b61369f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061365657816000541461254357600080fd5b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061370f903390899088908890600401614ecb565b6020604051808303816000875af1925050508015613768575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261376591810190614f0a565b60015b6137df573d808015613796576040519150601f19603f3d011682016040523d82523d6000602084013e61379b565b606091505b5080516000036137d7576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b8280548282559060005260206000209081019282156138a6579160200282015b828111156138a65781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84351617825560209092019160019091019061384e565b506138b29291506138b6565b5090565b5b808211156138b257600081556001016138b7565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461145357600080fd5b60006020828403121561390b57600080fd5b81356131cb816138cb565b60005b83811015613931578181015183820152602001613919565b50506000910152565b60008151808452613952816020860160208601613916565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006131cb602083018461393a565b6000602082840312156139a957600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461145357600080fd5b600080604083850312156139e557600080fd5b82356139f0816139b0565b946020939093013593505050565b60008082840360e0811215613a1257600080fd5b8335613a1d816139b0565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215613a4f57600080fd5b506020830190509250929050565b600080600060608486031215613a7257600080fd5b8335613a7d816139b0565b92506020840135613a8d816139b0565b929592945050506040919091013590565b60008060408385031215613ab157600080fd5b50508035926020909101359150565b60008060408385031215613ad357600080fd5b8235613ade816139b0565b9150602083013567ffffffffffffffff811115613afa57600080fd5b830160608186031215613b0c57600080fd5b809150509250929050565b600060408284031215613b2957600080fd5b50919050565b801515811461145357600080fd5b8035613b4881613b2f565b919050565b600080600060608486031215613b6257600080fd5b8335613b6d816139b0565b92506020840135613b7d816139b0565b91506040840135613b8d81613b2f565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715613bea57613bea613b98565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c3757613c37613b98565b604052919050565b803569ffffffffffffffffffff81168114613b4857600080fd5b803562ffffff81168114613b4857600080fd5b803564ffffffffff81168114613b4857600080fd5b803561ffff81168114613b4857600080fd5b6000806000838503610120811215613caa57600080fd5b8435613cb5816139b0565b93506020850135613cc5816139b0565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613cf757600080fd5b50613d00613bc7565b613d0c60408601613c3f565b8152613d1a60608601613c59565b6020820152613d2b60808601613c6c565b6040820152613d3c60a08601613c6c565b6060820152613d4d60c08601613c6c565b6080820152613d5e60e08601613c81565b60a0820152613d706101008601613c81565b60c0820152809150509250925092565b60008083601f840112613d9257600080fd5b50813567ffffffffffffffff811115613daa57600080fd5b602083019150836020828501011115613dc257600080fd5b9250929050565b60008060208385031215613ddc57600080fd5b823567ffffffffffffffff811115613df357600080fd5b613dff85828601613d80565b90969095509350505050565b60008083601f840112613e1d57600080fd5b50813567ffffffffffffffff811115613e3557600080fd5b6020830191508360208260051b8501011115613dc257600080fd5b60008060208385031215613e6357600080fd5b823567ffffffffffffffff811115613e7a57600080fd5b613dff85828601613e0b565b60008060408385031215613e9957600080fd5b8235613ea4816139b0565b91506020830135613b0c816139b0565b60008060008060408587031215613eca57600080fd5b843567ffffffffffffffff80821115613ee257600080fd5b613eee88838901613e0b565b90965094506020870135915080821115613f0757600080fd5b50613f1487828801613e0b565b95989497509550505050565b600060208284031215613f3257600080fd5b81356131cb816139b0565b600080600060408486031215613f5257600080fd5b8335613f5d816139b0565b9250602084013567ffffffffffffffff811115613f7957600080fd5b613f8586828701613d80565b9497909650939450505050565b6000806000838503610140811215613fa957600080fd5b8435613fb4816139b0565b93506020850135613fc4816139b0565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613ff757600080fd5b506040840190509250925092565b60006020828403121561401757600080fd5b81356131cb81613b2f565b60006020828403121561403457600080fd5b813567ffffffffffffffff81111561404b57600080fd5b820161030081850312156131cb57600080fd5b6000806040838503121561407157600080fd5b823561407c816139b0565b91506020830135613b0c81613b2f565b600080600080608085870312156140a257600080fd5b84356140ad816139b0565b93506020858101356140be816139b0565b935060408601359250606086013567ffffffffffffffff808211156140e257600080fd5b818801915088601f8301126140f657600080fd5b81358181111561410857614108613b98565b614138847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613bf0565b9150808252898482850101111561414e57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c9082168061418257607f821691505b602082108103613b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b803565ffffffffffff81168114613b4857600080fd5b69ffffffffffffffffffff6141e582613c3f565b1682526141f4602082016141bb565b65ffffffffffff808216602085015280614210604085016141bb565b166040850152505061422460608201613c81565b61ffff80821660608501528061423c60808501613c81565b166080850152505060a081013561425281613b2f565b80151560a0840152505050565b60c0810161083082846141d1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176108305761083061426d565b6000826142e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261436c57600080fd5b830160208101925035905067ffffffffffffffff81111561438c57600080fd5b803603821315613dc257600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18536030181126143db57600080fd5b8401818101903567ffffffffffffffff8111156143f757600080fd5b8060051b80360383131561440a57600080fd5b6060848901529381905260809387018401938290880160005b8381101561447b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a880301825261445c8386614337565b6144678982846142ee565b985050509185019190850190600101614423565b50505050505061448e6040840184614337565b85830360408701526144a18382846142ee565b9695505050505050565b6020815260006131cb602083018461439b565b6bffffffffffffffffffffffff8116811461145357600080fd5b6000602082840312156144ea57600080fd5b81356131cb816144be565b8135614500816139b0565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff000000000000000000000000000000000000000081818454161783556020840135614550816144be565b60a01b1617905550565b73ffffffffffffffffffffffffffffffffffffffff8316815261010081016131cb602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f82111561094657600081815260208120601f850160051c810160208610156146155750805b601f850160051c820191505b81811015610a8657828155600101614621565b67ffffffffffffffff83111561464c5761464c613b98565b6146608361465a835461416e565b836145ee565b6000601f8411600181146146b2576000851561467c5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612543565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561470157868501358255602094850194600190920191016146e1565b508682101561473c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b818103818111156108305761083061426d565b808201808211156108305761083061426d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020815260006138266020830184866142ee565b803563ffffffff81168114613b4857600080fd5b69ffffffffffffffffffff6147df82613c3f565b16825261ffff6147f160208301613c81565b166020830152614803604082016141bb565b65ffffffffffff80821660408501528061481f606085016141bb565b1660608501525050608081013560ff8116811461483b57600080fd5b60ff16608083015261484f60a082016147b7565b63ffffffff1660a083015261486660c08201613c81565b61ffff1660c083015261487b60e08201613b3d565b80151560e0840152505050565b73ffffffffffffffffffffffffffffffffffffffff8316815261012081016131cb60208301846147cb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148e857600080fd5b83018035915067ffffffffffffffff82111561490357600080fd5b602001915036819003821315613dc257600080fd5b60006020828403121561492a57600080fd5b6131cb826141bb565b73ffffffffffffffffffffffffffffffffffffffff8316815260e081016131cb60208301846141d1565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061498d6040830184866142ee565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126149ca57600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000613826604083018461439b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a3857600080fd5b83018035915067ffffffffffffffff821115614a5357600080fd5b6020019150600581901b3603821315613dc257600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614aa057600080fd5b83018035915067ffffffffffffffff821115614abb57600080fd5b6020019150600881901b3603821315613dc257600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610140810161382660408301846147cb565b60006101408201905073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525069ffffffffffffffffffff835116604083015261ffff602084015116606083015265ffffffffffff60408401511660808301526060830151614b7e60a084018265ffffffffffff169052565b50608083015160ff811660c08401525060a083015163ffffffff811660e08401525060c083015161ffff81166101008401525060e08301518015156101208401525b50949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bfe57600080fd5b83018035915067ffffffffffffffff821115614c1957600080fd5b602001915060e081023603821315613dc257600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610120810169ffffffffffffffffffff614c6a84613c3f565b16604083015262ffffff614c8060208501613c59565b166060830152614c9260408401613c6c565b64ffffffffff808216608085015280614cad60608701613c6c565b1660a085015280614cc060808701613c6c565b1660c08501525050614cd460a08401613c81565b61ffff1660e0830152614ce960c08401613c81565b61ffff8116610100840152614bc0565b73ffffffffffffffffffffffffffffffffffffffff8481168252831660208201526101208101613826604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b600084516020614da88285838a01613916565b855191840191614dbb8184848a01613916565b8554920191600090614dcc8161416e565b60018281168015614de45760018114614e1757614e43565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450614e43565b896000528560002060005b84811015614e3b57815489820152908301908701614e22565b505082870194505b50929a9950505050505050505050565b600060208284031215614e6557600080fd5b81516131cb81613b2f565b60208082528181018390526000908460408401835b86811015614ec0578235614e98816139b0565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101614e85565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526144a1608083018461393a565b600060208284031215614f1c57600080fd5b81516131cb816138cb56fea264697066735822122039e08874740039c738208ca6ef6108b323ea236e69fc8d37eeae75ceb08e2bc964736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000b4865616c696e674e46547300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024848000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061032b5760003560e01c80636f8b44b0116101b257806395d89b41116100f9578063c87b56dd116100a2578063e8a3d4851161007c578063e8a3d48514610717578063e985e9c51461071f578063f2fde38b14610768578063fe2c7fee1461077b57600080fd5b8063c87b56dd146106e9578063cb743ba8146106fc578063d5abeb011461070f57600080fd5b8063ad2f852a116100d3578063ad2f852a146106b0578063b88d4fde146106ce578063c6ab67a3146106e157600080fd5b806395d89b4114610682578063a22cb4651461068a578063a48301141461069d57600080fd5b806381b3e5751161015b5780638da5cb5b116101355780638da5cb5b1461063e578063911f456b1461065c578063938e3d7b1461066f57600080fd5b806381b3e575146105ea578063840e15d4146105fd57806384c99fb41461062b57600080fd5b806379ba50971161018c57806379ba5097146105bc5780637a05bc82146105c45780637bc2be76146105d757600080fd5b80636f8b44b01461058e57806370a08231146105a1578063715018a6146105b457600080fd5b806342260b5d1161027657806360c308b61161021f57806366251b69116101f957806366251b691461056057806367243482146105735780636c0360eb1461058657600080fd5b806360c308b6146105275780636352211e1461053a57806364869dad1461054d57600080fd5b806348a4c1011161025057806348a4c101146104ee578063511aa6441461050157806355f804b31461051457600080fd5b806342260b5d1461049a57806342842e0e146104c857806344dae42c146104db57600080fd5b80631b73593c116102d85780632a55205a116102b25780632a55205a146104335780633680620d1461047257806341f434341461048557600080fd5b80631b73593c1461040557806323452b9c1461041857806323b872dd1461042057600080fd5b8063095ea7b311610309578063095ea7b3146103a5578063099b6bfa146103ba57806318160ddd146103cd57600080fd5b806301ffc9a71461033057806306fdde0314610358578063081812fc1461036d575b600080fd5b61034361033e3660046138f9565b61078e565b60405190151581526020015b60405180910390f35b610360610836565b60405161034f9190613984565b61038061037b366004613997565b6108c8565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161034f565b6103b86103b33660046139d2565b610932565b005b6103b86103c8366004613997565b61094b565b600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b60405190815260200161034f565b6103b86104133660046139fe565b6109f5565b6103b8610a8e565b6103b861042e366004613a5d565b610af4565b610446610441366004613a9e565b610b2c565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835260208301919091520161034f565b6103b8610480366004613ac0565b610b95565b6103806daaeb6d7670e522a718067333cd4e81565b6011547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff166103f7565b6103b86104d6366004613a5d565b610bf8565b6103b86104e9366004613b17565b610c2a565b6103b86104fc366004613b4d565b610d9b565b6103b861050f366004613c93565b610e3b565b6103b8610522366004613dc9565b610ea0565b6103b8610535366004613e50565b610f34565b610380610548366004613997565b610f46565b6103b861055b3660046139d2565b610f51565b6103b861056e366004613e86565b611092565b6103b8610581366004613eb4565b6110f7565b610360611275565b6103b861059c366004613997565b611284565b6103f76105af366004613f20565b611306565b6103b8611388565b6103b861139c565b6103b86105d2366004613f3d565b611456565b6103b86105e5366004613f92565b6114bb565b6103b86105f8366004613dc9565b611520565b61061061060b366004613f20565b6115ae565b6040805193845260208401929092529082015260600161034f565b6103b8610639366004614005565b61161b565b60085473ffffffffffffffffffffffffffffffffffffffff16610380565b6103b861066a366004614022565b6116cd565b6103b861067d366004613dc9565b612468565b6103606124af565b6103b861069836600461405e565b6124be565b6103b86106ab366004613a9e565b6124d2565b60115473ffffffffffffffffffffffffffffffffffffffff16610380565b6103b86106dc36600461408c565b612510565b6010546103f7565b6103606106f7366004613997565b61254a565b6103b861070a366004613b4d565b6126b8565b600a546103f7565b610360612725565b61034361072d366004613e86565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103b8610776366004613f20565b612734565b6103b8610789366004613dc9565b6127fc565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e00000000000000000000000000000000000000000000000000000000148061082157507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b806108305750610830826128b0565b92915050565b6060600280546108459061416e565b80601f01602080910402602001604051908101604052809291908181526020018280546108719061416e565b80156108be5780601f10610893576101008083540402835291602001916108be565b820191906000526020600020905b8154815290600101906020018083116108a157829003601f168201915b5050505050905090565b60006108d382612952565b610909576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b8161093c816129a0565b6109468383612aa5565b505050565b610953612bba565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01156109af576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601080549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b6109fd612bba565b610a0682612c4a565b6040517f01308e6500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316906301308e6590610a5890849060040161425f565b600060405180830381600087803b158015610a7257600080fd5b505af1158015610a86573d6000803e3d6000fd5b505050505050565b610a96612cae565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff81163314610b1b57610b1b336129a0565b610b26848484612cff565b50505050565b60118054600091829161271090610b69907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff168661429c565b610b7391906142b3565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b610b9d612bba565b610ba682612c4a565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f90610a589084906004016144ab565b8273ffffffffffffffffffffffffffffffffffffffff81163314610c1f57610c1f336129a0565b610b26848484612fb5565b610c32612bba565b6000610c416020830183613f20565b73ffffffffffffffffffffffffffffffffffffffff1603610c8e576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710610ca160408301602084016144d8565b6bffffffffffffffffffffffff161115610d0d57610cc560408201602083016144d8565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b806011610d1a82826144f5565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d9050610d4b6020830183613f20565b610d5b60408401602085016144d8565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b610da3612bba565b610dac83612c4a565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b158015610e1e57600080fd5b505af1158015610e32573d6000803e3d6000fd5b50505050505050565b610e43612bba565b610e4c83612c4a565b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841690634d38017890610e04908590859060040161455a565b610ea8612bba565b600b610eb5828483614634565b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610f30577f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180610f1160005490565b610f1b919061474e565b604080519283526020830191909152016109e9565b5050565b610f3c612cae565b610f308282612fd0565b600061083082613140565b601254600114610fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f5245454e5452414e4359000000000000000000000000000000000000000000006044820152606401610d04565b6002601255610fcb33612c4a565b600a5481610ffa6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6110049190614761565b111561107f57806110366000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6110409190614761565b600a545b6040517fe12d231400000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610d04565b6110898282613206565b50506001601255565b61109a612bba565b6110a382612c4a565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db890602401610a58565b6110ff612cae565b82811461119057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f455243373231506172746e657253656144726f703a2061697264726f703a206160448201527f63636f756e74732e6c656e67746820213d20616d6f756e74732e6c656e6774686064820152608401610d04565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905b84811015610a8657600a548484838181106111d5576111d5614774565b9050602002013583011115611208578383828181106111f6576111f6614774565b905060200201358201611044600a5490565b83838281811061121a5761121a614774565b905060200201358201915061126d86868381811061123a5761123a614774565b905060200201602081019061124f9190613f20565b85858481811061126157611261614774565b90506020020135613220565b6001016111b8565b606061127f61335e565b905090565b61128c612bba565b67ffffffffffffffff8111156112d1576040517fb43e913700000000000000000000000000000000000000000000000000000000815260048101829052602401610d04565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001610d90565b600073ffffffffffffffffffffffffffffffffffffffff8216611355576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b611390612cae565b61139a600061336d565b565b60095473ffffffffffffffffffffffffffffffffffffffff163381146113ee576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a16114538161336d565b50565b61145e612bba565b61146783612c4a565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb90610e0490859085906004016147a3565b6114c3612bba565b6114cc83612c4a565b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063fd9ab22a90610e049085908590600401614888565b60085473ffffffffffffffffffffffffffffffffffffffff1633146115a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f6e6c79206f776e65722063616e2073657420555249207375666669780000006044820152606401610d04565b600c610946828483614634565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff16908061160e6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b60085473ffffffffffffffffffffffffffffffffffffffff16331461169c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f6e6c79206f776e65722063616e207365742072657665616c207374617475736044820152606401610d04565b600e80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6116d5612cae565b803515611747576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b15801561172e57600080fd5b505af1158015611742573d6000803e3d6000fd5b505050505b61175460208201826148b3565b1590506117be57306355f804b361176e60208401846148b3565b6040518363ffffffff1660e01b815260040161178b9291906147a3565b600060405180830381600087803b1580156117a557600080fd5b505af11580156117b9573d6000803e3d6000fd5b505050505b6117cb60408201826148b3565b159050611835573063938e3d7b6117e560408401846148b3565b6040518363ffffffff1660e01b81526004016118029291906147a3565b600060405180830381600087803b15801561181c57600080fd5b505af1158015611830573d6000803e3d6000fd5b505050505b61185561184860e0830160c08401614918565b65ffffffffffff16151590565b61186861184860c0840160a08501614918565b176001036118da5730631b73593c6118866080840160608501613f20565b836080016040518363ffffffff1660e01b81526004016118a7929190614933565b600060405180830381600087803b1580156118c157600080fd5b505af11580156118d5573d6000803e3d6000fd5b505050505b6118e86101408201826148b3565b1590506119645730637a05bc826119056080840160608501613f20565b6119136101408501856148b3565b6040518463ffffffff1660e01b81526004016119319392919061495d565b600060405180830381600087803b15801561194b57600080fd5b505af115801561195f573d6000803e3d6000fd5b505050505b6000611974610160830183614996565b35146119ee5730633680620d6119906080840160608501613f20565b61199e610160850185614996565b6040518363ffffffff1660e01b81526004016119bb9291906149d4565b600060405180830381600087803b1580156119d557600080fd5b505af11580156119e9573d6000803e3d6000fd5b505050505b6000611a026101a083016101808401613f20565b73ffffffffffffffffffffffffffffffffffffffff1614611acb57306366251b69611a336080840160608501613f20565b611a456101a085016101808601613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b158015611ab257600080fd5b505af1158015611ac6573d6000803e3d6000fd5b505050505b6101a081013515611b45576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b158015611b2c57600080fd5b505af1158015611b40573d6000803e3d6000fd5b505050505b6000611b556101c0830183614a03565b90501115611c595760005b611b6e6101c0830183614a03565b9050811015611c5757306348a4c101611b8d6080850160608601613f20565b611b9b6101c0860186614a03565b85818110611bab57611bab614774565b9050602002016020810190611bc09190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611c3457600080fd5b505af1158015611c48573d6000803e3d6000fd5b50505050806001019050611b60565b505b6000611c696101e0830183614a03565b90501115611d6d5760005b611c826101e0830183614a03565b9050811015611d6b57306348a4c101611ca16080850160608601613f20565b611caf6101e0860186614a03565b85818110611cbf57611cbf614774565b9050602002016020810190611cd49190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611d4857600080fd5b505af1158015611d5c573d6000803e3d6000fd5b50505050806001019050611c74565b505b6000611d7d610200830183614a03565b90501115611e815760005b611d96610200830183614a03565b9050811015611e7f573063cb743ba8611db56080850160608601613f20565b611dc3610200860186614a03565b85818110611dd357611dd3614774565b9050602002016020810190611de89190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b158015611e5c57600080fd5b505af1158015611e70573d6000803e3d6000fd5b50505050806001019050611d88565b505b6000611e91610220830183614a03565b90501115611f955760005b611eaa610220830183614a03565b9050811015611f93573063cb743ba8611ec96080850160608601613f20565b611ed7610220860186614a03565b85818110611ee757611ee7614774565b9050602002016020810190611efc9190613f20565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b158015611f7057600080fd5b505af1158015611f84573d6000803e3d6000fd5b50505050806001019050611e9c565b505b6000611fa5610260830183614a6b565b905011156120e957611fbb610240820182614a03565b9050611fcb610260830183614a6b565b905014612004576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b612015610260830183614a6b565b90508110156120e75730637bc2be766120346080850160608601613f20565b612042610240860186614a03565b8581811061205257612052614774565b90506020020160208101906120679190613f20565b612075610260870187614a6b565b8681811061208557612085614774565b905061010002016040518463ffffffff1660e01b81526004016120aa93929190614ad3565b600060405180830381600087803b1580156120c457600080fd5b505af11580156120d8573d6000803e3d6000fd5b50505050806001019050612007565b505b60006120f9610280830183614a03565b905011156122045760005b612112610280830183614a03565b9050811015612202576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be766121726080860160608701613f20565b612180610280870187614a03565b8681811061219057612190614774565b90506020020160208101906121a59190613f20565b846040518463ffffffff1660e01b81526004016121c493929190614b06565b600060405180830381600087803b1580156121de57600080fd5b505af11580156121f2573d6000803e3d6000fd5b5050505081600101915050612104565b505b60006122146102c0830183614bc9565b905011156123575761222a6102a0820182614a03565b905061223a6102c0830183614bc9565b905014612273576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b6122846102c0830183614bc9565b9050811015612355573063511aa6446122a36080850160608601613f20565b6122b16102a0860186614a03565b858181106122c1576122c1614774565b90506020020160208101906122d69190613f20565b6122e46102c0870187614bc9565b868181106122f4576122f4614774565b905060e002016040518463ffffffff1660e01b815260040161231893929190614c30565b600060405180830381600087803b15801561233257600080fd5b505af1158015612346573d6000803e3d6000fd5b50505050806001019050612276565b505b60006123676102e0830183614a03565b905011156114535760005b6123806102e0830183614a03565b9050811015610f30576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa6446123d86080860160608701613f20565b6123e66102e0870187614a03565b868181106123f6576123f6614774565b905060200201602081019061240b9190613f20565b846040518463ffffffff1660e01b815260040161242a93929190614cf9565b600060405180830381600087803b15801561244457600080fd5b505af1158015612458573d6000803e3d6000fd5b5050505081600101915050612372565b612470612bba565b600f61247d828483614634565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac3737882826040516109e99291906147a3565b6060600380546108459061416e565b816124c8816129a0565b61094683836133e4565b6124da612bba565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91016109e9565b8373ffffffffffffffffffffffffffffffffffffffff8116331461253757612537336129a0565b6125438585858561347b565b5050505050565b606061255582612952565b6125e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610d04565b600e5460ff1661267d57600d80546125f89061416e565b80601f01602080910402602001604051908101604052809291908181526020018280546126249061416e565b80156126715780601f1061264657610100808354040283529160200191612671565b820191906000526020600020905b81548152906001019060200180831161265457829003601f168201915b50505050509050919050565b61268561335e565b61268e836134e5565b600c6040516020016126a293929190614d95565b6040516020818303038152906040529050919050565b6126c0612bba565b6126c983612c4a565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca90604401610e04565b6060600f80546108459061416e565b61273c612cae565b73ffffffffffffffffffffffffffffffffffffffff8116612789576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001610d90565b60085473ffffffffffffffffffffffffffffffffffffffff1633146128a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f6e6c79206f776e65722063616e2073657420756e72657665616c656420555260448201527f49000000000000000000000000000000000000000000000000000000000000006064820152608401610d04565b600d610946828483614634565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061294357507f49064906000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610830575061083082613547565b600081600111158015612966575060005482105b80156108305750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b15611453576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015612a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a579190614e53565b611453576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610d04565b6000612ab082610f46565b90503373ffffffffffffffffffffffffffffffffffffffff821614612b395773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16612b39576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b303314612c10612bdf60085473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b1760000361139a576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526013602052604090205460ff161515600114611453576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff16331461139a576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612d0a82613140565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612d71576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff881690911417612e0e5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff16612e0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516612e5b576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015612e6657600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003612f5557600184016000818152600460205260408120549003612f53576000548114612f535760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610a86565b61094683838360405180602001604052806000815250612510565b6014548160005b8281101561305f5760006013600060148481548110612ff857612ff8614774565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101612fd7565b5060005b818110156130f35760016013600087878581811061308357613083614774565b90506020020160208101906130989190613f20565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613063565b506131006014858561382e565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8484604051613132929190614e70565b60405180910390a150505050565b600081806001116131d4576000548110156131d457600081815260046020526040812054907c0100000000000000000000000000000000000000000000000000000000821690036131d2575b806000036131cb57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181526004602052604090205461318c565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f30828260405180602001604052806000815250613628565b600080549082900361325e576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461331a57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016132e2565b5081600003613355576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6060600b80546108459061416e565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b613486848484610af4565b73ffffffffffffffffffffffffffffffffffffffff83163b15610b26576134af848484846136b4565b610b26576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806134ff57508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806135da57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806108305750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6136328383613220565b73ffffffffffffffffffffffffffffffffffffffff83163b15610946576000548281035b61366960008683806001019450866136b4565b61369f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061365657816000541461254357600080fd5b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061370f903390899088908890600401614ecb565b6020604051808303816000875af1925050508015613768575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261376591810190614f0a565b60015b6137df573d808015613796576040519150601f19603f3d011682016040523d82523d6000602084013e61379b565b606091505b5080516000036137d7576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b8280548282559060005260206000209081019282156138a6579160200282015b828111156138a65781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84351617825560209092019160019091019061384e565b506138b29291506138b6565b5090565b5b808211156138b257600081556001016138b7565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461145357600080fd5b60006020828403121561390b57600080fd5b81356131cb816138cb565b60005b83811015613931578181015183820152602001613919565b50506000910152565b60008151808452613952816020860160208601613916565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006131cb602083018461393a565b6000602082840312156139a957600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461145357600080fd5b600080604083850312156139e557600080fd5b82356139f0816139b0565b946020939093013593505050565b60008082840360e0811215613a1257600080fd5b8335613a1d816139b0565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215613a4f57600080fd5b506020830190509250929050565b600080600060608486031215613a7257600080fd5b8335613a7d816139b0565b92506020840135613a8d816139b0565b929592945050506040919091013590565b60008060408385031215613ab157600080fd5b50508035926020909101359150565b60008060408385031215613ad357600080fd5b8235613ade816139b0565b9150602083013567ffffffffffffffff811115613afa57600080fd5b830160608186031215613b0c57600080fd5b809150509250929050565b600060408284031215613b2957600080fd5b50919050565b801515811461145357600080fd5b8035613b4881613b2f565b919050565b600080600060608486031215613b6257600080fd5b8335613b6d816139b0565b92506020840135613b7d816139b0565b91506040840135613b8d81613b2f565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715613bea57613bea613b98565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c3757613c37613b98565b604052919050565b803569ffffffffffffffffffff81168114613b4857600080fd5b803562ffffff81168114613b4857600080fd5b803564ffffffffff81168114613b4857600080fd5b803561ffff81168114613b4857600080fd5b6000806000838503610120811215613caa57600080fd5b8435613cb5816139b0565b93506020850135613cc5816139b0565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613cf757600080fd5b50613d00613bc7565b613d0c60408601613c3f565b8152613d1a60608601613c59565b6020820152613d2b60808601613c6c565b6040820152613d3c60a08601613c6c565b6060820152613d4d60c08601613c6c565b6080820152613d5e60e08601613c81565b60a0820152613d706101008601613c81565b60c0820152809150509250925092565b60008083601f840112613d9257600080fd5b50813567ffffffffffffffff811115613daa57600080fd5b602083019150836020828501011115613dc257600080fd5b9250929050565b60008060208385031215613ddc57600080fd5b823567ffffffffffffffff811115613df357600080fd5b613dff85828601613d80565b90969095509350505050565b60008083601f840112613e1d57600080fd5b50813567ffffffffffffffff811115613e3557600080fd5b6020830191508360208260051b8501011115613dc257600080fd5b60008060208385031215613e6357600080fd5b823567ffffffffffffffff811115613e7a57600080fd5b613dff85828601613e0b565b60008060408385031215613e9957600080fd5b8235613ea4816139b0565b91506020830135613b0c816139b0565b60008060008060408587031215613eca57600080fd5b843567ffffffffffffffff80821115613ee257600080fd5b613eee88838901613e0b565b90965094506020870135915080821115613f0757600080fd5b50613f1487828801613e0b565b95989497509550505050565b600060208284031215613f3257600080fd5b81356131cb816139b0565b600080600060408486031215613f5257600080fd5b8335613f5d816139b0565b9250602084013567ffffffffffffffff811115613f7957600080fd5b613f8586828701613d80565b9497909650939450505050565b6000806000838503610140811215613fa957600080fd5b8435613fb4816139b0565b93506020850135613fc4816139b0565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215613ff757600080fd5b506040840190509250925092565b60006020828403121561401757600080fd5b81356131cb81613b2f565b60006020828403121561403457600080fd5b813567ffffffffffffffff81111561404b57600080fd5b820161030081850312156131cb57600080fd5b6000806040838503121561407157600080fd5b823561407c816139b0565b91506020830135613b0c81613b2f565b600080600080608085870312156140a257600080fd5b84356140ad816139b0565b93506020858101356140be816139b0565b935060408601359250606086013567ffffffffffffffff808211156140e257600080fd5b818801915088601f8301126140f657600080fd5b81358181111561410857614108613b98565b614138847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613bf0565b9150808252898482850101111561414e57600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c9082168061418257607f821691505b602082108103613b29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b803565ffffffffffff81168114613b4857600080fd5b69ffffffffffffffffffff6141e582613c3f565b1682526141f4602082016141bb565b65ffffffffffff808216602085015280614210604085016141bb565b166040850152505061422460608201613c81565b61ffff80821660608501528061423c60808501613c81565b166080850152505060a081013561425281613b2f565b80151560a0840152505050565b60c0810161083082846141d1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176108305761083061426d565b6000826142e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261436c57600080fd5b830160208101925035905067ffffffffffffffff81111561438c57600080fd5b803603821315613dc257600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18536030181126143db57600080fd5b8401818101903567ffffffffffffffff8111156143f757600080fd5b8060051b80360383131561440a57600080fd5b6060848901529381905260809387018401938290880160005b8381101561447b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a880301825261445c8386614337565b6144678982846142ee565b985050509185019190850190600101614423565b50505050505061448e6040840184614337565b85830360408701526144a18382846142ee565b9695505050505050565b6020815260006131cb602083018461439b565b6bffffffffffffffffffffffff8116811461145357600080fd5b6000602082840312156144ea57600080fd5b81356131cb816144be565b8135614500816139b0565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff000000000000000000000000000000000000000081818454161783556020840135614550816144be565b60a01b1617905550565b73ffffffffffffffffffffffffffffffffffffffff8316815261010081016131cb602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f82111561094657600081815260208120601f850160051c810160208610156146155750805b601f850160051c820191505b81811015610a8657828155600101614621565b67ffffffffffffffff83111561464c5761464c613b98565b6146608361465a835461416e565b836145ee565b6000601f8411600181146146b2576000851561467c5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612543565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b8281101561470157868501358255602094850194600190920191016146e1565b508682101561473c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b818103818111156108305761083061426d565b808201808211156108305761083061426d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020815260006138266020830184866142ee565b803563ffffffff81168114613b4857600080fd5b69ffffffffffffffffffff6147df82613c3f565b16825261ffff6147f160208301613c81565b166020830152614803604082016141bb565b65ffffffffffff80821660408501528061481f606085016141bb565b1660608501525050608081013560ff8116811461483b57600080fd5b60ff16608083015261484f60a082016147b7565b63ffffffff1660a083015261486660c08201613c81565b61ffff1660c083015261487b60e08201613b3d565b80151560e0840152505050565b73ffffffffffffffffffffffffffffffffffffffff8316815261012081016131cb60208301846147cb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148e857600080fd5b83018035915067ffffffffffffffff82111561490357600080fd5b602001915036819003821315613dc257600080fd5b60006020828403121561492a57600080fd5b6131cb826141bb565b73ffffffffffffffffffffffffffffffffffffffff8316815260e081016131cb60208301846141d1565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061498d6040830184866142ee565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18336030181126149ca57600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000613826604083018461439b565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614a3857600080fd5b83018035915067ffffffffffffffff821115614a5357600080fd5b6020019150600581901b3603821315613dc257600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614aa057600080fd5b83018035915067ffffffffffffffff821115614abb57600080fd5b6020019150600881901b3603821315613dc257600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610140810161382660408301846147cb565b60006101408201905073ffffffffffffffffffffffffffffffffffffffff808616835280851660208401525069ffffffffffffffffffff835116604083015261ffff602084015116606083015265ffffffffffff60408401511660808301526060830151614b7e60a084018265ffffffffffff169052565b50608083015160ff811660c08401525060a083015163ffffffff811660e08401525060c083015161ffff81166101008401525060e08301518015156101208401525b50949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614bfe57600080fd5b83018035915067ffffffffffffffff821115614c1957600080fd5b602001915060e081023603821315613dc257600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610120810169ffffffffffffffffffff614c6a84613c3f565b16604083015262ffffff614c8060208501613c59565b166060830152614c9260408401613c6c565b64ffffffffff808216608085015280614cad60608701613c6c565b1660a085015280614cc060808701613c6c565b1660c08501525050614cd460a08401613c81565b61ffff1660e0830152614ce960c08401613c81565b61ffff8116610100840152614bc0565b73ffffffffffffffffffffffffffffffffffffffff8481168252831660208201526101208101613826604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b600084516020614da88285838a01613916565b855191840191614dbb8184848a01613916565b8554920191600090614dcc8161416e565b60018281168015614de45760018114614e1757614e43565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450614e43565b896000528560002060005b84811015614e3b57815489820152908301908701614e22565b505082870194505b50929a9950505050505050505050565b600060208284031215614e6557600080fd5b81516131cb81613b2f565b60208082528181018390526000908460408401835b86811015614ec0578235614e98816139b0565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101614e85565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526144a1608083018461393a565b600060208284031215614f1c57600080fd5b81516131cb816138cb56fea264697066735822122039e08874740039c738208ca6ef6108b323ea236e69fc8d37eeae75ceb08e2bc964736f6c63430008110033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.