[ { "inputs": [ { "internalType": "address", "name": "_mintFeeRecipient", "type": "address" }, { "internalType": "address", "name": "_upgradeGate", "type": "address" }, { "internalType": "address", "name": "_protocolRewards", "type": "address" }, { "internalType": "address", "name": "_timedSaleStrategy", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ADDRESS_DELEGATECALL_TO_NON_CONTRACT", "type": "error" }, { "inputs": [], "name": "ADDRESS_LOW_LEVEL_CALL_FAILED", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "user", "type": "address" } ], "name": "Burn_NotOwnerOrApproved", "type": "error" }, { "inputs": [], "name": "CREATOR_FUNDS_RECIPIENT_NOT_SET", "type": "error" }, { "inputs": [ { "internalType": "bytes", "name": "reason", "type": "bytes" } ], "name": "CallFailed", "type": "error" }, { "inputs": [], "name": "Call_TokenIdMismatch", "type": "error" }, { "inputs": [], "name": "CallerNotZoraCreator1155", "type": "error" }, { "inputs": [], "name": "CanOnlyReduceMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "totalMinted", "type": "uint256" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" } ], "name": "CannotMintMoreTokens", "type": "error" }, { "inputs": [], "name": "CannotReduceMaxSupplyBelowMinted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "proposedAddress", "type": "address" } ], "name": "Config_TransferHookNotSupported", "type": "error" }, { "inputs": [], "name": "ERC1155_ACCOUNTS_AND_IDS_LENGTH_MISMATCH", "type": "error" }, { "inputs": [], "name": "ERC1155_ADDRESS_ZERO_IS_NOT_A_VALID_OWNER", "type": "error" }, { "inputs": [], "name": "ERC1155_BURN_AMOUNT_EXCEEDS_BALANCE", "type": "error" }, { "inputs": [], "name": "ERC1155_BURN_FROM_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "ERC1155_CALLER_IS_NOT_TOKEN_OWNER_OR_APPROVED", "type": "error" }, { "inputs": [], "name": "ERC1155_ERC1155RECEIVER_REJECTED_TOKENS", "type": "error" }, { "inputs": [], "name": "ERC1155_IDS_AND_AMOUNTS_LENGTH_MISMATCH", "type": "error" }, { "inputs": [], "name": "ERC1155_INSUFFICIENT_BALANCE_FOR_TRANSFER", "type": "error" }, { "inputs": [], "name": "ERC1155_MINT_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "ERC1155_MINT_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "ERC1155_SETTING_APPROVAL_FOR_SELF", "type": "error" }, { "inputs": [], "name": "ERC1155_TRANSFER_TO_NON_ERC1155RECEIVER_IMPLEMENTER", "type": "error" }, { "inputs": [], "name": "ERC1155_TRANSFER_TO_ZERO_ADDRESS", "type": "error" }, { "inputs": [], "name": "ERC1967_NEW_IMPL_NOT_CONTRACT", "type": "error" }, { "inputs": [], "name": "ERC1967_NEW_IMPL_NOT_UUPS", "type": "error" }, { "inputs": [], "name": "ERC1967_UNSUPPORTED_PROXIABLEUUID", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ETHWithdrawFailed", "type": "error" }, { "inputs": [], "name": "FUNCTION_MUST_BE_CALLED_THROUGH_ACTIVE_PROXY", "type": "error" }, { "inputs": [], "name": "FUNCTION_MUST_BE_CALLED_THROUGH_DELEGATECALL", "type": "error" }, { "inputs": [], "name": "FirstMinterAddressZero", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "contractValue", "type": "uint256" } ], "name": "FundsWithdrawInsolvent", "type": "error" }, { "inputs": [], "name": "INITIALIZABLE_CONTRACT_ALREADY_INITIALIZED", "type": "error" }, { "inputs": [], "name": "INITIALIZABLE_CONTRACT_IS_NOT_INITIALIZING", "type": "error" }, { "inputs": [], "name": "INVALID_ADDRESS_ZERO", "type": "error" }, { "inputs": [], "name": "INVALID_ETH_AMOUNT", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "mintTo", "type": "address" }, { "internalType": "bytes32[]", "name": "merkleProof", "type": "bytes32[]" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" } ], "name": "InvalidMerkleProof", "type": "error" }, { "inputs": [], "name": "InvalidMintSchedule", "type": "error" }, { "inputs": [], "name": "InvalidMintSchedule", "type": "error" }, { "inputs": [], "name": "InvalidPremintVersion", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "InvalidSignatureVersion", "type": "error" }, { "inputs": [ { "internalType": "bytes4", "name": "magicValue", "type": "bytes4" } ], "name": "InvalidSigner", "type": "error" }, { "inputs": [], "name": "MintNotYetStarted", "type": "error" }, { "inputs": [], "name": "Mint_InsolventSaleTransfer", "type": "error" }, { "inputs": [], "name": "Mint_InvalidMintArrayLength", "type": "error" }, { "inputs": [], "name": "Mint_TokenIDMintNotAllowed", "type": "error" }, { "inputs": [], "name": "Mint_UnknownCommand", "type": "error" }, { "inputs": [], "name": "Mint_ValueTransferFail", "type": "error" }, { "inputs": [], "name": "MinterContractAlreadyExists", "type": "error" }, { "inputs": [], "name": "MinterContractDoesNotExist", "type": "error" }, { "inputs": [], "name": "NewOwnerNeedsToBeAdmin", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "NoRendererForToken", "type": "error" }, { "inputs": [], "name": "NonEthRedemption", "type": "error" }, { "inputs": [], "name": "ONLY_CREATE_REFERRAL", "type": "error" }, { "inputs": [], "name": "OnlyAllowedForRegisteredMinter", "type": "error" }, { "inputs": [], "name": "OnlyAllowedForTimedSaleStrategy", "type": "error" }, { "inputs": [], "name": "OnlyTransfersFromZoraMints", "type": "error" }, { "inputs": [], "name": "PremintDeleted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ProtocolRewardsWithdrawFailed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "renderer", "type": "address" } ], "name": "RendererNotValid", "type": "error" }, { "inputs": [], "name": "Renderer_NotValidRendererContract", "type": "error" }, { "inputs": [], "name": "SaleEnded", "type": "error" }, { "inputs": [], "name": "SaleHasNotStarted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "targetContract", "type": "address" } ], "name": "Sale_CannotCallNonSalesContract", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "TokenIdMismatch", "type": "error" }, { "inputs": [], "name": "UUPS_UPGRADEABLE_MUST_NOT_BE_CALLED_THROUGH_DELEGATECALL", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "limit", "type": "uint256" }, { "internalType": "uint256", "name": "requestedAmount", "type": "uint256" } ], "name": "UserExceedsMintLimit", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "role", "type": "uint256" } ], "name": "UserMissingRoleForToken", "type": "error" }, { "inputs": [], "name": "WrongValueSent", "type": "error" }, { "inputs": [], "name": "premintSignerContractFailedToRecoverSigner", "type": "error" }, { "inputs": [], "name": "premintSignerContractNotAContract", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "updater", "type": "address" }, { "indexed": true, "internalType": "enum IZoraCreator1155.ConfigUpdate", "name": "updateType", "type": "uint8" }, { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint96", "name": "__gap1", "type": "uint96" }, { "internalType": "address payable", "name": "fundsRecipient", "type": "address" }, { "internalType": "uint96", "name": "__gap2", "type": "uint96" }, { "internalType": "contract ITransferHookReceiver", "name": "transferHook", "type": "address" }, { "internalType": "uint96", "name": "__gap3", "type": "uint96" } ], "indexed": false, "internalType": "struct IZoraCreator1155TypesV1.ContractConfig", "name": "newConfig", "type": "tuple" } ], "name": "ConfigUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "updater", "type": "address" }, { "indexed": false, "internalType": "string", "name": "uri", "type": "string" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" } ], "name": "ContractMetadataUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "contract IRenderer1155", "name": "renderer", "type": "address" } ], "name": "ContractRendererUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "structHash", "type": "bytes32" }, { "indexed": false, "internalType": "string", "name": "domainName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "version", "type": "string" }, { "indexed": false, "internalType": "address", "name": "creator", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "CreatorAttribution", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "lastOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Purchased", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "renderer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "user", "type": "address" } ], "name": "RendererUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "maxSupply", "type": "uint256" } ], "name": "SetupNewToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "permissions", "type": "uint256" } ], "name": "UpdatedPermissions", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "components": [ { "internalType": "uint32", "name": "royaltyMintSchedule", "type": "uint32" }, { "internalType": "uint32", "name": "royaltyBPS", "type": "uint32" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" } ], "indexed": false, "internalType": "struct ICreatorRoyaltiesControl.RoyaltyConfiguration", "name": "configuration", "type": "tuple" } ], "name": "UpdatedRoyalties", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "components": [ { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "totalMinted", "type": "uint256" } ], "indexed": false, "internalType": "struct IZoraCreator1155TypesV1.TokenData", "name": "tokenData", "type": "tuple" } ], "name": "UpdatedToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "CONTRACT_BASE_ID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMISSION_BIT_ADMIN", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMISSION_BIT_FUNDS_MANAGER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMISSION_BIT_METADATA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMISSION_BIT_MINTER", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PERMISSION_BIT_SALES", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "permissionBits", "type": "uint256" } ], "name": "addPermission", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "adminMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "lastTokenId", "type": "uint256" } ], "name": "assumeLastTokenIdMatches", "outputs": [], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "batchBalances", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "callRenderer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IMinter1155", "name": "salesConfig", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "callSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mintPrice", "type": "uint256" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "computeTotalReward", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "config", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint96", "name": "__gap1", "type": "uint96" }, { "internalType": "address payable", "name": "fundsRecipient", "type": "address" }, { "internalType": "uint96", "name": "__gap2", "type": "uint96" }, { "internalType": "contract ITransferHookReceiver", "name": "transferHook", "type": "address" }, { "internalType": "uint96", "name": "__gap3", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractVersion", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "createReferrals", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "customRenderers", "outputs": [ { "internalType": "contract IRenderer1155", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "premintConfig", "type": "bytes" }, { "internalType": "bytes32", "name": "premintVersion", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }, { "internalType": "address", "name": "firstMinter", "type": "address" }, { "internalType": "address", "name": "premintSignerContract", "type": "address" } ], "name": "delegateSetupNewToken", "outputs": [ { "internalType": "uint256", "name": "newTokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "name": "delegatedTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "firstMinters", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getCreatorRewardRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getCustomRenderer", "outputs": [ { "internalType": "contract IRenderer1155", "name": "customRenderer", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getRoyalties", "outputs": [ { "components": [ { "internalType": "uint32", "name": "royaltyMintSchedule", "type": "uint32" }, { "internalType": "uint32", "name": "royaltyBPS", "type": "uint32" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" } ], "internalType": "struct ICreatorRoyaltiesControl.RoyaltyConfiguration", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getTokenInfo", "outputs": [ { "components": [ { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "uint256", "name": "totalMinted", "type": "uint256" } ], "internalType": "struct IZoraCreator1155TypesV1.TokenData", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "contractName", "type": "string" }, { "internalType": "string", "name": "newContractURI", "type": "string" }, { "components": [ { "internalType": "uint32", "name": "royaltyMintSchedule", "type": "uint32" }, { "internalType": "uint32", "name": "royaltyBPS", "type": "uint32" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" } ], "internalType": "struct ICreatorRoyaltiesControl.RoyaltyConfiguration", "name": "defaultRoyaltyConfiguration", "type": "tuple" }, { "internalType": "address payable", "name": "defaultAdmin", "type": "address" }, { "internalType": "bytes[]", "name": "setupActions", "type": "bytes[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "role", "type": "uint256" } ], "name": "isAdminOrRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "metadataRendererContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IMinter1155", "name": "minter", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "address[]", "name": "rewardsRecipients", "type": "address[]" }, { "internalType": "bytes", "name": "minterArguments", "type": "bytes" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "mintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "permissions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "newMaxSupply", "type": "uint256" } ], "name": "reduceSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "uint256", "name": "permissionBits", "type": "uint256" } ], "name": "removePermission", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "royalties", "outputs": [ { "internalType": "uint32", "name": "royaltyMintSchedule", "type": "uint32" }, { "internalType": "uint32", "name": "royaltyBPS", "type": "uint32" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "address payable", "name": "fundsRecipient", "type": "address" } ], "name": "setFundsRecipient", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "contract IRenderer1155", "name": "renderer", "type": "address" } ], "name": "setTokenMetadataRenderer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract ITransferHookReceiver", "name": "transferHook", "type": "address" } ], "name": "setTransferHook", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newURI", "type": "string" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" } ], "name": "setupNewToken", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newURI", "type": "string" }, { "internalType": "uint256", "name": "maxSupply", "type": "uint256" }, { "internalType": "address", "name": "createReferral", "type": "address" } ], "name": "setupNewTokenWithCreateReferral", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "supportedPremintSignatureVersions", "outputs": [ { "internalType": "string[]", "name": "", "type": "string[]" } ], "stateMutability": "pure", "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": "pure", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" }, { "internalType": "string", "name": "_newName", "type": "string" } ], "name": "updateContractMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "updateCreateReferral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "components": [ { "internalType": "uint32", "name": "royaltyMintSchedule", "type": "uint32" }, { "internalType": "uint32", "name": "royaltyBPS", "type": "uint32" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" } ], "internalType": "struct ICreatorRoyaltiesControl.RoyaltyConfiguration", "name": "newConfiguration", "type": "tuple" } ], "name": "updateRoyaltiesForToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "updateTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
610140346200022457601f62005a8138819003918201601f1916830191906001600160401b0383118484101762000229578160809285926040958652833981010312620002245762000051826200023f565b9062000060602084016200023f565b926200007c6060620000748484016200023f565b92016200023f565b3060805261271060a052926001600160a01b039182168015801562000219575b620002085760e05260c0526000549360ff8560081c16159485801590620001fb575b80620001e1575b620001d05760ff19811660011760005585620001bd575b5016928315620001ac5761010093845261012092835262000171575b519061582c92836200025584396080518381816122980152818161232f0152612749015260a051836135eb015260c051838181612be2015281816131560152818161317f015281816131bb01526131e1015260e051838181612b610152612c210152518281816123a401526127bb015251816110130152f35b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986020825160018152a1620000f8565b8151632d87658960e01b8152600490fd5b61ffff19166101011760005538620000dc565b8351633d5c224160e11b8152600490fd5b50303b151580620000c55750600160ff82161415620000c5565b5060ff81161515620000be565b8351632d87658960e01b8152600490fd5b50828216156200009c565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002245756fe6080604052600436101561001b575b361561001957600080fd5b005b6000803560e01c8062fdd58e14613bba5780630114420114613b9e57806301ffc9a714613a8857806306fdde03146139d55780630e89341c146139b557806310a7eb5d1461393457806313966db51461391357806313af4035146138ab57806317bd48bb1461383a57806318711c7d1461381e57806318e97fd11461369157806323bd0386146136435780632a55205a146135bb5780632eb2c2d614613260578063300ecdb91461321b578063359f13021461291b5780633659cfe6146127235780633ccfd60b146126635780634e1273f4146125635780634f1ef286146122f057806352d1902d146122855780635c60da1b1461224f5780635d0f6cba146120fc5780635e4e0404146120dd5780636661a9ba14611f82578063674cbae614611eff57806369a5b30214611ecb5780636b20c45414611c52578063709e537f14611bc957806375794a3c14611baa57806375d0c0dc14611b5857806379502c5514611afd5780637dafae4d14611ac95780637f2dc61c146119e85780637f77f574146119995780638a08eb4c146114bb5780638c7a63ae146114475780638da5cb5b1461141d5780638ec998a0146113bd578063929a7128146113a257806395d89b41146113445780639c5c63c9146112ab5780639ebb832414611277578063a0a8e46014611230578063a22cb46514611191578063a453eaf014611175578063a457c67314611153578063ac9650d8146110b7578063af80248014611001578063afed7e9e14610e63578063bb3bafd614610e37578063bdd864f214610dfd578063c046435614610de1578063c238d1ee14610d7d578063d258609a14610d14578063d904b94a14610b4e578063dd15e05f14610b1a578063e72878b414610ad4578063e74d86c214610aa3578063e8a3d48514610a6f578063e985e9c514610a1b578063ed788913146108b0578063ef71c82e1461061b578063f1b0d6bb146105ff5763f242432a146102f1575061000e565b346105fc5760a03660031901126105fc5761030a613be2565b610312613bf8565b906064356044356084356001600160401b0381116105f857610338903690600401613d48565b6001600160a01b039384169333851415806105d5575b6105c3578086169081156105b1576101cb54168061052f575b50828752602095609787526040882086600052875260406000205485811061051d578590858a526097895260408a2088600052895203604060002055838852609787526040882082600052875260406000206103c4868254614055565b90558186604051868152878a8201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6260403392a43b610402578680f35b61044693600087946040519687958694859363f23a6e6160e01b9b8c865233600487015260248601526044850152606484015260a0608484015260a4830190613c31565b03925af1600091816104ee575b506104cb5750506001906104656140bd565b6308c379a014610492575b50610480575b3880808080808680f35b6040516377d5b49160e11b8152600490fd5b61049a6140db565b90816104a65750610470565b6104c760405192839262461bcd60e51b845260048401526024830190613c31565b0390fd5b6001600160e01b03191614905061047657604051633fbfe7f560e21b8152600490fd5b61050f919250843d8611610516575b6105078183613cd5565b81019061409d565b9038610453565b503d6104fd565b604051636eaa1ea960e11b8152600490fd5b803b156105ac576000604051809263417b2f9760e11b82523060048301523360248301528860448301528460648301528660848301528760a483015260e060c483015281838161058260e482018a613c31565b03925af180156105a057156103675761059a90613ca7565b38610367565b6040513d6000823e3d90fd5b600080fd5b604051631c53f61160e21b8152600490fd5b604051633e2ea01560e21b8152600490fd5b508487526098602052604087203360005260205260ff604060002054161561034e565b8580fd5b80fd5b50346105fc57806003193601126105fc57602060405160048152f35b50346105fc5760403660031901126105fc576001600160401b036004358181116108ac5761064d903690600401613d48565b6024358281116108a857610665903690600401613d48565b3360009081526000805160206157d7833981519152602090815260409091205491939091601216158015906101fe90610884575b501561085e578480526101c682526040852090835190811161084a576106bf8254614185565b601f8111610807575b5082601f821160011461077e57927f74b7c2afa3f89c562b59674a101e2c48bceeb27cdb620afefa14446f1ffa487b9492826107499361073a968a91610773575b508160011b916000199060031b1c19161790555b610726866142bb565b604051938493604085526040850190613c31565b90838203908401523395613c31565b0390a27fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad9628180a180f35b905085015138610709565b82875283872090601f198316885b8181106107f057508361073a96937f74b7c2afa3f89c562b59674a101e2c48bceeb27cdb620afefa14446f1ffa487b98969361074996600194106107d7575b5050811b01905561071d565b87015160001960f88460031b161c1916905538806107cb565b91928660018192868b01518155019401920161078c565b828752838720601f830160051c810191858410610840575b601f0160051c01905b81811061083557506106c8565b878155600101610828565b909150819061081f565b634e487b7160e01b86526041600452602486fd5b604051634baa2a4d60e01b81523360048201526000602482015260106044820152606490fd5b90506000805282526040600020336000528252601260406000205416151538610699565b8380fd5b8280fd5b50346105fc57806003193601126105fc5760405163ed78891360e01b8152818160048173a0e764da3ed61417aca0344610221744d6ad60d15af4908115610a10578291610958575b5060405190602092838301848452825180915260408401948060408360051b870101940192955b82871061092c5785850386f35b909192938280610948600193603f198a82030186528851613c31565b960192019601959291909261091f565b90503d8083833e6109698183613cd5565b810160209081838203126108a85782516001600160401b03938482116105f857019080601f83011215610a0c578151906109a282613d7c565b946109b06040519687613cd5565b828652848087019360051b85010193828511610a0857858101935b8585106109df5750505050505050386108f8565b8451838111610a045787916109f9868480948701016148ce565b8152019401936109cb565b8980fd5b8780fd5b8480fd5b6040513d84823e3d90fd5b50346105fc5760403660031901126105fc57610a35613be2565b6040610a3f613bf8565b9260018060a01b0380931681526098602052209116600052602052602060ff604060002054166040519015158152f35b50346105fc57806003193601126105fc57610a9f610a8b614cfd565b604051918291602083526020830190613c31565b0390f35b50346105fc5760203660031901126105fc576020610ac2600435615503565b6040516001600160a01b039091168152f35b50346105fc5760203660031901126105fc576004356000196101c85401818103610afc578280f35b6044925060405191634fa09b3f60e01b835260048301526024820152fd5b50346105fc5760203660031901126105fc57602090600435815261012d8252604060018060a01b0391205416604051908152f35b50346105fc5760603660031901126105fc57600435610b6b613bf8565b906044356001600160401b0381116108a857610b8b903690600401613e2c565b91806000526101fe936020948086526040600020336000528652600a604060002054161590811591610cf0575b5015610cca576001600160a01b031690610bd28183614453565b6040516301ffc9a760e01b8152636890e5b360e01b60048201528581602481865afa908115610cbf578791610c92575b5015610c7957836024116105f857600483013503610c6757828580949381946040519384928337810182815203925af190610c3b613fbc565b9115610c45578280f35b6104c760405192839263a5fa8d2b60e01b845260048401526024830190613c31565b60405163fe486c2b60e01b8152600490fd5b6040516370adc70360e11b815260048101839052602490fd5b610cb29150863d8811610cb8575b610caa8183613cd5565b8101906149d3565b38610c02565b503d610ca0565b6040513d89823e3d90fd5b604051634baa2a4d60e01b81523360048201526024810183905260086044820152606490fd5b90506000805285526040600020336000528552600a60406000205416151538610bb8565b50346105fc5760403660031901126105fc57600435906001600160401b0382116105fc576020610d70610d4a3660048601613e2c565b610d53336144da565b610d5b614265565b610d6b3392602435923691613d11565b614555565b6001606555604051908152f35b50346105fc5760803660031901126105fc57610d97613be2565b602435606435916001600160401b0383116108a857610dbd610dd9933690600401613d48565b91610dc6614265565b610dd08133614453565b604435916149eb565b600160655580f35b50346105fc57806003193601126105fc57602060405160028152f35b50346105fc5760203660031901126105fc5760043563ffffffff81168091036105ac57816040916020935261023383522054604051908152f35b50346105fc5760203660031901126105fc57610a9f610e57600435615538565b60405191829182613f44565b50346105fc5760803660031901126105fc5760043560603660231901126105ac5760405190610e9182613c71565b63ffffffff60243581811681036105ac57835260443581811681036105ac576020848101918252606435906001600160a01b0380831683036105ac5760408701928352856000526101fe80835260406000203360005283526022604060002054161590811591610fdd575b5015610fb95784875116610fb0575b8251161580610fa4575b610f925784600052610160815263ffffffff60201b6040600020948751169185549451901b1691600160401b600160e01b03905160401b169263ffffffff60e01b1617171790557f5837d55897cfc337f160a71d7b63a047abd50a3a8834f1c5d70f338846358c6d60405180610f8c339582613f44565b0390a380f35b604051630d9b92f160e01b8152600490fd5b50838351161515610f15565b60008752610f0b565b6064868360405191634baa2a4d60e01b835233600484015260248301526044820152fd5b90506000805282526040600020336000528252602260406000205416151538610efc565b50346105fc5761101036613d66565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036110a5578083526101fe6020526040832033600052602052600460406000205416156110935782526101c66020526040822060028101548210611081576001015580f35b6040516393a76ea360e01b8152600490fd5b6040516322ecd3ff60e21b8152600490fd5b604051636fa2ab9f60e11b8152600490fd5b50346105fc5760208060031936011261114f576004356001600160401b0381116108ac576110f36110ed84923690600401613dfc565b90615600565b60405191838301848452825180915260408401948060408360051b870101940192955b8287106111235785850386f35b90919293828061113f600193603f198a82030186528851613c31565b9601920196019592919092611116565b5080fd5b50346105fc57602061116d61116736613d66565b90614172565b604051908152f35b50346105fc57806003193601126105fc57602060405160108152f35b50346105fc5760403660031901126105fc576111ab613be2565b602435908115158092036108ac576001600160a01b03169033821461121e5733835260986020526040832082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b604051636b3fa0d960e11b8152600490fd5b50346105fc57806003193601126105fc57610a9f60405161125081613c56565b600681526519171899971960d11b6020820152604051918291602083526020830190613c31565b50346105fc5760203660031901126105fc5760209060043581526102328252604060018060a01b0391205416604051908152f35b50346105fc5760403660031901126105fc57806024356004356001600160401b038211611340576112e183923690600401613d48565b906112ec81336143cc565b6001600160a01b03906112fe90615503565b1682602083519301915af1611311613fbc565b901561131b575080f35b60405163a5fa8d2b60e01b8152602060048201529081906104c7906024830190613c31565b5050fd5b50346105fc57806003193601126105fc5760405160208082528160605191828183015260005b83811061138c5750508160006040809484010152601f80199101168101030190f35b608081015185820160400152849250810161136a565b50346105fc57806003193601126105fc576020604051818152f35b50346105fc576113cc36613eeb565b916113d7813361486c565b60008181526101fe602090815260408083206001600160a01b0395909516808452949091528120805494909417938490556000805160206157778339815191529080a480f35b50346105fc57806003193601126105fc576101c9546040516001600160a01b039091168152602090f35b50346105fc5760203660031901126105fc57604081610a9f9282805161146c81613c71565b60608152826020820152015260043581526101c66020522060026040519161149383613c71565b61149c816141bf565b8352600181015460208401520154604082015260405191829182613f15565b50346105fc5760e03660031901126105fc576004356001600160401b03811161114f576114ec903690600401613d48565b6024356001600160401b0381116108ac5761150b903690600401613d48565b60603660431901126105ac5760405161152381613c71565b60443563ffffffff811681036105ac57815260643563ffffffff811681036105ac5760208201526084356001600160a01b03811681036105ac57604082015260a4356001600160a01b03811690036105ac5760c4356001600160401b038111610a0c57611594903690600401613dfc565b909161159e614265565b855493600885901c60ff161580159061198d575b80611975575b61196357600160ff19861617875560ff8560081c1615611952575b60ff875460081c16156119415760016065556115f960a4356001600160a01b03166154c0565b6101c8908154916001830190556040519061161382613c71565b81526000602082015260006040820152816000526101c6602052604060002081518051906001600160401b03821161192b5781906116518454614185565b601f81116118db575b50602090601f831160011461186f57600092611864575b50508160011b916000199060031b1c19161781555b60208201516001820155600260408301519101557f5086d1bcea28999da9875111e3592688fbfa821db63214c695ca35768080c2fe604051806116ca339482613f15565b0390a363ffffffff81511661185b575b60408101516001600160a01b03161580611848575b610f925760ff946117a29160008052610160602052604060002063ffffffff82511681549063ffffffff60201b602085015160201b1690600160401b600160e01b03604086015160401b169263ffffffff60e01b16171717905560007f5837d55897cfc337f160a71d7b63a047abd50a3a8834f1c5d70f338846358c6d6040518061177b339582613f44565b0390a361179260a4356001600160a01b0316614ec6565b61179d60a435614f42565b6142bb565b806117f4575b505060081c16156117bb57600160655580f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1610dd9565b61180691611801336154c0565b615600565b503360008181526000805160206157d7833981519152602052604081208054600219169081905591906000805160206157778339815191528180a438806117a8565b5063ffffffff60208201511615156116ef565b600081526116da565b015190503880611671565b9250836000526020600020906000935b601f19841685106118c0576001945083601f198116106118a7575b505050811b018155611686565b015160001960f88460031b161c1916905538808061189a565b8181015183556020948501946001909301929091019061187f565b909150836000526020600020601f840160051c810160208510611924575b90849392915b601f830160051c8201811061191557505061165a565b600081558594506001016118ff565b50806118f9565b634e487b7160e01b600052604160045260246000fd5b6040516296bfb160e81b8152600490fd5b61ffff1985166101011787556115d3565b604051633d5c224160e11b8152600490fd5b50303b1515806115b85750600160ff861614156115b8565b5060ff851615156115b2565b50346105fc5760203660031901126105fc576040606091600435815261016060205220546040519063ffffffff80821683528160201c16602083015260018060a01b039060401c166040820152f35b50346105fc5760203660031901126105fc576004356001600160a01b0381169081900361114f57611a18336147e6565b80611a54575b6101cb80546001600160a01b031916909117905560405160029033906000805160206157578339815191529080610f8c81614c92565b6040516301ffc9a760e01b815262123aaf60e51b6004820152602081602481855afa908115611abe578391611aa0575b50611a1e576024906040519062be74ab60e51b82526004820152fd5b611ab8915060203d8111610cb857610caa8183613cd5565b38611a84565b6040513d85823e3d90fd5b50346105fc5760203660031901126105fc5760209060043581526102318252604060018060a01b0391205416604051908152f35b50346105fc57806003193601126105fc5760c06101c9546101ca54906101cb54906040519260018060a01b0391828116855260a01c6020850152818116604085015260a01c60608401528116608083015260a01c60a0820152f35b50346105fc57806003193601126105fc57610a9f604051611b7881613c56565b60118152705a6f72612043726561746f72203131353560781b6020820152604051918291602083526020830190613c31565b50346105fc57806003193601126105fc5760206101c854604051908152f35b50346105fc5760a03660031901126105fc576001600160401b036004358181116108ac57611bfb903690600401613d48565b916044359182116105fc5750611c15903690600401613e2c565b9091906001600160a01b03906064359082821682036105ac5760843592831683036105ac57602094610d7094611c49614265565b6024359061501f565b50346105fc57600319906060368301126105fc57611c6e613be2565b6001600160401b036024358181116108a857611c8e903690600401613dfc565b949091604435908111610a0c57611ca9903690600401613dfc565b6001600160a01b0396858816959194913387141580611ea8575b611e8a5750611ce09291611cd8913691613d93565b933691613d93565b948315611e785782519186518303611e665760405191611cff83613cba565b8683526101cb54169182611dcd575b505050835b818110611d645750507f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb611d508495604051918291339583614078565b0390a480604051611d6081613cba565b5280f35b611d6e818461402b565b5190611d7a818861402b565b51828752609760208181526040892088600052815260406000205491838310611dbb576001958a528152604089209088600052520360406000205501611d13565b604051632fc4b76160e11b8152600490fd5b823b156105ac57879285600088611e418296611e2296611e326040519a8b998a988997634058856760e11b89523060048a01523360248a0152604489015288606489015260e0608489015260e4880190613eb7565b90848783030160a4880152613eb7565b918483030160c4850152613c31565b03925af180156105a057611e57575b8080611d0e565b611e6090613ca7565b38611e50565b60405163f9532c3960e01b8152600490fd5b6040516345d40ad560e01b8152600490fd5b6040516341ce11f960e11b81529081906104c7903360048401614c78565b508688526098602052604088203360005260205260ff6040600020541615611cc3565b50346105fc5760203660031901126105fc5760209060043581526101c78252604060018060a01b0391205416604051908152f35b50346105fc5760603660031901126105fc576004356001600160401b03811161114f57611f30903690600401613e2c565b91906044356001600160a01b03811691908290036105ac57611f5a604091602095610d53336144da565b8084526102318552922080546001600160a01b03191690911790556001606555604051908152f35b50346105fc5760403660031901126105fc576004356024356001600160a01b038116908190036108ac57611fb4614265565b611fbe82336143cc565b81835261012d60209081526040842080546001600160a01b031916831790559080612068575b6040513382857f5010f780a0de79bcfb9f3d6fec3cfe29758ef5c5800d575af709bc590bd78ade8880a484846120485750507f56e810c8cae84731149f628981d25769a084570b9ba6eebf3c32879e3dce56099250604051908152a1600160655580f35b6040925083600080516020615797833981519152948352820152a2610dd9565b6040516301ffc9a760e01b8152633de3f32360e11b60048201528281602481855afa9081156120d25785916120b5575b50611fe4576024906040519063da755beb60e01b82526004820152fd5b6120cc9150833d8511610cb857610caa8183613cd5565b38612098565b6040513d87823e3d90fd5b50346105fc5760203660031901126105fc576020610ac260043561495c565b50346105fc5761210b36613eeb565b6001600160a01b0392909183163381148061222b575b1561221c575b60008281526101fe6020818152604080842085855282528320805496199096169586905594909391839083906000805160206157778339815191529080a415918261220d575b826121ea575b505061217d578280f35b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09160006040926101c99283549360018060a01b031985169055845193168352820152a160006040516000805160206157578339815191523391806121e181614c92565b0390a338808280f35b909150848052825260408420906000528152600260406000205416153880612173565b6101c95485168214925061216d565b612226823361486c565b612127565b508185526101fe602052604085203360005260205282806040600020541614612121565b50346105fc57806003193601126105fc576000805160206157b7833981519152546040516001600160a01b039091168152602090f35b50346105fc57806003193601126105fc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036122de5760206040516000805160206157b78339815191528152f35b604051635e4c25f160e01b8152600490fd5b5060403660031901126105fc57612305613be2565b6024356001600160401b0381116108ac57612324903690600401613d48565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690308214612551576000805160206157b7833981519152908082541692830361253f57839261237e336147e6565b604051906321f7434760e01b8252818061239f602097889460048401614c78565b0381857f0000000000000000000000000000000000000000000000000000000000000000165afa908115610cbf578791612522575b50156105f8577f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612414575050506124119150613f75565b80f35b8316906040516352d1902d60e01b81528381600481865afa600091816124f3575b5061244c5760405163e5ec176960e01b8152600490fd5b036124e15761245a83613f75565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28351158015906124d9575b61249a575b5050505080f35b823b156124ca57508260009283926124c095519201905af46124ba613fbc565b90614149565b5038808080612493565b63369891e760e01b8152600490fd5b50600161248e565b6040516308373ebf60e41b8152600490fd5b90918582813d831161251b575b61250a8183613cd5565b810103126105fc5750519038612435565b503d612500565b6125399150843d8611610cb857610caa8183613cd5565b386123d4565b6040516364cd8d1960e01b8152600490fd5b604051631932df4560e01b8152600490fd5b50346105fc5760403660031901126105fc576001600160401b036004358181116108ac57366023820112156108ac576125a6903690602481600401359101613e59565b906024359081116108ac576125bf903690600401613de1565b81519181518303612651576125d383613d7c565b936125e16040519586613cd5565b838552601f196125f085613d7c565b013660208701375b8381106126155760405160208082528190610a9f90820188613eb7565b6001906126406001600160a01b0361262d838661402b565b5116612639838761402b565b5190613fec565b61264a828861402b565b52016125f8565b60405163133933f760e21b8152600490fd5b50346105fc57806003193601126105fc5761267d33615466565b80156126fb575b156126d5574760018060a01b036101ca8380808086868654166204baf0f16126aa613fbc565b50156126b4578380f35b604493505416906040519163292264c360e21b835260048301526024820152fd5b604051634baa2a4d60e01b81523360048201526000602482015260206044820152606490fd5b503360009081526000805160206157d783398151915260205260409020546022161515612684565b50346105fc5760208060031936011261114f5761273e613be2565b6001600160a01b03917f00000000000000000000000000000000000000000000000000000000000000008316308114612551576000805160206157b7833981519152908482541690810361253f5782846127b69261279b336147e6565b6040516321f7434760e01b8152938492839260048401614c78565b0381887f0000000000000000000000000000000000000000000000000000000000000000165afa9081156129105786916128f3575b5015610a0c57604051936127fe85613cba565b8585527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612838575050506124119150613f75565b8316906040516352d1902d60e01b81528381600481865afa600091816128c4575b506128705760405163e5ec176960e01b8152600490fd5b036124e15761287e83613f75565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28351158015906128bc5761249a575050505080f35b50600061248e565b90918582813d83116128ec575b6128db8183613cd5565b810103126105fc5750519038612859565b503d6128d1565b61290a9150833d8511610cb857610caa8183613cd5565b386127eb565b6040513d88823e3d90fd5b5060a03660031901126105fc57612930613be2565b906064356001600160401b03811161114f57612950903690600401613dfc565b6084356001600160401b0381116108a857612972612984913690600401613e2c565b93909261297d614265565b3691613e59565b9161299a6024356001600160a01b038716614453565b6564f43391f000928360443581020460443503613207576024358552610231602052604085205485946001600160a01b039091169182156131df575b805115806131b7576131a357602001516001600160a01b03165b6001600160a01b0381161561317c575b612a0b60243561495c565b916001600160a01b03831615613154575b602435885261023260205260408820546001600160a01b031691821561314c575b612a45614931565b506044358202341015612a6457604051633b78763760e21b8152600490fd5b3460443583020361304757612a77614931565b50612a80614931565b63028df28c80825262d91c146020830181815260408401828152606085019283529192604435690101e28d998d58af4000810291908802801590830490911417156130335791612b1e612b1e92612b2695946305f5e100809104885280612aec83516044358d02614172565b04825280612aff85516044358d02614172565b048452612b1186516044358c02614172565b0485528651905190614055565b905190614055565b604435840290810390811161301f5760808201525b80519485613019575089935b6020820151604083015160608401516080909401519490917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163b15612fda5760405163faa3516f60e01b81526001600160a01b03988916600482015260248101999099529887166044808a019190915260648901999099528616608488015260a4870152841660c486015260e48501527f00000000000000000000000000000000000000000000000000000000000000008316610104850152610124840152919287928492610144928492903502907f0000000000000000000000000000000000000000000000000000000000000000165af180156120d257612fe6575b50612c949184916040519384928392636890e5b360e01b84523360048501526024356024850152604435604485015287606485015260a0608485015260a4840191614910565b0381836001600160a01b0389165af1908115611abe578391612e68575b5051825b8151811015612e1a57612cc8818361402b565b5151612cd38161499f565b612cdc8161499f565b60018103612d7157506020612cf1828461402b565b510151604081805181010312610a0c576040612d0f602083016149bf565b91015190818511612d5f5785918291829182916001600160a01b03166204baf0f1612d38613fbc565b5015612d4d57612d48905b614990565b612cb5565b6040516338dcead760e21b8152600490fd5b604051631913cf3760e21b8152600490fd5b80612d7d60029261499f565b03612e11576020612d8e828461402b565b51015190606082805181010312610a0c57612dab602083016149bf565b91606060408201519101519060243515159081612e04575b50612df257612d4892612d439160405191612ddd83613cba565b888352602435906001600160a01b03166149eb565b604051634cdcfbf960e01b8152600490fd5b9050602435141538612dc3565b612d4890614990565b6040805160443581523460208201528591602435916001600160a01b0389169133917fb362243af1e2070d7d5bf8d713f2e0fab64203f1b71462afbe20572909788c5e9190a4600160655580f35b3d91508184823e612e798282613cd5565b60208183810103126108a8578051906001600160401b038211610a0c5760408282018483010312610a0c5760405192612eb184613c56565b828201516001600160401b038111612fe257818301601f8286860101011215612fe25780848401015190612ee482613d7c565b92612ef26040519485613cd5565b828452602084019181860160208560051b838a8a0101010111610a04576020818888010101925b60208560051b838a8a010101018410612f4657505050505090602092918452010151602082015238612cb1565b83516001600160401b038111612fde576040888a0184018201858a0103601f190112612fde5760405190612f7982613c56565b602081858c8c01010101516003811015612fda578252604081858c8c0101010151906001600160401b038211612fda579260209392612fc98b868096958f968a83988d86019501010101016148ce565b838201528152019401939050612f19565b8d80fd5b8b80fd5b8680fd5b6001600160401b03819592939511613005576040529290612c94612c4e565b634e487b7160e01b82526041600452602482fd5b93612b47565b634e487b7160e01b8b52601160045260248bfd5b634e487b7160e01b8e52601160045260248efd5b9650613051614931565b5061305a614931565b8881526301b3f708806020830152604082015262d91c14606082015260016044358302151715613138578881526305f5e1008061309f60208401516044358602614172565b046020830152806130b860408401516044358602614172565b0460408301526130d060608301516044358502614172565b0460608201526131026130f76130ec8351602085015190614055565b604084015190614055565b606083015190614055565b6044358302908103908111613124576080820152966044358202340397612b3b565b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b89526011600452602489fd5b839250612a3d565b7f00000000000000000000000000000000000000000000000000000000000000009250612a1c565b507f0000000000000000000000000000000000000000000000000000000000000000612a00565b634e487b7160e01b87526032600452602487fd5b50507f00000000000000000000000000000000000000000000000000000000000000006129f0565b7f000000000000000000000000000000000000000000000000000000000000000092506129d6565b634e487b7160e01b85526011600452602485fd5b50346105fc5760403660031901126105fc57604060209161323a613bf8565b60043582526101fe84528282206001600160a01b03909116825283522054604051908152f35b50346105fc5760a03660031901126105fc5761327a613be2565b613282613bf8565b6001600160401b0390604435828111610a0c576132a3903690600401613de1565b916064358181116105f8576132bc903690600401613de1565b906084359081116105f8576132d5903690600401613d48565b926001600160a01b039085821633141580613598575b6105c35780518351810361265157828516156105b157826101cb5416806134f3575b50875b81811061347657505060405182851690838816907f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb339180613353898883614078565b0390a4833b613360578680f35b60405163bc197c8160e01b808252336004830152968316602482015260a0604482015294859384926133969060a4850190613eb7565b8381036003190160648501526133ab91613eb7565b8281036003190160848401526133c091613c31565b0392169181865a94602095f1839181613456575b5061343557505060016133e56140bd565b6308c379a0146133fe575b610480573880808080808680f35b6134066140db565b8061341157506133f0565b60405162461bcd60e51b8152602060048201529081906104c7906024830190613c31565b6001600160e01b0319161461047657604051633fbfe7f560e21b8152600490fd5b61346f91925060203d8111610516576105078183613cd5565b90386133d4565b613480818461402b565b519061348c818761402b565b51828b5260978060205260408c20878c168d5260205260408c20549082821061051d578460408e6001978152836020528c8b83832091168252602052206134d4858254614055565b90558d5260205260408c20878c168d526020520360408b205501613310565b803b1561359457604051634058856760e11b81523060048201523360248201528885166044820152868516606482015260e06084820152908990829081838161356b8d6135598d61354760e486018e613eb7565b8581036003190160a487015290613eb7565b8381036003190160c485015290613c31565b03925af18015613589571561330d5761358390613ca7565b3861330d565b6040513d8b823e3d90fd5b8880fd5b50818616875260986020526040872033885260205260ff604088205416156132eb565b50346105fc576135d76135e86135d036613d66565b9290615538565b9163ffffffff602084015116614172565b907f000000000000000000000000000000000000000000000000000000000000000090811561362f57604080945060018060a01b0391015116918351928352046020820152f35b634e487b7160e01b84526012600452602484fd5b50346105fc5760603660031901126105fc57602090613660613be2565b60243582526101fe8352604082209060018060a01b0316825282526040604435600217912054161515604051908152f35b50346105fc5760403660031901126105fc576001600160401b03906004356024358381116108ac576136c7903690600401613d48565b926136d282336143cc565b81156108ac576040519180600080516020615797833981519152602094858152806136ff8782018a613c31565b0390a283526101c682526040832091845191821161380a576137218354614185565b601f81116137c7575b5080601f8311600114613765575083948293949261375a575b50508160011b916000199060031b1c191617905580f35b015190503880613743565b90601f198316958486528286209286905b8882106137af57505083600195969710613796575b505050811b01905580f35b015160001960f88460031b161c1916905538808061378b565b80600185968294968601518155019501930190613776565b838552818520601f840160051c810191838510613800575b601f0160051c01905b8181106137f5575061372a565b8581556001016137e8565b90915081906137df565b634e487b7160e01b84526041600452602484fd5b50346105fc57806003193601126105fc57602060405160088152f35b50346105fc5760403660031901126105fc57600435613857613bf8565b8183526102316020819052604084205491926001600160a01b0392831633036138995784526020526040832080546001600160a01b0319169190921617905580f35b604051632afb0ecf60e01b8152600490fd5b50346105fc5760203660031901126105fc576138c5613be2565b6138ce336147e6565b8180526101fe602090815260408084206001600160a01b0384168552909152822054600216156139015761241190614ec6565b60405163131dd3a760e31b8152600490fd5b50346105fc57806003193601126105fc5760206040516564f43391f0008152f35b50346105fc5760203660031901126105fc5761394e613be2565b61395733615466565b8015613992575b1561396c5761241190614f42565b604051634baa2a4d60e01b81523360048201526024810183905260206044820152606490fd5b508180526101fe602052604082203383526020526022604083205416151561395e565b50346105fc5760203660031901126105fc57610a9f610a8b600435614e48565b50346105fc57806003193601126105fc576040518161019380546139f881614185565b80855291600191808316908115613a5d5750600114613a22575b610a9f85610a8b81890382613cd5565b835260208084209095505b828410613a4a5750505081610a9f93610a8b928201019338613a12565b8054858501870152928501928101613a2d565b9050610a9f9650610a8b9450602092508593915060ff191682840152151560051b8201019338613a12565b50346105fc5760203660031901126105fc5760043563ffffffff60e01b811680910361114f5760209063152a902d60e11b8114908115613b8d575b8115613b4d575b8115613b3c575b8115613b2b575b8115613b1a575b8115613b09575b8115613af8575b506040519015158152f35b63015f004960e71b14905082613aed565b631acf898160e11b81149150613ae6565b63709e537f60e01b81149150613adf565b63ed78891360e01b81149150613ad8565b631d74303760e21b81149150613ad1565b9050636cdb3d1360e11b81148015613b7d575b8015613b6d575b90613aca565b506301ffc9a760e01b8114613b67565b506303a24d0760e21b8114613b60565b633b076a1160e21b81149150613ac3565b50346105fc57806003193601126105fc57602090604051908152f35b50346105fc5760403660031901126105fc57602061116d613bd9613be2565b60243590613fec565b600435906001600160a01b03821682036105ac57565b602435906001600160a01b03821682036105ac57565b60005b838110613c215750506000910152565b8181015183820152602001613c11565b90602091613c4a81518092818552858086019101613c0e565b601f01601f1916010190565b604081019081106001600160401b0382111761192b57604052565b606081019081106001600160401b0382111761192b57604052565b60a081019081106001600160401b0382111761192b57604052565b6001600160401b03811161192b57604052565b602081019081106001600160401b0382111761192b57604052565b90601f801991011681019081106001600160401b0382111761192b57604052565b6001600160401b03811161192b57601f01601f191660200190565b929192613d1d82613cf6565b91613d2b6040519384613cd5565b8294818452818301116105ac578281602093846000960137010152565b9080601f830112156105ac57816020613d6393359101613d11565b90565b60409060031901126105ac576004359060243590565b6001600160401b03811161192b5760051b60200190565b9291613d9e82613d7c565b91613dac6040519384613cd5565b829481845260208094019160051b81019283116105ac57905b828210613dd25750505050565b81358152908301908301613dc5565b9080601f830112156105ac57816020613d6393359101613d93565b9181601f840112156105ac578235916001600160401b0383116105ac576020808501948460051b0101116105ac57565b9181601f840112156105ac578235916001600160401b0383116105ac57602083818601950101116105ac57565b9291613e6482613d7c565b91613e726040519384613cd5565b829481845260208094019160051b81019283116105ac57905b828210613e985750505050565b81356001600160a01b03811681036105ac578152908301908301613e8b565b90815180825260208080930193019160005b828110613ed7575050505090565b835185529381019392810192600101613ec9565b60609060031901126105ac57600435906024356001600160a01b03811681036105ac579060443590565b6020815260606040613f3284518360208601526080850190613c31565b93602081015182850152015191015290565b9190916040606082019363ffffffff80825116845260208201511660208401528160018060a01b0391015116910152565b803b15613faa576000805160206157b783398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405163529880eb60e01b8152600490fd5b3d15613fe7573d90613fcd82613cf6565b91613fdb6040519384613cd5565b82523d6000602084013e565b606090565b6001600160a01b031690811561401957600052609760205260406000209060005260205260406000205490565b604051632188330d60e21b8152600490fd5b805182101561403f5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9190820180921161406257565b634e487b7160e01b600052601160045260246000fd5b909161408f613d6393604084526040840190613eb7565b916020818403910152613eb7565b908160209103126105ac57516001600160e01b0319811681036105ac5790565b60009060033d116140ca57565b905060046000803e60005160e01c90565b600060443d10613d6357604051600319913d83016004833e81516001600160401b03918282113d60248401111761413857818401948551938411614140573d850101602084870101116141385750613d6392910160200190613cd5565b949350505050565b50949350505050565b156141515790565b80511561416057805190602001fd5b6040516350a28c9b60e11b8152600490fd5b8181029291811591840414171561406257565b90600182811c921680156141b5575b602083101461419f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691614194565b90604051918260008254926141d384614185565b90818452600194858116908160001461424257506001146141ff575b50506141fd92500383613cd5565b565b9093915060005260209081600020936000915b81831061422a5750506141fd935082010138806141ef565b85548884018501529485019487945091830191614212565b9150506141fd94506020925060ff191682840152151560051b82010138806141ef565b600260655414614276576002606555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b9081516001600160401b03811161192b57610193906142da8254614185565b601f8111614384575b50602080601f8311600114614320575081929394600092614315575b50508160011b916000199060031b1c1916179055565b0151905038806142ff565b90601f198316958460005282600020926000905b88821061436c57505083600195969710614353575b505050811b019055565b015160001960f88460031b161c19169055388080614349565b80600185968294968601518155019501930190614334565b600083815260208120601f840160051c810192602085106143c2575b601f0160051c01915b8281106143b75750506142e3565b8181556001016143a9565b90925082906143a0565b9060008181526101fe9081602052604081209360018060a01b03169384825260205260126040822054161591821592614430575b50501561440b575050565b6064925060405191634baa2a4d60e01b83526004830152602482015260106044820152fd5b601292509060409181805260205281812085825260205220541615153880614400565b9060008181526101fe9081602052604081209360018060a01b031693848252602052600660408220541615918215926144b7575b505015614492575050565b6064925060405191634baa2a4d60e01b83526004830152602482015260046044820152fd5b600692509060409181805260205281812085825260205220541615153880614487565b6144e381615493565b8015614524575b156144f25750565b604051634baa2a4d60e01b81526001600160a01b03909116600480830191909152600060248301526044820152606490fd5b506001600160a01b03811660009081526000805160206157d7833981519152602052604090205460061615156144ea565b9092916101c8918254926001840190556040519461457286613c71565b81865280602087015260006040870152836000526101c660205260406000209580519687516001600160401b03811161192b576145af8254614185565b98601f8a1161479e575b87989950600097969750602090601f831160011461470857928288937f1b944478023872bf91b25a13fdba3a686fdb1bf4dbb872f850240fad4b8cc0689896936146c498966000926146fd575b50508160011b916000199060031b1c19161781555b60208201516001820155600260408301519101557f5086d1bcea28999da9875111e3592688fbfa821db63214c695ca35768080c2fe6040518061465f339482613f15565b0390a360008581526101fe602090815260408083206001600160a01b039990991680845298909152812080546002179081905590879087906000805160206157778339815191529080a481516146d0575b604051928392604084526040840190613c31565b9060208301520390a390565b8460008051602061579783398151915260405160208152806146f56020820187613c31565b0390a26146b0565b015190503880614606565b908360005260206000209160005b601f19851681106147835750837f1b944478023872bf91b25a13fdba3a686fdb1bf4dbb872f850240fad4b8cc0689896936146c49896936001938c97601f1981161061476a575b505050811b01815561461b565b015160001960f88460031b161c1916905538808061475d565b8183015184558b995060019093019260209283019201614716565b826000526020600020601f830160051c81019a602084106147dc575b601f0160051c01995b8a81106147d057506145b9565b600081556001016147c3565b909a508a906147ba565b6001600160a01b031660008181526000805160206157d78339815191526020526040812054600216158015906101fe9061484a575b5015614825575050565b6064925060405191634baa2a4d60e01b83526004830152602482015260026044820152fd5b905081805260205260408120828252602052600260408220541615153861481b565b9060008181526101fe9081602052604081209360018060a01b031693848252602052600260408220541615918215926148ab575b505015614825575050565b6002925090604091818052602052818120858252602052205416151538806148a0565b81601f820112156105ac5780516148e481613cf6565b926148f26040519485613cd5565b818452602082840101116105ac57613d639160208085019101613c0e565b908060209392818452848401376000828201840152601f01601f1916010190565b6040519061493e82613c8c565b60006080838281528260208201528260408201528260608201520152565b6001600160a01b0390819060409061497390615538565b0151168061498b57506101ca541680613d6357503090565b905090565b60001981146140625760010190565b600311156149a957565b634e487b7160e01b600052602160045260246000fd5b51906001600160a01b03821682036105ac57565b908160209103126105ac575180151581036105ac5790565b909291926000918183526101c69460209486865260409687862060028101546001614a168683614055565b920154809211614c4f5750508486528652600287862001614a38838254614055565b90556001600160a01b0383811693908415614c3e576101cb541680614bc5575b50848652609787528786208487528752878620614a76848254614055565b905583868951878152858a8201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628b3392a43b614ab8575b50505050505050565b614afa92869286895180968195829463f23a6e6160e01b9a8b85523360048601528560248601526044850152606484015260a0608484015260a4830190613c31565b03925af1839181614ba6575b50614b7d575050600191614b186140bd565b6308c379a014614b47575b5050614b3757505b38808080808080614aaf565b516377d5b49160e11b8152600490fd5b614b4f6140db565b9182614b5b5750614b23565b846104c791505192839262461bcd60e51b845260048401526024830190613c31565b6001600160e01b031916039150614b9690505750614b2b565b51633fbfe7f560e21b8152600490fd5b614bbe919250853d8711610516576105078183613cd5565b9038614b06565b803b15612fe257868951809263417b2f9760e11b82523060048301523360248301528260448301528760648301528860848301528660a483015260e060c4830152818381614c1660e482018a613c31565b03925af18015614c345715614a5857614c2e90613ca7565b38614a58565b89513d89823e3d90fd5b88516310227bb960e31b8152600490fd5b6084918791868c5193631255c8fd60e01b85526004850152602484015260448301526064820152fd5b6001600160a01b0391821681529116602082015260400190565b6101c9546001600160a01b03808216835260a091821c60208401526101ca548082166040850152821c60608401526101cb549081166080840152811c9082015260c00190565b906020828203126105ac5781516001600160401b0381116105ac57613d6392016148ce565b6000805261012d6020527fa581b17bfc4d6578e300cafbf34fd2dc1fef0270d8c73f88a99dcde2859a6639546001600160a01b039081168015614d8f575b1680614d4a5750613d63614d9d565b60006004916040519283809263e8a3d48560e01b82525afa9081156105a057600091614d74575090565b613d63913d8091833e614d878183613cd5565b810190614cd8565b508060406000205416614d3b565b60008080526101c69081602052604091614db983832054614185565b614e38575080805261012d602052818120546001600160a01b039190819083168015614e2c575b60248551809581936303a24d0760e21b8352856004840152165afa928315614e2257508092614e0e57505090565b613d6392503d8091833e614d878183613cd5565b51903d90823e3d90fd5b50828482205416614de0565b81805260205220613d63906141bf565b6000908082526101c680602052614e626040842054614185565b614eb35750816001600160a01b03614e7983615503565b16916024604051809481936303a24d0760e21b835260048301525afa918215614ea7578092614e0e57505090565b604051903d90823e3d90fd5b91613d63926040928252602052206141bf565b6101c980546001600160a01b038381166001600160a01b03198316179092556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09390928392614f1a92911683614c78565b0390a16000604051600080516020615757833981519152339180614f3d81614c92565b0390a3565b6101ca80546001600160a01b0319166001600160a01b0390921691909117905560405160019033906000805160206157578339815191529080614f3d81614c92565b91909160a0818403126105ac57604051906001600160401b039060a083018281118482101761192b5760405282948151845260208201518381116105ac5781614fce9184016148ce565b602085015260408201518381116105ac5781614feb9184016148ce565b6040850152614ffc606083016149bf565b606085015260808201519283116105ac5760809261501a92016148ce565b910152565b91956001600160a01b03949093908516918215615454576150679661507e87926101c8549460409b8c519b8c99630f09500f60e31b8b5260c060048c015260c48b0190613c31565b9260248a01526003198984030160448a0152614910565b9230606487015260848601521660a4840152826000968792038173a0e764da3ed61417aca0344610221744d6ad60d15af493841561544a578592869087966152ee575b506020928385019163ffffffff808451168a52610233918287528b8b20546152d9578b7f06c5a80e592816bd4f60093568e69affa68b5e378a189b2f59a1121703de47de88836151628a9551918381015161514f8783015197606084019861514260808c8c51169601519460a084519a8b9a8b528a015260a0890190613c31565b9187830390880152613c31565b9160608501528382036080850152613c31565b0390a151169461517186615493565b80156152ba575b156152965760806151928d8a015160608b01513391614555565b9801511693878b5261023187528b8b2060018060a01b0319958682541617905551168952845284898920558488526102328452888820918254161790556151d985516155b6565b96865b865181101561521d57806151fd6151f6615218938a61402b565b5130615682565b615207828c61402b565b52615212818b61402b565b50614990565b6151dc565b5091945092955081948281526101fe808652828220338352865260021983832054169284835281875280832033845287528381842055600080516020615777833981519152933386868680a48483528187528083208684528752600281842054179687928685528152818420908785525282205580a490565b6064868c8e5191634baa2a4d60e01b83526004830152602482015260046044820152fd5b508a80526101fe87528b8b20868c52875260068c8c2054161515615178565b50969998975050509250505051168152205490565b93505093503d8086843e6153028184613cd5565b8201936060838603126105f8578251946001600160401b0395868111610a0857840160a081830312610a085788519161533a83613c8c565b8151888111610a04578161534f918401614f84565b83526020918281015163ffffffff8116810361544657838501528a81015189811161544657816153868460809361539a95016148ce565b8d87015260608101516060870152016149bf565b608084015281860151888111610a0457816153b6918801614f84565b958a8101519089821161544657019080601f83011215610a04578151906153dc82613d7c565b996153e98d519b8c613cd5565b828b5284808c019360051b8501019382851161544257858101935b858510615419575050505050505092386150c1565b845183811161543e578791615433868480948701016148ce565b815201940193615404565b8e80fd5b8c80fd5b8a80fd5b86513d87823e3d90fd5b6040516329e96fa360e01b8152600490fd5b6001600160a01b031660009081526000805160206157d78339815191526020526040902054602216151590565b6001600160a01b031660009081526000805160206157d78339815191526020526040902054600616151590565b6001600160a01b031660008181526000805160206157d78339815191526020526040812080546002179081905591906000805160206157778339815191528180a4565b600090815261012d60205260409020546001600160a01b03908116919082156155295750565b60008080526040902054169150565b604080519161554683613c71565b6000908184528183602095828782015201528152816101609182855260018060a01b03928383832054841c166155a7578180528552209282519361558985613c71565b549063ffffffff808316865282821c1690850152821c169082015290565b50209282519361558985613c71565b906155c082613d7c565b6155cd6040519182613cd5565b82815280926155de601f1991613d7c565b019060005b8281106155ef57505050565b8060606020809385010152016155e3565b919061560b816155b6565b9260005b82811061561b57505050565b8060051b820135601e19833603018112156105ac578201908135916001600160401b0383116105ac5760200182360381136105ac576156626156689161567d943691613d11565b30615682565b615672828861402b565b52615212818761402b565b61560f565b90613d63916000806040519361569785613c71565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6020860152660819985a5b195960ca1b6040860152602081519101845af46156e2613fbc565b92901561574357508151156156f5575090565b3b156156fe5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156134115750805190602001fdfe3be6d3a1d957610f7e900c66889b874cdc9f0c22901aa8be6ec3d2d04c14ca0f35fb03d0d293ef5b362761900725ce891f8f766b5a662cdd445372355448e7ca6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f4301e3e862ad13c0503d3de32ba4e2e40c90733d1da23c9df4d0addbcf6508a2646970667358221220235f38ab4ade4569349b16c6a835f50a5b2bcc541fb7035387c0bd763bc00f1c64736f6c634300081100330000000000000000000000005f14c23983c9e0840dc60da880349622f0785420000000000000000000000000bc50029836a59a4e5e1bb8988272f46eba0f99000000000000000000000000007777777f279eba3d3ad8f4e708545291a6fdba8b000000000000000000000000777777722d078c97c6ad07d9f36801e653e356ae