@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":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlotValueMismatch","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x610220806040523461032a57610140816159ae8038038091610021828561032e565b83398101031261032a57805161003960208301610351565b9061004660408401610351565b9261005360608201610351565b61005f60808301610365565b9161006c60a08201610365565b60c0820151936001600160a01b038516850361032a5760e0830151936001600160a01b0385169384860361032a576101206100aa6101008301610365565b9101513060805260c09190915260a0526001600160a01b031660e05261010052610120525f5491600883901c60ff1661032a575f938360ff80879616036102f0575b5061016052610180528161014052604051602081019063011a412160e61b82526004815261011b60248261032e565b51915afa3d156102e9573d6001600160401b0381116102d5576040519061014c601f8201601f19166020018361032e565b81523d5f602083013e5b816102c9575b81610293575b506101a052610200526101e0526101c052604051615637908161037782396080518181816112ce0152818161166b01526117c2015260a051818181611a8601526151c3015260c051818181611c560152614b0d015260e0518181816107ff0152818161401f0152818161471f01528181614ed00152614f53015261010051818181611a2501526141fe0152610120518181816104c90152613fcb015261014051818181611c1601528181614d240152614dcc0152610160518181816107a20152818161450d0152614c0b0152610180518181816122840152818161447e0152614c3401526101a051818181611ebb0152614cca01526101c051818181610d8e01526128ef01526101e051818181610dd4015281816118d90152612c43015261020051818181611947015261292a0152f35b90506020815191015190602081106102b8575b506001600160a01b031615155f610162565b5f199060200360031b1b165f6102a6565b8051602014915061015c565b634e487b7160e01b5f52604160045260245ffd5b6060610156565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100ec565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d557604052565b51906001600160a01b038216820361032a57565b519063ffffffff8216820361032a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461049a5780630cb84d9a146104955780631186ec331461049057806311eac8551461048b57806315348e44146103f057806317fcb39b1461048657806319c1648c146104815780631b3d55591461047c5780631fab657c1461047757806326b105d21461047257806329cb924d1461046d5780632e378115146104685780632e63e59a146104635780633659cfe61461045e578063437b911614610459578063490e49ef14610454578063493a4f841461044f5780634f1ef2861461044a5780635285e0581461044557806352d1902d14610440578063541f4f141461043b5780635743a7b914610436578063577f51f81461043157806357f6dcb81461042c5780636068d6cb1461042757806361a04d3014610422578063647c576c1461041d578063670fa8ac146104185780636bbbcd2e146103f05780636e400983146104135780636fd5c10e1461040e578063715018a614610409578063738b62e51461040457806373fd4836146103ff5780637659f9e0146103fa578063775c0d03146103f5578063793d2be0146103f05780637aef642c146103eb5780637b939232146103e65780637ef413e1146103e157806382e2c43f146103dc5780638a7860ce146103d75780638b15788e146103d25780638da5cb5b146103cd5780639748cf7c146103c857806397943aa9146103c3578063979f2bc2146103be57806399cc2968146103b95780639a8a0592146103b4578063a1244c67146103af578063a18a096e146103aa578063ac9650d8146103a5578063ad5425c6146103a0578063adb5a6a61461034b578063b370b7f51461039b578063b4c0d7ab14610396578063babb6aac14610391578063bce63c001461038c578063c2bb0c5514610387578063c35c83fc14610382578063ceb4c9871461037d578063d7e1583a14610378578063dda5211314610373578063ddd224f11461036e578063de7eba7814610369578063deff4b2414610364578063e45a46941461035f578063ea86bd461461035a578063ee2a53f814610355578063f2fde38b14610350578063f79f29ed1461034b578063fb4c3749146103465763fc8a584f0361000e57612db6565b612d86565b612739565b612d49565b612d0b565b612c67565b612c24565b612b32565b612afb565b612ad2565b612aac565b612a76565b612978565b61294d565b612913565b6128d0565b6127f1565b6127c2565b612780565b6126c8565b612629565b6124d4565b6124ad565b612493565b6123fd565b612336565b6122a8565b612265565b61223f565b6121ce565b612156565b612038565b61200a565b611f72565b611ee0565b6107c6565b611ea4565b611daa565b611d73565b611cdd565b611c7a565b611c3a565b611bfa565b611bc0565b611adb565b611a6f565b611a49565b611a09565b61198c565b611874565b611812565b6117a8565b611781565b611628565b6115a0565b611582565b6114b5565b6112a7565b6110ae565b610f5b565b610f32565b610d01565b610bd2565b610ab0565b610848565b6107e0565b610783565b61071c565b610518565b6104ad565b5f9103126104a957565b5f80fd5b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036104a957565b60e4359061050b826104ed565b565b359061050b826104ed565b346104a95760203660031901126104a9576001600160a01b0360043561053d816104ed565b165f526108d860205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036104a957565b60a435908160070b82036104a957565b63ffffffff8116036104a957565b610104359061050b8261057e565b610124359061050b8261057e565b610144359061050b8261057e565b610164359061050b8261057e565b359061050b8261057e565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105ff57604052565b6105cf565b6101a0810190811067ffffffffffffffff8211176105ff57604052565b6060810190811067ffffffffffffffff8211176105ff57604052565b90601f8019910116810190811067ffffffffffffffff8211176105ff57604052565b6040519061050b60c08361063d565b6040519061050b6101808361063d565b6040519061050b6101a08361063d565b6040519061050b60808361063d565b6040519061050b60e08361063d565b67ffffffffffffffff81116105ff57601f01601f191660200190565b9291926106d4826106ac565b916106e2604051938461063d565b8294818452818301116104a9578281602093845f960137010152565b9080601f830112156104a957816020610719933591016106c8565b90565b6101003660031901126104a9576107346004356104ed565b61073f6024356104ed565b61074761055e565b5061075360a43561057e565b60c43567ffffffffffffffff81116104a9576107739036906004016106fe565b506332ed1ba560e21b5f5260045ffd5b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040515f8152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126104a95760043561083b816104ed565b90602435610719816104ed565b346104a95761085636610823565b61085e6138fa565b610866613917565b6001600160a01b03811691821515806108ff575b6108f0576108c16001600160a01b03926108a6836001600160a01b03165f526108d860205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a3610018600160c955565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610968575f91610939575b506001600160a01b038083169116141561087a565b61095b915060203d602011610961575b610953818361063d565b810190613928565b5f610924565b503d610949565b612fe2565b67ffffffffffffffff81116105ff5760051b60200190565b9080601f830112156104a957813561099c8161096d565b926109aa604051948561063d565b81845260208085019260051b8201019283116104a957602001905b8282106109d25750505090565b81358152602091820191016109c5565b9080601f830112156104a95781356109f98161096d565b92610a07604051948561063d565b81845260208085019260051b8201019283116104a957602001905b828210610a2f5750505090565b602080918335610a3e816104ed565b815201910190610a22565b929190610a558161096d565b93610a63604051958661063d565b602085838152019160051b81019283116104a957905b828210610a8557505050565b8135815260209182019101610a79565b9080601f830112156104a95781602061071993359101610a49565b60603660031901126104a957600435610ac88161057e565b6024359067ffffffffffffffff82116104a95760c060031983360301126104a957610af161065f565b918060040135835260248101356020840152604481013567ffffffffffffffff81116104a957610b279060043691840101610985565b6040840152610b38606482016105c4565b6060840152610b496084820161050d565b608084015260a48101359067ffffffffffffffff82116104a9576004610b7292369201016109e2565b60a08301526044359167ffffffffffffffff83116104a957610b9b610018933690600401610a95565b91612de6565b9181601f840112156104a95782359167ffffffffffffffff83116104a9576020808501948460051b0101116104a957565b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a9578036039060606003198301126104a957602435610c118161057e565b60443567ffffffffffffffff81116104a957610c31903690600401610ba1565b919093610c3c613917565b60048401359061018219018112156104a957610cc994610cc493610c676004610cbd94880101612fc8565b95610c756080880151613bfd565b506044610c8188613838565b91013560208801519061016089015192610c9961065f565b998a5260208a01526040890152606088015260808701525f60a08701523691610a49565b9083613c13565b613c95565b610018600160c955565b9181601f840112156104a95782359167ffffffffffffffff83116104a957602083818601950101116104a957565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a957610d35903690600401610cd3565b610cbf5460443560ff8216610f23576001610dc89260ff191617610cbf556020610d5e866132a2565b610d693686886106c8565b805190830120604051630829c59f60e01b815260048101949094526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602485015260448401919091529192839081906064820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610968575f92610ef2575b5003610ee35781610e1f916001600160a01b03930190612fed565b91168015159081610ed8575b50610ec957610e4d610e46835f52610cbe60205260405f2090565b5460ff1690565b610eba5781610e78610e6b610ea9945f52610cbe60205260405f2090565b805460ff19166001179055565b6040513381527f3b0b856314838f509dfe81e9e13c651b0e544b42639c58be2c161b2c3892949d90602090a2613d97565b61001860ff19610cbf5416610cbf55565b630dc1019760e01b5f5260045ffd5b6332f602d160e11b5f5260045ffd5b90503014155f610e2b565b6301b6e1e760e21b5f5260045ffd5b610f1591925060203d602011610f1c575b610f0d818361063d565b810190612fd3565b905f610e04565b503d610f03565b63087f80c160e31b5f5260045ffd5b346104a9575f3660031901126104a9576020604051428152f35b90816101809103126104a95790565b346104a95760403660031901126104a95760043567ffffffffffffffff81116104a957610f8c903690600401610f4c565b602435610f9882613024565b6001600160a01b031691610fae60208201613024565b6001600160a01b031690610fc460408201613024565b6001600160a01b031690610fda60608201613024565b6001600160a01b0316610fef60808301613024565b6001600160a01b031660e083013560c084013560a0850135611014610100870161302e565b93611022610120880161302e565b95611030610140890161302e565b97610160810161103f91613038565b99909a61104a61066e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff16610140850152369061109c926106c8565b61016083015261001891339190613869565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576110df903690600401610f4c565b6110e7613917565b60ff6108cf5460e01c166112985763ffffffff42169061014081019061111f836111108461302e565b63ffffffff9182169116101590565b6112895761012081019263ffffffff6111378561302e565b161061127a5761114f61114a3683612996565b613838565b90611163825f526108d660205260405f2090565b5461126c576111a561119f7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f526108d660205260405f2090565b60019055565b606081013561125f60808301359260a08101359060c081013560e0820135976111dc6111d66101008501359b61302e565b9161302e565b60408401359184359361120b6112066111ff602089013598610160810190613038565b36916106c8565b613dc2565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a3610018600160c955565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346104a95760203660031901126104a9576004356112c4816104ed565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a95761132d6138fa565b6113356127a7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156113695750610018906148ec565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816113cf575b5061139a575f80fd5b610018926113ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f941461308e565b614818565b6113e991935060203d602011610f1c57610f0d818361063d565b915f611391565b60206003198201126104a9576004359067ffffffffffffffff82116104a95761141b91600401610ba1565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061147557505050505090565b90919293946020806114a6600193603f198682030187526040838b518051151584520151918185820152019061141f565b97019301930191939290611466565b346104a9576114c3366113f0565b6114cc8161096d565b916114da604051938461063d565b818352601f196114e98361096d565b015f5b81811061155e5750505f5b828110611510576040518061150c8682611443565b0390f35b8061155861152060019387613095565b515f8061152e8589896130a9565b9061153e604051809381936130c0565b0390305af49061154c6130cd565b60208201529015159052565b016114f7565b60209060405161156d816105e3565b5f8152606083820152828288010152016114ec565b346104a9575f3660031901126104a95760206040516301e133808152f35b346104a95760403660031901126104a9576024356004356115bf6138fa565b6115c7613917565b6108d054680100000000000000008110156105ff5780600163ffffffff92016108d055836115f482612ce8565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a4600160c955005b60403660031901126104a957600435611640816104ed565b60243567ffffffffffffffff81116104a9576116609036906004016106fe565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a9576116ca6138fa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116fe5761001891506148ec565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611760575b5061172e575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036104a95761001891600191614818565b61177a91925060203d602011610f1c57610f0d818361063d565b905f611725565b346104a9575f3660031901126104a95760206001600160a01b036108cd5416604051908152f35b346104a9575f3660031901126104a9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104a95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126104a95761182a6004356104ed565b6118356024356104ed565b6118406044356104ed565b61184861056e565b5061185460c43561057e565b60e43567ffffffffffffffff81116104a9576107739036906004016106fe565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576118a59036906004016106fe565b6118ad613dd7565b610cbf5460ff8116610f235760ff1916600117610cbf556040516349b5c56d60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610968575f9161196d575b5042811190811561193a575b5061192b57610ea990613d97565b633ff377d160e11b5f5260045ffd5b611945915042613110565b7f0000000000000000000000000000000000000000000000000000000000000000115f61191d565b611986915060203d602011610f1c57610f0d818361063d565b5f611911565b346104a95760c03660031901126104a9576004356119a9816104ed565b602435604435916064356119bc816104ed565b60843567ffffffffffffffff81116104a9576119dc903690600401610cd3565b9160a4359567ffffffffffffffff87116104a957611a01610018973690600401610cd3565b969095613175565b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060ff6108cf5460e81c166040519015158152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104a957600435611ac18161057e565b90602435611ace816104ed565b90604435610719816104ed565b346104a957611b38611aec36611aa9565b5f549392909190611b1e60ff600887901c1615611b08565b1590565b80968197611bb2575b8115611b92575b5061308e565b84611b2f600160ff195f5416175f55565b611b7b576131e4565b611b3e57005b611b4c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611b8d61010061ff00195f5416175f55565b6131e4565b303b15915081611ba4575b505f611b18565b60ff1660011490505f611b9d565b600160ff8216109150611b11565b346104a9575f3660031901126104a95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957611c92613dd7565b5f6001600160a01b036033546001600160a01b03198116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b801515036104a957565b346104a95760203660031901126104a9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611d1d81611cd3565b611d256138fa565b611d2d613917565b15156108cf547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b169116176108cf55604051908152a1600160c955005b346104a95760203660031901126104a9576020611d916004356132a2565b604051908152f35b90602061071992818152019061141f565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611dfe611de66001600160a01b03923690600401610cd3565b611dee6138fa565b611df6613917565b810190612fed565b91168015611e95576004825110611e86575f8083516020850182855af190611e246130cd565b9115611e77577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611e5e61150c9460405191829182611d99565b0390a2611e6b600160c955565b60405191829182611d99565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b346104a9575f3660031901126104a95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104a957600435611ef9816104ed565b602435611f05816104ed565b60443591611f12836104ed565b606435611f1e816104ed565b60843560e43560c43560a435611f33836104ed565b611f3b61058c565b93611f4461059a565b95610144359967ffffffffffffffff8b116104a957611f6a6100189b3690600401610cd3565b9a90996132e1565b6101803660031901126104a957600435611f8b816104ed565b602435611f97816104ed565b60443591611fa4836104ed565b606435611fb0816104ed565b60843560a43560c435611fc16104fe565b90611fca61058c565b92611fd361059a565b94611fdc6105a8565b96610164359a67ffffffffffffffff8c116104a9576120026100189c3690600401610cd3565b9b909a613303565b346104a95760603660031901126104a9576020611d9160043561202c816104ed565b60243560443591613429565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a95761206c903690600401610cd3565b9060443567ffffffffffffffff81116104a95761208d903690600401610cd3565b91909360405160208101906120b6816120a846898887613461565b03601f19810183528261063d565b51902003612147575f936120d18286956120da940190612a50565b9281019061347e565b516121116120ef335b6001600160a01b031690565b916120a860405193849260208401966337bfd2c960e21b885260248501613549565b5190305af461211e6130cd565b901561212657005b60405163b8fe37a760e01b81529081906121439060048301611d99565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346104a95760203660031901126104a9576004356121726138fa565b61217a613917565b61218381612ce8565b6121bb576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a2600160c955005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104a95760443560243560043560643560843560a4356101043560e43560c4356121ff61059a565b936122086105a8565b956122116105b6565b97610184359b67ffffffffffffffff8d116104a9576122376100189d3690600401610cd3565b9c909b61356b565b346104a9575f3660031901126104a95760206001600160a01b0360335416604051908152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a95760e03660031901126104a95760043567ffffffffffffffff81116104a9576122d9903690600401610f4c565b602435604435916064356084359060a43567ffffffffffffffff81116104a957612307903690600401610cd3565b92909160c4359667ffffffffffffffff88116104a95761232e610018983690600401610cd3565b9790966135e3565b346104a95761234436611aa9565b909160ff5f5460081c16156104a95761237a9063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192612389828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526123ae8151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f893610018965190209120906104e3556104e4556123eb614233565b6123f3614242565b614256565b6142ae565b346104a95760203660031901126104a9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561243d81611cd3565b6124456138fa565b61244d613917565b15156108cf547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b169116176108cf55604051908152a1600160c955005b346104a9575f3660031901126104a9576020604051468152f35b346104a9575f3660031901126104a957602063ffffffff6108cf5460c01c16604051908152f35b346104a95760403660031901126104a9576004356024356124f482614534565b6001600160a01b03821691825f526108d760205261252560405f20336001600160a01b03165f5260205260405f2090565b549283156125bb5761256e5f9161253b84614534565b61255833916001600160a01b03165f526108d760205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561258b8361257c83613bfd565b61258585613bfd565b90614306565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106125fc57505050505090565b909192939460208061261a600193603f19868203018752895161141f565b970193019301919392906125ed565b346104a957612637366113f0565b90612641826136d1565b915f5b818110612659576040518061150c86826125ca565b5f806126668385876130a9565b90612676604051809381936130c0565b0390305af46126836130cd565b90156126a957906001916126978287613095565b526126a28186613095565b5001612644565b60448151106104a9578060248060046104a9940151830101910161371a565b6101803660031901126104a9576044356024356004356064356084356101043560e43560c43560a4356126fa8461057e565b61270261059a565b9461270b6105a8565b96610164359a67ffffffffffffffff8c116104a9576127316100189c3690600401610cd3565b9b909a61377d565b346104a95760206127776001600160a01b0361275436610823565b91165f526108d7835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346104a9575f3660031901126104a95760206001600160a01b036108ce5416604051908152f35b604051906127b660208361063d565b5f808352366020840137565b346104a9575f3660031901126104a95761150c6127dd6127a7565b60405191829160208352602083019061141f565b346104a95760c03660031901126104a95760043560243560443560643560843567ffffffffffffffff81116104a95761282e903690600401610cd3565b60a4939193359067ffffffffffffffff82116104a9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946128776128c6933690600401610cd3565b929091612882613917565b61288b8a614534565b6128ba898b898961289d3688886106c8565b926128a9368b8b6106c8565b946001600160a01b03469216613deb565b60405196879687613142565b0390a3600160c955005b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104a95760203660031901126104a9576004355f526108d6602052602060405f2054604051908152f35b346104a9575f3660031901126104a957602060405163ffffffff8152f35b919091610180818403126104a9576129ac61066e565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e0850152610100820135610100850152612a1061012083016105c4565b610120850152612a2361014083016105c4565b61014085015261016082013567ffffffffffffffff81116104a957612a4892016106fe565b610160830152565b906020828203126104a957813567ffffffffffffffff81116104a9576107199201612996565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611d9161114a6020923690600401612996565b346104a9575f3660031901126104a957602060ff6108cf5460e01c166040519015158152f35b346104a9575f3660031901126104a95760206040516ec097ce7bc90715b34b9f10000000008152f35b346104a95760203660031901126104a957612b2b600435612b1b816104ed565b612b236138fa565b6123f3613917565b600160c955005b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a957612b63903690600401612996565b6024359060443590612b73613917565b60ff6108cf5460e01c166112985761014081015163ffffffff16612ba24263ffffffff165b9163ffffffff1690565b101580612c05575b612bf657610cc992612bbb82613838565b60c083015160208401519061016085015192612bd561065f565b958652602086015260408501526060840152608083015260a0820152613d0e565b630c3a9b9d60e41b5f5260045ffd5b50612c136040820151613bfd565b6001600160a01b0316331415612baa565b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101603660031901126104a9576044356024356004356064356101043560e43560c43560a435608435612c998561057e565b6101243595612ca78761057e565b610144359967ffffffffffffffff8b116104a957612ccc6100189b3690600401610cd3565b9a90996138d5565b634e487b7160e01b5f52603260045260245ffd5b6108d054811015612d06576108d05f52600360205f20910201905f90565b612cd4565b346104a95760203660031901126104a9576004356108d0548110156104a957612d35604091612ce8565b506001815491015482519182526020820152f35b346104a95760203660031901126104a957600435612d66816104ed565b612d6e613dd7565b6001600160a01b038116156104a95761001890613ecb565b346104a95760203660031901126104a9576004355f52610cbe602052602060ff60405f2054166040519015158152f35b346104a95760203660031901126104a957612b2b600435612dd6816104ed565b612dde6138fa565b6123f8613917565b9190612df0613917565b602081019182514603612efc57611b04612e1891836001612e1088612ce8565b50015461393d565b612eed577ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e63ffffffff6060830193612e5e612e58865163ffffffff1690565b876139c1565b612ee08151918551956040810196612eca612ebc612eab8a5197612e868d5163ffffffff1690565b986080870199612e9d8b516001600160a01b031690565b9160a0890197885194613a2a565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612f7a565b0390a461050b600160c955565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612f285750505090565b8251845260209384019390920191600101612f1b565b90602080835192838152019201905f5b818110612f5b5750505090565b82516001600160a01b0316845260209384019390920191600101612f4e565b949695919260a0946001600160a01b03612fa68196612fba958a5260c060208b015260c08a0190612f0b565b921660408801528682036060880152612f3e565b951515608085015216910152565b610719903690612996565b908160209103126104a9575190565b6040513d5f823e3d90fd5b9190916040818403126104a9578035613005816104ed565b92602082013567ffffffffffffffff81116104a95761071992016106fe565b35610719816104ed565b356107198161057e565b903590601e19813603018212156104a9570180359067ffffffffffffffff82116104a9576020019181360383136104a957565b634e487b7160e01b5f52602160045260245ffd5b6003111561308957565b61306b565b156104a957565b8051821015612d065760209160051b010190565b90821015612d065761141b9160051b810190613038565b908092918237015f815290565b3d156130f7573d906130de826106ac565b916130ec604051938461063d565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161311d57565b6130fc565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361316792610719979587526020870152608060408701526080860191613122565b926060818503910152613122565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b0395866131df959a9499166131d18a8c836131bc3688886106c8565b916131c8368b8b6106c8565b9346908d613deb565b604051978897169a87613142565b0390a3565b91909160ff5f5460081c16156104a9576131fd33613ecb565b60ff5f5460081c16156104a9576132319063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192613240828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526132658151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f89361050b965190209120906104e3556104e4556123eb614233565b604051602081019182525f6040820152604081526132c160608261063d565b51902090565b9063ffffffff8091169116019063ffffffff821161311d57565b969492909161050b9b9a999896949261330163ffffffff421698896132c7565b985b9593919b999897969492909b613317613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff169661333988613821565b6133609063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b61336861067e565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906133de919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690613401926106c8565b61018082015261341090613f66565b61050b600160c955565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132c160748261063d565b93929160209161347991604087526040870191613122565b930152565b908160209103126104a957604051906020820182811067ffffffffffffffff8211176105ff5760405235815290565b9061018061016061071993805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261352761012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061141f565b613561604092959493956060835260608301906134ad565b9460208201520152565b9c9a9998979695949392919096613580613917565b60ff6108cf5460e81c1661341a57613599908e33613429565b96604051809e6135a882610604565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526133de565b9792909596949391966135f4613917565b60ff6108cf5460e01c166112985761360f6101408a0161302e565b61361e4263ffffffff16612b98565b1015806136b2575b612bf657613410986136a76136ad9761364261114a3685612996565b9961364b61065f565b9a6136563686612996565b8c5260208c01528560408c01528660608c015261367436868b6106c8565b60808c015260a08b015261369f61368b8435613bfd565b9860e06101008601359501359536916106c8565b9636916106c8565b95613deb565b613d0e565b506136c060408a0135613bfd565b6001600160a01b0316331415613626565b906136db8261096d565b6136e8604051918261063d565b82815280926136f9601f199161096d565b01905f5b82811061370957505050565b8060606020809385010152016136fd565b6020818303126104a95780519067ffffffffffffffff82116104a9570181601f820112156104a95780519061374e826106ac565b9261375c604051948561063d565b828452602083830101116104a957815f9260208093018386015e8301015290565b9b99989796949290959391613790613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff16966137b288613821565b6137d99063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6137e161067e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526133de565b63ffffffff1663ffffffff811461311d5760010190565b6040516132c18161385560208201946040865260608301906134ad565b46604083015203601f19810183528261063d565b919091613874613917565b60ff6108cf5460e01c166112985761014081015163ffffffff1661389d4263ffffffff16612b98565b1015806138b6575b612bf65761341092612bbb82613838565b506138c46040820151613bfd565b6001600160a01b03163314156138a5565b9a989795929693909491966138f163ffffffff421697886132c7565b97613790613917565b60ff610cbf54161561390857565b631147e02f60e11b5f5260045ffd5b600260c954146104a957600260c955565b908160209103126104a95751610719816104ed565b61071992916040516139b8816120a8602082019460208652805160408401526020810151606084015260a0613982604083015160c06080870152610100860190612f0b565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612f3e565b5190209161438c565b6139cc600291612ce8565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0e57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9190820180921161311d57565b91959495939092935f9681519081815103613bee5781613aa9575b50505082613a54575b50505050565b63ffffffff613a8b6120e3836120e37ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861444f565b6040805195865233602087015290959190911693a45f808080613a4e565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610968575f91613bcf575b505f5f5b848110613aef57505050613a45565b613af98187613095565b51613b07575b600101613ae0565b90613b1d90613b168388613095565b5190613a1d565b90828211613bc057613b57611b04613b45613b388488613095565b516001600160a01b031690565b613b4f848a613095565b51908a6143dd565b15613aff579a50613b688b86613095565b51613bb6613bae8d613b99613b38613b928c6001600160a01b03165f526108d760205260405f2090565b9289613095565b6001600160a01b03165f5260205260405f2090565b918254613a1d565b905560019a613aff565b632ddaa83160e11b5f5260045ffd5b613be8915060203d602011610f1c57610f0d818361063d565b5f613adc565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c0f81614534565b1690565b91611b0491613c8f93604081519101519160405191613c3183610621565b82526139b8613c4d602084019246845260408501958652612ce8565b505493604051928391613c74602084019660208852516060604086015260a08501906134ad565b9151606084015251608083015203601f19810183528261063d565b612eed57565b805163ffffffff6101208201511663ffffffff4291161061127a576020820151906002613ccb835f526108d660205260405f2090565b5414613cff5761050b926002613cec6001945f526108d660205260405f2090565b55613cfa60025f84846145e1565b6146e3565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff4291161061127a576020830151926001613d45855f526108d660205260405f2090565b5403613d90576001935b6002613d64825f526108d660205260405f2090565b5414613cff5761050b945f946002613d88613cfa945f526108d660205260405f2090565b5584846145e1565b5f93613d4f565b5f8091602081519101305af4613dab6130cd565b5015613db357565b6318cecad560e01b5f5260045ffd5b80519081613dd05750505f90565b6020012090565b6001600160a01b036033541633036104a957565b939260429361050b979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e5260e08261063d565b519020906104e354906104e454906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613eaa60a08261063d565b519020906040519161190160f01b835260028301526022820152209061494d565b6001600160a01b0380603354921691826001600160a01b0319821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b9692610140989563ffffffff9586949285936107199e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061141f565b613f708151614534565b606081019081511561422557610120810190613f9c613f93835163ffffffff1690565b63ffffffff1690565b8042109081156141ec575b506141dd57610140810192613fc0845163ffffffff1690565b63ffffffff613ff1817f00000000000000000000000000000000000000000000000000000000000000001642613a1d565b9116116141ce5761016082015163ffffffff1691828061418b575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480614182575b15614132576080830151340361412357833b156104a9575f60049460405195868092630d0e30db60e41b825234905af1908115610968577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461410492614109575b505b5191519260808101519060a081015160c0820151976140e36140d86101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613f11565b0390a4565b806141175f61411d9361063d565b8061049f565b5f6140aa565b636452a35d60e01b5f5260045ffd5b925034614123576141048361417d61416e6120e37f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bfd565b60808601519030903390614a39565b6140ac565b50341515614048565b6301e1338010156141b6575b60e0810151156141a7575f61400c565b63495d907f60e01b5f5260045ffd5b916141c89063ffffffff4216906132c7565b91614197565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b6141f7915042613110565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613fa7565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156104a957565b60ff5f5460081c16156104a957600160c955565b6001600160a01b0316801561429f57806001600160a01b03196108cd5416176108cd557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b031680156142f757806001600160a01b03196108ce5416176108ce557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f511481161561436d575b604091909152156143525750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516614383573d15833b15151616614344565b503d5f823e3d90fd5b929091905f915b84518310156143d5576143a68386613095565b5190818110156143c4575f52602052600160405f205b920191614393565b905f52602052600160405f206143bc565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161441981606481016120a8565b519082855af1903d5f519083614430575b50505090565b9192509061444557503b15155b5f808061442a565b600191501461443d565b906001600160a01b031690815f526108d86020526001600160a01b0360405f2054166144a36001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016151590565b80614502575b156144c657506108ce5461050b92506001600160a01b0316614bff565b6001600160a01b03169182156144f35761050b926144ed6108ce546001600160a01b031690565b91614ac6565b63d623472560e01b5f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683146144a9565b60a01c61453d57565b6379ec0ed760e11b5f5260045ffd5b6145558261307f565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906145da8261307f565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161410460808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61464561012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956146a961467161016060208b01519a0151613dc2565b9960608c01519b60406146876080830151613dc2565b91015190602061469561068e565b9e8f528e015260408d015260608c0161454c565b6040519c8d9c8d614558565b9061071994936080936001600160a01b0380931684526020840152166040820152816060820152019061141f565b9060806146f1910151613bfd565b9160806040830151926147076060820151613bfd565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146147f85750156147e4575b61476291506001600160a01b038516614eab565b01519081511515806147da575b6147795750505050565b6001600160a01b0316803b156104a9576147af935f809460405196879586948593633a5be8cb60e01b85523391600486016146b5565b03925af18015610968576147c6575b808080613a4e565b806141175f6147d49361063d565b5f6147be565b50803b151561476f565b6147f19130903390614a39565b5f8461474e565b9061480d57614808923390614a39565b614762565b614808925087614306565b91614822836148ec565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916148e4575b50614865575050565b6148e1915f806040519361487a60608661063d565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46148db6130cd565b91615530565b50565b90505f61485c565b803b156104a9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161495a8284615360565b93909260058510156130895761498394159384614a23575b508315614998575b50505015151590565b61498957565b63938a182160e01b5f5260045ffd5b5f9350906120a86149d08594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061141f565b51915afa6149dc6130cd565b81614a15575b816149f1575b505f808061497a565b9050614a0e630b135d3f60e11b9160208082518301019101612fd3565b145f6149e8565b9050602081511015906149e2565b6001600160a01b0384811691161493505f614972565b5f6001600160a01b038192614a969682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614a7d60848761063d565b1692614a87614f87565b94519082855af16148db6130cd565b8051908115918215614aac575b5050156104a957565b614abf9250602080918301019101614fc2565b5f80614aa3565b92919091614ad2614fd7565b50614adb61501e565b50614ae46127a7565b614aec6127a7565b90614af56127a7565b926001600160a01b03614b0661069d565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614b6f85600483016150df565b03816001600160a01b0385165afa928315610968575f93614bce575b5082513410614bbf5761050b93614ba3845134613110565b80614baf575b506151bd565b614bb990336150f6565b5f614ba9565b63557a94ff60e11b5f5260045ffd5b614bf191935060403d604011614bf8575b614be9818361063d565b81019061505e565b915f614b8b565b503d614bdf565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614c60838584615485565b6040516332dd704760e21b815291602083600481885afa928315610968575f93614e81575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610968575f93614e60575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614cf757505050505050565b83811115614e5a57835b8515614db657863b156104a957604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561096857614d9c93614da2575b50613110565b80614ceb565b806141175f614db09361063d565b5f614d96565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561096857614d9c93614e2c5750613110565b614e4c9060203d8111614e53575b614e44818361063d565b8101906152da565b505f614d96565b503d614e3a565b80614d01565b614e7a91935060203d602011610f1c57610f0d818361063d565b915f614cc5565b6001600160a01b03919350614ea49060203d60201161096157610953818361063d565b9290614c85565b906001600160a01b038216803b158015614f78575b15614f4457506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156104a957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109685761050b93614f30575b506150f6565b806141175f614f3e9361063d565b5f614f2a565b61050b92506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614306565b50614f82816152ee565b614ec0565b60405190614f9660408361063d565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b908160209103126104a9575161071981611cd3565b6040519060e0820182811067ffffffffffffffff8211176105ff57604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b6040519061502b826105e3565b5f6020838281520152565b91908260409103126104a95760405161504e816105e3565b6020808294805184520151910152565b906040828203126104a95761071991615036565b6107199163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c06150ce6150bc608085015160e0608086015260e085019061141f565b60a085015184820360a086015261141f565b9201519060c081840391015261141f565b919060206134795f92604086526040860190615072565b8147106104a9575f8080936001600160a01b038294165af16151166130cd565b50156104a957565b519067ffffffffffffffff821682036104a957565b919082810360c081126104a9576080136104a95761071990608060405161515981610621565b855181526151696020870161511e565b602082015261517b8360408801615036565b60408201529401615036565b9193926001600160a01b039060206151a9606094608087526080870190615072565b968051828701520151604085015216910152565b918351927f000000000000000000000000000000000000000000000000000000000000000084116152cb574784116152bc5760208501516152ad576001600160a01b03946152399461521b60c0956040860151988991168095615391565b60405180968195829463c7c7f5b360e01b8452309160048501615187565b03925af1908115610968575f9161527c575b506020810151820361526d57510361525f57565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b61529e915060c03d60c0116152a6575b615296818361063d565b810190615133565b90505f61524b565b503d61528c565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b908160209103126104a9576107199061511e565b803b6152f9816106ac565b90615307604051928361063d565b8082525f6020830180943c5190516001600160e81b03198116919060038210615341575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f8061532b565b9060418151145f146153885761141b91602082015190606060408401519301515f1a9061555b565b50505f90600290565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926153fd906153cf60648561063d565b5f806001600160a01b0385169286519082855af1906153ec6130cd565b82615453575b508161544c57501590565b61540657505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261050b926154479061544181606481016120a8565b826155d6565b6155d6565b3b15919050565b8051919250811591821561546b575b5050905f6153f2565b61547e9250602080918301019101614fc2565b5f80615462565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109685761050b94615447926154dd925f91615511575b50613a1d565b60405163095ea7b360e01b60208201526001600160a01b03949094166024850152604480850191909152835260648361063d565b61552a915060203d602011610f1c57610f0d818361063d565b5f6154d7565b9192501561554c57815115615543575090565b3b156104a95790565b5080519081156104a957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116155cb576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610968575f516001600160a01b038116156155c357905f90565b505f90600190565b505050505f90600390565b906001600160a01b03614a9692165f806155ee614f87565b9360208151910182855af16148db6130cd56fea2646970667358221220f6f1f7c72655dc88e31bdad99937684e579939feb50e73d58c539d2be65802b264736f6c634300081e0033"}
|
|
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":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SlotValueMismatch","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x610220806040523461032a57610140816159ae8038038091610021828561032e565b83398101031261032a57805161003960208301610351565b9061004660408401610351565b9261005360608201610351565b61005f60808301610365565b9161006c60a08201610365565b60c0820151936001600160a01b038516850361032a5760e0830151936001600160a01b0385169384860361032a576101206100aa6101008301610365565b9101513060805260c09190915260a0526001600160a01b031660e05261010052610120525f5491600883901c60ff1661032a575f938360ff80879616036102f0575b5061016052610180528161014052604051602081019063011a412160e61b82526004815261011b60248261032e565b51915afa3d156102e9573d6001600160401b0381116102d5576040519061014c601f8201601f19166020018361032e565b81523d5f602083013e5b816102c9575b81610293575b506101a052610200526101e0526101c052604051615637908161037782396080518181816112ce0152818161166b01526117c2015260a051818181611a8601526151c3015260c051818181611c560152614b0d015260e0518181816107ff0152818161401f0152818161471f01528181614ed00152614f53015261010051818181611a2501526141fe0152610120518181816104c90152613fcb015261014051818181611c1601528181614d240152614dcc0152610160518181816107a20152818161450d0152614c0b0152610180518181816122840152818161447e0152614c3401526101a051818181611ebb0152614cca01526101c051818181610d8e01526128ef01526101e051818181610dd4015281816118d90152612c43015261020051818181611947015261292a0152f35b90506020815191015190602081106102b8575b506001600160a01b031615155f610162565b5f199060200360031b1b165f6102a6565b8051602014915061015c565b634e487b7160e01b5f52604160045260245ffd5b6060610156565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100ec565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102d557604052565b51906001600160a01b038216820361032a57565b519063ffffffff8216820361032a5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461049a5780630cb84d9a146104955780631186ec331461049057806311eac8551461048b57806315348e44146103f057806317fcb39b1461048657806319c1648c146104815780631b3d55591461047c5780631fab657c1461047757806326b105d21461047257806329cb924d1461046d5780632e378115146104685780632e63e59a146104635780633659cfe61461045e578063437b911614610459578063490e49ef14610454578063493a4f841461044f5780634f1ef2861461044a5780635285e0581461044557806352d1902d14610440578063541f4f141461043b5780635743a7b914610436578063577f51f81461043157806357f6dcb81461042c5780636068d6cb1461042757806361a04d3014610422578063647c576c1461041d578063670fa8ac146104185780636bbbcd2e146103f05780636e400983146104135780636fd5c10e1461040e578063715018a614610409578063738b62e51461040457806373fd4836146103ff5780637659f9e0146103fa578063775c0d03146103f5578063793d2be0146103f05780637aef642c146103eb5780637b939232146103e65780637ef413e1146103e157806382e2c43f146103dc5780638a7860ce146103d75780638b15788e146103d25780638da5cb5b146103cd5780639748cf7c146103c857806397943aa9146103c3578063979f2bc2146103be57806399cc2968146103b95780639a8a0592146103b4578063a1244c67146103af578063a18a096e146103aa578063ac9650d8146103a5578063ad5425c6146103a0578063adb5a6a61461034b578063b370b7f51461039b578063b4c0d7ab14610396578063babb6aac14610391578063bce63c001461038c578063c2bb0c5514610387578063c35c83fc14610382578063ceb4c9871461037d578063d7e1583a14610378578063dda5211314610373578063ddd224f11461036e578063de7eba7814610369578063deff4b2414610364578063e45a46941461035f578063ea86bd461461035a578063ee2a53f814610355578063f2fde38b14610350578063f79f29ed1461034b578063fb4c3749146103465763fc8a584f0361000e57612db6565b612d86565b612739565b612d49565b612d0b565b612c67565b612c24565b612b32565b612afb565b612ad2565b612aac565b612a76565b612978565b61294d565b612913565b6128d0565b6127f1565b6127c2565b612780565b6126c8565b612629565b6124d4565b6124ad565b612493565b6123fd565b612336565b6122a8565b612265565b61223f565b6121ce565b612156565b612038565b61200a565b611f72565b611ee0565b6107c6565b611ea4565b611daa565b611d73565b611cdd565b611c7a565b611c3a565b611bfa565b611bc0565b611adb565b611a6f565b611a49565b611a09565b61198c565b611874565b611812565b6117a8565b611781565b611628565b6115a0565b611582565b6114b5565b6112a7565b6110ae565b610f5b565b610f32565b610d01565b610bd2565b610ab0565b610848565b6107e0565b610783565b61071c565b610518565b6104ad565b5f9103126104a957565b5f80fd5b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036104a957565b60e4359061050b826104ed565b565b359061050b826104ed565b346104a95760203660031901126104a9576001600160a01b0360043561053d816104ed565b165f526108d860205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036104a957565b60a435908160070b82036104a957565b63ffffffff8116036104a957565b610104359061050b8261057e565b610124359061050b8261057e565b610144359061050b8261057e565b610164359061050b8261057e565b359061050b8261057e565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105ff57604052565b6105cf565b6101a0810190811067ffffffffffffffff8211176105ff57604052565b6060810190811067ffffffffffffffff8211176105ff57604052565b90601f8019910116810190811067ffffffffffffffff8211176105ff57604052565b6040519061050b60c08361063d565b6040519061050b6101808361063d565b6040519061050b6101a08361063d565b6040519061050b60808361063d565b6040519061050b60e08361063d565b67ffffffffffffffff81116105ff57601f01601f191660200190565b9291926106d4826106ac565b916106e2604051938461063d565b8294818452818301116104a9578281602093845f960137010152565b9080601f830112156104a957816020610719933591016106c8565b90565b6101003660031901126104a9576107346004356104ed565b61073f6024356104ed565b61074761055e565b5061075360a43561057e565b60c43567ffffffffffffffff81116104a9576107739036906004016106fe565b506332ed1ba560e21b5f5260045ffd5b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040515f8152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126104a95760043561083b816104ed565b90602435610719816104ed565b346104a95761085636610823565b61085e6138fa565b610866613917565b6001600160a01b03811691821515806108ff575b6108f0576108c16001600160a01b03926108a6836001600160a01b03165f526108d860205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a3610018600160c955565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610968575f91610939575b506001600160a01b038083169116141561087a565b61095b915060203d602011610961575b610953818361063d565b810190613928565b5f610924565b503d610949565b612fe2565b67ffffffffffffffff81116105ff5760051b60200190565b9080601f830112156104a957813561099c8161096d565b926109aa604051948561063d565b81845260208085019260051b8201019283116104a957602001905b8282106109d25750505090565b81358152602091820191016109c5565b9080601f830112156104a95781356109f98161096d565b92610a07604051948561063d565b81845260208085019260051b8201019283116104a957602001905b828210610a2f5750505090565b602080918335610a3e816104ed565b815201910190610a22565b929190610a558161096d565b93610a63604051958661063d565b602085838152019160051b81019283116104a957905b828210610a8557505050565b8135815260209182019101610a79565b9080601f830112156104a95781602061071993359101610a49565b60603660031901126104a957600435610ac88161057e565b6024359067ffffffffffffffff82116104a95760c060031983360301126104a957610af161065f565b918060040135835260248101356020840152604481013567ffffffffffffffff81116104a957610b279060043691840101610985565b6040840152610b38606482016105c4565b6060840152610b496084820161050d565b608084015260a48101359067ffffffffffffffff82116104a9576004610b7292369201016109e2565b60a08301526044359167ffffffffffffffff83116104a957610b9b610018933690600401610a95565b91612de6565b9181601f840112156104a95782359167ffffffffffffffff83116104a9576020808501948460051b0101116104a957565b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a9578036039060606003198301126104a957602435610c118161057e565b60443567ffffffffffffffff81116104a957610c31903690600401610ba1565b919093610c3c613917565b60048401359061018219018112156104a957610cc994610cc493610c676004610cbd94880101612fc8565b95610c756080880151613bfd565b506044610c8188613838565b91013560208801519061016089015192610c9961065f565b998a5260208a01526040890152606088015260808701525f60a08701523691610a49565b9083613c13565b613c95565b610018600160c955565b9181601f840112156104a95782359167ffffffffffffffff83116104a957602083818601950101116104a957565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a957610d35903690600401610cd3565b610cbf5460443560ff8216610f23576001610dc89260ff191617610cbf556020610d5e866132a2565b610d693686886106c8565b805190830120604051630829c59f60e01b815260048101949094526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016602485015260448401919091529192839081906064820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610968575f92610ef2575b5003610ee35781610e1f916001600160a01b03930190612fed565b91168015159081610ed8575b50610ec957610e4d610e46835f52610cbe60205260405f2090565b5460ff1690565b610eba5781610e78610e6b610ea9945f52610cbe60205260405f2090565b805460ff19166001179055565b6040513381527f3b0b856314838f509dfe81e9e13c651b0e544b42639c58be2c161b2c3892949d90602090a2613d97565b61001860ff19610cbf5416610cbf55565b630dc1019760e01b5f5260045ffd5b6332f602d160e11b5f5260045ffd5b90503014155f610e2b565b6301b6e1e760e21b5f5260045ffd5b610f1591925060203d602011610f1c575b610f0d818361063d565b810190612fd3565b905f610e04565b503d610f03565b63087f80c160e31b5f5260045ffd5b346104a9575f3660031901126104a9576020604051428152f35b90816101809103126104a95790565b346104a95760403660031901126104a95760043567ffffffffffffffff81116104a957610f8c903690600401610f4c565b602435610f9882613024565b6001600160a01b031691610fae60208201613024565b6001600160a01b031690610fc460408201613024565b6001600160a01b031690610fda60608201613024565b6001600160a01b0316610fef60808301613024565b6001600160a01b031660e083013560c084013560a0850135611014610100870161302e565b93611022610120880161302e565b95611030610140890161302e565b97610160810161103f91613038565b99909a61104a61066e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff16610140850152369061109c926106c8565b61016083015261001891339190613869565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576110df903690600401610f4c565b6110e7613917565b60ff6108cf5460e01c166112985763ffffffff42169061014081019061111f836111108461302e565b63ffffffff9182169116101590565b6112895761012081019263ffffffff6111378561302e565b161061127a5761114f61114a3683612996565b613838565b90611163825f526108d660205260405f2090565b5461126c576111a561119f7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f526108d660205260405f2090565b60019055565b606081013561125f60808301359260a08101359060c081013560e0820135976111dc6111d66101008501359b61302e565b9161302e565b60408401359184359361120b6112066111ff602089013598610160810190613038565b36916106c8565b613dc2565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a3610018600160c955565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346104a95760203660031901126104a9576004356112c4816104ed565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a95761132d6138fa565b6113356127a7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156113695750610018906148ec565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816113cf575b5061139a575f80fd5b610018926113ca7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f941461308e565b614818565b6113e991935060203d602011610f1c57610f0d818361063d565b915f611391565b60206003198201126104a9576004359067ffffffffffffffff82116104a95761141b91600401610ba1565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061147557505050505090565b90919293946020806114a6600193603f198682030187526040838b518051151584520151918185820152019061141f565b97019301930191939290611466565b346104a9576114c3366113f0565b6114cc8161096d565b916114da604051938461063d565b818352601f196114e98361096d565b015f5b81811061155e5750505f5b828110611510576040518061150c8682611443565b0390f35b8061155861152060019387613095565b515f8061152e8589896130a9565b9061153e604051809381936130c0565b0390305af49061154c6130cd565b60208201529015159052565b016114f7565b60209060405161156d816105e3565b5f8152606083820152828288010152016114ec565b346104a9575f3660031901126104a95760206040516301e133808152f35b346104a95760403660031901126104a9576024356004356115bf6138fa565b6115c7613917565b6108d054680100000000000000008110156105ff5780600163ffffffff92016108d055836115f482612ce8565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a4600160c955005b60403660031901126104a957600435611640816104ed565b60243567ffffffffffffffff81116104a9576116609036906004016106fe565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146104a9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036104a9576116ca6138fa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116fe5761001891506148ec565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611760575b5061172e575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036104a95761001891600191614818565b61177a91925060203d602011610f1c57610f0d818361063d565b905f611725565b346104a9575f3660031901126104a95760206001600160a01b036108cd5416604051908152f35b346104a9575f3660031901126104a9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104a95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126104a95761182a6004356104ed565b6118356024356104ed565b6118406044356104ed565b61184861056e565b5061185460c43561057e565b60e43567ffffffffffffffff81116104a9576107739036906004016106fe565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a9576118a59036906004016106fe565b6118ad613dd7565b610cbf5460ff8116610f235760ff1916600117610cbf556040516349b5c56d60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610968575f9161196d575b5042811190811561193a575b5061192b57610ea990613d97565b633ff377d160e11b5f5260045ffd5b611945915042613110565b7f0000000000000000000000000000000000000000000000000000000000000000115f61191d565b611986915060203d602011610f1c57610f0d818361063d565b5f611911565b346104a95760c03660031901126104a9576004356119a9816104ed565b602435604435916064356119bc816104ed565b60843567ffffffffffffffff81116104a9576119dc903690600401610cd3565b9160a4359567ffffffffffffffff87116104a957611a01610018973690600401610cd3565b969095613175565b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060ff6108cf5460e81c166040519015158152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104a957600435611ac18161057e565b90602435611ace816104ed565b90604435610719816104ed565b346104a957611b38611aec36611aa9565b5f549392909190611b1e60ff600887901c1615611b08565b1590565b80968197611bb2575b8115611b92575b5061308e565b84611b2f600160ff195f5416175f55565b611b7b576131e4565b611b3e57005b611b4c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611b8d61010061ff00195f5416175f55565b6131e4565b303b15915081611ba4575b505f611b18565b60ff1660011490505f611b9d565b600160ff8216109150611b11565b346104a9575f3660031901126104a95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a957611c92613dd7565b5f6001600160a01b036033546001600160a01b03198116603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b801515036104a957565b346104a95760203660031901126104a9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611d1d81611cd3565b611d256138fa565b611d2d613917565b15156108cf547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b169116176108cf55604051908152a1600160c955005b346104a95760203660031901126104a9576020611d916004356132a2565b604051908152f35b90602061071992818152019061141f565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611dfe611de66001600160a01b03923690600401610cd3565b611dee6138fa565b611df6613917565b810190612fed565b91168015611e95576004825110611e86575f8083516020850182855af190611e246130cd565b9115611e77577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611e5e61150c9460405191829182611d99565b0390a2611e6b600160c955565b60405191829182611d99565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b346104a9575f3660031901126104a95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104a957600435611ef9816104ed565b602435611f05816104ed565b60443591611f12836104ed565b606435611f1e816104ed565b60843560e43560c43560a435611f33836104ed565b611f3b61058c565b93611f4461059a565b95610144359967ffffffffffffffff8b116104a957611f6a6100189b3690600401610cd3565b9a90996132e1565b6101803660031901126104a957600435611f8b816104ed565b602435611f97816104ed565b60443591611fa4836104ed565b606435611fb0816104ed565b60843560a43560c435611fc16104fe565b90611fca61058c565b92611fd361059a565b94611fdc6105a8565b96610164359a67ffffffffffffffff8c116104a9576120026100189c3690600401610cd3565b9b909a613303565b346104a95760603660031901126104a9576020611d9160043561202c816104ed565b60243560443591613429565b346104a95760603660031901126104a95760043560243567ffffffffffffffff81116104a95761206c903690600401610cd3565b9060443567ffffffffffffffff81116104a95761208d903690600401610cd3565b91909360405160208101906120b6816120a846898887613461565b03601f19810183528261063d565b51902003612147575f936120d18286956120da940190612a50565b9281019061347e565b516121116120ef335b6001600160a01b031690565b916120a860405193849260208401966337bfd2c960e21b885260248501613549565b5190305af461211e6130cd565b901561212657005b60405163b8fe37a760e01b81529081906121439060048301611d99565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346104a95760203660031901126104a9576004356121726138fa565b61217a613917565b61218381612ce8565b6121bb576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a2600160c955005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104a95760443560243560043560643560843560a4356101043560e43560c4356121ff61059a565b936122086105a8565b956122116105b6565b97610184359b67ffffffffffffffff8d116104a9576122376100189d3690600401610cd3565b9c909b61356b565b346104a9575f3660031901126104a95760206001600160a01b0360335416604051908152f35b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a95760e03660031901126104a95760043567ffffffffffffffff81116104a9576122d9903690600401610f4c565b602435604435916064356084359060a43567ffffffffffffffff81116104a957612307903690600401610cd3565b92909160c4359667ffffffffffffffff88116104a95761232e610018983690600401610cd3565b9790966135e3565b346104a95761234436611aa9565b909160ff5f5460081c16156104a95761237a9063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192612389828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526123ae8151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f893610018965190209120906104e3556104e4556123eb614233565b6123f3614242565b614256565b6142ae565b346104a95760203660031901126104a9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561243d81611cd3565b6124456138fa565b61244d613917565b15156108cf547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b169116176108cf55604051908152a1600160c955005b346104a9575f3660031901126104a9576020604051468152f35b346104a9575f3660031901126104a957602063ffffffff6108cf5460c01c16604051908152f35b346104a95760403660031901126104a9576004356024356124f482614534565b6001600160a01b03821691825f526108d760205261252560405f20336001600160a01b03165f5260205260405f2090565b549283156125bb5761256e5f9161253b84614534565b61255833916001600160a01b03165f526108d760205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561258b8361257c83613bfd565b61258585613bfd565b90614306565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106125fc57505050505090565b909192939460208061261a600193603f19868203018752895161141f565b970193019301919392906125ed565b346104a957612637366113f0565b90612641826136d1565b915f5b818110612659576040518061150c86826125ca565b5f806126668385876130a9565b90612676604051809381936130c0565b0390305af46126836130cd565b90156126a957906001916126978287613095565b526126a28186613095565b5001612644565b60448151106104a9578060248060046104a9940151830101910161371a565b6101803660031901126104a9576044356024356004356064356084356101043560e43560c43560a4356126fa8461057e565b61270261059a565b9461270b6105a8565b96610164359a67ffffffffffffffff8c116104a9576127316100189c3690600401610cd3565b9b909a61377d565b346104a95760206127776001600160a01b0361275436610823565b91165f526108d7835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346104a9575f3660031901126104a95760206001600160a01b036108ce5416604051908152f35b604051906127b660208361063d565b5f808352366020840137565b346104a9575f3660031901126104a95761150c6127dd6127a7565b60405191829160208352602083019061141f565b346104a95760c03660031901126104a95760043560243560443560643560843567ffffffffffffffff81116104a95761282e903690600401610cd3565b60a4939193359067ffffffffffffffff82116104a9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946128776128c6933690600401610cd3565b929091612882613917565b61288b8a614534565b6128ba898b898961289d3688886106c8565b926128a9368b8b6106c8565b946001600160a01b03469216613deb565b60405196879687613142565b0390a3600160c955005b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104a9575f3660031901126104a95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346104a95760203660031901126104a9576004355f526108d6602052602060405f2054604051908152f35b346104a9575f3660031901126104a957602060405163ffffffff8152f35b919091610180818403126104a9576129ac61066e565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e0850152610100820135610100850152612a1061012083016105c4565b610120850152612a2361014083016105c4565b61014085015261016082013567ffffffffffffffff81116104a957612a4892016106fe565b610160830152565b906020828203126104a957813567ffffffffffffffff81116104a9576107199201612996565b346104a95760203660031901126104a95760043567ffffffffffffffff81116104a957611d9161114a6020923690600401612996565b346104a9575f3660031901126104a957602060ff6108cf5460e01c166040519015158152f35b346104a9575f3660031901126104a95760206040516ec097ce7bc90715b34b9f10000000008152f35b346104a95760203660031901126104a957612b2b600435612b1b816104ed565b612b236138fa565b6123f3613917565b600160c955005b346104a95760603660031901126104a95760043567ffffffffffffffff81116104a957612b63903690600401612996565b6024359060443590612b73613917565b60ff6108cf5460e01c166112985761014081015163ffffffff16612ba24263ffffffff165b9163ffffffff1690565b101580612c05575b612bf657610cc992612bbb82613838565b60c083015160208401519061016085015192612bd561065f565b958652602086015260408501526060840152608083015260a0820152613d0e565b630c3a9b9d60e41b5f5260045ffd5b50612c136040820151613bfd565b6001600160a01b0316331415612baa565b346104a9575f3660031901126104a95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b6101603660031901126104a9576044356024356004356064356101043560e43560c43560a435608435612c998561057e565b6101243595612ca78761057e565b610144359967ffffffffffffffff8b116104a957612ccc6100189b3690600401610cd3565b9a90996138d5565b634e487b7160e01b5f52603260045260245ffd5b6108d054811015612d06576108d05f52600360205f20910201905f90565b612cd4565b346104a95760203660031901126104a9576004356108d0548110156104a957612d35604091612ce8565b506001815491015482519182526020820152f35b346104a95760203660031901126104a957600435612d66816104ed565b612d6e613dd7565b6001600160a01b038116156104a95761001890613ecb565b346104a95760203660031901126104a9576004355f52610cbe602052602060ff60405f2054166040519015158152f35b346104a95760203660031901126104a957612b2b600435612dd6816104ed565b612dde6138fa565b6123f8613917565b9190612df0613917565b602081019182514603612efc57611b04612e1891836001612e1088612ce8565b50015461393d565b612eed577ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e63ffffffff6060830193612e5e612e58865163ffffffff1690565b876139c1565b612ee08151918551956040810196612eca612ebc612eab8a5197612e868d5163ffffffff1690565b986080870199612e9d8b516001600160a01b031690565b9160a0890197885194613a2a565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612f7a565b0390a461050b600160c955565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612f285750505090565b8251845260209384019390920191600101612f1b565b90602080835192838152019201905f5b818110612f5b5750505090565b82516001600160a01b0316845260209384019390920191600101612f4e565b949695919260a0946001600160a01b03612fa68196612fba958a5260c060208b015260c08a0190612f0b565b921660408801528682036060880152612f3e565b951515608085015216910152565b610719903690612996565b908160209103126104a9575190565b6040513d5f823e3d90fd5b9190916040818403126104a9578035613005816104ed565b92602082013567ffffffffffffffff81116104a95761071992016106fe565b35610719816104ed565b356107198161057e565b903590601e19813603018212156104a9570180359067ffffffffffffffff82116104a9576020019181360383136104a957565b634e487b7160e01b5f52602160045260245ffd5b6003111561308957565b61306b565b156104a957565b8051821015612d065760209160051b010190565b90821015612d065761141b9160051b810190613038565b908092918237015f815290565b3d156130f7573d906130de826106ac565b916130ec604051938461063d565b82523d5f602084013e565b606090565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161311d57565b6130fc565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361316792610719979587526020870152608060408701526080860191613122565b926060818503910152613122565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b0395866131df959a9499166131d18a8c836131bc3688886106c8565b916131c8368b8b6106c8565b9346908d613deb565b604051978897169a87613142565b0390a3565b91909160ff5f5460081c16156104a9576131fd33613ecb565b60ff5f5460081c16156104a9576132319063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6040805192613240828561063d565b600984526020808501926820a1a927a9a996ab1960b91b84526132658151918261063d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104a95760056123f89361050b965190209120906104e3556104e4556123eb614233565b604051602081019182525f6040820152604081526132c160608261063d565b51902090565b9063ffffffff8091169116019063ffffffff821161311d57565b969492909161050b9b9a999896949261330163ffffffff421698896132c7565b985b9593919b999897969492909b613317613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff169661333988613821565b6133609063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b61336861067e565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff166101008701526101208601906133de919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690613401926106c8565b61018082015261341090613f66565b61050b600160c955565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132c160748261063d565b93929160209161347991604087526040870191613122565b930152565b908160209103126104a957604051906020820182811067ffffffffffffffff8211176105ff5760405235815290565b9061018061016061071993805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261352761012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061141f565b613561604092959493956060835260608301906134ad565b9460208201520152565b9c9a9998979695949392919096613580613917565b60ff6108cf5460e81c1661341a57613599908e33613429565b96604051809e6135a882610604565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526133de565b9792909596949391966135f4613917565b60ff6108cf5460e01c166112985761360f6101408a0161302e565b61361e4263ffffffff16612b98565b1015806136b2575b612bf657613410986136a76136ad9761364261114a3685612996565b9961364b61065f565b9a6136563686612996565b8c5260208c01528560408c01528660608c015261367436868b6106c8565b60808c015260a08b015261369f61368b8435613bfd565b9860e06101008601359501359536916106c8565b9636916106c8565b95613deb565b613d0e565b506136c060408a0135613bfd565b6001600160a01b0316331415613626565b906136db8261096d565b6136e8604051918261063d565b82815280926136f9601f199161096d565b01905f5b82811061370957505050565b8060606020809385010152016136fd565b6020818303126104a95780519067ffffffffffffffff82116104a9570181601f820112156104a95780519061374e826106ac565b9261375c604051948561063d565b828452602083830101116104a957815f9260208093018386015e8301015290565b9b99989796949290959391613790613917565b6108cf5460ff8160e81c1661341a5760c01c63ffffffff16966137b288613821565b6137d99063ffffffff60c01b1963ffffffff60c01b6108cf549260c01b169116176108cf55565b6137e161067e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff908116610100880152166101208601526133de565b63ffffffff1663ffffffff811461311d5760010190565b6040516132c18161385560208201946040865260608301906134ad565b46604083015203601f19810183528261063d565b919091613874613917565b60ff6108cf5460e01c166112985761014081015163ffffffff1661389d4263ffffffff16612b98565b1015806138b6575b612bf65761341092612bbb82613838565b506138c46040820151613bfd565b6001600160a01b03163314156138a5565b9a989795929693909491966138f163ffffffff421697886132c7565b97613790613917565b60ff610cbf54161561390857565b631147e02f60e11b5f5260045ffd5b600260c954146104a957600260c955565b908160209103126104a95751610719816104ed565b61071992916040516139b8816120a8602082019460208652805160408401526020810151606084015260a0613982604083015160c06080870152610100860190612f0b565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612f3e565b5190209161438c565b6139cc600291612ce8565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b8080921614613a0e57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9190820180921161311d57565b91959495939092935f9681519081815103613bee5781613aa9575b50505082613a54575b50505050565b63ffffffff613a8b6120e3836120e37ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861444f565b6040805195865233602087015290959190911693a45f808080613a4e565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610968575f91613bcf575b505f5f5b848110613aef57505050613a45565b613af98187613095565b51613b07575b600101613ae0565b90613b1d90613b168388613095565b5190613a1d565b90828211613bc057613b57611b04613b45613b388488613095565b516001600160a01b031690565b613b4f848a613095565b51908a6143dd565b15613aff579a50613b688b86613095565b51613bb6613bae8d613b99613b38613b928c6001600160a01b03165f526108d760205260405f2090565b9289613095565b6001600160a01b03165f5260205260405f2090565b918254613a1d565b905560019a613aff565b632ddaa83160e11b5f5260045ffd5b613be8915060203d602011610f1c57610f0d818361063d565b5f613adc565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613c0f81614534565b1690565b91611b0491613c8f93604081519101519160405191613c3183610621565b82526139b8613c4d602084019246845260408501958652612ce8565b505493604051928391613c74602084019660208852516060604086015260a08501906134ad565b9151606084015251608083015203601f19810183528261063d565b612eed57565b805163ffffffff6101208201511663ffffffff4291161061127a576020820151906002613ccb835f526108d660205260405f2090565b5414613cff5761050b926002613cec6001945f526108d660205260405f2090565b55613cfa60025f84846145e1565b6146e3565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff4291161061127a576020830151926001613d45855f526108d660205260405f2090565b5403613d90576001935b6002613d64825f526108d660205260405f2090565b5414613cff5761050b945f946002613d88613cfa945f526108d660205260405f2090565b5584846145e1565b5f93613d4f565b5f8091602081519101305af4613dab6130cd565b5015613db357565b6318cecad560e01b5f5260045ffd5b80519081613dd05750505f90565b6020012090565b6001600160a01b036033541633036104a957565b939260429361050b979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613e5260e08261063d565b519020906104e354906104e454906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613eaa60a08261063d565b519020906040519161190160f01b835260028301526022820152209061494d565b6001600160a01b0380603354921691826001600160a01b0319821617603355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b9692610140989563ffffffff9586949285936107199e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061141f565b613f708151614534565b606081019081511561422557610120810190613f9c613f93835163ffffffff1690565b63ffffffff1690565b8042109081156141ec575b506141dd57610140810192613fc0845163ffffffff1690565b63ffffffff613ff1817f00000000000000000000000000000000000000000000000000000000000000001642613a1d565b9116116141ce5761016082015163ffffffff1691828061418b575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480614182575b15614132576080830151340361412357833b156104a9575f60049460405195868092630d0e30db60e41b825234905af1908115610968577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461410492614109575b505b5191519260808101519060a081015160c0820151976140e36140d86101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613f11565b0390a4565b806141175f61411d9361063d565b8061049f565b5f6140aa565b636452a35d60e01b5f5260045ffd5b925034614123576141048361417d61416e6120e37f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bfd565b60808601519030903390614a39565b6140ac565b50341515614048565b6301e1338010156141b6575b60e0810151156141a7575f61400c565b63495d907f60e01b5f5260045ffd5b916141c89063ffffffff4216906132c7565b91614197565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b6141f7915042613110565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613fa7565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156104a957565b60ff5f5460081c16156104a957600160c955565b6001600160a01b0316801561429f57806001600160a01b03196108cd5416176108cd557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b031680156142f757806001600160a01b03196108ce5416176108ce557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f511481161561436d575b604091909152156143525750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516614383573d15833b15151616614344565b503d5f823e3d90fd5b929091905f915b84518310156143d5576143a68386613095565b5190818110156143c4575f52602052600160405f205b920191614393565b905f52602052600160405f206143bc565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161441981606481016120a8565b519082855af1903d5f519083614430575b50505090565b9192509061444557503b15155b5f808061442a565b600191501461443d565b906001600160a01b031690815f526108d86020526001600160a01b0360405f2054166144a36001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016151590565b80614502575b156144c657506108ce5461050b92506001600160a01b0316614bff565b6001600160a01b03169182156144f35761050b926144ed6108ce546001600160a01b031690565b91614ac6565b63d623472560e01b5f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683146144a9565b60a01c61453d57565b6379ec0ed760e11b5f5260045ffd5b6145558261307f565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906145da8261307f565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161410460808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61464561012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956146a961467161016060208b01519a0151613dc2565b9960608c01519b60406146876080830151613dc2565b91015190602061469561068e565b9e8f528e015260408d015260608c0161454c565b6040519c8d9c8d614558565b9061071994936080936001600160a01b0380931684526020840152166040820152816060820152019061141f565b9060806146f1910151613bfd565b9160806040830151926147076060820151613bfd565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146147f85750156147e4575b61476291506001600160a01b038516614eab565b01519081511515806147da575b6147795750505050565b6001600160a01b0316803b156104a9576147af935f809460405196879586948593633a5be8cb60e01b85523391600486016146b5565b03925af18015610968576147c6575b808080613a4e565b806141175f6147d49361063d565b5f6147be565b50803b151561476f565b6147f19130903390614a39565b5f8461474e565b9061480d57614808923390614a39565b614762565b614808925087614306565b91614822836148ec565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916148e4575b50614865575050565b6148e1915f806040519361487a60608661063d565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46148db6130cd565b91615530565b50565b90505f61485c565b803b156104a9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161495a8284615360565b93909260058510156130895761498394159384614a23575b508315614998575b50505015151590565b61498957565b63938a182160e01b5f5260045ffd5b5f9350906120a86149d08594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061141f565b51915afa6149dc6130cd565b81614a15575b816149f1575b505f808061497a565b9050614a0e630b135d3f60e11b9160208082518301019101612fd3565b145f6149e8565b9050602081511015906149e2565b6001600160a01b0384811691161493505f614972565b5f6001600160a01b038192614a969682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614a7d60848761063d565b1692614a87614f87565b94519082855af16148db6130cd565b8051908115918215614aac575b5050156104a957565b614abf9250602080918301019101614fc2565b5f80614aa3565b92919091614ad2614fd7565b50614adb61501e565b50614ae46127a7565b614aec6127a7565b90614af56127a7565b926001600160a01b03614b0661069d565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614b6f85600483016150df565b03816001600160a01b0385165afa928315610968575f93614bce575b5082513410614bbf5761050b93614ba3845134613110565b80614baf575b506151bd565b614bb990336150f6565b5f614ba9565b63557a94ff60e11b5f5260045ffd5b614bf191935060403d604011614bf8575b614be9818361063d565b81019061505e565b915f614b8b565b503d614bdf565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614c60838584615485565b6040516332dd704760e21b815291602083600481885afa928315610968575f93614e81575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610968575f93614e60575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614cf757505050505050565b83811115614e5a57835b8515614db657863b156104a957604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561096857614d9c93614da2575b50613110565b80614ceb565b806141175f614db09361063d565b5f614d96565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561096857614d9c93614e2c5750613110565b614e4c9060203d8111614e53575b614e44818361063d565b8101906152da565b505f614d96565b503d614e3a565b80614d01565b614e7a91935060203d602011610f1c57610f0d818361063d565b915f614cc5565b6001600160a01b03919350614ea49060203d60201161096157610953818361063d565b9290614c85565b906001600160a01b038216803b158015614f78575b15614f4457506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156104a957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109685761050b93614f30575b506150f6565b806141175f614f3e9361063d565b5f614f2a565b61050b92506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614306565b50614f82816152ee565b614ec0565b60405190614f9660408361063d565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b908160209103126104a9575161071981611cd3565b6040519060e0820182811067ffffffffffffffff8211176105ff57604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b6040519061502b826105e3565b5f6020838281520152565b91908260409103126104a95760405161504e816105e3565b6020808294805184520151910152565b906040828203126104a95761071991615036565b6107199163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c06150ce6150bc608085015160e0608086015260e085019061141f565b60a085015184820360a086015261141f565b9201519060c081840391015261141f565b919060206134795f92604086526040860190615072565b8147106104a9575f8080936001600160a01b038294165af16151166130cd565b50156104a957565b519067ffffffffffffffff821682036104a957565b919082810360c081126104a9576080136104a95761071990608060405161515981610621565b855181526151696020870161511e565b602082015261517b8360408801615036565b60408201529401615036565b9193926001600160a01b039060206151a9606094608087526080870190615072565b968051828701520151604085015216910152565b918351927f000000000000000000000000000000000000000000000000000000000000000084116152cb574784116152bc5760208501516152ad576001600160a01b03946152399461521b60c0956040860151988991168095615391565b60405180968195829463c7c7f5b360e01b8452309160048501615187565b03925af1908115610968575f9161527c575b506020810151820361526d57510361525f57565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b61529e915060c03d60c0116152a6575b615296818361063d565b810190615133565b90505f61524b565b503d61528c565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b908160209103126104a9576107199061511e565b803b6152f9816106ac565b90615307604051928361063d565b8082525f6020830180943c5190516001600160e81b03198116919060038210615341575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f8061532b565b9060418151145f146153885761141b91602082015190606060408401519301515f1a9061555b565b50505f90600290565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926153fd906153cf60648561063d565b5f806001600160a01b0385169286519082855af1906153ec6130cd565b82615453575b508161544c57501590565b61540657505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261050b926154479061544181606481016120a8565b826155d6565b6155d6565b3b15919050565b8051919250811591821561546b575b5050905f6153f2565b61547e9250602080918301019101614fc2565b5f80615462565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109685761050b94615447926154dd925f91615511575b50613a1d565b60405163095ea7b360e01b60208201526001600160a01b03949094166024850152604480850191909152835260648361063d565b61552a915060203d602011610f1c57610f0d818361063d565b5f6154d7565b9192501561554c57815115615543575090565b3b156104a95790565b5080519081156104a957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116155cb576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610968575f516001600160a01b038116156155c357905f90565b505f90600190565b505050505f90600390565b906001600160a01b03614a9692165f806155ee614f87565b9360208151910182855af16148db6130cd56fea2646970667358221220dc9dca5f777f528e69c0e194faf561a0189d1a64a5eb70610beeb78ae390990864736f6c634300081e0033"}
|