@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.
Files changed (64) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  3. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  4. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  5. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  6. package/contracts/test/MockCCTP.sol +10 -0
  7. package/dist/broadcast/deployed-addresses.json +172 -102
  8. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  9. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  10. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  11. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  12. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  13. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  14. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  15. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  16. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  17. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  18. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  19. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  20. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  21. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  22. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  23. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  24. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  25. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  26. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  27. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  28. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  29. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  30. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  31. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  32. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  33. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  34. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  35. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  36. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  37. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  38. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  39. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  40. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  41. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  42. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  43. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  44. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  46. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  47. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  48. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  49. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  50. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  51. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  52. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  53. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -1
  54. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  55. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  56. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  58. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  59. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  60. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  61. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  62. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  63. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"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"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"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":"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":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"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":"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":"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":"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":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"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":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"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":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","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":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"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":"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":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"internalType":"address"}],"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":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","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":"ClaimedMerkleLeaf","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":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","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":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c080604052346102b05760a081615664803803809161002082856102b4565b8339810103126102b05780516001600160a01b038116908190036102b05761004a602083016102d7565b90610057604084016102d7565b6060840151936001600160a01b03851685036102b05760800151926001600160a01b038416928385036102b057306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102b0575f938360ff8087961603610276575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102b4565b51915afa3d1561026f573d6001600160401b03811161025b5760405190610118601f8201601f1916602001836102b4565b81523d5f602083013e5b8161024f575b81610219575b506101a05260405161537b90816102e9823960805181818161110101528181611607015261175e015260a05181611938015260c05181611b08015260e05181818161088a0152818161388801528181613f6b015281816143b10152818161495d0152818161508201526151050152610100518181816118d7015261414a0152610120518181816104ae0152613f17015261014051818181611ac801528181614ed60152614f7e01526101605181818161082d0152818161474b0152614dbd015261018051818181612118015281816144f80152614de601526101a051818181611d3f0152614e7c0152f35b905060208151910151906020811061023e575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61022c565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761025b57604052565b519063ffffffff821682036102b05756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461047f5780630c5d5f731461047a5780630cb84d9a146104755780630eaac9f0146104705780631186ec331461046b57806311eac8551461046657806315348e44146103f357806317fcb39b1461046157806319c1648c1461045c5780631b3d5559146104575780631fab657c1461045257806329cb924d1461044d5780632e378115146104485780632e63e59a146104435780633659cfe61461043e578063431023b814610439578063437b911614610434578063490e49ef1461042f578063493a4f841461042a5780634f1ef286146104255780635285e0581461042057806352d1902d1461041b578063541f4f1414610416578063577f51f81461041157806357f6dcb81461040c5780636068d6cb1461040757806361a04d3014610402578063647c576c146103fd578063670fa8ac146103f85780636bbbcd2e146103f35780636e400983146103ee5780636fd5c10e146103e9578063738b62e5146103e45780637659f9e0146103df578063766e0703146103da578063775c0d03146103d55780637aef642c146103d05780637b939232146103cb5780637ef413e1146103c657806382e2c43f146103c15780638a7860ce146103bc5780638b15788e146103b7578063927ede2d146103b25780639748cf7c146103ad57806397943aa9146103a8578063979f2bc2146103a357806399cc29681461039e5780639a8a059214610399578063a1244c6714610394578063a18a096e1461038f578063ac9650d81461038a578063ad5425c614610385578063adb5a6a614610335578063b27a430014610380578063b370b7f51461037b578063b4c0d7ab14610376578063babb6aac14610371578063bf10268d1461036c578063c35c83fc14610367578063ceb4c98714610362578063d7e1583a1461035d578063dda5211314610358578063ddd224f114610353578063de7eba781461034e578063deff4b2414610349578063e322921114610344578063ea86bd461461033f578063ee2a53f81461033a578063f79f29ed14610335578063fbbba9ac146103305763fc8a584f0361000e57612c82565b612bfe565b6125bb565b612bc0565b612b1c565b612af3565b612a01565b6129ca565b6129a1565b61297b565b612945565b612847565b61281c565b612798565b6126b9565b61268a565b612648565b612602565b61254a565b6124ab565b612356565b61232f565b612315565b61227f565b6121ca565b61213c565b6120f9565b6120cb565b61205a565b611fe2565b611ec4565b611e8e565b611df6565b611d64565b611d28565b611d04565b611bdd565b611b36565b611aec565b611aac565b610851565b611a72565b61198d565b611921565b6118fb565b6118bb565b61183e565b6117ae565b611744565b61171d565b6115c4565b61153c565b61151e565b611451565b611233565b6110da565b610ee1565b610d8e565b610d65565b610c5d565b610b3b565b6108d3565b61086b565b61080e565b6107a7565b6105da565b610543565b6104fd565b610492565b5f91031261048e57565b5f80fd5b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361048e57565b60e435906104f0826104d2565b565b35906104f0826104d2565b3461048e57602036600319011261048e576001600160a01b03600435610522816104d2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435610568816104d2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361048e57565b61010435906104f082610589565b61012435906104f082610589565b61014435906104f082610589565b61016435906104f082610589565b35906104f082610589565b3461048e57602036600319011261048e5763ffffffff6004356105fc81610589565b610604613795565b61060c61384d565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361048e57565b60a435908160070b820361048e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761069957604052565b610669565b6101a0810190811067ffffffffffffffff82111761069957604052565b6060810190811067ffffffffffffffff82111761069957604052565b90601f8019910116810190811067ffffffffffffffff82111761069957604052565b604051906104f060c0836106d7565b604051906104f0610180836106d7565b604051906104f06101a0836106d7565b604051906104f06080836106d7565b67ffffffffffffffff811161069957601f01601f191660200190565b92919261075f82610737565b9161076d60405193846106d7565b82948184528183011161048e578281602093845f960137010152565b9080601f8301121561048e578160206107a493359101610753565b90565b61010036600319011261048e576107bf6004356104d2565b6107ca6024356104d2565b6107d2610649565b506107de60a435610589565b60c43567ffffffffffffffff811161048e576107fe903690600401610789565b506332ed1ba560e21b5f5260045ffd5b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e5760206040515f8152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261048e576004356108c6816104d2565b906024356107a4816104d2565b3461048e576108e1366108ae565b6108e9613795565b6108f161384d565b6001600160a01b038116918215158061098a575b61097b5761094c6001600160a01b0392610931836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109f3575f916109c4575b506001600160a01b0380831691161415610905565b6109e6915060203d6020116109ec575b6109de81836106d7565b81019061385e565b5f6109af565b503d6109d4565b613873565b67ffffffffffffffff81116106995760051b60200190565b9080601f8301121561048e578135610a27816109f8565b92610a3560405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610a5d5750505090565b8135815260209182019101610a50565b9080601f8301121561048e578135610a84816109f8565b92610a9260405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610aba5750505090565b602080918335610ac9816104d2565b815201910190610aad565b929190610ae0816109f8565b93610aee60405195866106d7565b602085838152019160051b810192831161048e57905b828210610b1057505050565b8135815260209182019101610b04565b9080601f8301121561048e578160206107a493359101610ad4565b606036600319011261048e57600435610b5381610589565b6024359067ffffffffffffffff821161048e5760c0600319833603011261048e57610b7c6106f9565b918060040135835260248101356020840152604481013567ffffffffffffffff811161048e57610bb29060043691840101610a10565b6040840152610bc3606482016105cf565b6060840152610bd4608482016104f2565b608084015260a48101359067ffffffffffffffff821161048e576004610bfd9236920101610a6d565b60a08301526044359167ffffffffffffffff831161048e57610c26610018933690600401610b20565b91612cb2565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020808501948460051b01011161048e57565b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e5780360390606060031983011261048e57602435610c9c81610589565b60443567ffffffffffffffff811161048e57610cbc903690600401610c2c565b919093610cc761384d565b600484013590610182190181121561048e57610d5b94610d5693610cf26004610d4f94880101612ea0565b95610d08610d036080890151613bc1565b61387e565b6044610d13886136d3565b91013560208801519061016089015192610d2b6106f9565b998a5260208a01526040890152606088015260808701525f60a08701523691610ad4565b9083613bd7565b613c59565b6100186001606555565b3461048e575f36600319011261048e576020604051428152f35b908161018091031261048e5790565b3461048e57604036600319011261048e5760043567ffffffffffffffff811161048e57610dbf903690600401610d7f565b602435610dcb82612eab565b6001600160a01b031691610de160208201612eab565b6001600160a01b031690610df760408201612eab565b6001600160a01b031690610e0d60608201612eab565b6001600160a01b0316610e2260808301612eab565b6001600160a01b031660e083013560c084013560a0850135610e476101008701612eb5565b93610e556101208801612eb5565b95610e636101408901612eb5565b976101608101610e7291612ebf565b99909a610e7d610708565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecf92610753565b61016083015261001891339190613704565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57610f12903690600401610d7f565b610f1a61384d565b60ff61086b5460e01c166110cb5763ffffffff421690610140810190610f5283610f4384612eb5565b63ffffffff9182169116101590565b6110bc5761012081019263ffffffff610f6a85612eb5565b16106110ad57610f82610f7d3683612865565b6136d3565b90610f96825f5261087260205260405f2090565b5461109f57610fd8610fd27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561109260808301359260a08101359060c081013560e08201359761100f6110096101008501359b612eb5565b91612eb5565b60408401359184359361103e611039611032602089013598610160810190612ebf565b3691610753565b613d5b565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461048e57602036600319011261048e576004356110f7816104d2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e57611160613795565b61116861266f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561119c575061001890614b27565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611202575b506111cd575f80fd5b610018926111fd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f15565b614a56565b61122591935060203d60201161122c575b61121d81836106d7565b8101906139d2565b915f6111c4565b503d611213565b3461048e57608036600319011261048e5760043561125081610589565b6024359061125d826104d2565b604435611269816104d2565b60643591611276836104d2565b60ff5f5460081c161561048e576112be90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112ce81846106d7565b600983526020808401916820a1a927a9a996ab1960b91b83526112f3815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e57610018956005611342936113479651902091209061047f556104805561133561417f565b61133d61418e565b6141a2565b6141fa565b77ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261048e576004359067ffffffffffffffff821161048e576113b791600401610c2c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061141157505050505090565b9091929394602080611442600193603f198682030187526040838b51805115158452015191818582015201906113bb565b97019301930191939290611402565b3461048e5761145f3661138c565b611468816109f8565b9161147660405193846106d7565b818352601f19611485836109f8565b015f5b8181106114fa5750505f5b8281106114ac57604051806114a886826113df565b0390f35b806114f46114bc60019387612f1c565b515f806114ca858989612f30565b906114da60405180938193612f47565b0390305af4906114e8612f54565b60208201529015159052565b01611493565b6020906040516115098161067d565b5f815260608382015282828801015201611488565b3461048e575f36600319011261048e5760206040516301e133808152f35b3461048e57604036600319011261048e5760243560043561155b613795565b61156361384d565b61086c54680100000000000000008110156106995780600163ffffffff920161086c558361159082612b9d565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261048e576004356115dc816104d2565b60243567ffffffffffffffff811161048e576115fc903690600401610789565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e57611666613795565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561169a576100189150614b27565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f91816116fc575b506116ca575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361048e5761001891600191614a56565b61171691925060203d60201161122c5761121d81836106d7565b905f6116c1565b3461048e575f36600319011261048e5760206001600160a01b036108695416604051908152f35b3461048e575f36600319011261048e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361048e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261048e576117c66004356104d2565b6117d16024356104d2565b6117dc6044356104d2565b6117e4610659565b506117f060c435610589565b60e43567ffffffffffffffff811161048e576107fe903690600401610789565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020838186019501011161048e57565b3461048e5760c036600319011261048e5760043561185b816104d2565b6024356044359160643561186e816104d2565b60843567ffffffffffffffff811161048e5761188e903690600401611810565b9160a4359567ffffffffffffffff871161048e576118b3610018973690600401611810565b969095612fd6565b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060ff61086b5460e81c166040519015158152f35b3461048e575f36600319011261048e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261048e5760043561197381610589565b90602435611980816104d2565b906044356107a4816104d2565b3461048e576119ea61199e3661195b565b5f5493929091906119d060ff600887901c16156119ba565b1590565b80968197611a64575b8115611a44575b50612f15565b846119e1600160ff195f5416175f55565b611a2d57613045565b6119f057005b6119fe61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611a3f61010061ff00195f5416175f55565b613045565b303b15915081611a56575b505f6119ca565b60ff1660011490505f611a4f565b600160ff82161091506119c3565b3461048e575f36600319011261048e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361048e57565b3461048e57602036600319011261048e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611b7681611b2c565b611b7e613795565b611b8661384d565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107a49281815201906113bb565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611c0e903690600401611810565b611c16613795565b611c1e61384d565b810160408282031261048e57813591611c36836104d2565b60208101359167ffffffffffffffff831161048e576001600160a01b0392611c5e9201610789565b91168015611cf5576004825110611ce6575f8083516020850182855af190611c84612f54565b9115611cd7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611cbe6114a89460405191829182611bcc565b0390a2611ccb6001606555565b60405191829182611bcc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461048e575f36600319011261048e57602063ffffffff610c5a5416604051908152f35b3461048e575f36600319011261048e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261048e57600435611d7d816104d2565b602435611d89816104d2565b60443591611d96836104d2565b606435611da2816104d2565b60843560e43560c43560a435611db7836104d2565b611dbf610597565b93611dc86105a5565b95610144359967ffffffffffffffff8b1161048e57611dee6100189b3690600401611810565b9a9099613176565b61018036600319011261048e57600435611e0f816104d2565b602435611e1b816104d2565b60443591611e28836104d2565b606435611e34816104d2565b60843560a43560c435611e456104e3565b90611e4e610597565b92611e576105a5565b94611e606105b3565b96610164359a67ffffffffffffffff8c1161048e57611e866100189c3690600401611810565b9b909a613198565b3461048e57606036600319011261048e576020611ebc600435611eb0816104d2565b602435604435916132be565b604051908152f35b3461048e57606036600319011261048e5760043560243567ffffffffffffffff811161048e57611ef8903690600401611810565b9060443567ffffffffffffffff811161048e57611f19903690600401611810565b9190936040516020810190611f4281611f34468988876132fc565b03601f1981018352826106d7565b51902003611fd3575f93611f5d828695611f6694019061291f565b92810190613319565b51611f9d611f7b335b6001600160a01b031690565b91611f3460405193849260208401966337bfd2c960e21b8852602485016133e4565b5190305af4611faa612f54565b9015611fb257005b60405163b8fe37a760e01b8152908190611fcf9060048301611bcc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461048e57602036600319011261048e57600435611ffe613795565b61200661384d565b61200f81612b9d565b612047576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261048e5760443560243560043560643560843560a4356101043560e43560c43561208b6105a5565b936120946105b3565b9561209d6105c1565b97610184359b67ffffffffffffffff8d1161048e576120c36100189d3690600401611810565b9c909b613406565b3461048e575f36600319011261048e5760206040517342000000000000000000000000000000000000078152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e5760e036600319011261048e5760043567ffffffffffffffff811161048e5761216d903690600401610d7f565b602435604435916064356084359060a43567ffffffffffffffff811161048e5761219b903690600401611810565b92909160c4359667ffffffffffffffff881161048e576121c2610018983690600401611810565b97909661347e565b3461048e576121d83661195b565b909160ff5f5460081c161561048e5761220e9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261221d82856106d7565b600984526020808501926820a1a927a9a996ab1960b91b8452612242815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936100189651902091209061047f556104805561133561417f565b3461048e57602036600319011261048e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122bf81611b2c565b6122c7613795565b6122cf61384d565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461048e575f36600319011261048e576020604051468152f35b3461048e575f36600319011261048e57602063ffffffff61086b5460c01c16604051908152f35b3461048e57604036600319011261048e5760043560243561237682614772565b6001600160a01b03821691825f526108736020526123a760405f20336001600160a01b03165f5260205260405f2090565b5492831561243d576123f05f916123bd84614772565b6123da33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561240d836123fe83613bc1565b61240785613bc1565b90614252565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061247e57505050505090565b909192939460208061249c600193603f1986820301875289516113bb565b9701930193019193929061246f565b3461048e576124b93661138c565b906124c38261356c565b915f5b8181106124db57604051806114a8868261244c565b5f806124e8838587612f30565b906124f860405180938193612f47565b0390305af4612505612f54565b901561252b57906001916125198287612f1c565b526125248186612f1c565b50016124c6565b604481511061048e5780602480600461048e94015183010191016135b5565b61018036600319011261048e576044356024356004356064356084356101043560e43560c43560a43561257c84610589565b6125846105a5565b9461258d6105b3565b96610164359a67ffffffffffffffff8c1161048e576125b36100189c3690600401611810565b9b909a613618565b3461048e5760206125f96001600160a01b036125d6366108ae565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435612627816104d2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461048e575f36600319011261048e5760206001600160a01b0361086a5416604051908152f35b6040519061267e6020836106d7565b5f808352366020840137565b3461048e575f36600319011261048e576114a86126a561266f565b6040519182916020835260208301906113bb565b3461048e5760c036600319011261048e5760043560243560443560643560843567ffffffffffffffff811161048e576126f6903690600401611810565b60a4939193359067ffffffffffffffff821161048e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461273f61278e933690600401611810565b92909161274a61384d565b6127538a614772565b612782898b8989612765368888610753565b92612771368b8b610753565b946001600160a01b03469216613d70565b60405196879687612fa3565b0390a36001606555005b3461048e576001600160a01b03806127af366108ae565b92906127b9613795565b6127c161384d565b1691825f52610c5d6020526127ef8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461048e57602036600319011261048e576004355f52610872602052602060405f2054604051908152f35b3461048e575f36600319011261048e57602060405163ffffffff8152f35b9190916101808184031261048e5761287b610708565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526128df61012083016105cf565b6101208501526128f261014083016105cf565b61014085015261016082013567ffffffffffffffff811161048e576129179201610789565b610160830152565b9060208282031261048e57813567ffffffffffffffff811161048e576107a49201612865565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611ebc610f7d6020923690600401612865565b3461048e575f36600319011261048e57602060ff61086b5460e01c166040519015158152f35b3461048e575f36600319011261048e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461048e57602036600319011261048e576129fa6004356129ea816104d2565b6129f2613795565b61133d61384d565b6001606555005b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e57612a32903690600401612865565b6024359060443590612a4261384d565b60ff61086b5460e01c166110cb5761014081015163ffffffff16612a714263ffffffff165b9163ffffffff1690565b101580612ad4575b612ac557610d5b92612a8a826136d3565b60c083015160208401519061016085015192612aa46106f9565b958652602086015260408501526060840152608083015260a0820152613cd2565b630c3a9b9d60e41b5f5260045ffd5b50612ae26040820151613bc1565b6001600160a01b0316331415612a79565b3461048e575f36600319011261048e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261048e576044356024356004356064356101043560e43560c43560a435608435612b4e85610589565b6101243595612b5c87610589565b610144359967ffffffffffffffff8b1161048e57612b816100189b3690600401611810565b9a9099613770565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612bbb5761086c5f52600360205f20910201905f90565b612b89565b3461048e57602036600319011261048e5760043561086c5481101561048e57612bea604091612b9d565b506001815491015482519182526020820152f35b3461048e576001600160a01b0380612c15366108ae565b9290612c1f613795565b612c2761384d565b1691825f52610c5c602052612c558160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461048e57602036600319011261048e576129fa600435612ca2816104d2565b612caa613795565b61134261384d565b9190612cbc61384d565b60808101612cd4610d0382516001600160a01b031690565b602082019283514603612dd4576119b6612cfc91846001612cf489612b9d565b5001546138f2565b612dc55763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612db86060850195612d46612d40885163ffffffff1690565b89613976565b8051958051612da2612d94612d83604085019a8c612d6a8d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946139ee565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e52565b0390a46104f06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e005750505090565b8251845260209384019390920191600101612df3565b90602080835192838152019201905f5b818110612e335750505090565b82516001600160a01b0316845260209384019390920191600101612e26565b949695919260a0946001600160a01b03612e7e8196612e92958a5260c060208b015260c08a0190612de3565b921660408801528682036060880152612e16565b951515608085015216910152565b6107a4903690612865565b356107a4816104d2565b356107a481610589565b903590601e198136030182121561048e570180359067ffffffffffffffff821161048e5760200191813603831361048e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f1057565b612ef2565b1561048e57565b8051821015612bbb5760209160051b010190565b90821015612bbb576113b79160051b810190612ebf565b908092918237015f815290565b3d15612f7e573d90612f6582610737565b91612f7360405193846106d7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612fc8926107a4979587526020870152608060408701526080860191612f83565b926060818503910152612f83565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586613040959a9499166130328a8c8361301d368888610753565b91613029368b8b610753565b9346908d613d70565b604051978897169a87612fa3565b0390a3565b91909160ff5f5460081c161561048e5761309090624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261309f82856106d7565b600984526020808501926820a1a927a9a996ab1960b91b84526130c4815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936131019651902091209061047f556104805561133561417f565b6104f077deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019610c5a541617610c5a55565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff821161317157565b613143565b96949290916104f09b9a999896949261319663ffffffff42169889613157565b985b9593919b999897969492909b6131ac61384d565b61086b5460ff8160e81c166132af5760c01c63ffffffff16966131ce886136bc565b6131f59063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6131fd610718565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190613273919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061329692610753565b6101808201526132a590613eb2565b6104f06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132f66074826106d7565b51902090565b93929160209161331491604087526040870191612f83565b930152565b9081602091031261048e57604051906020820182811067ffffffffffffffff8211176106995760405235815290565b906101806101606107a493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526133c261012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113bb565b6133fc60409295949395606083526060830190613348565b9460208201520152565b9c9a999897969594939291909661341b61384d565b60ff61086b5460e81c166132af57613434908e336132be565b96604051809e6134438261069e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152613273565b97929095969493919661348f61384d565b60ff61086b5460e01c166110cb576134aa6101408a01612eb5565b6134b94263ffffffff16612a67565b10158061354d575b612ac5576132a598613542613548976134dd610f7d3685612865565b996134e66106f9565b9a6134f13686612865565b8c5260208c01528560408c01528660608c015261350f36868b610753565b60808c015260a08b015261353a6135268435613bc1565b9860e0610100860135950135953691610753565b963691610753565b95613d70565b613cd2565b5061355b60408a0135613bc1565b6001600160a01b03163314156134c1565b90613576826109f8565b61358360405191826106d7565b8281528092613594601f19916109f8565b01905f5b8281106135a457505050565b806060602080938501015201613598565b60208183031261048e5780519067ffffffffffffffff821161048e570181601f8201121561048e578051906135e982610737565b926135f760405194856106d7565b8284526020838301011161048e57815f9260208093018386015e8301015290565b9b9998979694929095939161362b61384d565b61086b5460ff8160e81c166132af5760c01c63ffffffff169661364d886136bc565b6136749063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61367c610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152613273565b63ffffffff1663ffffffff81146131715760010190565b6040516132f6816136f06020820194604086526060830190613348565b46604083015203601f1981018352826106d7565b91909161370f61384d565b60ff61086b5460e01c166110cb5761014081015163ffffffff166137384263ffffffff16612a67565b101580613751575b612ac5576132a592612a8a826136d3565b5061375f6040820151613bc1565b6001600160a01b0316331415613740565b9a9897959296939094919661378c63ffffffff42169788613157565b9761362b61384d565b734200000000000000000000000000000000000007330361383e57604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa9081156109f3575f9161381f575b506001600160a01b03613807611f6f610869546001600160a01b031690565b91160361381057565b6336a816d960e01b5f5260045ffd5b613838915060203d6020116109ec576109de81836106d7565b5f6137e8565b63253a6fc960e11b5f5260045ffd5b60026065541461048e576002606555565b9081602091031261048e57516107a4816104d2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138b5575b50565b476138bd5750565b4790803b1561048e575f90600460405180948193630d0e30db60e41b83525af180156109f357156138b2575f6104f0916106d7565b6107a4929160405161396d81611f34602082019460208652805160408401526020810151606084015260a0613937604083015160c06080870152610100860190612de3565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e16565b519020916142d8565b613981600291612b9d565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146139c357825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261048e575190565b9190820180921161317157565b91959495939092935f9681519081815103613bb25781613a6d575b50505082613a18575b50505050565b63ffffffff613a4f611f6f83611f6f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861439b565b6040805195865233602087015290959190911693a45f808080613a12565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109f3575f91613b93575b505f5f5b848110613ab357505050613a09565b613abd8187612f1c565b51613acb575b600101613aa4565b90613ae190613ada8388612f1c565b51906139e1565b90828211613b8457613b1b6119b6613b09613afc8488612f1c565b516001600160a01b031690565b613b13848a612f1c565b51908a614329565b15613ac3579a50613b2c8b86612f1c565b51613b7a613b728d613b5d613afc613b568c6001600160a01b03165f5261087360205260405f2090565b9289612f1c565b6001600160a01b03165f5260205260405f2090565b9182546139e1565b905560019a613ac3565b632ddaa83160e11b5f5260045ffd5b613bac915060203d60201161122c5761121d81836106d7565b5f613aa0565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613bd381614772565b1690565b916119b691613c5393604081519101519160405191613bf5836106bb565b825261396d613c11602084019246845260408501958652612b9d565b505493604051928391613c38602084019660208852516060604086015260a0850190613348565b9151606084015251608083015203601f1981018352826106d7565b612dc557565b805163ffffffff6101208201511663ffffffff429116106110ad576020820151906002613c8f835f5261087260205260405f2090565b5414613cc3576104f0926002613cb06001945f5261087260205260405f2090565b55613cbe60025f848461481f565b614921565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110ad576020830151926001613d09855f5261087260205260405f2090565b5403613d54576001935b6002613d28825f5261087260205260405f2090565b5414613cc3576104f0945f946002613d4c613cbe945f5261087260205260405f2090565b55848461481f565b5f93613d13565b80519081613d695750505f90565b6020012090565b93926042936104f0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613dd760e0826106d7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e2f60a0826106d7565b519020906040519161190160f01b8352600283015260228201522090614b88565b9190820391821161317157565b9692610140989563ffffffff9586949285936107a49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113bb565b613ebc8151614772565b606081019081511561417157610120810190613ee8613edf835163ffffffff1690565b63ffffffff1690565b804210908115614138575b5061412957610140810192613f0c845163ffffffff1690565b63ffffffff613f3d817f000000000000000000000000000000000000000000000000000000000000000016426139e1565b91161161411a5761016082015163ffffffff169182806140d7575b5060408101918251926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809414806140ce575b1561407e576080830151340361406f57833b1561048e575f60049460405195868092630d0e30db60e41b825234905af19081156109f3577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461405092614055575b505b5191519260808101519060a081015160c08201519761402f6140246101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e5d565b0390a4565b806140635f614069936106d7565b80610484565b5f613ff6565b636452a35d60e01b5f5260045ffd5b92503461406f57614050836140c96140ba611f6f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bc1565b60808601519030903390614c74565b613ff8565b50341515613f94565b6301e133801015614102575b60e0810151156140f3575f613f58565b63495d907f60e01b5f5260045ffd5b916141149063ffffffff421690613157565b916140e3565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614143915042613e50565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613ef3565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561048e57565b60ff5f5460081c161561048e576001606555565b6001600160a01b031680156141eb57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561424357806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f51148116156142b9575b6040919091521561429e5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166142cf573d15833b15151616614290565b503d5f823e3d90fd5b929091905f915b8451831015614321576142f28386612f1c565b519081811015614310575f52602052600160405f205b9201916142df565b905f52602052600160405f20614308565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143658160648101611f34565b519082855af1903d5f51908361437c575b50505090565b9192509061439157503b15155b5f8080614376565b6001915014614389565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f146144f55750803b1561048e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109f3576144e1575b50610c5a54602081901c6001600160a01b03169161444261443861086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561048e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af180156109f3576144d35750565b806140635f6104f0936106d7565b806140635f6144ef936106d7565b5f61440e565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614740575b1561454b5750506104f09061454661086a546001600160a01b031690565b614db1565b6001600160a01b0361457f614572846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614714576001600160a01b037342000000000000000000000000000000000000105b16906145c6611f6f614572856001600160a01b03165f52610c5d60205260405f2090565b1561468e5783826145d692614d01565b6145f5614572836001600160a01b03165f52610c5d60205260405f2090565b9061460961086a546001600160a01b031690565b9161461a610c5a5463ffffffff1690565b823b1561048e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af180156109f3576144d35750565b50916146a361086a546001600160a01b031690565b926146b4610c5a5463ffffffff1690565b93813b1561048e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c4810161467d565b6001600160a01b0361473b614572846001600160a01b03165f52610c5c60205260405f2090565b6145a2565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114614528565b60a01c61477b57565b6379ec0ed760e11b5f5260045ffd5b61479382612f06565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061481882612f06565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161405060808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61488361012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956148e76148af61016060208b01519a0151613d5b565b9960608c01519b60406148c56080830151613d5b565b9101519060206148d3610728565b9e8f528e015260408d015260608c0161478a565b6040519c8d9c8d614796565b906107a494936080936001600160a01b038093168452602084015216604082015281606082015201906113bb565b90608061492f910151613bc1565b9160806040830151926149456060820151613bc1565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614a36575015614a22575b6149a091506001600160a01b03851661505d565b0151908151151580614a18575b6149b75750505050565b6001600160a01b0316803b1561048e576149ed935f809460405196879586948593633a5be8cb60e01b85523391600486016148f3565b03925af180156109f357614a04575b808080613a12565b806140635f614a12936106d7565b5f6149fc565b50803b15156149ad565b614a2f9130903390614c74565b5f8461498c565b90614a4b57614a46923390614c74565b6149a0565b614a46925087614252565b91614a6083614b27565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614b1f575b50614aa3575050565b6138b2915f8060405193614ab86060866106d7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614b19612f54565b9161529f565b90505f614a9a565b803b1561048e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614b95828461526e565b9390926005851015612f1057614bbe94159384614c5e575b508315614bd3575b50505015151590565b614bc457565b63938a182160e01b5f5260045ffd5b5f935090611f34614c0b8594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113bb565b51915afa614c17612f54565b81614c50575b81614c2c575b505f8080614bb5565b9050614c49630b135d3f60e11b91602080825183010191016139d2565b145f614c23565b905060208151101590614c1d565b6001600160a01b0384811691161493505f614bad565b5f6001600160a01b038192614cd19682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614cb86084876106d7565b1692614cc2615139565b94519082855af1614b19612f54565b8051908115918215614ce7575b50501561048e57565b614cfa9250602080918301019101615174565b5f80614cde565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109f3576104f094614d8d92614d59925f91614d92575b506139e1565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836106d7565b615189565b614dab915060203d60201161122c5761121d81836106d7565b5f614d53565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614e12838584614d01565b6040516332dd704760e21b815291602083600481885afa9283156109f3575f93615033575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156109f3575f93615012575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614ea957505050505050565b8381111561500c57835b8515614f6857863b1561048e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156109f357614f4e93614f54575b50613e50565b80614e9d565b806140635f614f62936106d7565b5f614f48565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156109f357614f4e93614fde5750613e50565b614ffe9060203d8111615005575b614ff681836106d7565b8101906151b4565b505f614f48565b503d614fec565b80614eb3565b61502c91935060203d60201161122c5761121d81836106d7565b915f614e77565b6001600160a01b039193506150569060203d6020116109ec576109de81836106d7565b9290614e37565b906001600160a01b038216803b15801561512a575b156150f657506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561048e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109f3576104f0936150e2575b50615246565b806140635f6150f0936106d7565b5f6150dc565b6104f092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614252565b50615134816151d4565b615072565b604051906151486040836106d7565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261048e57516107a481611b2c565b906001600160a01b03614cd192165f806151a1615139565b9360208151910182855af1614b19612f54565b9081602091031261048e575167ffffffffffffffff8116810361048e5790565b803b6151df81610737565b906151ed60405192836106d7565b8082525f6020830180943c5190516001600160e81b03198116919060038210615227575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615211565b81471061048e575f8080936001600160a01b038294165af1615266612f54565b501561048e57565b9060418151145f14615296576113b791602082015190606060408401519301515f1a906152ca565b50505f90600290565b919250156152bb578151156152b2575090565b3b1561048e5790565b50805190811561048e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161533a576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109f3575f516001600160a01b0381161561533257905f90565b505f90600190565b505050505f9060039056fea2646970667358221220aa4382723d187fdac5ead31fe31f136315296ae8838dd77a19f4274610d209cd64736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"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"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"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":"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":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"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":"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":"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":"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":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"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":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"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":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","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":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"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":"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":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"internalType":"address"}],"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":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","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":"ClaimedMerkleLeaf","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":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","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":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c080604052346102b05760a081615664803803809161002082856102b4565b8339810103126102b05780516001600160a01b038116908190036102b05761004a602083016102d7565b90610057604084016102d7565b6060840151936001600160a01b03851685036102b05760800151926001600160a01b038416928385036102b057306080525f60c0525f60a05260e05261010052610120525f549160ff8360081c166102b0575f938360ff8087961603610276575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100e76024826102b4565b51915afa3d1561026f573d6001600160401b03811161025b5760405190610118601f8201601f1916602001836102b4565b81523d5f602083013e5b8161024f575b81610219575b506101a05260405161537b90816102e9823960805181818161110101528181611607015261175e015260a05181611938015260c05181611b08015260e05181818161088a0152818161388801528181613f6b015281816143b10152818161495d0152818161508201526151050152610100518181816118d7015261414a0152610120518181816104ae0152613f17015261014051818181611ac801528181614ed60152614f7e01526101605181818161082d0152818161474b0152614dbd015261018051818181612118015281816144f80152614de601526101a051818181611d3f0152614e7c0152f35b905060208151910151906020811061023e575b506001600160a01b031615155f61012e565b5f199060200360031b1b165f61022c565b80516020149150610128565b634e487b7160e01b5f52604160045260245ffd5b6060610122565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100b8565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761025b57604052565b519063ffffffff821682036102b05756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461047f5780630c5d5f731461047a5780630cb84d9a146104755780630eaac9f0146104705780631186ec331461046b57806311eac8551461046657806315348e44146103f357806317fcb39b1461046157806319c1648c1461045c5780631b3d5559146104575780631fab657c1461045257806329cb924d1461044d5780632e378115146104485780632e63e59a146104435780633659cfe61461043e578063431023b814610439578063437b911614610434578063490e49ef1461042f578063493a4f841461042a5780634f1ef286146104255780635285e0581461042057806352d1902d1461041b578063541f4f1414610416578063577f51f81461041157806357f6dcb81461040c5780636068d6cb1461040757806361a04d3014610402578063647c576c146103fd578063670fa8ac146103f85780636bbbcd2e146103f35780636e400983146103ee5780636fd5c10e146103e9578063738b62e5146103e45780637659f9e0146103df578063766e0703146103da578063775c0d03146103d55780637aef642c146103d05780637b939232146103cb5780637ef413e1146103c657806382e2c43f146103c15780638a7860ce146103bc5780638b15788e146103b7578063927ede2d146103b25780639748cf7c146103ad57806397943aa9146103a8578063979f2bc2146103a357806399cc29681461039e5780639a8a059214610399578063a1244c6714610394578063a18a096e1461038f578063ac9650d81461038a578063ad5425c614610385578063adb5a6a614610335578063b27a430014610380578063b370b7f51461037b578063b4c0d7ab14610376578063babb6aac14610371578063bf10268d1461036c578063c35c83fc14610367578063ceb4c98714610362578063d7e1583a1461035d578063dda5211314610358578063ddd224f114610353578063de7eba781461034e578063deff4b2414610349578063e322921114610344578063ea86bd461461033f578063ee2a53f81461033a578063f79f29ed14610335578063fbbba9ac146103305763fc8a584f0361000e57612c82565b612bfe565b6125bb565b612bc0565b612b1c565b612af3565b612a01565b6129ca565b6129a1565b61297b565b612945565b612847565b61281c565b612798565b6126b9565b61268a565b612648565b612602565b61254a565b6124ab565b612356565b61232f565b612315565b61227f565b6121ca565b61213c565b6120f9565b6120cb565b61205a565b611fe2565b611ec4565b611e8e565b611df6565b611d64565b611d28565b611d04565b611bdd565b611b36565b611aec565b611aac565b610851565b611a72565b61198d565b611921565b6118fb565b6118bb565b61183e565b6117ae565b611744565b61171d565b6115c4565b61153c565b61151e565b611451565b611233565b6110da565b610ee1565b610d8e565b610d65565b610c5d565b610b3b565b6108d3565b61086b565b61080e565b6107a7565b6105da565b610543565b6104fd565b610492565b5f91031261048e57565b5f80fd5b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361048e57565b60e435906104f0826104d2565b565b35906104f0826104d2565b3461048e57602036600319011261048e576001600160a01b03600435610522816104d2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435610568816104d2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361048e57565b61010435906104f082610589565b61012435906104f082610589565b61014435906104f082610589565b61016435906104f082610589565b35906104f082610589565b3461048e57602036600319011261048e5763ffffffff6004356105fc81610589565b610604613795565b61060c61384d565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361048e57565b60a435908160070b820361048e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761069957604052565b610669565b6101a0810190811067ffffffffffffffff82111761069957604052565b6060810190811067ffffffffffffffff82111761069957604052565b90601f8019910116810190811067ffffffffffffffff82111761069957604052565b604051906104f060c0836106d7565b604051906104f0610180836106d7565b604051906104f06101a0836106d7565b604051906104f06080836106d7565b67ffffffffffffffff811161069957601f01601f191660200190565b92919261075f82610737565b9161076d60405193846106d7565b82948184528183011161048e578281602093845f960137010152565b9080601f8301121561048e578160206107a493359101610753565b90565b61010036600319011261048e576107bf6004356104d2565b6107ca6024356104d2565b6107d2610649565b506107de60a435610589565b60c43567ffffffffffffffff811161048e576107fe903690600401610789565b506332ed1ba560e21b5f5260045ffd5b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e5760206040515f8152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261048e576004356108c6816104d2565b906024356107a4816104d2565b3461048e576108e1366108ae565b6108e9613795565b6108f161384d565b6001600160a01b038116918215158061098a575b61097b5761094c6001600160a01b0392610931836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109f3575f916109c4575b506001600160a01b0380831691161415610905565b6109e6915060203d6020116109ec575b6109de81836106d7565b81019061385e565b5f6109af565b503d6109d4565b613873565b67ffffffffffffffff81116106995760051b60200190565b9080601f8301121561048e578135610a27816109f8565b92610a3560405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610a5d5750505090565b8135815260209182019101610a50565b9080601f8301121561048e578135610a84816109f8565b92610a9260405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610aba5750505090565b602080918335610ac9816104d2565b815201910190610aad565b929190610ae0816109f8565b93610aee60405195866106d7565b602085838152019160051b810192831161048e57905b828210610b1057505050565b8135815260209182019101610b04565b9080601f8301121561048e578160206107a493359101610ad4565b606036600319011261048e57600435610b5381610589565b6024359067ffffffffffffffff821161048e5760c0600319833603011261048e57610b7c6106f9565b918060040135835260248101356020840152604481013567ffffffffffffffff811161048e57610bb29060043691840101610a10565b6040840152610bc3606482016105cf565b6060840152610bd4608482016104f2565b608084015260a48101359067ffffffffffffffff821161048e576004610bfd9236920101610a6d565b60a08301526044359167ffffffffffffffff831161048e57610c26610018933690600401610b20565b91612cb2565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020808501948460051b01011161048e57565b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e5780360390606060031983011261048e57602435610c9c81610589565b60443567ffffffffffffffff811161048e57610cbc903690600401610c2c565b919093610cc761384d565b600484013590610182190181121561048e57610d5b94610d5693610cf26004610d4f94880101612ea0565b95610d08610d036080890151613bc1565b61387e565b6044610d13886136d3565b91013560208801519061016089015192610d2b6106f9565b998a5260208a01526040890152606088015260808701525f60a08701523691610ad4565b9083613bd7565b613c59565b6100186001606555565b3461048e575f36600319011261048e576020604051428152f35b908161018091031261048e5790565b3461048e57604036600319011261048e5760043567ffffffffffffffff811161048e57610dbf903690600401610d7f565b602435610dcb82612eab565b6001600160a01b031691610de160208201612eab565b6001600160a01b031690610df760408201612eab565b6001600160a01b031690610e0d60608201612eab565b6001600160a01b0316610e2260808301612eab565b6001600160a01b031660e083013560c084013560a0850135610e476101008701612eb5565b93610e556101208801612eb5565b95610e636101408901612eb5565b976101608101610e7291612ebf565b99909a610e7d610708565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecf92610753565b61016083015261001891339190613704565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57610f12903690600401610d7f565b610f1a61384d565b60ff61086b5460e01c166110cb5763ffffffff421690610140810190610f5283610f4384612eb5565b63ffffffff9182169116101590565b6110bc5761012081019263ffffffff610f6a85612eb5565b16106110ad57610f82610f7d3683612865565b6136d3565b90610f96825f5261087260205260405f2090565b5461109f57610fd8610fd27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561109260808301359260a08101359060c081013560e08201359761100f6110096101008501359b612eb5565b91612eb5565b60408401359184359361103e611039611032602089013598610160810190612ebf565b3691610753565b613d5b565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461048e57602036600319011261048e576004356110f7816104d2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e57611160613795565b61116861266f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561119c575061001890614b27565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611202575b506111cd575f80fd5b610018926111fd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f15565b614a56565b61122591935060203d60201161122c575b61121d81836106d7565b8101906139d2565b915f6111c4565b503d611213565b3461048e57608036600319011261048e5760043561125081610589565b6024359061125d826104d2565b604435611269816104d2565b60643591611276836104d2565b60ff5f5460081c161561048e576112be90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112ce81846106d7565b600983526020808401916820a1a927a9a996ab1960b91b83526112f3815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e57610018956005611342936113479651902091209061047f556104805561133561417f565b61133d61418e565b6141a2565b6141fa565b77ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261048e576004359067ffffffffffffffff821161048e576113b791600401610c2c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061141157505050505090565b9091929394602080611442600193603f198682030187526040838b51805115158452015191818582015201906113bb565b97019301930191939290611402565b3461048e5761145f3661138c565b611468816109f8565b9161147660405193846106d7565b818352601f19611485836109f8565b015f5b8181106114fa5750505f5b8281106114ac57604051806114a886826113df565b0390f35b806114f46114bc60019387612f1c565b515f806114ca858989612f30565b906114da60405180938193612f47565b0390305af4906114e8612f54565b60208201529015159052565b01611493565b6020906040516115098161067d565b5f815260608382015282828801015201611488565b3461048e575f36600319011261048e5760206040516301e133808152f35b3461048e57604036600319011261048e5760243560043561155b613795565b61156361384d565b61086c54680100000000000000008110156106995780600163ffffffff920161086c558361159082612b9d565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261048e576004356115dc816104d2565b60243567ffffffffffffffff811161048e576115fc903690600401610789565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e57611666613795565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561169a576100189150614b27565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f91816116fc575b506116ca575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361048e5761001891600191614a56565b61171691925060203d60201161122c5761121d81836106d7565b905f6116c1565b3461048e575f36600319011261048e5760206001600160a01b036108695416604051908152f35b3461048e575f36600319011261048e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361048e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261048e576117c66004356104d2565b6117d16024356104d2565b6117dc6044356104d2565b6117e4610659565b506117f060c435610589565b60e43567ffffffffffffffff811161048e576107fe903690600401610789565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020838186019501011161048e57565b3461048e5760c036600319011261048e5760043561185b816104d2565b6024356044359160643561186e816104d2565b60843567ffffffffffffffff811161048e5761188e903690600401611810565b9160a4359567ffffffffffffffff871161048e576118b3610018973690600401611810565b969095612fd6565b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060ff61086b5460e81c166040519015158152f35b3461048e575f36600319011261048e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261048e5760043561197381610589565b90602435611980816104d2565b906044356107a4816104d2565b3461048e576119ea61199e3661195b565b5f5493929091906119d060ff600887901c16156119ba565b1590565b80968197611a64575b8115611a44575b50612f15565b846119e1600160ff195f5416175f55565b611a2d57613045565b6119f057005b6119fe61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611a3f61010061ff00195f5416175f55565b613045565b303b15915081611a56575b505f6119ca565b60ff1660011490505f611a4f565b600160ff82161091506119c3565b3461048e575f36600319011261048e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361048e57565b3461048e57602036600319011261048e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611b7681611b2c565b611b7e613795565b611b8661384d565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107a49281815201906113bb565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611c0e903690600401611810565b611c16613795565b611c1e61384d565b810160408282031261048e57813591611c36836104d2565b60208101359167ffffffffffffffff831161048e576001600160a01b0392611c5e9201610789565b91168015611cf5576004825110611ce6575f8083516020850182855af190611c84612f54565b9115611cd7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611cbe6114a89460405191829182611bcc565b0390a2611ccb6001606555565b60405191829182611bcc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461048e575f36600319011261048e57602063ffffffff610c5a5416604051908152f35b3461048e575f36600319011261048e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261048e57600435611d7d816104d2565b602435611d89816104d2565b60443591611d96836104d2565b606435611da2816104d2565b60843560e43560c43560a435611db7836104d2565b611dbf610597565b93611dc86105a5565b95610144359967ffffffffffffffff8b1161048e57611dee6100189b3690600401611810565b9a9099613176565b61018036600319011261048e57600435611e0f816104d2565b602435611e1b816104d2565b60443591611e28836104d2565b606435611e34816104d2565b60843560a43560c435611e456104e3565b90611e4e610597565b92611e576105a5565b94611e606105b3565b96610164359a67ffffffffffffffff8c1161048e57611e866100189c3690600401611810565b9b909a613198565b3461048e57606036600319011261048e576020611ebc600435611eb0816104d2565b602435604435916132be565b604051908152f35b3461048e57606036600319011261048e5760043560243567ffffffffffffffff811161048e57611ef8903690600401611810565b9060443567ffffffffffffffff811161048e57611f19903690600401611810565b9190936040516020810190611f4281611f34468988876132fc565b03601f1981018352826106d7565b51902003611fd3575f93611f5d828695611f6694019061291f565b92810190613319565b51611f9d611f7b335b6001600160a01b031690565b91611f3460405193849260208401966337bfd2c960e21b8852602485016133e4565b5190305af4611faa612f54565b9015611fb257005b60405163b8fe37a760e01b8152908190611fcf9060048301611bcc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461048e57602036600319011261048e57600435611ffe613795565b61200661384d565b61200f81612b9d565b612047576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261048e5760443560243560043560643560843560a4356101043560e43560c43561208b6105a5565b936120946105b3565b9561209d6105c1565b97610184359b67ffffffffffffffff8d1161048e576120c36100189d3690600401611810565b9c909b613406565b3461048e575f36600319011261048e5760206040517342000000000000000000000000000000000000078152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e5760e036600319011261048e5760043567ffffffffffffffff811161048e5761216d903690600401610d7f565b602435604435916064356084359060a43567ffffffffffffffff811161048e5761219b903690600401611810565b92909160c4359667ffffffffffffffff881161048e576121c2610018983690600401611810565b97909661347e565b3461048e576121d83661195b565b909160ff5f5460081c161561048e5761220e9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261221d82856106d7565b600984526020808501926820a1a927a9a996ab1960b91b8452612242815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936100189651902091209061047f556104805561133561417f565b3461048e57602036600319011261048e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122bf81611b2c565b6122c7613795565b6122cf61384d565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461048e575f36600319011261048e576020604051468152f35b3461048e575f36600319011261048e57602063ffffffff61086b5460c01c16604051908152f35b3461048e57604036600319011261048e5760043560243561237682614772565b6001600160a01b03821691825f526108736020526123a760405f20336001600160a01b03165f5260205260405f2090565b5492831561243d576123f05f916123bd84614772565b6123da33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561240d836123fe83613bc1565b61240785613bc1565b90614252565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061247e57505050505090565b909192939460208061249c600193603f1986820301875289516113bb565b9701930193019193929061246f565b3461048e576124b93661138c565b906124c38261356c565b915f5b8181106124db57604051806114a8868261244c565b5f806124e8838587612f30565b906124f860405180938193612f47565b0390305af4612505612f54565b901561252b57906001916125198287612f1c565b526125248186612f1c565b50016124c6565b604481511061048e5780602480600461048e94015183010191016135b5565b61018036600319011261048e576044356024356004356064356084356101043560e43560c43560a43561257c84610589565b6125846105a5565b9461258d6105b3565b96610164359a67ffffffffffffffff8c1161048e576125b36100189c3690600401611810565b9b909a613618565b3461048e5760206125f96001600160a01b036125d6366108ae565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435612627816104d2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461048e575f36600319011261048e5760206001600160a01b0361086a5416604051908152f35b6040519061267e6020836106d7565b5f808352366020840137565b3461048e575f36600319011261048e576114a86126a561266f565b6040519182916020835260208301906113bb565b3461048e5760c036600319011261048e5760043560243560443560643560843567ffffffffffffffff811161048e576126f6903690600401611810565b60a4939193359067ffffffffffffffff821161048e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461273f61278e933690600401611810565b92909161274a61384d565b6127538a614772565b612782898b8989612765368888610753565b92612771368b8b610753565b946001600160a01b03469216613d70565b60405196879687612fa3565b0390a36001606555005b3461048e576001600160a01b03806127af366108ae565b92906127b9613795565b6127c161384d565b1691825f52610c5d6020526127ef8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461048e57602036600319011261048e576004355f52610872602052602060405f2054604051908152f35b3461048e575f36600319011261048e57602060405163ffffffff8152f35b9190916101808184031261048e5761287b610708565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526128df61012083016105cf565b6101208501526128f261014083016105cf565b61014085015261016082013567ffffffffffffffff811161048e576129179201610789565b610160830152565b9060208282031261048e57813567ffffffffffffffff811161048e576107a49201612865565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611ebc610f7d6020923690600401612865565b3461048e575f36600319011261048e57602060ff61086b5460e01c166040519015158152f35b3461048e575f36600319011261048e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461048e57602036600319011261048e576129fa6004356129ea816104d2565b6129f2613795565b61133d61384d565b6001606555005b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e57612a32903690600401612865565b6024359060443590612a4261384d565b60ff61086b5460e01c166110cb5761014081015163ffffffff16612a714263ffffffff165b9163ffffffff1690565b101580612ad4575b612ac557610d5b92612a8a826136d3565b60c083015160208401519061016085015192612aa46106f9565b958652602086015260408501526060840152608083015260a0820152613cd2565b630c3a9b9d60e41b5f5260045ffd5b50612ae26040820151613bc1565b6001600160a01b0316331415612a79565b3461048e575f36600319011261048e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261048e576044356024356004356064356101043560e43560c43560a435608435612b4e85610589565b6101243595612b5c87610589565b610144359967ffffffffffffffff8b1161048e57612b816100189b3690600401611810565b9a9099613770565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612bbb5761086c5f52600360205f20910201905f90565b612b89565b3461048e57602036600319011261048e5760043561086c5481101561048e57612bea604091612b9d565b506001815491015482519182526020820152f35b3461048e576001600160a01b0380612c15366108ae565b9290612c1f613795565b612c2761384d565b1691825f52610c5c602052612c558160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461048e57602036600319011261048e576129fa600435612ca2816104d2565b612caa613795565b61134261384d565b9190612cbc61384d565b60808101612cd4610d0382516001600160a01b031690565b602082019283514603612dd4576119b6612cfc91846001612cf489612b9d565b5001546138f2565b612dc55763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612db86060850195612d46612d40885163ffffffff1690565b89613976565b8051958051612da2612d94612d83604085019a8c612d6a8d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946139ee565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e52565b0390a46104f06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e005750505090565b8251845260209384019390920191600101612df3565b90602080835192838152019201905f5b818110612e335750505090565b82516001600160a01b0316845260209384019390920191600101612e26565b949695919260a0946001600160a01b03612e7e8196612e92958a5260c060208b015260c08a0190612de3565b921660408801528682036060880152612e16565b951515608085015216910152565b6107a4903690612865565b356107a4816104d2565b356107a481610589565b903590601e198136030182121561048e570180359067ffffffffffffffff821161048e5760200191813603831361048e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f1057565b612ef2565b1561048e57565b8051821015612bbb5760209160051b010190565b90821015612bbb576113b79160051b810190612ebf565b908092918237015f815290565b3d15612f7e573d90612f6582610737565b91612f7360405193846106d7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612fc8926107a4979587526020870152608060408701526080860191612f83565b926060818503910152612f83565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586613040959a9499166130328a8c8361301d368888610753565b91613029368b8b610753565b9346908d613d70565b604051978897169a87612fa3565b0390a3565b91909160ff5f5460081c161561048e5761309090624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261309f82856106d7565b600984526020808501926820a1a927a9a996ab1960b91b84526130c4815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936131019651902091209061047f556104805561133561417f565b6104f077deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019610c5a541617610c5a55565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff821161317157565b613143565b96949290916104f09b9a999896949261319663ffffffff42169889613157565b985b9593919b999897969492909b6131ac61384d565b61086b5460ff8160e81c166132af5760c01c63ffffffff16966131ce886136bc565b6131f59063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6131fd610718565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190613273919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061329692610753565b6101808201526132a590613eb2565b6104f06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132f66074826106d7565b51902090565b93929160209161331491604087526040870191612f83565b930152565b9081602091031261048e57604051906020820182811067ffffffffffffffff8211176106995760405235815290565b906101806101606107a493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526133c261012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113bb565b6133fc60409295949395606083526060830190613348565b9460208201520152565b9c9a999897969594939291909661341b61384d565b60ff61086b5460e81c166132af57613434908e336132be565b96604051809e6134438261069e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152613273565b97929095969493919661348f61384d565b60ff61086b5460e01c166110cb576134aa6101408a01612eb5565b6134b94263ffffffff16612a67565b10158061354d575b612ac5576132a598613542613548976134dd610f7d3685612865565b996134e66106f9565b9a6134f13686612865565b8c5260208c01528560408c01528660608c015261350f36868b610753565b60808c015260a08b015261353a6135268435613bc1565b9860e0610100860135950135953691610753565b963691610753565b95613d70565b613cd2565b5061355b60408a0135613bc1565b6001600160a01b03163314156134c1565b90613576826109f8565b61358360405191826106d7565b8281528092613594601f19916109f8565b01905f5b8281106135a457505050565b806060602080938501015201613598565b60208183031261048e5780519067ffffffffffffffff821161048e570181601f8201121561048e578051906135e982610737565b926135f760405194856106d7565b8284526020838301011161048e57815f9260208093018386015e8301015290565b9b9998979694929095939161362b61384d565b61086b5460ff8160e81c166132af5760c01c63ffffffff169661364d886136bc565b6136749063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61367c610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152613273565b63ffffffff1663ffffffff81146131715760010190565b6040516132f6816136f06020820194604086526060830190613348565b46604083015203601f1981018352826106d7565b91909161370f61384d565b60ff61086b5460e01c166110cb5761014081015163ffffffff166137384263ffffffff16612a67565b101580613751575b612ac5576132a592612a8a826136d3565b5061375f6040820151613bc1565b6001600160a01b0316331415613740565b9a9897959296939094919661378c63ffffffff42169788613157565b9761362b61384d565b734200000000000000000000000000000000000007330361383e57604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa9081156109f3575f9161381f575b506001600160a01b03613807611f6f610869546001600160a01b031690565b91160361381057565b6336a816d960e01b5f5260045ffd5b613838915060203d6020116109ec576109de81836106d7565b5f6137e8565b63253a6fc960e11b5f5260045ffd5b60026065541461048e576002606555565b9081602091031261048e57516107a4816104d2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138b5575b50565b476138bd5750565b4790803b1561048e575f90600460405180948193630d0e30db60e41b83525af180156109f357156138b2575f6104f0916106d7565b6107a4929160405161396d81611f34602082019460208652805160408401526020810151606084015260a0613937604083015160c06080870152610100860190612de3565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e16565b519020916142d8565b613981600291612b9d565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146139c357825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261048e575190565b9190820180921161317157565b91959495939092935f9681519081815103613bb25781613a6d575b50505082613a18575b50505050565b63ffffffff613a4f611f6f83611f6f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861439b565b6040805195865233602087015290959190911693a45f808080613a12565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109f3575f91613b93575b505f5f5b848110613ab357505050613a09565b613abd8187612f1c565b51613acb575b600101613aa4565b90613ae190613ada8388612f1c565b51906139e1565b90828211613b8457613b1b6119b6613b09613afc8488612f1c565b516001600160a01b031690565b613b13848a612f1c565b51908a614329565b15613ac3579a50613b2c8b86612f1c565b51613b7a613b728d613b5d613afc613b568c6001600160a01b03165f5261087360205260405f2090565b9289612f1c565b6001600160a01b03165f5260205260405f2090565b9182546139e1565b905560019a613ac3565b632ddaa83160e11b5f5260045ffd5b613bac915060203d60201161122c5761121d81836106d7565b5f613aa0565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613bd381614772565b1690565b916119b691613c5393604081519101519160405191613bf5836106bb565b825261396d613c11602084019246845260408501958652612b9d565b505493604051928391613c38602084019660208852516060604086015260a0850190613348565b9151606084015251608083015203601f1981018352826106d7565b612dc557565b805163ffffffff6101208201511663ffffffff429116106110ad576020820151906002613c8f835f5261087260205260405f2090565b5414613cc3576104f0926002613cb06001945f5261087260205260405f2090565b55613cbe60025f848461481f565b614921565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110ad576020830151926001613d09855f5261087260205260405f2090565b5403613d54576001935b6002613d28825f5261087260205260405f2090565b5414613cc3576104f0945f946002613d4c613cbe945f5261087260205260405f2090565b55848461481f565b5f93613d13565b80519081613d695750505f90565b6020012090565b93926042936104f0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613dd760e0826106d7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e2f60a0826106d7565b519020906040519161190160f01b8352600283015260228201522090614b88565b9190820391821161317157565b9692610140989563ffffffff9586949285936107a49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113bb565b613ebc8151614772565b606081019081511561417157610120810190613ee8613edf835163ffffffff1690565b63ffffffff1690565b804210908115614138575b5061412957610140810192613f0c845163ffffffff1690565b63ffffffff613f3d817f000000000000000000000000000000000000000000000000000000000000000016426139e1565b91161161411a5761016082015163ffffffff169182806140d7575b5060408101918251926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809414806140ce575b1561407e576080830151340361406f57833b1561048e575f60049460405195868092630d0e30db60e41b825234905af19081156109f3577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461405092614055575b505b5191519260808101519060a081015160c08201519761402f6140246101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e5d565b0390a4565b806140635f614069936106d7565b80610484565b5f613ff6565b636452a35d60e01b5f5260045ffd5b92503461406f57614050836140c96140ba611f6f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bc1565b60808601519030903390614c74565b613ff8565b50341515613f94565b6301e133801015614102575b60e0810151156140f3575f613f58565b63495d907f60e01b5f5260045ffd5b916141149063ffffffff421690613157565b916140e3565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614143915042613e50565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613ef3565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561048e57565b60ff5f5460081c161561048e576001606555565b6001600160a01b031680156141eb57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561424357806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f51148116156142b9575b6040919091521561429e5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166142cf573d15833b15151616614290565b503d5f823e3d90fd5b929091905f915b8451831015614321576142f28386612f1c565b519081811015614310575f52602052600160405f205b9201916142df565b905f52602052600160405f20614308565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143658160648101611f34565b519082855af1903d5f51908361437c575b50505090565b9192509061439157503b15155b5f8080614376565b6001915014614389565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f146144f55750803b1561048e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109f3576144e1575b50610c5a54602081901c6001600160a01b03169161444261443861086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561048e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af180156109f3576144d35750565b806140635f6104f0936106d7565b806140635f6144ef936106d7565b5f61440e565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614740575b1561454b5750506104f09061454661086a546001600160a01b031690565b614db1565b6001600160a01b0361457f614572846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614714576001600160a01b037342000000000000000000000000000000000000105b16906145c6611f6f614572856001600160a01b03165f52610c5d60205260405f2090565b1561468e5783826145d692614d01565b6145f5614572836001600160a01b03165f52610c5d60205260405f2090565b9061460961086a546001600160a01b031690565b9161461a610c5a5463ffffffff1690565b823b1561048e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af180156109f3576144d35750565b50916146a361086a546001600160a01b031690565b926146b4610c5a5463ffffffff1690565b93813b1561048e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c4810161467d565b6001600160a01b0361473b614572846001600160a01b03165f52610c5c60205260405f2090565b6145a2565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168114614528565b60a01c61477b57565b6379ec0ed760e11b5f5260045ffd5b61479382612f06565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061481882612f06565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161405060808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61488361012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956148e76148af61016060208b01519a0151613d5b565b9960608c01519b60406148c56080830151613d5b565b9101519060206148d3610728565b9e8f528e015260408d015260608c0161478a565b6040519c8d9c8d614796565b906107a494936080936001600160a01b038093168452602084015216604082015281606082015201906113bb565b90608061492f910151613bc1565b9160806040830151926149456060820151613bc1565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614a36575015614a22575b6149a091506001600160a01b03851661505d565b0151908151151580614a18575b6149b75750505050565b6001600160a01b0316803b1561048e576149ed935f809460405196879586948593633a5be8cb60e01b85523391600486016148f3565b03925af180156109f357614a04575b808080613a12565b806140635f614a12936106d7565b5f6149fc565b50803b15156149ad565b614a2f9130903390614c74565b5f8461498c565b90614a4b57614a46923390614c74565b6149a0565b614a46925087614252565b91614a6083614b27565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614b1f575b50614aa3575050565b6138b2915f8060405193614ab86060866106d7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614b19612f54565b9161529f565b90505f614a9a565b803b1561048e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614b95828461526e565b9390926005851015612f1057614bbe94159384614c5e575b508315614bd3575b50505015151590565b614bc457565b63938a182160e01b5f5260045ffd5b5f935090611f34614c0b8594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113bb565b51915afa614c17612f54565b81614c50575b81614c2c575b505f8080614bb5565b9050614c49630b135d3f60e11b91602080825183010191016139d2565b145f614c23565b905060208151101590614c1d565b6001600160a01b0384811691161493505f614bad565b5f6001600160a01b038192614cd19682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614cb86084876106d7565b1692614cc2615139565b94519082855af1614b19612f54565b8051908115918215614ce7575b50501561048e57565b614cfa9250602080918301019101615174565b5f80614cde565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109f3576104f094614d8d92614d59925f91614d92575b506139e1565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836106d7565b615189565b614dab915060203d60201161122c5761121d81836106d7565b5f614d53565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614e12838584614d01565b6040516332dd704760e21b815291602083600481885afa9283156109f3575f93615033575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156109f3575f93615012575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614ea957505050505050565b8381111561500c57835b8515614f6857863b1561048e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156109f357614f4e93614f54575b50613e50565b80614e9d565b806140635f614f62936106d7565b5f614f48565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156109f357614f4e93614fde5750613e50565b614ffe9060203d8111615005575b614ff681836106d7565b8101906151b4565b505f614f48565b503d614fec565b80614eb3565b61502c91935060203d60201161122c5761121d81836106d7565b915f614e77565b6001600160a01b039193506150569060203d6020116109ec576109de81836106d7565b9290614e37565b906001600160a01b038216803b15801561512a575b156150f657506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561048e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109f3576104f0936150e2575b50615246565b806140635f6150f0936106d7565b5f6150dc565b6104f092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614252565b50615134816151d4565b615072565b604051906151486040836106d7565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261048e57516107a481611b2c565b906001600160a01b03614cd192165f806151a1615139565b9360208151910182855af1614b19612f54565b9081602091031261048e575167ffffffffffffffff8116810361048e5790565b803b6151df81610737565b906151ed60405192836106d7565b8082525f6020830180943c5190516001600160e81b03198116919060038210615227575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615211565b81471061048e575f8080936001600160a01b038294165af1615266612f54565b501561048e57565b9060418151145f14615296576113b791602082015190606060408401519301515f1a906152ca565b50505f90600290565b919250156152bb578151156152b2575090565b3b1561048e5790565b50805190811561048e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161533a576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109f3575f516001600160a01b0381161561533257905f90565b505f90600190565b505050505f9060039056fea2646970667358221220c26e221aa40f39f44cf7cbc07c343490b38fc135c2812e265026b70c67da5aee64736f6c634300081e0033"}