@across-protocol/contracts 5.0.11 → 5.0.12-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
- package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
- package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
- package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
- package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
- package/contracts/test/MockCCTP.sol +10 -0
- package/dist/broadcast/deployed-addresses.json +172 -102
- package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
- package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
- package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
- package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
- package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
- package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
- package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
- package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
- package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
- package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
- package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
- package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
- package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
- package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
- package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
- package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
- package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
- package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
- package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
- package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
- package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
- package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
- package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
- package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
- package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
- package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
- package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
- package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
- package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
- package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
- package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
- package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
- package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
- package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
- package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
- package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
- package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
- package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
- package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
- package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
- package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
- package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
- package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -1
- package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
- package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
- package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
- package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
- package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
- package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
- package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_adminUpdateBufferSeconds","type":"uint256","internalType":"uint256"},{"name":"_helios","type":"address","internalType":"address"},{"name":"_hubPoolStore","type":"address","internalType":"address"},{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADMIN_UPDATE_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HUB_POOL_STORE_CALLDATA_MAPPING_SLOT_INDEX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminExecuteMessage","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeMessage","inputs":[{"name":"_messageNonce","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executedMessages","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlotKey","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"helios","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"hubPoolStore","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedCallData","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AdminCallAlreadySet","inputs":[]},{"type":"error","name":"AdminCallNotValidated","inputs":[]},{"type":"error","name":"AdminUpdateTooCloseToLastHeliosUpdate","inputs":[]},{"type":"error","name":"AlreadyExecuted","inputs":[]},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DelegateCallFailed","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"NotTarget","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SlotValueMismatch","inputs":[]},{"type":"error","name":"TronTransferBalanceMismatch","inputs":[]},{"type":"error","name":"TronTransferCallReverted","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x610220806040523461032a5761014081615a328038038091610021828561032e565b83398101031261032a57805161003960208301610351565b9061004660408401610351565b9261005360608201610351565b61005f60808301610365565b9161006c60a08201610365565b60c0820151936001600160a01b038516850361032a5760e0830151936001600160a01b0385169384860361032a576101206100aa6101008301610365565b9101513060805260c09190915260a0526001600160a01b031660e05261010052610120525f5491600883901c60ff1661032a575f938360ff80879616036102f0575b5061016052610180528161014052604051602081019063011a412160e61b82526004815261011b60248261032e565b51915afa3d156102e9573d6001600160401b0381116102d5576040519061014c601f8201601f19166020018361032e565b81523d5f602083013e5b816102c9575b81610293575b506101a052610200526101e0526101c0526040516156bb908161037782396080518181816112ce0152818161166b01526117c2015260a051818181611a860152615247015260c051818181611c560152614b91015260e0518181816107ff0152818161401f0152818161464001528181614f540152614fd7015261010051818181611a2501526141fe0152610120518181816104c90152613fcb015261014051818181611c1601528181614da80152614e500152610160518181816107a20152818161442e0152614c8f0152610180518181816122840152818161439f0152614cb801526101a051818181611ebb0152614d4e01526101c051818181610d8e01526128ef01526101e051818181610dd4015281816118d90152612c43015261020051818181611947015261292a0152f35b90506020815191015190602081106102b8575b506001600160a01b031615155f610162565b5f199060200360031b1b165f6102a6565b8051602014915061015c565b634e487b7160e01b5f52604160045260245ffd5b6060610156565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100ec565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d557604052565b51906001600160a01b038216820361032a57565b519063ffffffff8216820361032a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461049a5780630cb84d9a146104955780631186ec331461049057806311eac8551461048b57806315348e44146103f057806317fcb39b1461048657806319c1648c146104815780631b3d55591461047c5780631fab657c1461047757806326b105d21461047257806329cb924d1461046d5780632e378115146104685780632e63e59a146104635780633659cfe61461045e578063437b911614610459578063490e49ef14610454578063493a4f841461044f5780634f1ef2861461044a5780635285e0581461044557806352d1902d14610440578063541f4f141461043b5780635743a7b914610436578063577f51f81461043157806357f6dcb81461042c5780636068d6cb1461042757806361a04d3014610422578063647c576c1461041d578063670fa8ac146104185780636bbbcd2e146103f05780636e400983146104135780636fd5c10e1461040e578063715018a614610409578063738b62e51461040457806373fd4836146103ff5780637659f9e0146103fa578063775c0d03146103f5578063793d2be0146103f05780637aef642c146103eb5780637b939232146103e65780637ef413e1146103e157806382e2c43f146103dc5780638a7860ce146103d75780638b15788e146103d25780638da5cb5b146103cd5780639748cf7c146103c857806397943aa9146103c3578063979f2bc2146103be57806399cc2968146103b95780639a8a0592146103b4578063a1244c67146103af578063a18a096e146103aa578063ac9650d8146103a5578063ad5425c6146103a0578063adb5a6a61461034b578063b370b7f51461039b578063b4c0d7ab14610396578063babb6aac14610391578063bce63c001461038c578063c2bb0c5514610387578063c35c83fc14610382578063ceb4c9871461037d578063d7e1583a14610378578063dda5211314610373578063ddd224f11461036e578063de7eba7814610369578063deff4b2414610364578063e45a46941461035f578063ea86bd461461035a578063ee2a53f814610355578063f2fde38b14610350578063f79f29ed1461034b578063fb4c3749146103465763fc8a584f0361000e57612db6565b612d86565b612739565b612d49565b612d0b565b612c67565b612c24565b612b32565b612afb565b612ad2565b612aac565b612a76565b612978565b61294d565b612913565b6128d0565b6127f1565b6127c2565b612780565b6126c8565b612629565b6124d4565b6124ad565b612493565b6123fd565b612336565b6122a8565b612265565b61223f565b6121ce565b612156565b612038565b61200a565b611f72565b611ee0565b6107c6565b611ea4565b611daa565b611d73565b611cdd565b611c7a565b611c3a565b611bfa565b611bc0565b611adb565b611a6f565b611a49565b611a09565b61198c565b611874565b611812565b6117a8565b611781565b611628565b6115a0565b611582565b6114b5565b6112a7565b6110ae565b610f5b565b610f32565b610d01565b610bd2565b610ab0565b610848565b6107e0565b610783565b61071c565b610518565b6104ad565b5f9103126104a957565b5f80fd5b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036104a957565b60e4359061050b826104ed565b565b359061050b826104ed565b346104a95760203660031901126104a9576001600160a01b0360043561053d816104ed565b165f526108d860205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036104a957565b60a435908160070b82036104a957565b63ffffffff8116036104a957565b610104359061050b8261057e565b610124359061050b8261057e565b610144359061050b8261057e565b610164359061050b8261057e565b359061050b8261057e565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105ff57604052565b6105cf565b6101a0810190811067ffffffffffffffff8211176105ff57604052565b6060810190811067ffffffffffffffff8211176105ff57604052565b90601f8019910116810190811067ffffffffffffffff8211176105ff57604052565b6040519061050b60c08361063d565b6040519061050b6101808361063d565b6040519061050b6101a08361063d565b6040519061050b60808361063d565b6040519061050b60e08361063d565b67ffffffffffffffff81116105ff57601f01601f191660200190565b9291926106d4826106ac565b916106e2604051938461063d565b8294818452818301116104a9578281602093845f960137010152565b9080601f830112156104a957816020610719933591016106c8565b90565b6101003660031901126104a9576107346004356104ed565b61073f6024356104ed565b61074761055e565b5061075360a43561057e565b60c43567ffffffffffffffff81116104a9576107739036906004016106fe565b506332ed1ba560e21b5f5260045ffd5b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040515f8152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126104a95760043561083b816104ed565b90602435610719816104ed565b346104a95761085636610823565b61085e6138fa565b610866613917565b6001600160a01b03811691821515806108ff575b6108f0576108c16001600160a01b03926108a6836001600160a01b03165f526108d860205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a3610018600160c955565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610968575f91610939575b506001600160a01b038083169116141561087a565b61095b915060203d602011610961575b610953818361063d565b810190613928565b5f610924565b503d610949565b612fe2565b67ffffffffffffffff81116105ff5760051b60200190565b9080601f830112156104a957813561099c8161096d565b926109aa604051948561063d565b81845260208085019260051b8201019283116104a957602001905b8282106109d25750505090565b81358152602091820191016109c5565b9080601f830112156104a95781356109f98161096d565b92610a07604051948561063d565b81845260208085019260051b8201019283116104a957602001905b828210610a2f5750505090565b602080918335610a3e816104ed565b815201910190610a22565b929190610a558161096d565b93610a63604051958661063d565b602085838152019160051b81019283116104a957905b828210610a8557505050565b8135815260209182019101610a79565b9080601f830112156104a95781602061071993359101610a49565b60603660031901126104a957600435610ac88161057e565b6024359067ffffffffffffffff82116104a95760c060031983360301126104a957610af161065f565b918060040135835260248101356020840152604481013567ffffffffffffffff81116104a957610b279060043691840101610985565b6040840152610b38606482016105c4565b6060840152610b496084820161050d565b608084015260a48101359067ffffffffffffffff82116104a9576004610b7292369201016109e2565b60a08301526044359167ffffffffffffffff83116104a957610b9b610018933690600401610a95565b91612de6565b9181601f840112156104a95782359167ffffffffffffffff83116104a9576020808501948460051b0101116104a957565b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a9578036039060606003198301126104a957602435610c118161057e565b60443567ffffffffffffffff81116104a957610c31903690600401610ba1565b919093610c3c613917565b60048401359061018219018112156104a957610cc994610cc493610c676004610cbd94880101612fc8565b95610c756080880151613bfd565b506044610c8188613838565b91013560208801519061016089015192610c9961065f565b998a5260208a01526040890152606088015260808701525f60a08701523691610a49565b9083613c13565b613c95565b610018600160c955565b9181601f840112156104a95782359167ffffffffffffffff83116104a957602083818601950101116104a957565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a957610d35903690600401610cd3565b610cbf5460443560ff8216610f23576001610dc89260ff191617610cbf556020610d5e866132a2565b610d693686886106c8565b805190830120604051630829c59f60e01b815260048101949094526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602485015260448401919091529192839081906064820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610968575f92610ef2575b5003610ee35781610e1f916001600160a01b03930190612fed565b91168015159081610ed8575b50610ec957610e4d610e46835f52610cbe60205260405f2090565b5460ff1690565b610eba5781610e78610e6b610ea9945f52610cbe60205260405f2090565b805460ff19166001179055565b6040513381527f3b0b856314838f509dfe81e9e13c651b0e544b42639c58be2c161b2c3892949d90602090a2613d97565b61001860ff19610cbf5416610cbf55565b630dc1019760e01b5f5260045ffd5b6332f602d160e11b5f5260045ffd5b90503014155f610e2b565b6301b6e1e760e21b5f5260045ffd5b610f1591925060203d602011610f1c575b610f0d818361063d565b810190612fd3565b905f610e04565b503d610f03565b63087f80c160e31b5f5260045ffd5b346104a9575f3660031901126104a9576020604051428152f35b90816101809103126104a95790565b346104a95760403660031901126104a95760043567ffffffffffffffff81116104a957610f8c903690600401610f4c565b602435610f9882613024565b6001600160a01b031691610fae60208201613024565b6001600160a01b031690610fc460408201613024565b6001600160a01b031690610fda60608201613024565b6001600160a01b0316610fef60808301613024565b6001600160a01b031660e083013560c084013560a0850135611014610100870161302e565b93611022610120880161302e565b95611030610140890161302e565b97610160810161103f91613038565b99909a61104a61066e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff16610140850152369061109c926106c8565b61016083015261001891339190613869565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576110df903690600401610f4c565b6110e7613917565b60ff6108cf5460e01c166112985763ffffffff42169061014081019061111f836111108461302e565b63ffffffff9182169116101590565b6112895761012081019263ffffffff6111378561302e565b161061127a5761114f61114a3683612996565b613838565b90611163825f526108d660205260405f2090565b5461126c576111a561119f7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f526108d660205260405f2090565b60019055565b606081013561125f60808301359260a08101359060c081013560e0820135976111dc6111d66101008501359b61302e565b9161302e565b60408401359184359361120b6112066111ff602089013598610160810190613038565b36916106c8565b613dc2565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a3610018600160c955565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346104a95760203660031901126104a9576004356112c4816104ed565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a95761132d6138fa565b6113356127a7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561136957506100189061480d565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816113cf575b5061139a575f80fd5b610018926113ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f941461308e565b614739565b6113e991935060203d602011610f1c57610f0d818361063d565b915f611391565b60206003198201126104a9576004359067ffffffffffffffff82116104a95761141b91600401610ba1565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061147557505050505090565b90919293946020806114a6600193603f198682030187526040838b518051151584520151918185820152019061141f565b97019301930191939290611466565b346104a9576114c3366113f0565b6114cc8161096d565b916114da604051938461063d565b818352601f196114e98361096d565b015f5b81811061155e5750505f5b828110611510576040518061150c8682611443565b0390f35b8061155861152060019387613095565b515f8061152e8589896130a9565b9061153e604051809381936130c0565b0390305af49061154c6130cd565b60208201529015159052565b016114f7565b60209060405161156d816105e3565b5f8152606083820152828288010152016114ec565b346104a9575f3660031901126104a95760206040516301e133808152f35b346104a95760403660031901126104a9576024356004356115bf6138fa565b6115c7613917565b6108d054680100000000000000008110156105ff5780600163ffffffff92016108d055836115f482612ce8565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a4600160c955005b60403660031901126104a957600435611640816104ed565b60243567ffffffffffffffff81116104a9576116609036906004016106fe565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a9576116ca6138fa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116fe57610018915061480d565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611760575b5061172e575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036104a95761001891600191614739565b61177a91925060203d602011610f1c57610f0d818361063d565b905f611725565b346104a9575f3660031901126104a95760206001600160a01b036108cd5416604051908152f35b346104a9575f3660031901126104a9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104a95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126104a95761182a6004356104ed565b6118356024356104ed565b6118406044356104ed565b61184861056e565b5061185460c43561057e565b60e43567ffffffffffffffff81116104a9576107739036906004016106fe565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576118a59036906004016106fe565b6118ad613dd7565b610cbf5460ff8116610f235760ff1916600117610cbf556040516349b5c56d60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610968575f9161196d575b5042811190811561193a575b5061192b57610ea990613d97565b633ff377d160e11b5f5260045ffd5b611945915042613110565b7f0000000000000000000000000000000000000000000000000000000000000000115f61191d565b611986915060203d602011610f1c57610f0d818361063d565b5f611911565b346104a95760c03660031901126104a9576004356119a9816104ed565b602435604435916064356119bc816104ed565b60843567ffffffffffffffff81116104a9576119dc903690600401610cd3565b9160a4359567ffffffffffffffff87116104a957611a01610018973690600401610cd3565b969095613175565b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060ff6108cf5460e81c166040519015158152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104a957600435611ac18161057e565b90602435611ace816104ed565b90604435610719816104ed565b346104a957611b38611aec36611aa9565b5f549392909190611b1e60ff600887901c1615611b08565b1590565b80968197611bb2575b8115611b92575b5061308e565b84611b2f600160ff195f5416175f55565b611b7b576131e4565b611b3e57005b611b4c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611b8d61010061ff00195f5416175f55565b6131e4565b303b15915081611ba4575b505f611b18565b60ff1660011490505f611b9d565b600160ff8216109150611b11565b346104a9575f3660031901126104a95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957611c92613dd7565b5f6001600160a01b036033546001600160a01b03198116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b801515036104a957565b346104a95760203660031901126104a9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611d1d81611cd3565b611d256138fa565b611d2d613917565b15156108cf547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b169116176108cf55604051908152a1600160c955005b346104a95760203660031901126104a9576020611d916004356132a2565b604051908152f35b90602061071992818152019061141f565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611dfe611de66001600160a01b03923690600401610cd3565b611dee6138fa565b611df6613917565b810190612fed565b91168015611e95576004825110611e86575f8083516020850182855af190611e246130cd565b9115611e77577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611e5e61150c9460405191829182611d99565b0390a2611e6b600160c955565b60405191829182611d99565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b346104a9575f3660031901126104a95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104a957600435611ef9816104ed565b602435611f05816104ed565b60443591611f12836104ed565b606435611f1e816104ed565b60843560e43560c43560a435611f33836104ed565b611f3b61058c565b93611f4461059a565b95610144359967ffffffffffffffff8b116104a957611f6a6100189b3690600401610cd3565b9a90996132e1565b6101803660031901126104a957600435611f8b816104ed565b602435611f97816104ed565b60443591611fa4836104ed565b606435611fb0816104ed565b60843560a43560c435611fc16104fe565b90611fca61058c565b92611fd361059a565b94611fdc6105a8565b96610164359a67ffffffffffffffff8c116104a9576120026100189c3690600401610cd3565b9b909a613303565b346104a95760603660031901126104a9576020611d9160043561202c816104ed565b60243560443591613429565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a95761206c903690600401610cd3565b9060443567ffffffffffffffff81116104a95761208d903690600401610cd3565b91909360405160208101906120b6816120a846898887613461565b03601f19810183528261063d565b51902003612147575f936120d18286956120da940190612a50565b9281019061347e565b516121116120ef335b6001600160a01b031690565b916120a860405193849260208401966337bfd2c960e21b885260248501613549565b5190305af461211e6130cd565b901561212657005b60405163b8fe37a760e01b81529081906121439060048301611d99565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346104a95760203660031901126104a9576004356121726138fa565b61217a613917565b61218381612ce8565b6121bb576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a2600160c955005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104a95760443560243560043560643560843560a4356101043560e43560c4356121ff61059a565b936122086105a8565b956122116105b6565b97610184359b67ffffffffffffffff8d116104a9576122376100189d3690600401610cd3565b9c909b61356b565b346104a9575f3660031901126104a95760206001600160a01b0360335416604051908152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a95760e03660031901126104a95760043567ffffffffffffffff81116104a9576122d9903690600401610f4c565b602435604435916064356084359060a43567ffffffffffffffff81116104a957612307903690600401610cd3565b92909160c4359667ffffffffffffffff88116104a95761232e610018983690600401610cd3565b9790966135e3565b346104a95761234436611aa9565b909160ff5f5460081c16156104a95761237a9063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192612389828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526123ae8151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f893610018965190209120906104e3556104e4556123eb614233565b6123f3614242565b614256565b6142ae565b346104a95760203660031901126104a9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561243d81611cd3565b6124456138fa565b61244d613917565b15156108cf547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b169116176108cf55604051908152a1600160c955005b346104a9575f3660031901126104a9576020604051468152f35b346104a9575f3660031901126104a957602063ffffffff6108cf5460c01c16604051908152f35b346104a95760403660031901126104a9576004356024356124f482614455565b6001600160a01b03821691825f526108d760205261252560405f20336001600160a01b03165f5260205260405f2090565b549283156125bb5761256e5f9161253b84614455565b61255833916001600160a01b03165f526108d760205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561258b8361257c83613bfd565b61258585613bfd565b906149e7565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106125fc57505050505090565b909192939460208061261a600193603f19868203018752895161141f565b970193019301919392906125ed565b346104a957612637366113f0565b90612641826136d1565b915f5b818110612659576040518061150c86826125ca565b5f806126668385876130a9565b90612676604051809381936130c0565b0390305af46126836130cd565b90156126a957906001916126978287613095565b526126a28186613095565b5001612644565b60448151106104a9578060248060046104a9940151830101910161371a565b6101803660031901126104a9576044356024356004356064356084356101043560e43560c43560a4356126fa8461057e565b61270261059a565b9461270b6105a8565b96610164359a67ffffffffffffffff8c116104a9576127316100189c3690600401610cd3565b9b909a61377d565b346104a95760206127776001600160a01b0361275436610823565b91165f526108d7835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346104a9575f3660031901126104a95760206001600160a01b036108ce5416604051908152f35b604051906127b660208361063d565b5f808352366020840137565b346104a9575f3660031901126104a95761150c6127dd6127a7565b60405191829160208352602083019061141f565b346104a95760c03660031901126104a95760043560243560443560643560843567ffffffffffffffff81116104a95761282e903690600401610cd3565b60a4939193359067ffffffffffffffff82116104a9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946128776128c6933690600401610cd3565b929091612882613917565b61288b8a614455565b6128ba898b898961289d3688886106c8565b926128a9368b8b6106c8565b946001600160a01b03469216613deb565b60405196879687613142565b0390a3600160c955005b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104a95760203660031901126104a9576004355f526108d6602052602060405f2054604051908152f35b346104a9575f3660031901126104a957602060405163ffffffff8152f35b919091610180818403126104a9576129ac61066e565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e0850152610100820135610100850152612a1061012083016105c4565b610120850152612a2361014083016105c4565b61014085015261016082013567ffffffffffffffff81116104a957612a4892016106fe565b610160830152565b906020828203126104a957813567ffffffffffffffff81116104a9576107199201612996565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611d9161114a6020923690600401612996565b346104a9575f3660031901126104a957602060ff6108cf5460e01c166040519015158152f35b346104a9575f3660031901126104a95760206040516ec097ce7bc90715b34b9f10000000008152f35b346104a95760203660031901126104a957612b2b600435612b1b816104ed565b612b236138fa565b6123f3613917565b600160c955005b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a957612b63903690600401612996565b6024359060443590612b73613917565b60ff6108cf5460e01c166112985761014081015163ffffffff16612ba24263ffffffff165b9163ffffffff1690565b101580612c05575b612bf657610cc992612bbb82613838565b60c083015160208401519061016085015192612bd561065f565b958652602086015260408501526060840152608083015260a0820152613d0e565b630c3a9b9d60e41b5f5260045ffd5b50612c136040820151613bfd565b6001600160a01b0316331415612baa565b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101603660031901126104a9576044356024356004356064356101043560e43560c43560a435608435612c998561057e565b6101243595612ca78761057e565b610144359967ffffffffffffffff8b116104a957612ccc6100189b3690600401610cd3565b9a90996138d5565b634e487b7160e01b5f52603260045260245ffd5b6108d054811015612d06576108d05f52600360205f20910201905f90565b612cd4565b346104a95760203660031901126104a9576004356108d0548110156104a957612d35604091612ce8565b506001815491015482519182526020820152f35b346104a95760203660031901126104a957600435612d66816104ed565b612d6e613dd7565b6001600160a01b038116156104a95761001890613ecb565b346104a95760203660031901126104a9576004355f52610cbe602052602060ff60405f2054166040519015158152f35b346104a95760203660031901126104a957612b2b600435612dd6816104ed565b612dde6138fa565b6123f8613917565b9190612df0613917565b602081019182514603612efc57611b04612e1891836001612e1088612ce8565b50015461393d565b612eed577ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e63ffffffff6060830193612e5e612e58865163ffffffff1690565b876139c1565b612ee08151918551956040810196612eca612ebc612eab8a5197612e868d5163ffffffff1690565b986080870199612e9d8b516001600160a01b031690565b9160a0890197885194613a2a565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612f7a565b0390a461050b600160c955565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612f285750505090565b8251845260209384019390920191600101612f1b565b90602080835192838152019201905f5b818110612f5b5750505090565b82516001600160a01b0316845260209384019390920191600101612f4e565b949695919260a0946001600160a01b03612fa68196612fba958a5260c060208b015260c08a0190612f0b565b921660408801528682036060880152612f3e565b951515608085015216910152565b610719903690612996565b908160209103126104a9575190565b6040513d5f823e3d90fd5b9190916040818403126104a9578035613005816104ed565b92602082013567ffffffffffffffff81116104a95761071992016106fe565b35610719816104ed565b356107198161057e565b903590601e19813603018212156104a9570180359067ffffffffffffffff82116104a9576020019181360383136104a957565b634e487b7160e01b5f52602160045260245ffd5b6003111561308957565b61306b565b156104a957565b8051821015612d065760209160051b010190565b90821015612d065761141b9160051b810190613038565b908092918237015f815290565b3d156130f7573d906130de826106ac565b916130ec604051938461063d565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161311d57565b6130fc565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361316792610719979587526020870152608060408701526080860191613122565b926060818503910152613122565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b0395866131df959a9499166131d18a8c836131bc3688886106c8565b916131c8368b8b6106c8565b9346908d613deb565b604051978897169a87613142565b0390a3565b91909160ff5f5460081c16156104a9576131fd33613ecb565b60ff5f5460081c16156104a9576132319063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192613240828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526132658151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f89361050b965190209120906104e3556104e4556123eb614233565b604051602081019182525f6040820152604081526132c160608261063d565b51902090565b9063ffffffff8091169116019063ffffffff821161311d57565b969492909161050b9b9a999896949261330163ffffffff421698896132c7565b985b9593919b999897969492909b613317613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff169661333988613821565b6133609063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b61336861067e565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906133de919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690613401926106c8565b61018082015261341090613f66565b61050b600160c955565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132c160748261063d565b93929160209161347991604087526040870191613122565b930152565b908160209103126104a957604051906020820182811067ffffffffffffffff8211176105ff5760405235815290565b9061018061016061071993805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261352761012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061141f565b613561604092959493956060835260608301906134ad565b9460208201520152565b9c9a9998979695949392919096613580613917565b60ff6108cf5460e81c1661341a57613599908e33613429565b96604051809e6135a882610604565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526133de565b9792909596949391966135f4613917565b60ff6108cf5460e01c166112985761360f6101408a0161302e565b61361e4263ffffffff16612b98565b1015806136b2575b612bf657613410986136a76136ad9761364261114a3685612996565b9961364b61065f565b9a6136563686612996565b8c5260208c01528560408c01528660608c015261367436868b6106c8565b60808c015260a08b015261369f61368b8435613bfd565b9860e06101008601359501359536916106c8565b9636916106c8565b95613deb565b613d0e565b506136c060408a0135613bfd565b6001600160a01b0316331415613626565b906136db8261096d565b6136e8604051918261063d565b82815280926136f9601f199161096d565b01905f5b82811061370957505050565b8060606020809385010152016136fd565b6020818303126104a95780519067ffffffffffffffff82116104a9570181601f820112156104a95780519061374e826106ac565b9261375c604051948561063d565b828452602083830101116104a957815f9260208093018386015e8301015290565b9b99989796949290959391613790613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff16966137b288613821565b6137d99063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6137e161067e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526133de565b63ffffffff1663ffffffff811461311d5760010190565b6040516132c18161385560208201946040865260608301906134ad565b46604083015203601f19810183528261063d565b919091613874613917565b60ff6108cf5460e01c166112985761014081015163ffffffff1661389d4263ffffffff16612b98565b1015806138b6575b612bf65761341092612bbb82613838565b506138c46040820151613bfd565b6001600160a01b03163314156138a5565b9a989795929693909491966138f163ffffffff421697886132c7565b97613790613917565b60ff610cbf54161561390857565b631147e02f60e11b5f5260045ffd5b600260c954146104a957600260c955565b908160209103126104a95751610719816104ed565b61071992916040516139b8816120a8602082019460208652805160408401526020810151606084015260a0613982604083015160c06080870152610100860190612f0b565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612f3e565b51902091614306565b6139cc600291612ce8565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0e57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9190820180921161311d57565b91959495939092935f9681519081815103613bee5781613aa9575b50505082613a54575b50505050565b63ffffffff613a8b6120e3836120e37ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588614370565b6040805195865233602087015290959190911693a45f808080613a4e565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610968575f91613bcf575b505f5f5b848110613aef57505050613a45565b613af98187613095565b51613b07575b600101613ae0565b90613b1d90613b168388613095565b5190613a1d565b90828211613bc057613b57611b04613b45613b388488613095565b516001600160a01b031690565b613b4f848a613095565b51908a614357565b15613aff579a50613b688b86613095565b51613bb6613bae8d613b99613b38613b928c6001600160a01b03165f526108d760205260405f2090565b9289613095565b6001600160a01b03165f5260205260405f2090565b918254613a1d565b905560019a613aff565b632ddaa83160e11b5f5260045ffd5b613be8915060203d602011610f1c57610f0d818361063d565b5f613adc565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c0f81614455565b1690565b91611b0491613c8f93604081519101519160405191613c3183610621565b82526139b8613c4d602084019246845260408501958652612ce8565b505493604051928391613c74602084019660208852516060604086015260a08501906134ad565b9151606084015251608083015203601f19810183528261063d565b612eed57565b805163ffffffff6101208201511663ffffffff4291161061127a576020820151906002613ccb835f526108d660205260405f2090565b5414613cff5761050b926002613cec6001945f526108d660205260405f2090565b55613cfa60025f8484614502565b614604565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff4291161061127a576020830151926001613d45855f526108d660205260405f2090565b5403613d90576001935b6002613d64825f526108d660205260405f2090565b5414613cff5761050b945f946002613d88613cfa945f526108d660205260405f2090565b558484614502565b5f93613d4f565b5f8091602081519101305af4613dab6130cd565b5015613db357565b6318cecad560e01b5f5260045ffd5b80519081613dd05750505f90565b6020012090565b6001600160a01b036033541633036104a957565b939260429361050b979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e5260e08261063d565b519020906104e354906104e454906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613eaa60a08261063d565b519020906040519161190160f01b835260028301526022820152209061486e565b6001600160a01b0380603354921691826001600160a01b0319821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b9692610140989563ffffffff9586949285936107199e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061141f565b613f708151614455565b606081019081511561422557610120810190613f9c613f93835163ffffffff1690565b63ffffffff1690565b8042109081156141ec575b506141dd57610140810192613fc0845163ffffffff1690565b63ffffffff613ff1817f00000000000000000000000000000000000000000000000000000000000000001642613a1d565b9116116141ce5761016082015163ffffffff1691828061418b575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480614182575b15614132576080830151340361412357833b156104a9575f60049460405195868092630d0e30db60e41b825234905af1908115610968577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461410492614109575b505b5191519260808101519060a081015160c0820151976140e36140d86101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613f11565b0390a4565b806141175f61411d9361063d565b8061049f565b5f6140aa565b636452a35d60e01b5f5260045ffd5b925034614123576141048361417d61416e6120e37f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bfd565b6080860151903090339061495a565b6140ac565b50341515614048565b6301e1338010156141b6575b60e0810151156141a7575f61400c565b63495d907f60e01b5f5260045ffd5b916141c89063ffffffff4216906132c7565b91614197565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b6141f7915042613110565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613fa7565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156104a957565b60ff5f5460081c16156104a957600160c955565b6001600160a01b0316801561429f57806001600160a01b03196108cd5416176108cd557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b031680156142f757806001600160a01b03196108ce5416176108ce557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b929091905f915b845183101561434f576143208386613095565b51908181101561433e575f52602052600160405f205b92019161430d565b905f52602052600160405f20614336565b915092501490565b906143629291614a1d565b8161436b575090565b905090565b906001600160a01b031690815f526108d86020526001600160a01b0360405f2054166143c46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016151590565b80614423575b156143e757506108ce5461050b92506001600160a01b0316614c83565b6001600160a01b03169182156144145761050b9261440e6108ce546001600160a01b031690565b91614b4a565b63d623472560e01b5f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683146143ca565b60a01c61445e57565b6379ec0ed760e11b5f5260045ffd5b6144768261307f565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906144fb8261307f565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161410460808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61456661012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956145ca61459261016060208b01519a0151613dc2565b9960608c01519b60406145a86080830151613dc2565b9101519060206145b661068e565b9e8f528e015260408d015260608c0161446d565b6040519c8d9c8d614479565b9061071994936080936001600160a01b0380931684526020840152166040820152816060820152019061141f565b906080614612910151613bfd565b9160806040830151926146286060820151613bfd565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614719575015614705575b61468391506001600160a01b038516614f2f565b01519081511515806146fb575b61469a5750505050565b6001600160a01b0316803b156104a9576146d0935f809460405196879586948593633a5be8cb60e01b85523391600486016145d6565b03925af18015610968576146e7575b808080613a4e565b806141175f6146f59361063d565b5f6146df565b50803b1515614690565b614712913090339061495a565b5f8461466f565b9061472e5761472992339061495a565b614683565b6147299250876149e7565b916147438361480d565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614805575b50614786575050565b614802915f806040519361479b60608661063d565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46147fc6130cd565b916155b4565b50565b90505f61477d565b803b156104a9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161487b82846153e4565b9390926005851015613089576148a494159384614944575b5083156148b9575b50505015151590565b6148aa57565b63938a182160e01b5f5260045ffd5b5f9350906120a86148f18594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061141f565b51915afa6148fd6130cd565b81614936575b81614912575b505f808061489b565b905061492f630b135d3f60e11b9160208082518301019101612fd3565b145f614909565b905060208151101590614903565b6001600160a01b0384811691161493505f614893565b5f6001600160a01b0381926149b79682604051978160208a01986323b872dd60e01b8a521660248a015216604488015260648701526064865261499e60848761063d565b16926149a861500b565b94519082855af16147fc6130cd565b80519081159182156149cd575b5050156104a957565b6149e09250602080918301019101615046565b5f806149c4565b906149f29291614a1d565b9015614a0e57156149ff57565b636e3e6e2960e01b5f5260045ffd5b6356dfea6360e01b5f5260045ffd5b6040516370a0823160e01b81526001600160a01b0383811660048301528216949390929091602084602481895afa938415610968575f94614b25575b5060405163a9059cbb60e01b602082019081526001600160a01b0384166024830152604482018590525f9283929091908390614a9881606481016120a8565b51925af194614aa56130cd565b508515614b19576040516370a0823160e01b81526001600160a01b03929092166004830152909190602090839060249082905afa918215610968575f92614af6575b50614af29192613a1d565b1490565b614af29250614b139060203d602011610f1c57610f0d818361063d565b91614ae7565b5050505090505f905f90565b5f919450614b42829160203d602011610f1c57610f0d818361063d565b949150614a59565b92919091614b5661505b565b50614b5f6150a2565b50614b686127a7565b614b706127a7565b90614b796127a7565b926001600160a01b03614b8a61069d565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614bf38560048301615163565b03816001600160a01b0385165afa928315610968575f93614c52575b5082513410614c435761050b93614c27845134613110565b80614c33575b50615241565b614c3d903361517a565b5f614c2d565b63557a94ff60e11b5f5260045ffd5b614c7591935060403d604011614c7c575b614c6d818361063d565b8101906150e2565b915f614c0f565b503d614c63565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614ce4838584615509565b6040516332dd704760e21b815291602083600481885afa928315610968575f93614f05575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610968575f93614ee4575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614d7b57505050505050565b83811115614ede57835b8515614e3a57863b156104a957604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561096857614e2093614e26575b50613110565b80614d6f565b806141175f614e349361063d565b5f614e1a565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561096857614e2093614eb05750613110565b614ed09060203d8111614ed7575b614ec8818361063d565b81019061535e565b505f614e1a565b503d614ebe565b80614d85565b614efe91935060203d602011610f1c57610f0d818361063d565b915f614d49565b6001600160a01b03919350614f289060203d60201161096157610953818361063d565b9290614d09565b906001600160a01b038216803b158015614ffc575b15614fc857506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156104a957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109685761050b93614fb4575b5061517a565b806141175f614fc29361063d565b5f614fae565b61050b92506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166149e7565b5061500681615372565b614f44565b6040519061501a60408361063d565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b908160209103126104a9575161071981611cd3565b6040519060e0820182811067ffffffffffffffff8211176105ff57604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b604051906150af826105e3565b5f6020838281520152565b91908260409103126104a9576040516150d2816105e3565b6020808294805184520151910152565b906040828203126104a957610719916150ba565b6107199163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c0615152615140608085015160e0608086015260e085019061141f565b60a085015184820360a086015261141f565b9201519060c081840391015261141f565b919060206134795f926040865260408601906150f6565b8147106104a9575f8080936001600160a01b038294165af161519a6130cd565b50156104a957565b519067ffffffffffffffff821682036104a957565b919082810360c081126104a9576080136104a9576107199060806040516151dd81610621565b855181526151ed602087016151a2565b60208201526151ff83604088016150ba565b604082015294016150ba565b9193926001600160a01b0390602061522d6060946080875260808701906150f6565b968051828701520151604085015216910152565b918351927f0000000000000000000000000000000000000000000000000000000000000000841161534f57478411615340576020850151615331576001600160a01b03946152bd9461529f60c0956040860151988991168095615415565b60405180968195829463c7c7f5b360e01b845230916004850161520b565b03925af1908115610968575f91615300575b50602081015182036152f15751036152e357565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b615322915060c03d60c01161532a575b61531a818361063d565b8101906151b7565b90505f6152cf565b503d615310565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b908160209103126104a957610719906151a2565b803b61537d816106ac565b9061538b604051928361063d565b8082525f6020830180943c5190516001600160e81b031981169190600382106153c5575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f806153af565b9060418151145f1461540c5761141b91602082015190606060408401519301515f1a906155df565b50505f90600290565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926154819061545360648561063d565b5f806001600160a01b0385169286519082855af1906154706130cd565b826154d7575b50816154d057501590565b61548a57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261050b926154cb906154c581606481016120a8565b8261565a565b61565a565b3b15919050565b805191925081159182156154ef575b5050905f615476565b6155029250602080918301019101615046565b5f806154e6565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109685761050b946154cb92615561925f91615595575b50613a1d565b60405163095ea7b360e01b60208201526001600160a01b03949094166024850152604480850191909152835260648361063d565b6155ae915060203d602011610f1c57610f0d818361063d565b5f61555b565b919250156155d0578151156155c7575090565b3b156104a95790565b5080519081156104a957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161564f576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610968575f516001600160a01b0381161561564757905f90565b505f90600190565b505050505f90600390565b906001600160a01b036149b792165f8061567261500b565b9360208151910182855af16147fc6130cd56fea264697066735822122090f0de6bd39415fc7dca0bd4b90fb4cb8612a332feca5faea12362fe0806e85164736f6c634300081e0033"}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_adminUpdateBufferSeconds","type":"uint256","internalType":"uint256"},{"name":"_helios","type":"address","internalType":"address"},{"name":"_hubPoolStore","type":"address","internalType":"address"},{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"ADMIN_UPDATE_BUFFER","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"HUB_POOL_STORE_CALLDATA_MAPPING_SLOT_INDEX","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"adminExecuteMessage","inputs":[{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeMessage","inputs":[{"name":"_messageNonce","type":"uint256","internalType":"uint256"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executedMessages","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSlotKey","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"helios","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"hubPoolStore","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedCallData","inputs":[{"name":"nonce","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"AdminCallAlreadySet","inputs":[]},{"type":"error","name":"AdminCallNotValidated","inputs":[]},{"type":"error","name":"AdminUpdateTooCloseToLastHeliosUpdate","inputs":[]},{"type":"error","name":"AlreadyExecuted","inputs":[]},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DelegateCallFailed","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"NotTarget","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SlotValueMismatch","inputs":[]},{"type":"error","name":"TronTransferBalanceMismatch","inputs":[]},{"type":"error","name":"TronTransferCallReverted","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x610220806040523461032a5761014081615a328038038091610021828561032e565b83398101031261032a57805161003960208301610351565b9061004660408401610351565b9261005360608201610351565b61005f60808301610365565b9161006c60a08201610365565b60c0820151936001600160a01b038516850361032a5760e0830151936001600160a01b0385169384860361032a576101206100aa6101008301610365565b9101513060805260c09190915260a0526001600160a01b031660e05261010052610120525f5491600883901c60ff1661032a575f938360ff80879616036102f0575b5061016052610180528161014052604051602081019063011a412160e61b82526004815261011b60248261032e565b51915afa3d156102e9573d6001600160401b0381116102d5576040519061014c601f8201601f19166020018361032e565b81523d5f602083013e5b816102c9575b81610293575b506101a052610200526101e0526101c0526040516156bb908161037782396080518181816112ce0152818161166b01526117c2015260a051818181611a860152615247015260c051818181611c560152614b91015260e0518181816107ff0152818161401f0152818161464001528181614f540152614fd7015261010051818181611a2501526141fe0152610120518181816104c90152613fcb015261014051818181611c1601528181614da80152614e500152610160518181816107a20152818161442e0152614c8f0152610180518181816122840152818161439f0152614cb801526101a051818181611ebb0152614d4e01526101c051818181610d8e01526128ef01526101e051818181610dd4015281816118d90152612c43015261020051818181611947015261292a0152f35b90506020815191015190602081106102b8575b506001600160a01b031615155f610162565b5f199060200360031b1b165f6102a6565b8051602014915061015c565b634e487b7160e01b5f52604160045260245ffd5b6060610156565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100ec565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d557604052565b51906001600160a01b038216820361032a57565b519063ffffffff8216820361032a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461049a5780630cb84d9a146104955780631186ec331461049057806311eac8551461048b57806315348e44146103f057806317fcb39b1461048657806319c1648c146104815780631b3d55591461047c5780631fab657c1461047757806326b105d21461047257806329cb924d1461046d5780632e378115146104685780632e63e59a146104635780633659cfe61461045e578063437b911614610459578063490e49ef14610454578063493a4f841461044f5780634f1ef2861461044a5780635285e0581461044557806352d1902d14610440578063541f4f141461043b5780635743a7b914610436578063577f51f81461043157806357f6dcb81461042c5780636068d6cb1461042757806361a04d3014610422578063647c576c1461041d578063670fa8ac146104185780636bbbcd2e146103f05780636e400983146104135780636fd5c10e1461040e578063715018a614610409578063738b62e51461040457806373fd4836146103ff5780637659f9e0146103fa578063775c0d03146103f5578063793d2be0146103f05780637aef642c146103eb5780637b939232146103e65780637ef413e1146103e157806382e2c43f146103dc5780638a7860ce146103d75780638b15788e146103d25780638da5cb5b146103cd5780639748cf7c146103c857806397943aa9146103c3578063979f2bc2146103be57806399cc2968146103b95780639a8a0592146103b4578063a1244c67146103af578063a18a096e146103aa578063ac9650d8146103a5578063ad5425c6146103a0578063adb5a6a61461034b578063b370b7f51461039b578063b4c0d7ab14610396578063babb6aac14610391578063bce63c001461038c578063c2bb0c5514610387578063c35c83fc14610382578063ceb4c9871461037d578063d7e1583a14610378578063dda5211314610373578063ddd224f11461036e578063de7eba7814610369578063deff4b2414610364578063e45a46941461035f578063ea86bd461461035a578063ee2a53f814610355578063f2fde38b14610350578063f79f29ed1461034b578063fb4c3749146103465763fc8a584f0361000e57612db6565b612d86565b612739565b612d49565b612d0b565b612c67565b612c24565b612b32565b612afb565b612ad2565b612aac565b612a76565b612978565b61294d565b612913565b6128d0565b6127f1565b6127c2565b612780565b6126c8565b612629565b6124d4565b6124ad565b612493565b6123fd565b612336565b6122a8565b612265565b61223f565b6121ce565b612156565b612038565b61200a565b611f72565b611ee0565b6107c6565b611ea4565b611daa565b611d73565b611cdd565b611c7a565b611c3a565b611bfa565b611bc0565b611adb565b611a6f565b611a49565b611a09565b61198c565b611874565b611812565b6117a8565b611781565b611628565b6115a0565b611582565b6114b5565b6112a7565b6110ae565b610f5b565b610f32565b610d01565b610bd2565b610ab0565b610848565b6107e0565b610783565b61071c565b610518565b6104ad565b5f9103126104a957565b5f80fd5b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036104a957565b60e4359061050b826104ed565b565b359061050b826104ed565b346104a95760203660031901126104a9576001600160a01b0360043561053d816104ed565b165f526108d860205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036104a957565b60a435908160070b82036104a957565b63ffffffff8116036104a957565b610104359061050b8261057e565b610124359061050b8261057e565b610144359061050b8261057e565b610164359061050b8261057e565b359061050b8261057e565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105ff57604052565b6105cf565b6101a0810190811067ffffffffffffffff8211176105ff57604052565b6060810190811067ffffffffffffffff8211176105ff57604052565b90601f8019910116810190811067ffffffffffffffff8211176105ff57604052565b6040519061050b60c08361063d565b6040519061050b6101808361063d565b6040519061050b6101a08361063d565b6040519061050b60808361063d565b6040519061050b60e08361063d565b67ffffffffffffffff81116105ff57601f01601f191660200190565b9291926106d4826106ac565b916106e2604051938461063d565b8294818452818301116104a9578281602093845f960137010152565b9080601f830112156104a957816020610719933591016106c8565b90565b6101003660031901126104a9576107346004356104ed565b61073f6024356104ed565b61074761055e565b5061075360a43561057e565b60c43567ffffffffffffffff81116104a9576107739036906004016106fe565b506332ed1ba560e21b5f5260045ffd5b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040515f8152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126104a95760043561083b816104ed565b90602435610719816104ed565b346104a95761085636610823565b61085e6138fa565b610866613917565b6001600160a01b03811691821515806108ff575b6108f0576108c16001600160a01b03926108a6836001600160a01b03165f526108d860205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a3610018600160c955565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610968575f91610939575b506001600160a01b038083169116141561087a565b61095b915060203d602011610961575b610953818361063d565b810190613928565b5f610924565b503d610949565b612fe2565b67ffffffffffffffff81116105ff5760051b60200190565b9080601f830112156104a957813561099c8161096d565b926109aa604051948561063d565b81845260208085019260051b8201019283116104a957602001905b8282106109d25750505090565b81358152602091820191016109c5565b9080601f830112156104a95781356109f98161096d565b92610a07604051948561063d565b81845260208085019260051b8201019283116104a957602001905b828210610a2f5750505090565b602080918335610a3e816104ed565b815201910190610a22565b929190610a558161096d565b93610a63604051958661063d565b602085838152019160051b81019283116104a957905b828210610a8557505050565b8135815260209182019101610a79565b9080601f830112156104a95781602061071993359101610a49565b60603660031901126104a957600435610ac88161057e565b6024359067ffffffffffffffff82116104a95760c060031983360301126104a957610af161065f565b918060040135835260248101356020840152604481013567ffffffffffffffff81116104a957610b279060043691840101610985565b6040840152610b38606482016105c4565b6060840152610b496084820161050d565b608084015260a48101359067ffffffffffffffff82116104a9576004610b7292369201016109e2565b60a08301526044359167ffffffffffffffff83116104a957610b9b610018933690600401610a95565b91612de6565b9181601f840112156104a95782359167ffffffffffffffff83116104a9576020808501948460051b0101116104a957565b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a9578036039060606003198301126104a957602435610c118161057e565b60443567ffffffffffffffff81116104a957610c31903690600401610ba1565b919093610c3c613917565b60048401359061018219018112156104a957610cc994610cc493610c676004610cbd94880101612fc8565b95610c756080880151613bfd565b506044610c8188613838565b91013560208801519061016089015192610c9961065f565b998a5260208a01526040890152606088015260808701525f60a08701523691610a49565b9083613c13565b613c95565b610018600160c955565b9181601f840112156104a95782359167ffffffffffffffff83116104a957602083818601950101116104a957565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a957610d35903690600401610cd3565b610cbf5460443560ff8216610f23576001610dc89260ff191617610cbf556020610d5e866132a2565b610d693686886106c8565b805190830120604051630829c59f60e01b815260048101949094526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602485015260448401919091529192839081906064820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610968575f92610ef2575b5003610ee35781610e1f916001600160a01b03930190612fed565b91168015159081610ed8575b50610ec957610e4d610e46835f52610cbe60205260405f2090565b5460ff1690565b610eba5781610e78610e6b610ea9945f52610cbe60205260405f2090565b805460ff19166001179055565b6040513381527f3b0b856314838f509dfe81e9e13c651b0e544b42639c58be2c161b2c3892949d90602090a2613d97565b61001860ff19610cbf5416610cbf55565b630dc1019760e01b5f5260045ffd5b6332f602d160e11b5f5260045ffd5b90503014155f610e2b565b6301b6e1e760e21b5f5260045ffd5b610f1591925060203d602011610f1c575b610f0d818361063d565b810190612fd3565b905f610e04565b503d610f03565b63087f80c160e31b5f5260045ffd5b346104a9575f3660031901126104a9576020604051428152f35b90816101809103126104a95790565b346104a95760403660031901126104a95760043567ffffffffffffffff81116104a957610f8c903690600401610f4c565b602435610f9882613024565b6001600160a01b031691610fae60208201613024565b6001600160a01b031690610fc460408201613024565b6001600160a01b031690610fda60608201613024565b6001600160a01b0316610fef60808301613024565b6001600160a01b031660e083013560c084013560a0850135611014610100870161302e565b93611022610120880161302e565b95611030610140890161302e565b97610160810161103f91613038565b99909a61104a61066e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff16610140850152369061109c926106c8565b61016083015261001891339190613869565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576110df903690600401610f4c565b6110e7613917565b60ff6108cf5460e01c166112985763ffffffff42169061014081019061111f836111108461302e565b63ffffffff9182169116101590565b6112895761012081019263ffffffff6111378561302e565b161061127a5761114f61114a3683612996565b613838565b90611163825f526108d660205260405f2090565b5461126c576111a561119f7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f526108d660205260405f2090565b60019055565b606081013561125f60808301359260a08101359060c081013560e0820135976111dc6111d66101008501359b61302e565b9161302e565b60408401359184359361120b6112066111ff602089013598610160810190613038565b36916106c8565b613dc2565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a3610018600160c955565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346104a95760203660031901126104a9576004356112c4816104ed565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a95761132d6138fa565b6113356127a7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561136957506100189061480d565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816113cf575b5061139a575f80fd5b610018926113ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f941461308e565b614739565b6113e991935060203d602011610f1c57610f0d818361063d565b915f611391565b60206003198201126104a9576004359067ffffffffffffffff82116104a95761141b91600401610ba1565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061147557505050505090565b90919293946020806114a6600193603f198682030187526040838b518051151584520151918185820152019061141f565b97019301930191939290611466565b346104a9576114c3366113f0565b6114cc8161096d565b916114da604051938461063d565b818352601f196114e98361096d565b015f5b81811061155e5750505f5b828110611510576040518061150c8682611443565b0390f35b8061155861152060019387613095565b515f8061152e8589896130a9565b9061153e604051809381936130c0565b0390305af49061154c6130cd565b60208201529015159052565b016114f7565b60209060405161156d816105e3565b5f8152606083820152828288010152016114ec565b346104a9575f3660031901126104a95760206040516301e133808152f35b346104a95760403660031901126104a9576024356004356115bf6138fa565b6115c7613917565b6108d054680100000000000000008110156105ff5780600163ffffffff92016108d055836115f482612ce8565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a4600160c955005b60403660031901126104a957600435611640816104ed565b60243567ffffffffffffffff81116104a9576116609036906004016106fe565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a9576116ca6138fa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116fe57610018915061480d565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611760575b5061172e575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036104a95761001891600191614739565b61177a91925060203d602011610f1c57610f0d818361063d565b905f611725565b346104a9575f3660031901126104a95760206001600160a01b036108cd5416604051908152f35b346104a9575f3660031901126104a9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104a95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126104a95761182a6004356104ed565b6118356024356104ed565b6118406044356104ed565b61184861056e565b5061185460c43561057e565b60e43567ffffffffffffffff81116104a9576107739036906004016106fe565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576118a59036906004016106fe565b6118ad613dd7565b610cbf5460ff8116610f235760ff1916600117610cbf556040516349b5c56d60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610968575f9161196d575b5042811190811561193a575b5061192b57610ea990613d97565b633ff377d160e11b5f5260045ffd5b611945915042613110565b7f0000000000000000000000000000000000000000000000000000000000000000115f61191d565b611986915060203d602011610f1c57610f0d818361063d565b5f611911565b346104a95760c03660031901126104a9576004356119a9816104ed565b602435604435916064356119bc816104ed565b60843567ffffffffffffffff81116104a9576119dc903690600401610cd3565b9160a4359567ffffffffffffffff87116104a957611a01610018973690600401610cd3565b969095613175565b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060ff6108cf5460e81c166040519015158152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104a957600435611ac18161057e565b90602435611ace816104ed565b90604435610719816104ed565b346104a957611b38611aec36611aa9565b5f549392909190611b1e60ff600887901c1615611b08565b1590565b80968197611bb2575b8115611b92575b5061308e565b84611b2f600160ff195f5416175f55565b611b7b576131e4565b611b3e57005b611b4c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611b8d61010061ff00195f5416175f55565b6131e4565b303b15915081611ba4575b505f611b18565b60ff1660011490505f611b9d565b600160ff8216109150611b11565b346104a9575f3660031901126104a95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957611c92613dd7565b5f6001600160a01b036033546001600160a01b03198116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b801515036104a957565b346104a95760203660031901126104a9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611d1d81611cd3565b611d256138fa565b611d2d613917565b15156108cf547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b169116176108cf55604051908152a1600160c955005b346104a95760203660031901126104a9576020611d916004356132a2565b604051908152f35b90602061071992818152019061141f565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611dfe611de66001600160a01b03923690600401610cd3565b611dee6138fa565b611df6613917565b810190612fed565b91168015611e95576004825110611e86575f8083516020850182855af190611e246130cd565b9115611e77577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611e5e61150c9460405191829182611d99565b0390a2611e6b600160c955565b60405191829182611d99565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b346104a9575f3660031901126104a95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104a957600435611ef9816104ed565b602435611f05816104ed565b60443591611f12836104ed565b606435611f1e816104ed565b60843560e43560c43560a435611f33836104ed565b611f3b61058c565b93611f4461059a565b95610144359967ffffffffffffffff8b116104a957611f6a6100189b3690600401610cd3565b9a90996132e1565b6101803660031901126104a957600435611f8b816104ed565b602435611f97816104ed565b60443591611fa4836104ed565b606435611fb0816104ed565b60843560a43560c435611fc16104fe565b90611fca61058c565b92611fd361059a565b94611fdc6105a8565b96610164359a67ffffffffffffffff8c116104a9576120026100189c3690600401610cd3565b9b909a613303565b346104a95760603660031901126104a9576020611d9160043561202c816104ed565b60243560443591613429565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a95761206c903690600401610cd3565b9060443567ffffffffffffffff81116104a95761208d903690600401610cd3565b91909360405160208101906120b6816120a846898887613461565b03601f19810183528261063d565b51902003612147575f936120d18286956120da940190612a50565b9281019061347e565b516121116120ef335b6001600160a01b031690565b916120a860405193849260208401966337bfd2c960e21b885260248501613549565b5190305af461211e6130cd565b901561212657005b60405163b8fe37a760e01b81529081906121439060048301611d99565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346104a95760203660031901126104a9576004356121726138fa565b61217a613917565b61218381612ce8565b6121bb576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a2600160c955005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104a95760443560243560043560643560843560a4356101043560e43560c4356121ff61059a565b936122086105a8565b956122116105b6565b97610184359b67ffffffffffffffff8d116104a9576122376100189d3690600401610cd3565b9c909b61356b565b346104a9575f3660031901126104a95760206001600160a01b0360335416604051908152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a95760e03660031901126104a95760043567ffffffffffffffff81116104a9576122d9903690600401610f4c565b602435604435916064356084359060a43567ffffffffffffffff81116104a957612307903690600401610cd3565b92909160c4359667ffffffffffffffff88116104a95761232e610018983690600401610cd3565b9790966135e3565b346104a95761234436611aa9565b909160ff5f5460081c16156104a95761237a9063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192612389828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526123ae8151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f893610018965190209120906104e3556104e4556123eb614233565b6123f3614242565b614256565b6142ae565b346104a95760203660031901126104a9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561243d81611cd3565b6124456138fa565b61244d613917565b15156108cf547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b169116176108cf55604051908152a1600160c955005b346104a9575f3660031901126104a9576020604051468152f35b346104a9575f3660031901126104a957602063ffffffff6108cf5460c01c16604051908152f35b346104a95760403660031901126104a9576004356024356124f482614455565b6001600160a01b03821691825f526108d760205261252560405f20336001600160a01b03165f5260205260405f2090565b549283156125bb5761256e5f9161253b84614455565b61255833916001600160a01b03165f526108d760205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561258b8361257c83613bfd565b61258585613bfd565b906149e7565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106125fc57505050505090565b909192939460208061261a600193603f19868203018752895161141f565b970193019301919392906125ed565b346104a957612637366113f0565b90612641826136d1565b915f5b818110612659576040518061150c86826125ca565b5f806126668385876130a9565b90612676604051809381936130c0565b0390305af46126836130cd565b90156126a957906001916126978287613095565b526126a28186613095565b5001612644565b60448151106104a9578060248060046104a9940151830101910161371a565b6101803660031901126104a9576044356024356004356064356084356101043560e43560c43560a4356126fa8461057e565b61270261059a565b9461270b6105a8565b96610164359a67ffffffffffffffff8c116104a9576127316100189c3690600401610cd3565b9b909a61377d565b346104a95760206127776001600160a01b0361275436610823565b91165f526108d7835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346104a9575f3660031901126104a95760206001600160a01b036108ce5416604051908152f35b604051906127b660208361063d565b5f808352366020840137565b346104a9575f3660031901126104a95761150c6127dd6127a7565b60405191829160208352602083019061141f565b346104a95760c03660031901126104a95760043560243560443560643560843567ffffffffffffffff81116104a95761282e903690600401610cd3565b60a4939193359067ffffffffffffffff82116104a9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946128776128c6933690600401610cd3565b929091612882613917565b61288b8a614455565b6128ba898b898961289d3688886106c8565b926128a9368b8b6106c8565b946001600160a01b03469216613deb565b60405196879687613142565b0390a3600160c955005b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104a95760203660031901126104a9576004355f526108d6602052602060405f2054604051908152f35b346104a9575f3660031901126104a957602060405163ffffffff8152f35b919091610180818403126104a9576129ac61066e565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e0850152610100820135610100850152612a1061012083016105c4565b610120850152612a2361014083016105c4565b61014085015261016082013567ffffffffffffffff81116104a957612a4892016106fe565b610160830152565b906020828203126104a957813567ffffffffffffffff81116104a9576107199201612996565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611d9161114a6020923690600401612996565b346104a9575f3660031901126104a957602060ff6108cf5460e01c166040519015158152f35b346104a9575f3660031901126104a95760206040516ec097ce7bc90715b34b9f10000000008152f35b346104a95760203660031901126104a957612b2b600435612b1b816104ed565b612b236138fa565b6123f3613917565b600160c955005b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a957612b63903690600401612996565b6024359060443590612b73613917565b60ff6108cf5460e01c166112985761014081015163ffffffff16612ba24263ffffffff165b9163ffffffff1690565b101580612c05575b612bf657610cc992612bbb82613838565b60c083015160208401519061016085015192612bd561065f565b958652602086015260408501526060840152608083015260a0820152613d0e565b630c3a9b9d60e41b5f5260045ffd5b50612c136040820151613bfd565b6001600160a01b0316331415612baa565b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101603660031901126104a9576044356024356004356064356101043560e43560c43560a435608435612c998561057e565b6101243595612ca78761057e565b610144359967ffffffffffffffff8b116104a957612ccc6100189b3690600401610cd3565b9a90996138d5565b634e487b7160e01b5f52603260045260245ffd5b6108d054811015612d06576108d05f52600360205f20910201905f90565b612cd4565b346104a95760203660031901126104a9576004356108d0548110156104a957612d35604091612ce8565b506001815491015482519182526020820152f35b346104a95760203660031901126104a957600435612d66816104ed565b612d6e613dd7565b6001600160a01b038116156104a95761001890613ecb565b346104a95760203660031901126104a9576004355f52610cbe602052602060ff60405f2054166040519015158152f35b346104a95760203660031901126104a957612b2b600435612dd6816104ed565b612dde6138fa565b6123f8613917565b9190612df0613917565b602081019182514603612efc57611b04612e1891836001612e1088612ce8565b50015461393d565b612eed577ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e63ffffffff6060830193612e5e612e58865163ffffffff1690565b876139c1565b612ee08151918551956040810196612eca612ebc612eab8a5197612e868d5163ffffffff1690565b986080870199612e9d8b516001600160a01b031690565b9160a0890197885194613a2a565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612f7a565b0390a461050b600160c955565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612f285750505090565b8251845260209384019390920191600101612f1b565b90602080835192838152019201905f5b818110612f5b5750505090565b82516001600160a01b0316845260209384019390920191600101612f4e565b949695919260a0946001600160a01b03612fa68196612fba958a5260c060208b015260c08a0190612f0b565b921660408801528682036060880152612f3e565b951515608085015216910152565b610719903690612996565b908160209103126104a9575190565b6040513d5f823e3d90fd5b9190916040818403126104a9578035613005816104ed565b92602082013567ffffffffffffffff81116104a95761071992016106fe565b35610719816104ed565b356107198161057e565b903590601e19813603018212156104a9570180359067ffffffffffffffff82116104a9576020019181360383136104a957565b634e487b7160e01b5f52602160045260245ffd5b6003111561308957565b61306b565b156104a957565b8051821015612d065760209160051b010190565b90821015612d065761141b9160051b810190613038565b908092918237015f815290565b3d156130f7573d906130de826106ac565b916130ec604051938461063d565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161311d57565b6130fc565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361316792610719979587526020870152608060408701526080860191613122565b926060818503910152613122565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b0395866131df959a9499166131d18a8c836131bc3688886106c8565b916131c8368b8b6106c8565b9346908d613deb565b604051978897169a87613142565b0390a3565b91909160ff5f5460081c16156104a9576131fd33613ecb565b60ff5f5460081c16156104a9576132319063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192613240828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526132658151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f89361050b965190209120906104e3556104e4556123eb614233565b604051602081019182525f6040820152604081526132c160608261063d565b51902090565b9063ffffffff8091169116019063ffffffff821161311d57565b969492909161050b9b9a999896949261330163ffffffff421698896132c7565b985b9593919b999897969492909b613317613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff169661333988613821565b6133609063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b61336861067e565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906133de919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690613401926106c8565b61018082015261341090613f66565b61050b600160c955565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132c160748261063d565b93929160209161347991604087526040870191613122565b930152565b908160209103126104a957604051906020820182811067ffffffffffffffff8211176105ff5760405235815290565b9061018061016061071993805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261352761012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061141f565b613561604092959493956060835260608301906134ad565b9460208201520152565b9c9a9998979695949392919096613580613917565b60ff6108cf5460e81c1661341a57613599908e33613429565b96604051809e6135a882610604565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526133de565b9792909596949391966135f4613917565b60ff6108cf5460e01c166112985761360f6101408a0161302e565b61361e4263ffffffff16612b98565b1015806136b2575b612bf657613410986136a76136ad9761364261114a3685612996565b9961364b61065f565b9a6136563686612996565b8c5260208c01528560408c01528660608c015261367436868b6106c8565b60808c015260a08b015261369f61368b8435613bfd565b9860e06101008601359501359536916106c8565b9636916106c8565b95613deb565b613d0e565b506136c060408a0135613bfd565b6001600160a01b0316331415613626565b906136db8261096d565b6136e8604051918261063d565b82815280926136f9601f199161096d565b01905f5b82811061370957505050565b8060606020809385010152016136fd565b6020818303126104a95780519067ffffffffffffffff82116104a9570181601f820112156104a95780519061374e826106ac565b9261375c604051948561063d565b828452602083830101116104a957815f9260208093018386015e8301015290565b9b99989796949290959391613790613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff16966137b288613821565b6137d99063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6137e161067e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526133de565b63ffffffff1663ffffffff811461311d5760010190565b6040516132c18161385560208201946040865260608301906134ad565b46604083015203601f19810183528261063d565b919091613874613917565b60ff6108cf5460e01c166112985761014081015163ffffffff1661389d4263ffffffff16612b98565b1015806138b6575b612bf65761341092612bbb82613838565b506138c46040820151613bfd565b6001600160a01b03163314156138a5565b9a989795929693909491966138f163ffffffff421697886132c7565b97613790613917565b60ff610cbf54161561390857565b631147e02f60e11b5f5260045ffd5b600260c954146104a957600260c955565b908160209103126104a95751610719816104ed565b61071992916040516139b8816120a8602082019460208652805160408401526020810151606084015260a0613982604083015160c06080870152610100860190612f0b565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612f3e565b51902091614306565b6139cc600291612ce8565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0e57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9190820180921161311d57565b91959495939092935f9681519081815103613bee5781613aa9575b50505082613a54575b50505050565b63ffffffff613a8b6120e3836120e37ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588614370565b6040805195865233602087015290959190911693a45f808080613a4e565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610968575f91613bcf575b505f5f5b848110613aef57505050613a45565b613af98187613095565b51613b07575b600101613ae0565b90613b1d90613b168388613095565b5190613a1d565b90828211613bc057613b57611b04613b45613b388488613095565b516001600160a01b031690565b613b4f848a613095565b51908a614357565b15613aff579a50613b688b86613095565b51613bb6613bae8d613b99613b38613b928c6001600160a01b03165f526108d760205260405f2090565b9289613095565b6001600160a01b03165f5260205260405f2090565b918254613a1d565b905560019a613aff565b632ddaa83160e11b5f5260045ffd5b613be8915060203d602011610f1c57610f0d818361063d565b5f613adc565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c0f81614455565b1690565b91611b0491613c8f93604081519101519160405191613c3183610621565b82526139b8613c4d602084019246845260408501958652612ce8565b505493604051928391613c74602084019660208852516060604086015260a08501906134ad565b9151606084015251608083015203601f19810183528261063d565b612eed57565b805163ffffffff6101208201511663ffffffff4291161061127a576020820151906002613ccb835f526108d660205260405f2090565b5414613cff5761050b926002613cec6001945f526108d660205260405f2090565b55613cfa60025f8484614502565b614604565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff4291161061127a576020830151926001613d45855f526108d660205260405f2090565b5403613d90576001935b6002613d64825f526108d660205260405f2090565b5414613cff5761050b945f946002613d88613cfa945f526108d660205260405f2090565b558484614502565b5f93613d4f565b5f8091602081519101305af4613dab6130cd565b5015613db357565b6318cecad560e01b5f5260045ffd5b80519081613dd05750505f90565b6020012090565b6001600160a01b036033541633036104a957565b939260429361050b979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e5260e08261063d565b519020906104e354906104e454906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613eaa60a08261063d565b519020906040519161190160f01b835260028301526022820152209061486e565b6001600160a01b0380603354921691826001600160a01b0319821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b9692610140989563ffffffff9586949285936107199e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061141f565b613f708151614455565b606081019081511561422557610120810190613f9c613f93835163ffffffff1690565b63ffffffff1690565b8042109081156141ec575b506141dd57610140810192613fc0845163ffffffff1690565b63ffffffff613ff1817f00000000000000000000000000000000000000000000000000000000000000001642613a1d565b9116116141ce5761016082015163ffffffff1691828061418b575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480614182575b15614132576080830151340361412357833b156104a9575f60049460405195868092630d0e30db60e41b825234905af1908115610968577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461410492614109575b505b5191519260808101519060a081015160c0820151976140e36140d86101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613f11565b0390a4565b806141175f61411d9361063d565b8061049f565b5f6140aa565b636452a35d60e01b5f5260045ffd5b925034614123576141048361417d61416e6120e37f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bfd565b6080860151903090339061495a565b6140ac565b50341515614048565b6301e1338010156141b6575b60e0810151156141a7575f61400c565b63495d907f60e01b5f5260045ffd5b916141c89063ffffffff4216906132c7565b91614197565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b6141f7915042613110565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613fa7565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156104a957565b60ff5f5460081c16156104a957600160c955565b6001600160a01b0316801561429f57806001600160a01b03196108cd5416176108cd557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b031680156142f757806001600160a01b03196108ce5416176108ce557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b929091905f915b845183101561434f576143208386613095565b51908181101561433e575f52602052600160405f205b92019161430d565b905f52602052600160405f20614336565b915092501490565b906143629291614a1d565b8161436b575090565b905090565b906001600160a01b031690815f526108d86020526001600160a01b0360405f2054166143c46001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016151590565b80614423575b156143e757506108ce5461050b92506001600160a01b0316614c83565b6001600160a01b03169182156144145761050b9261440e6108ce546001600160a01b031690565b91614b4a565b63d623472560e01b5f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683146143ca565b60a01c61445e57565b6379ec0ed760e11b5f5260045ffd5b6144768261307f565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906144fb8261307f565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161410460808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61456661012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956145ca61459261016060208b01519a0151613dc2565b9960608c01519b60406145a86080830151613dc2565b9101519060206145b661068e565b9e8f528e015260408d015260608c0161446d565b6040519c8d9c8d614479565b9061071994936080936001600160a01b0380931684526020840152166040820152816060820152019061141f565b906080614612910151613bfd565b9160806040830151926146286060820151613bfd565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614719575015614705575b61468391506001600160a01b038516614f2f565b01519081511515806146fb575b61469a5750505050565b6001600160a01b0316803b156104a9576146d0935f809460405196879586948593633a5be8cb60e01b85523391600486016145d6565b03925af18015610968576146e7575b808080613a4e565b806141175f6146f59361063d565b5f6146df565b50803b1515614690565b614712913090339061495a565b5f8461466f565b9061472e5761472992339061495a565b614683565b6147299250876149e7565b916147438361480d565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614805575b50614786575050565b614802915f806040519361479b60608661063d565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46147fc6130cd565b916155b4565b50565b90505f61477d565b803b156104a9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161487b82846153e4565b9390926005851015613089576148a494159384614944575b5083156148b9575b50505015151590565b6148aa57565b63938a182160e01b5f5260045ffd5b5f9350906120a86148f18594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061141f565b51915afa6148fd6130cd565b81614936575b81614912575b505f808061489b565b905061492f630b135d3f60e11b9160208082518301019101612fd3565b145f614909565b905060208151101590614903565b6001600160a01b0384811691161493505f614893565b5f6001600160a01b0381926149b79682604051978160208a01986323b872dd60e01b8a521660248a015216604488015260648701526064865261499e60848761063d565b16926149a861500b565b94519082855af16147fc6130cd565b80519081159182156149cd575b5050156104a957565b6149e09250602080918301019101615046565b5f806149c4565b906149f29291614a1d565b9015614a0e57156149ff57565b636e3e6e2960e01b5f5260045ffd5b6356dfea6360e01b5f5260045ffd5b6040516370a0823160e01b81526001600160a01b0383811660048301528216949390929091602084602481895afa938415610968575f94614b25575b5060405163a9059cbb60e01b602082019081526001600160a01b0384166024830152604482018590525f9283929091908390614a9881606481016120a8565b51925af194614aa56130cd565b508515614b19576040516370a0823160e01b81526001600160a01b03929092166004830152909190602090839060249082905afa918215610968575f92614af6575b50614af29192613a1d565b1490565b614af29250614b139060203d602011610f1c57610f0d818361063d565b91614ae7565b5050505090505f905f90565b5f919450614b42829160203d602011610f1c57610f0d818361063d565b949150614a59565b92919091614b5661505b565b50614b5f6150a2565b50614b686127a7565b614b706127a7565b90614b796127a7565b926001600160a01b03614b8a61069d565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614bf38560048301615163565b03816001600160a01b0385165afa928315610968575f93614c52575b5082513410614c435761050b93614c27845134613110565b80614c33575b50615241565b614c3d903361517a565b5f614c2d565b63557a94ff60e11b5f5260045ffd5b614c7591935060403d604011614c7c575b614c6d818361063d565b8101906150e2565b915f614c0f565b503d614c63565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614ce4838584615509565b6040516332dd704760e21b815291602083600481885afa928315610968575f93614f05575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610968575f93614ee4575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614d7b57505050505050565b83811115614ede57835b8515614e3a57863b156104a957604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561096857614e2093614e26575b50613110565b80614d6f565b806141175f614e349361063d565b5f614e1a565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561096857614e2093614eb05750613110565b614ed09060203d8111614ed7575b614ec8818361063d565b81019061535e565b505f614e1a565b503d614ebe565b80614d85565b614efe91935060203d602011610f1c57610f0d818361063d565b915f614d49565b6001600160a01b03919350614f289060203d60201161096157610953818361063d565b9290614d09565b906001600160a01b038216803b158015614ffc575b15614fc857506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156104a957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109685761050b93614fb4575b5061517a565b806141175f614fc29361063d565b5f614fae565b61050b92506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166149e7565b5061500681615372565b614f44565b6040519061501a60408361063d565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b908160209103126104a9575161071981611cd3565b6040519060e0820182811067ffffffffffffffff8211176105ff57604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b604051906150af826105e3565b5f6020838281520152565b91908260409103126104a9576040516150d2816105e3565b6020808294805184520151910152565b906040828203126104a957610719916150ba565b6107199163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c0615152615140608085015160e0608086015260e085019061141f565b60a085015184820360a086015261141f565b9201519060c081840391015261141f565b919060206134795f926040865260408601906150f6565b8147106104a9575f8080936001600160a01b038294165af161519a6130cd565b50156104a957565b519067ffffffffffffffff821682036104a957565b919082810360c081126104a9576080136104a9576107199060806040516151dd81610621565b855181526151ed602087016151a2565b60208201526151ff83604088016150ba565b604082015294016150ba565b9193926001600160a01b0390602061522d6060946080875260808701906150f6565b968051828701520151604085015216910152565b918351927f0000000000000000000000000000000000000000000000000000000000000000841161534f57478411615340576020850151615331576001600160a01b03946152bd9461529f60c0956040860151988991168095615415565b60405180968195829463c7c7f5b360e01b845230916004850161520b565b03925af1908115610968575f91615300575b50602081015182036152f15751036152e357565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b615322915060c03d60c01161532a575b61531a818361063d565b8101906151b7565b90505f6152cf565b503d615310565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b908160209103126104a957610719906151a2565b803b61537d816106ac565b9061538b604051928361063d565b8082525f6020830180943c5190516001600160e81b031981169190600382106153c5575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f806153af565b9060418151145f1461540c5761141b91602082015190606060408401519301515f1a906155df565b50505f90600290565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926154819061545360648561063d565b5f806001600160a01b0385169286519082855af1906154706130cd565b826154d7575b50816154d057501590565b61548a57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261050b926154cb906154c581606481016120a8565b8261565a565b61565a565b3b15919050565b805191925081159182156154ef575b5050905f615476565b6155029250602080918301019101615046565b5f806154e6565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109685761050b946154cb92615561925f91615595575b50613a1d565b60405163095ea7b360e01b60208201526001600160a01b03949094166024850152604480850191909152835260648361063d565b6155ae915060203d602011610f1c57610f0d818361063d565b5f61555b565b919250156155d0578151156155c7575090565b3b156104a95790565b5080519081156104a957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161564f576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610968575f516001600160a01b0381161561564757905f90565b505f90600190565b505050505f90600390565b906001600160a01b036149b792165f8061567261500b565b9360208151910182855af16147fc6130cd56fea2646970667358221220b38086e99ac48578bc3b7f388ac7f40bc02babbeb3a9d4ed2a2c385af8e69b8f64736f6c634300081e0033"}
|