@across-protocol/contracts 5.0.11-alpha.4 → 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 (104) hide show
  1. package/contracts/external/interfaces/CCTPInterfaces.sol +18 -0
  2. package/contracts/handlers/MulticallHandler.sol +7 -1
  3. package/contracts/interfaces/SponsoredCCTPInterface.sol +11 -0
  4. package/contracts/libraries/SafeTransferERC20.sol +21 -0
  5. package/contracts/libraries/SponsoredCCTPQuoteLib.sol +22 -0
  6. package/contracts/libraries/TronTransferLib.sol +42 -0
  7. package/contracts/periphery/SpokePoolPeriphery.sol +4 -0
  8. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePool.sol +7 -3
  9. package/contracts/periphery/counterfactual/CounterfactualDepositSpokePoolTr.sol +36 -0
  10. package/contracts/periphery/counterfactual/WithdrawImplementation.sol +3 -6
  11. package/contracts/periphery/counterfactual/WithdrawImplementationTron.sol +22 -0
  12. package/contracts/periphery/mintburn/ArbitraryEVMFlowExecutor.sol +38 -15
  13. package/contracts/periphery/mintburn/sponsored-cctp/SponsoredCCTPDstPeriphery.sol +41 -12
  14. package/contracts/sp1-helios/SP1AutoVerifier.sol +1 -1
  15. package/contracts/spoke-pools/SpokePool.sol +11 -6
  16. package/contracts/spoke-pools/Tron_SpokePool.sol +65 -0
  17. package/contracts/test/MockCCTP.sol +10 -0
  18. package/contracts/test/MockTronUSDT.sol +36 -0
  19. package/contracts/tron/TronCounterfactualImports.sol +4 -3
  20. package/contracts/tron/TronImports.sol +2 -2
  21. package/contracts/tron/TronPeripheryImports.sol +1 -1
  22. package/dist/broadcast/deployed-addresses.json +186 -121
  23. package/dist/evm/artifacts/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -1
  24. package/dist/evm/artifacts/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
  25. package/dist/evm/artifacts/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  26. package/dist/evm/artifacts/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  27. package/dist/evm/artifacts/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  28. package/dist/evm/artifacts/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  29. package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  30. package/dist/evm/artifacts/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  31. package/dist/evm/artifacts/Base_Adapter.sol/Base_Adapter.json +1 -1
  32. package/dist/evm/artifacts/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  33. package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  34. package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  35. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  36. package/dist/evm/artifacts/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  37. package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  38. package/dist/evm/artifacts/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  39. package/dist/evm/artifacts/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  40. package/dist/evm/artifacts/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
  41. package/dist/evm/artifacts/CounterfactualDepositSpokePoolTr.sol/CounterfactualDepositSpokePoolTr.json +1 -0
  42. package/dist/evm/artifacts/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  43. package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  44. package/dist/evm/artifacts/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
  45. package/dist/evm/artifacts/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
  46. package/dist/evm/artifacts/HubPoolTestBase.sol/MockFinder.json +1 -1
  47. package/dist/evm/artifacts/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
  48. package/dist/evm/artifacts/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
  49. package/dist/evm/artifacts/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
  50. package/dist/evm/artifacts/HubPoolTestBase.sol/MockStore.json +1 -1
  51. package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  52. package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  53. package/dist/evm/artifacts/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  54. package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  55. package/dist/evm/artifacts/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  56. package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  57. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
  58. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
  59. package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
  60. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -1
  61. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessenger.json +1 -1
  62. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMessengerV2.json +1 -1
  63. package/dist/evm/artifacts/MockCCTP.sol/MockCCTPMinter.json +1 -1
  64. package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
  65. package/dist/evm/artifacts/MockSpokePool.sol/MockSpokePool.json +1 -1
  66. package/dist/evm/artifacts/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -1
  67. package/dist/evm/artifacts/MockTronUSDT.sol/MockTronUSDT.json +1 -0
  68. package/dist/evm/artifacts/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  69. package/dist/evm/artifacts/MulticallHandler.sol/MulticallHandler.json +1 -1
  70. package/dist/evm/artifacts/OP_Adapter.sol/OP_Adapter.json +1 -1
  71. package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  72. package/dist/evm/artifacts/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  73. package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  74. package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  75. package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  76. package/dist/evm/artifacts/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
  77. package/dist/evm/artifacts/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
  78. package/dist/evm/artifacts/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  79. package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  80. package/dist/evm/artifacts/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
  81. package/dist/evm/artifacts/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
  82. package/dist/evm/artifacts/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  83. package/dist/evm/artifacts/SpokePool.sol/SpokePool.json +1 -1
  84. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
  85. package/dist/evm/artifacts/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
  86. package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  87. package/dist/evm/artifacts/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  88. package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  89. package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  90. package/dist/evm/artifacts/TronTransferLib.sol/TronTransferLib.json +1 -0
  91. package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -0
  92. package/dist/evm/artifacts/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  93. package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  94. package/dist/evm/artifacts/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
  95. package/dist/evm/artifacts/WithdrawImplementationTron.sol/WithdrawImplementationTron.json +1 -0
  96. package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  97. package/dist/evm/artifacts/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  98. package/dist/evm/artifacts/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  99. package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  100. package/dist/evm/artifacts/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  101. package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  102. package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  103. package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  104. package/package.json +3 -3
@@ -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"}],"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":"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":"POLYGON_ZKEVM_L1_NETWORK_ID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"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":"_l2PolygonZkEVMBridge","type":"address","internalType":"contract IPolygonZkEVMBridge"},{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2PolygonZkEVMBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolygonZkEVMBridge"}],"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":"onMessageReceived","inputs":[{"name":"_originAddress","type":"address","internalType":"address"},{"name":"_originNetwork","type":"uint32","internalType":"uint32"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"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":"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":"setL2PolygonZkEVMBridge","inputs":[{"name":"_l2PolygonZkEVMBridge","type":"address","internalType":"contract IPolygonZkEVMBridge"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"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":"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":"ReceivedMessageFromL1","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"originAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetPolygonZkEVMBridge","inputs":[{"name":"newPolygonZkEVMBridge","type":"address","indexed":true,"internalType":"address"},{"name":"oldPolygonZkEVMBridge","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":"AdminCallNotValidated","inputs":[]},{"type":"error","name":"AdminCallValidatedAlreadySet","inputs":[]},{"type":"error","name":"CallerNotBridge","inputs":[]},{"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":"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":"OriginSenderNotCrossDomain","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SourceChainNotHubChain","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101403461016357601f614b9a38819003918201601f19168301916001600160401b03831184841017610167578084926060946040528339810103126101635780516001600160a01b03811691908290036101635761006c60406100656020840161017b565b920161017b565b91306080525f60c0525f60a05260e05261010052610120525f5460ff8160081c166101635760ff80821603610129575b604051614a0d908161018d82396080518181816110fd015281816114aa0152611601015260a051816117db015260c05181611854015260e0518181816106fd0152818161341901528181613afc01528181613f4e015281816142fd015281816147af015261483201526101005181818161177a0152613cdb0152610120518181816104330152613aa80152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f61009c565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b519063ffffffff821682036101635756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630620b2121461036d578063079bd2c7146103ea5780630cb84d9a146103e55780631186ec33146103e057806315348e441461036d57806317fcb39b146103db5780631806b5f2146103d657806319c1648c146103d15780631b3d5559146103cc5780631fab657c146103c7578063291dc2aa146103c257806329cb924d146103bd5780632e378115146103b85780632e63e59a146103b35780633659cfe6146103ae578063437b9116146103a9578063490e49ef146103a4578063493a4f841461039f5780634f1ef2861461039a5780635285e0581461039557806352d1902d14610390578063541f4f141461038b578063577f51f81461038657806357f6dcb8146103815780636068d6cb1461037c57806361a04d3014610377578063670fa8ac146103725780636bbbcd2e1461036d5780636fd5c10e14610368578063738b62e5146103635780637659f9e01461035e5780637aef642c146103595780637b939232146103545780637ef413e11461034f57806382e2c43f1461034a5780638a7860ce146103455780638b15788e1461034057806397943aa91461033b578063979f2bc214610336578063983cb80f1461033157806399cc29681461032c5780639a8a059214610327578063a1244c6714610322578063a18a096e1461031d578063ac9650d814610318578063ad5425c614610313578063adb5a6a6146102cd578063b370b7f51461030e578063b4c0d7ab14610309578063babb6aac14610304578063c35c83fc146102ff578063ceb4c987146102fa578063d7e1583a146102f5578063dda52113146102f0578063ddd224f1146102eb578063de7eba78146102e6578063deff4b24146102e1578063e062ebcc146102dc578063ea86bd46146102d7578063ee2a53f8146102d2578063f79f29ed146102cd5763fc8a584f0361000e576128fb565b61237e565b6128bd565b612819565b6127ec565b6126fa565b6126c3565b61269a565b612674565b61263e565b612540565b612515565b612436565b612407565b6123c5565b61230d565b61226e565b612116565b6120ef565b6120d5565b61203f565b611f2b565b611e3d565b611daf565b611d3e565b611cc6565b611bb0565b611b7a565b611ae2565b611a50565b611929565b611882565b611838565b6103fd565b6117fe565b6117c4565b61179e565b61175e565b6116e1565b611651565b6115e7565b6115c0565b611467565b6113df565b6113c1565b6112f4565b6110d6565b610edd565b610d8a565b610d61565b610d3a565b610c32565b610b10565b6108a8565b610721565b6106de565b610677565b610482565b610417565b5f9103126103f957565b5f80fd5b346103f9575f3660031901126103f95760206040515f8152f35b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036103f957565b60e4359061047582610457565b565b359061047582610457565b346103f95760203660031901126103f9576001600160a01b036004356104a781610457565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036103f957565b60a435908160070b82036103f957565b63ffffffff8116036103f957565b6101043590610475826104e8565b6101243590610475826104e8565b6101443590610475826104e8565b6101643590610475826104e8565b3590610475826104e8565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761056957604052565b610539565b6101a0810190811067ffffffffffffffff82111761056957604052565b6060810190811067ffffffffffffffff82111761056957604052565b90601f8019910116810190811067ffffffffffffffff82111761056957604052565b6040519061047560c0836105a7565b60405190610475610180836105a7565b604051906104756101a0836105a7565b604051906104756080836105a7565b67ffffffffffffffff811161056957601f01601f191660200190565b92919261062f82610607565b9161063d60405193846105a7565b8294818452818301116103f9578281602093845f960137010152565b9080601f830112156103f95781602061067493359101610623565b90565b6101003660031901126103f95761068f600435610457565b61069a602435610457565b6106a26104c8565b506106ae60a4356104e8565b60c43567ffffffffffffffff81116103f9576106ce903690600401610659565b506332ed1ba560e21b5f5260045ffd5b346103f9575f3660031901126103f95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60603660031901126103f95760043561073981610457565b602435610745816104e8565b60443567ffffffffffffffff81116103f957610765903690600401610659565b90610c5a5460ff8160a01c16610874576107ae6107ae7401000000000000000000000000000000000000000060ff60a01b196107ba94161780610c5a556001600160a01b031690565b6001600160a01b031690565b3303610865576001600160a01b036107de6107ae610869546001600160a01b031690565b93169283036108565763ffffffff16610847575f8082602061080e94519101305af461080861292b565b5061295a565b337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a361001860ff60a01b19610c5a5416610c5a55565b6334645e6160e01b5f5260045ffd5b631877afe360e21b5f5260045ffd5b63356a0b3d60e21b5f5260045ffd5b63c3490b1560e01b5f5260045ffd5b60409060031901126103f95760043561089b81610457565b9060243561067481610457565b346103f9576108b636610883565b6108be6133be565b6108c66133de565b6001600160a01b038116918215158061095f575b610950576109216001600160a01b0392610906836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109c8575f91610999575b506001600160a01b03808316911614156108da565b6109bb915060203d6020116109c1575b6109b381836105a7565b8101906133ef565b5f610984565b503d6109a9565b613404565b67ffffffffffffffff81116105695760051b60200190565b9080601f830112156103f95781356109fc816109cd565b92610a0a60405194856105a7565b81845260208085019260051b8201019283116103f957602001905b828210610a325750505090565b8135815260209182019101610a25565b9080601f830112156103f9578135610a59816109cd565b92610a6760405194856105a7565b81845260208085019260051b8201019283116103f957602001905b828210610a8f5750505090565b602080918335610a9e81610457565b815201910190610a82565b929190610ab5816109cd565b93610ac360405195866105a7565b602085838152019160051b81019283116103f957905b828210610ae557505050565b8135815260209182019101610ad9565b9080601f830112156103f95781602061067493359101610aa9565b60603660031901126103f957600435610b28816104e8565b6024359067ffffffffffffffff82116103f95760c060031983360301126103f957610b516105c9565b918060040135835260248101356020840152604481013567ffffffffffffffff81116103f957610b8790600436918401016109e5565b6040840152610b986064820161052e565b6060840152610ba960848201610477565b608084015260a48101359067ffffffffffffffff82116103f9576004610bd29236920101610a42565b60a08301526044359167ffffffffffffffff83116103f957610bfb610018933690600401610af5565b91612961565b9181601f840112156103f95782359167ffffffffffffffff83116103f9576020808501948460051b0101116103f957565b346103f95760603660031901126103f95760043567ffffffffffffffff81116103f9578036039060606003198301126103f957602435610c71816104e8565b60443567ffffffffffffffff81116103f957610c91903690600401610c01565b919093610c9c6133de565b60048401359061018219018112156103f957610d3094610d2b93610cc76004610d2494880101612b4f565b95610cdd610cd86080890151613752565b61340f565b6044610ce8886132fc565b91013560208801519061016089015192610d006105c9565b998a5260208a01526040890152606088015260808701525f60a08701523691610aa9565b9083613768565b6137ea565b6100186001606555565b346103f9575f3660031901126103f95760206001600160a01b03610c5a5416604051908152f35b346103f9575f3660031901126103f9576020604051428152f35b90816101809103126103f95790565b346103f95760403660031901126103f95760043567ffffffffffffffff81116103f957610dbb903690600401610d7b565b602435610dc782612b5a565b6001600160a01b031691610ddd60208201612b5a565b6001600160a01b031690610df360408201612b5a565b6001600160a01b031690610e0960608201612b5a565b6001600160a01b0316610e1e60808301612b5a565b6001600160a01b031660e083013560c084013560a0850135610e436101008701612b64565b93610e516101208801612b64565b95610e5f6101408901612b64565b976101608101610e6e91612b6e565b99909a610e796105d8565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecb92610623565b6101608301526100189133919061332d565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f957610f0e903690600401610d7b565b610f166133de565b60ff61086b5460e01c166110c75763ffffffff421690610140810190610f4e83610f3f84612b64565b63ffffffff9182169116101590565b6110b85761012081019263ffffffff610f6685612b64565b16106110a957610f7e610f79368361255e565b6132fc565b90610f92825f5261087260205260405f2090565b5461109b57610fd4610fce7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561108e60808301359260a08101359060c081013560e08201359761100b6110056101008501359b612b64565b91612b64565b60408401359184359361103a61103561102e602089013598610160810190612b6e565b3691610623565b6138ec565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346103f95760203660031901126103f9576004356110f381610457565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146103f9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036103f95761115c6133be565b6111646123ec565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111985750610018906144c5565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816111fe575b506111c9575f80fd5b610018926111f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f941461295a565b6143f4565b61122191935060203d602011611228575b61121981836105a7565b810190613563565b915f6111c0565b503d61120f565b60206003198201126103f9576004359067ffffffffffffffff82116103f95761125a91600401610c01565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106112b457505050505090565b90919293946020806112e5600193603f198682030187526040838b518051151584520151918185820152019061125e565b970193019301919392906112a5565b346103f9576113023661122f565b61130b816109cd565b9161131960405193846105a7565b818352601f19611328836109cd565b015f5b81811061139d5750505f5b82811061134f576040518061134b8682611282565b0390f35b8061139761135f60019387612bc4565b515f8061136d858989612bd8565b9061137d60405180938193612bef565b0390305af49061138b61292b565b60208201529015159052565b01611336565b6020906040516113ac8161054d565b5f81526060838201528282880101520161132b565b346103f9575f3660031901126103f95760206040516301e133808152f35b346103f95760403660031901126103f9576024356004356113fe6133be565b6114066133de565b61086c54680100000000000000008110156105695780600163ffffffff920161086c55836114338261289a565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b60403660031901126103f95760043561147f81610457565b60243567ffffffffffffffff81116103f95761149f903690600401610659565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146103f9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036103f9576115096133be565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561153d5761001891506144c5565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161159f575b5061156d575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036103f957610018916001916143f4565b6115b991925060203d6020116112285761121981836105a7565b905f611564565b346103f9575f3660031901126103f95760206001600160a01b036108695416604051908152f35b346103f9575f3660031901126103f9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103f95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126103f957611669600435610457565b611674602435610457565b61167f604435610457565b6116876104d8565b5061169360c4356104e8565b60e43567ffffffffffffffff81116103f9576106ce903690600401610659565b9181601f840112156103f95782359167ffffffffffffffff83116103f957602083818601950101116103f957565b346103f95760c03660031901126103f9576004356116fe81610457565b6024356044359160643561171181610457565b60843567ffffffffffffffff81116103f9576117319036906004016116b3565b9160a4359567ffffffffffffffff87116103f9576117566100189736906004016116b3565b969095612c4f565b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103f9575f3660031901126103f957602060ff61086b5460e81c166040519015158152f35b346103f9575f3660031901126103f95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346103f9575f3660031901126103f95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b801515036103f957565b346103f95760203660031901126103f9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356118c281611878565b6118ca6133be565b6118d26133de565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b90602061067492818152019061125e565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f95761195a9036906004016116b3565b6119626133be565b61196a6133de565b81016040828203126103f95781359161198283610457565b60208101359167ffffffffffffffff83116103f9576001600160a01b03926119aa9201610659565b91168015611a41576004825110611a32575f8083516020850182855af1906119d061292b565b9115611a23577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611a0a61134b9460405191829182611918565b0390a2611a176001606555565b60405191829182611918565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b6101603660031901126103f957600435611a6981610457565b602435611a7581610457565b60443591611a8283610457565b606435611a8e81610457565b60843560e43560c43560a435611aa383610457565b611aab6104f6565b93611ab4610504565b95610144359967ffffffffffffffff8b116103f957611ada6100189b36906004016116b3565b9a9099612cf1565b6101803660031901126103f957600435611afb81610457565b602435611b0781610457565b60443591611b1483610457565b606435611b2081610457565b60843560a43560c435611b31610468565b90611b3a6104f6565b92611b43610504565b94611b4c610512565b96610164359a67ffffffffffffffff8c116103f957611b726100189c36906004016116b3565b9b909a612d13565b346103f95760603660031901126103f9576020611ba8600435611b9c81610457565b60243560443591612e39565b604051908152f35b346103f95760603660031901126103f95760043560243567ffffffffffffffff81116103f957611be49036906004016116b3565b9060443567ffffffffffffffff81116103f957611c059036906004016116b3565b9190936040516020810190611c2e81611c2046898887612e77565b03601f1981018352826105a7565b51902003611cb7575f93611c49828695611c52940190612618565b92810190612e94565b51611c81611c5f336107ae565b91611c2060405193849260208401966337bfd2c960e21b885260248501612f5f565b5190305af4611c8e61292b565b9015611c9657005b60405163b8fe37a760e01b8152908190611cb39060048301611918565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346103f95760203660031901126103f957600435611ce26133be565b611cea6133de565b611cf38161289a565b611d2b576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126103f95760443560243560043560643560843560a4356101043560e43560c435611d6f610504565b93611d78610512565b95611d81610520565b97610184359b67ffffffffffffffff8d116103f957611da76100189d36906004016116b3565b9c909b612f81565b346103f95760e03660031901126103f95760043567ffffffffffffffff81116103f957611de0903690600401610d7b565b602435604435916064356084359060a43567ffffffffffffffff81116103f957611e0e9036906004016116b3565b92909160c4359667ffffffffffffffff88116103f957611e356100189836906004016116b3565b979096612ff9565b346103f95760603660031901126103f957600435611e5a816104e8565b60243590611e6782610457565b60443590611e7482610457565b60ff5f5460081c16156103f957611ea89063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611eb782856105a7565b600984526020808501926820a1a927a9a996ab1960b91b8452611edc815191826105a7565b6005815201640312e302e360dc1b815260ff5f5460081c16156103f9576005611f26936100189651902091209061047f5561048055611f19613d10565b611f21613d1f565b613d33565b613d8b565b346103f95760803660031901126103f957600435611f4881610457565b611fb7602435611f57816104e8565b604435611f6381610457565b60643591611f7083610457565b5f5494611f9d60ff600888901c1615611f88565b1590565b80978198612031575b8115612011575061295a565b85611fae600160ff195f5416175f55565b611ffa576130e7565b611fbd57005b611fcb61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61200c61010061ff00195f5416175f55565b6130e7565b303b15915081612023575b505f610808565b60ff1660011490505f61201c565b600160ff8216109150611f91565b346103f95760203660031901126103f9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561207f81611878565b6120876133be565b61208f6133de565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b346103f9575f3660031901126103f9576020604051468152f35b346103f9575f3660031901126103f957602063ffffffff61086b5460c01c16604051908152f35b346103f95760403660031901126103f95760043560243561213682614112565b6001600160a01b03821691825f5261087360205261216760405f20336001600160a01b03165f5260205260405f2090565b54928315612200576121b05f9161217d84614112565b61219a33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556121d0836121c16107ae84613752565b6121ca85613752565b90613e2c565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061224157505050505090565b909192939460208061225f600193603f19868203018752895161125e565b97019301930191939290612232565b346103f95761227c3661122f565b9061228682613195565b915f5b81811061229e576040518061134b868261220f565b5f806122ab838587612bd8565b906122bb60405180938193612bef565b0390305af46122c861292b565b90156122ee57906001916122dc8287612bc4565b526122e78186612bc4565b5001612289565b60448151106103f9578060248060046103f994015183010191016131de565b6101803660031901126103f9576044356024356004356064356084356101043560e43560c43560a43561233f846104e8565b612347610504565b94612350610512565b96610164359a67ffffffffffffffff8c116103f9576123766100189c36906004016116b3565b9b909a613241565b346103f95760206123bc6001600160a01b0361239936610883565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346103f9575f3660031901126103f95760206001600160a01b0361086a5416604051908152f35b604051906123fb6020836105a7565b5f808352366020840137565b346103f9575f3660031901126103f95761134b6124226123ec565b60405191829160208352602083019061125e565b346103f95760c03660031901126103f95760043560243560443560643560843567ffffffffffffffff81116103f9576124739036906004016116b3565b60a4939193359067ffffffffffffffff82116103f9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946124bc61250b9336906004016116b3565b9290916124c76133de565b6124d08a614112565b6124ff898b89896124e2368888610623565b926124ee368b8b610623565b946001600160a01b03469216613901565b60405196879687612c1c565b0390a36001606555005b346103f95760203660031901126103f9576004355f52610872602052602060405f2054604051908152f35b346103f9575f3660031901126103f957602060405163ffffffff8152f35b919091610180818403126103f9576125746105d8565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526125d8610120830161052e565b6101208501526125eb610140830161052e565b61014085015261016082013567ffffffffffffffff81116103f9576126109201610659565b610160830152565b906020828203126103f957813567ffffffffffffffff81116103f957610674920161255e565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f957611ba8610f79602092369060040161255e565b346103f9575f3660031901126103f957602060ff61086b5460e01c166040519015158152f35b346103f9575f3660031901126103f95760206040516ec097ce7bc90715b34b9f10000000008152f35b346103f95760203660031901126103f9576126f36004356126e381610457565b6126eb6133be565b611f216133de565b6001606555005b346103f95760603660031901126103f95760043567ffffffffffffffff81116103f95761272b90369060040161255e565b602435906044359061273b6133de565b60ff61086b5460e01c166110c75761014081015163ffffffff1661276a4263ffffffff165b9163ffffffff1690565b1015806127cd575b6127be57610d3092612783826132fc565b60c08301516020840151906101608501519261279d6105c9565b958652602086015260408501526060840152608083015260a0820152613863565b630c3a9b9d60e41b5f5260045ffd5b506127db6040820151613752565b6001600160a01b0316331415612772565b346103f95760203660031901126103f95761001860043561280c81610457565b6128146133be565b613de3565b6101603660031901126103f9576044356024356004356064356101043560e43560c43560a43560843561284b856104e8565b6101243595612859876104e8565b610144359967ffffffffffffffff8b116103f95761287e6100189b36906004016116b3565b9a9099613399565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156128b85761086c5f52600360205f20910201905f90565b612886565b346103f95760203660031901126103f95760043561086c548110156103f9576128e760409161289a565b506001815491015482519182526020820152f35b346103f95760203660031901126103f9576126f360043561291b81610457565b6129236133be565b611f266133de565b3d15612955573d9061293c82610607565b9161294a60405193846105a7565b82523d5f602084013e565b606090565b156103f957565b919061296b6133de565b60808101612983610cd882516001600160a01b031690565b602082019283514603612a8357611f846129ab918460016129a38961289a565b500154613483565b612a745763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612a6760608501956129f56129ef885163ffffffff1690565b89613507565b8051958051612a51612a43612a32604085019a8c612a198d51915163ffffffff1690565b8a516001600160a01b03169160a089019788519461357f565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612b01565b0390a46104756001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612aaf5750505090565b8251845260209384019390920191600101612aa2565b90602080835192838152019201905f5b818110612ae25750505090565b82516001600160a01b0316845260209384019390920191600101612ad5565b949695919260a0946001600160a01b03612b2d8196612b41958a5260c060208b015260c08a0190612a92565b921660408801528682036060880152612ac5565b951515608085015216910152565b61067490369061255e565b3561067481610457565b35610674816104e8565b903590601e19813603018212156103f9570180359067ffffffffffffffff82116103f9576020019181360383136103f957565b634e487b7160e01b5f52602160045260245ffd5b60031115612bbf57565b612ba1565b80518210156128b85760209160051b010190565b908210156128b85761125a9160051b810190612b6e565b908092918237015f815290565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612c4192610674979587526020870152608060408701526080860191612bfc565b926060818503910152612bfc565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612cb9959a949916612cab8a8c83612c96368888610623565b91612ca2368b8b610623565b9346908d613901565b604051978897169a87612c1c565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612cec57565b612cbe565b96949290916104759b9a9998969492612d1163ffffffff42169889612cd2565b985b9593919b999897969492909b612d276133de565b61086b5460ff8160e81c16612e2a5760c01c63ffffffff1696612d49886132e5565b612d709063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612d786105e8565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612dee919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e1192610623565b610180820152612e2090613a43565b6104756001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612e716074826105a7565b51902090565b939291602091612e8f91604087526040870191612bfc565b930152565b908160209103126103f957604051906020820182811067ffffffffffffffff8211176105695760405235815290565b9061018061016061067493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e0850152610100810151610100850152612f3d61012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061125e565b612f7760409295949395606083526060830190612ec3565b9460208201520152565b9c9a9998979695949392919096612f966133de565b60ff61086b5460e81c16612e2a57612faf908e33612e39565b96604051809e612fbe8261056e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612dee565b97929095969493919661300a6133de565b60ff61086b5460e01c166110c7576130256101408a01612b64565b6130344263ffffffff16612760565b1015806130c8575b6127be57612e20986130bd6130c397613058610f79368561255e565b996130616105c9565b9a61306c368661255e565b8c5260208c01528560408c01528660608c015261308a36868b610623565b60808c015260a08b01526130b56130a18435613752565b9860e0610100860135950135953691610623565b963691610623565b95613901565b613863565b506130d660408a0135613752565b6001600160a01b031633141561303c565b91929060ff5f5460081c16156103f95761311e9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409081519161312e81846105a7565b600983526020808401916820a1a927a9a996ab1960b91b8352613153815191826105a7565b600581520194640312e302e360dc1b865260ff5f5460081c16156103f957610475956005611f26936128149651902091209061047f5561048055611f19613d10565b9061319f826109cd565b6131ac60405191826105a7565b82815280926131bd601f19916109cd565b01905f5b8281106131cd57505050565b8060606020809385010152016131c1565b6020818303126103f95780519067ffffffffffffffff82116103f9570181601f820112156103f95780519061321282610607565b9261322060405194856105a7565b828452602083830101116103f957815f9260208093018386015e8301015290565b9b999897969492909593916132546133de565b61086b5460ff8160e81c16612e2a5760c01c63ffffffff1696613276886132e5565b61329d9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6132a56105e8565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612dee565b63ffffffff1663ffffffff8114612cec5760010190565b604051612e71816133196020820194604086526060830190612ec3565b46604083015203601f1981018352826105a7565b9190916133386133de565b60ff61086b5460e01c166110c75761014081015163ffffffff166133614263ffffffff16612760565b10158061337a575b6127be57612e2092612783826132fc565b506133886040820151613752565b6001600160a01b0316331415613369565b9a989795929693909491966133b563ffffffff42169788612cd2565b976132546133de565b60ff610c5a5460a01c16156133cf57565b631147e02f60e11b5f5260045ffd5b6002606554146103f9576002606555565b908160209103126103f9575161067481610457565b6040513d5f823e3d90fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613446575b50565b4761344e5750565b4790803b156103f9575f90600460405180948193630d0e30db60e41b83525af180156109c85715613443575f610475916105a7565b61067492916040516134fe81611c20602082019460208652805160408401526020810151606084015260a06134c8604083015160c06080870152610100860190612a92565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612ac5565b51902091613e74565b61351260029161289a565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b808092161461355457825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b908160209103126103f9575190565b91908201809211612cec57565b91959495939092935f968151908181510361374357816135fe575b505050826135a9575b50505050565b63ffffffff6135e06107ae836107ae7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588613f37565b6040805195865233602087015290959190911693a45f8080806135a3565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109c8575f91613724575b505f5f5b8481106136445750505061359a565b61364e8187612bc4565b5161365c575b600101613635565b906136729061366b8388612bc4565b5190613572565b90828211613715576136ac611f8461369a61368d8488612bc4565b516001600160a01b031690565b6136a4848a612bc4565b51908a613ec5565b15613654579a506136bd8b86612bc4565b5161370b6137038d6136ee61368d6136e78c6001600160a01b03165f5261087360205260405f2090565b9289612bc4565b6001600160a01b03165f5260205260405f2090565b918254613572565b905560019a613654565b632ddaa83160e11b5f5260045ffd5b61373d915060203d6020116112285761121981836105a7565b5f613631565b6319a5316760e31b5f5260045ffd5b6001600160a01b039061376481614112565b1690565b91611f84916137e4936040815191015191604051916137868361058b565b82526134fe6137a260208401924684526040850195865261289a565b5054936040519283916137c9602084019660208852516060604086015260a0850190612ec3565b9151606084015251608083015203601f1981018352826105a7565b612a7457565b805163ffffffff6101208201511663ffffffff429116106110a9576020820151906002613820835f5261087260205260405f2090565b5414613854576104759260026138416001945f5261087260205260405f2090565b5561384f60025f84846141bf565b6142c1565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110a957602083015192600161389a855f5261087260205260405f2090565b54036138e5576001935b60026138b9825f5261087260205260405f2090565b541461385457610475945f9460026138dd61384f945f5261087260205260405f2090565b5584846141bf565b5f936138a4565b805190816138fa5750505f90565b6020012090565b9392604293610475979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261396860e0826105a7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526139c060a0826105a7565b519020906040519161190160f01b8352600283015260228201522090614526565b91908203918211612cec57565b9692610140989563ffffffff9586949285936106749e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061125e565b613a4d8151614112565b6060810190815115613d0257610120810190613a79613a70835163ffffffff1690565b63ffffffff1690565b804210908115613cc9575b50613cba57610140810192613a9d845163ffffffff1690565b63ffffffff613ace817f00000000000000000000000000000000000000000000000000000000000000001642613572565b911611613cab5761016082015163ffffffff16918280613c68575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613c5f575b15613c0f5760808301513403613c0057833b156103f9575f60049460405195868092630d0e30db60e41b825234905af19081156109c8577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613be192613be6575b505b5191519260808101519060a081015160c082015197613bc0613bb56101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b6139ee565b0390a4565b80613bf45f613bfa936105a7565b806103ef565b5f613b87565b636452a35d60e01b5f5260045ffd5b925034613c0057613be183613c5a613c4b6107ae7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613752565b60808601519030903390614612565b613b89565b50341515613b25565b6301e133801015613c93575b60e081015115613c84575f613ae9565b63495d907f60e01b5f5260045ffd5b91613ca59063ffffffff421690612cd2565b91613c74565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613cd49150426139e1565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613a84565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156103f957565b60ff5f5460081c16156103f9576001606555565b6001600160a01b03168015613d7c57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613dd457806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0380610c5a54921691826001600160a01b0319821617610c5a5516907fadbc50c98ab7fb1d3a35b4fc0d37eef0251e0aa6f831f8a3c5f6ed8c1efac8ce5f80a3565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261047591613e6f82606481015b03601f1981018452836105a7565b614653565b929091905f915b8451831015613ebd57613e8e8386612bc4565b519081811015613eac575f52602052600160405f205b920191613e7b565b905f52602052600160405f20613ea4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91613f018160648101611c20565b519082855af1903d5f519083613f18575b50505090565b91925090613f2d57503b15155b5f8080613f12565b6001915014613f25565b906001600160a01b03811690826001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683145f14614065575050803b156103f957604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109c857614051575b50613fc36107ae610c5a546001600160a01b031690565b90613fd761086a546001600160a01b031690565b90823b156103f95760405163cd58657960e01b81525f600482018190526001600160a01b03909316602482015260448101829052606481018390526001608482015260c060a482015260c4810183905292839182908160e481015b03925af180156109c8576140435750565b80613bf45f610475936105a7565b80613bf45f61405f936105a7565b5f613fac565b61408691926140806107ae610c5a546001600160a01b031690565b906146e4565b61409c6107ae610c5a546001600160a01b031690565b906140b061086a546001600160a01b031690565b91803b156103f957614032935f80946040519687958694859363cd58657960e01b855260048501919260e0936001600160a01b0380935f865216602085015260408401521660608201526001608082015260c060a08201525f60c08201520190565b60a01c61411b57565b6379ec0ed760e11b5f5260045ffd5b61413382612bb5565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906141b882612bb5565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613be160808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61422361012085015163ffffffff1690565b61014085015163ffffffff169160408601519386519561428761424f61016060208b01519a01516138ec565b9960608c01519b604061426560808301516138ec565b9101519060206142736105f8565b9e8f528e015260408d015260608c0161412a565b6040519c8d9c8d614136565b9061067494936080936001600160a01b0380931684526020840152166040820152816060820152019061125e565b9060806142cf910151613752565b9160806040830151926142e56060820151613752565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146143d65750156143c2575b61434091506001600160a01b03851661478a565b01519081511515806143b8575b6143575750505050565b6001600160a01b0316803b156103f95761438d935f809460405196879586948593633a5be8cb60e01b8552339160048601614293565b03925af180156109c8576143a4575b8080806135a3565b80613bf45f6143b2936105a7565b5f61439c565b50803b151561434d565b6143cf9130903390614612565b5f8461432c565b906143eb576143e6923390614612565b614340565b6143e692613e2c565b916143fe836144c5565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916144bd575b50614441575050565b613443915f80604051936144566060866105a7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46144b761292b565b91614931565b90505f614438565b803b156103f9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9190916145338284614900565b9390926005851015612bbf5761455c941593846145fc575b508315614571575b50505015151590565b61456257565b63938a182160e01b5f5260045ffd5b5f935090611c206145a98594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061125e565b51915afa6145b561292b565b816145ee575b816145ca575b505f8080614553565b90506145e7630b135d3f60e11b9160208082518301019101613563565b145f6145c1565b9050602081511015906145bb565b6001600160a01b0384811691161493505f61454b565b9091926001600160a01b036104759481604051956323b872dd60e01b6020880152166024860152166044840152606483015260648252613e6f6084836105a7565b906001600160a01b036146ae92165f80604051936146726040866105a7565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af16144b761292b565b805180159182156146c3575b5050156103f957565b6020818101935091810103126103f957516146dd81611878565b5f806146ba565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109c85761047594613e6f9261473c925f9161476b575b50613572565b60405163095ea7b360e01b60208201526001600160a01b03909416602485015260448401528260648101613e61565b614784915060203d6020116112285761121981836105a7565b5f614736565b906001600160a01b038216803b158015614857575b1561482357506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156103f957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109c8576104759361480f575b506148d8565b80613bf45f61481d936105a7565b5f614809565b61047592506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613e2c565b5061486181614866565b61479f565b803b61487181610607565b9061487f60405192836105a7565b8082525f6020830180943c5190516001600160e81b031981169190600382106148b9575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f806148a3565b8147106103f9575f8080936001600160a01b038294165af16148f861292b565b50156103f957565b9060418151145f146149285761125a91602082015190606060408401519301515f1a9061495c565b50505f90600290565b9192501561494d57815115614944575090565b3b156103f95790565b5080519081156103f957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116149cc576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109c8575f516001600160a01b038116156149c457905f90565b505f90600190565b505050505f9060039056fea264697066735822122020a4d38a5ee6ae245abb20c2333d8b494c4d34f76124e4e240fa5efb318e3b3264736f6c634300081e0033"}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"}],"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":"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":"POLYGON_ZKEVM_L1_NETWORK_ID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"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":"_l2PolygonZkEVMBridge","type":"address","internalType":"contract IPolygonZkEVMBridge"},{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l2PolygonZkEVMBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolygonZkEVMBridge"}],"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":"onMessageReceived","inputs":[{"name":"_originAddress","type":"address","internalType":"address"},{"name":"_originNetwork","type":"uint32","internalType":"uint32"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"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":"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":"setL2PolygonZkEVMBridge","inputs":[{"name":"_l2PolygonZkEVMBridge","type":"address","internalType":"contract IPolygonZkEVMBridge"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"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":"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":"ReceivedMessageFromL1","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"originAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetPolygonZkEVMBridge","inputs":[{"name":"newPolygonZkEVMBridge","type":"address","indexed":true,"internalType":"address"},{"name":"oldPolygonZkEVMBridge","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":"AdminCallNotValidated","inputs":[]},{"type":"error","name":"AdminCallValidatedAlreadySet","inputs":[]},{"type":"error","name":"CallerNotBridge","inputs":[]},{"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":"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":"OriginSenderNotCrossDomain","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":"SourceChainNotHubChain","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101403461016357601f614c1738819003918201601f19168301916001600160401b03831184841017610167578084926060946040528339810103126101635780516001600160a01b03811691908290036101635761006c60406100656020840161017b565b920161017b565b91306080525f60c0525f60a05260e05261010052610120525f5460ff8160081c166101635760ff80821603610129575b604051614a8a908161018d82396080518181816110fd015281816114aa0152611601015260a051816117db015260c05181611854015260e0518181816106fd0152818161341601528181613af901528181613f8901528181614338015281816147b1015261483401526101005181818161177a0152613cd80152610120518181816104330152613aa50152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f61009c565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b519063ffffffff821682036101635756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630620b2121461036d578063079bd2c7146103ea5780630cb84d9a146103e55780631186ec33146103e057806315348e441461036d57806317fcb39b146103db5780631806b5f2146103d657806319c1648c146103d15780631b3d5559146103cc5780631fab657c146103c7578063291dc2aa146103c257806329cb924d146103bd5780632e378115146103b85780632e63e59a146103b35780633659cfe6146103ae578063437b9116146103a9578063490e49ef146103a4578063493a4f841461039f5780634f1ef2861461039a5780635285e0581461039557806352d1902d14610390578063541f4f141461038b578063577f51f81461038657806357f6dcb8146103815780636068d6cb1461037c57806361a04d3014610377578063670fa8ac146103725780636bbbcd2e1461036d5780636fd5c10e14610368578063738b62e5146103635780637659f9e01461035e5780637aef642c146103595780637b939232146103545780637ef413e11461034f57806382e2c43f1461034a5780638a7860ce146103455780638b15788e1461034057806397943aa91461033b578063979f2bc214610336578063983cb80f1461033157806399cc29681461032c5780639a8a059214610327578063a1244c6714610322578063a18a096e1461031d578063ac9650d814610318578063ad5425c614610313578063adb5a6a6146102cd578063b370b7f51461030e578063b4c0d7ab14610309578063babb6aac14610304578063c35c83fc146102ff578063ceb4c987146102fa578063d7e1583a146102f5578063dda52113146102f0578063ddd224f1146102eb578063de7eba78146102e6578063deff4b24146102e1578063e062ebcc146102dc578063ea86bd46146102d7578063ee2a53f8146102d2578063f79f29ed146102cd5763fc8a584f0361000e576128f8565b61237b565b6128ba565b612816565b6127e9565b6126f7565b6126c0565b612697565b612671565b61263b565b61253d565b612512565b612433565b612404565b6123c2565b61230a565b61226b565b612116565b6120ef565b6120d5565b61203f565b611f2b565b611e3d565b611daf565b611d3e565b611cc6565b611bb0565b611b7a565b611ae2565b611a50565b611929565b611882565b611838565b6103fd565b6117fe565b6117c4565b61179e565b61175e565b6116e1565b611651565b6115e7565b6115c0565b611467565b6113df565b6113c1565b6112f4565b6110d6565b610edd565b610d8a565b610d61565b610d3a565b610c32565b610b10565b6108a8565b610721565b6106de565b610677565b610482565b610417565b5f9103126103f957565b5f80fd5b346103f9575f3660031901126103f95760206040515f8152f35b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036103f957565b60e4359061047582610457565b565b359061047582610457565b346103f95760203660031901126103f9576001600160a01b036004356104a781610457565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b82036103f957565b60a435908160070b82036103f957565b63ffffffff8116036103f957565b6101043590610475826104e8565b6101243590610475826104e8565b6101443590610475826104e8565b6101643590610475826104e8565b3590610475826104e8565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761056957604052565b610539565b6101a0810190811067ffffffffffffffff82111761056957604052565b6060810190811067ffffffffffffffff82111761056957604052565b90601f8019910116810190811067ffffffffffffffff82111761056957604052565b6040519061047560c0836105a7565b60405190610475610180836105a7565b604051906104756101a0836105a7565b604051906104756080836105a7565b67ffffffffffffffff811161056957601f01601f191660200190565b92919261062f82610607565b9161063d60405193846105a7565b8294818452818301116103f9578281602093845f960137010152565b9080601f830112156103f95781602061067493359101610623565b90565b6101003660031901126103f95761068f600435610457565b61069a602435610457565b6106a26104c8565b506106ae60a4356104e8565b60c43567ffffffffffffffff81116103f9576106ce903690600401610659565b506332ed1ba560e21b5f5260045ffd5b346103f9575f3660031901126103f95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60603660031901126103f95760043561073981610457565b602435610745816104e8565b60443567ffffffffffffffff81116103f957610765903690600401610659565b90610c5a5460ff8160a01c16610874576107ae6107ae7401000000000000000000000000000000000000000060ff60a01b196107ba94161780610c5a556001600160a01b031690565b6001600160a01b031690565b3303610865576001600160a01b036107de6107ae610869546001600160a01b031690565b93169283036108565763ffffffff16610847575f8082602061080e94519101305af4610808612928565b50612957565b337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a361001860ff60a01b19610c5a5416610c5a55565b6334645e6160e01b5f5260045ffd5b631877afe360e21b5f5260045ffd5b63356a0b3d60e21b5f5260045ffd5b63c3490b1560e01b5f5260045ffd5b60409060031901126103f95760043561089b81610457565b9060243561067481610457565b346103f9576108b636610883565b6108be6133bb565b6108c66133db565b6001600160a01b038116918215158061095f575b610950576109216001600160a01b0392610906836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109c8575f91610999575b506001600160a01b03808316911614156108da565b6109bb915060203d6020116109c1575b6109b381836105a7565b8101906133ec565b5f610984565b503d6109a9565b613401565b67ffffffffffffffff81116105695760051b60200190565b9080601f830112156103f95781356109fc816109cd565b92610a0a60405194856105a7565b81845260208085019260051b8201019283116103f957602001905b828210610a325750505090565b8135815260209182019101610a25565b9080601f830112156103f9578135610a59816109cd565b92610a6760405194856105a7565b81845260208085019260051b8201019283116103f957602001905b828210610a8f5750505090565b602080918335610a9e81610457565b815201910190610a82565b929190610ab5816109cd565b93610ac360405195866105a7565b602085838152019160051b81019283116103f957905b828210610ae557505050565b8135815260209182019101610ad9565b9080601f830112156103f95781602061067493359101610aa9565b60603660031901126103f957600435610b28816104e8565b6024359067ffffffffffffffff82116103f95760c060031983360301126103f957610b516105c9565b918060040135835260248101356020840152604481013567ffffffffffffffff81116103f957610b8790600436918401016109e5565b6040840152610b986064820161052e565b6060840152610ba960848201610477565b608084015260a48101359067ffffffffffffffff82116103f9576004610bd29236920101610a42565b60a08301526044359167ffffffffffffffff83116103f957610bfb610018933690600401610af5565b9161295e565b9181601f840112156103f95782359167ffffffffffffffff83116103f9576020808501948460051b0101116103f957565b346103f95760603660031901126103f95760043567ffffffffffffffff81116103f9578036039060606003198301126103f957602435610c71816104e8565b60443567ffffffffffffffff81116103f957610c91903690600401610c01565b919093610c9c6133db565b60048401359061018219018112156103f957610d3094610d2b93610cc76004610d2494880101612b4c565b95610cdd610cd8608089015161374f565b61340c565b6044610ce8886132f9565b91013560208801519061016089015192610d006105c9565b998a5260208a01526040890152606088015260808701525f60a08701523691610aa9565b9083613765565b6137e7565b6100186001606555565b346103f9575f3660031901126103f95760206001600160a01b03610c5a5416604051908152f35b346103f9575f3660031901126103f9576020604051428152f35b90816101809103126103f95790565b346103f95760403660031901126103f95760043567ffffffffffffffff81116103f957610dbb903690600401610d7b565b602435610dc782612b57565b6001600160a01b031691610ddd60208201612b57565b6001600160a01b031690610df360408201612b57565b6001600160a01b031690610e0960608201612b57565b6001600160a01b0316610e1e60808301612b57565b6001600160a01b031660e083013560c084013560a0850135610e436101008701612b61565b93610e516101208801612b61565b95610e5f6101408901612b61565b976101608101610e6e91612b6b565b99909a610e796105d8565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecb92610623565b6101608301526100189133919061332a565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f957610f0e903690600401610d7b565b610f166133db565b60ff61086b5460e01c166110c75763ffffffff421690610140810190610f4e83610f3f84612b61565b63ffffffff9182169116101590565b6110b85761012081019263ffffffff610f6685612b61565b16106110a957610f7e610f79368361255b565b6132f9565b90610f92825f5261087260205260405f2090565b5461109b57610fd4610fce7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561108e60808301359260a08101359060c081013560e08201359761100b6110056101008501359b612b61565b91612b61565b60408401359184359361103a61103561102e602089013598610160810190612b6b565b3691610623565b6138e9565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346103f95760203660031901126103f9576004356110f381610457565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146103f9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036103f95761115c6133bb565b6111646123e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611198575061001890614502565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f92816111fe575b506111c9575f80fd5b610018926111f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612957565b614431565b61122191935060203d602011611228575b61121981836105a7565b810190613560565b915f6111c0565b503d61120f565b60206003198201126103f9576004359067ffffffffffffffff82116103f95761125a91600401610c01565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106112b457505050505090565b90919293946020806112e5600193603f198682030187526040838b518051151584520151918185820152019061125e565b970193019301919392906112a5565b346103f9576113023661122f565b61130b816109cd565b9161131960405193846105a7565b818352601f19611328836109cd565b015f5b81811061139d5750505f5b82811061134f576040518061134b8682611282565b0390f35b8061139761135f60019387612bc1565b515f8061136d858989612bd5565b9061137d60405180938193612bec565b0390305af49061138b612928565b60208201529015159052565b01611336565b6020906040516113ac8161054d565b5f81526060838201528282880101520161132b565b346103f9575f3660031901126103f95760206040516301e133808152f35b346103f95760403660031901126103f9576024356004356113fe6133bb565b6114066133db565b61086c54680100000000000000008110156105695780600163ffffffff920161086c558361143382612897565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b60403660031901126103f95760043561147f81610457565b60243567ffffffffffffffff81116103f95761149f903690600401610659565b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168030146103f9576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416036103f9576115096133bb565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561153d576100189150614502565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f918161159f575b5061156d575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc036103f95761001891600191614431565b6115b991925060203d6020116112285761121981836105a7565b905f611564565b346103f9575f3660031901126103f95760206001600160a01b036108695416604051908152f35b346103f9575f3660031901126103f9576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103f95760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126103f957611669600435610457565b611674602435610457565b61167f604435610457565b6116876104d8565b5061169360c4356104e8565b60e43567ffffffffffffffff81116103f9576106ce903690600401610659565b9181601f840112156103f95782359167ffffffffffffffff83116103f957602083818601950101116103f957565b346103f95760c03660031901126103f9576004356116fe81610457565b6024356044359160643561171181610457565b60843567ffffffffffffffff81116103f9576117319036906004016116b3565b9160a4359567ffffffffffffffff87116103f9576117566100189736906004016116b3565b969095612c4c565b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103f9575f3660031901126103f957602060ff61086b5460e81c166040519015158152f35b346103f9575f3660031901126103f95760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346103f9575f3660031901126103f95760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346103f9575f3660031901126103f957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b801515036103f957565b346103f95760203660031901126103f9577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356118c281611878565b6118ca6133bb565b6118d26133db565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b90602061067492818152019061125e565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f95761195a9036906004016116b3565b6119626133bb565b61196a6133db565b81016040828203126103f95781359161198283610457565b60208101359167ffffffffffffffff83116103f9576001600160a01b03926119aa9201610659565b91168015611a41576004825110611a32575f8083516020850182855af1906119d0612928565b9115611a23577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611a0a61134b9460405191829182611918565b0390a2611a176001606555565b60405191829182611918565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b6101603660031901126103f957600435611a6981610457565b602435611a7581610457565b60443591611a8283610457565b606435611a8e81610457565b60843560e43560c43560a435611aa383610457565b611aab6104f6565b93611ab4610504565b95610144359967ffffffffffffffff8b116103f957611ada6100189b36906004016116b3565b9a9099612cee565b6101803660031901126103f957600435611afb81610457565b602435611b0781610457565b60443591611b1483610457565b606435611b2081610457565b60843560a43560c435611b31610468565b90611b3a6104f6565b92611b43610504565b94611b4c610512565b96610164359a67ffffffffffffffff8c116103f957611b726100189c36906004016116b3565b9b909a612d10565b346103f95760603660031901126103f9576020611ba8600435611b9c81610457565b60243560443591612e36565b604051908152f35b346103f95760603660031901126103f95760043560243567ffffffffffffffff81116103f957611be49036906004016116b3565b9060443567ffffffffffffffff81116103f957611c059036906004016116b3565b9190936040516020810190611c2e81611c2046898887612e74565b03601f1981018352826105a7565b51902003611cb7575f93611c49828695611c52940190612615565b92810190612e91565b51611c81611c5f336107ae565b91611c2060405193849260208401966337bfd2c960e21b885260248501612f5c565b5190305af4611c8e612928565b9015611c9657005b60405163b8fe37a760e01b8152908190611cb39060048301611918565b0390fd5b630f0c8f4760e11b5f5260045ffd5b346103f95760203660031901126103f957600435611ce26133bb565b611cea6133db565b611cf381612897565b611d2b576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126103f95760443560243560043560643560843560a4356101043560e43560c435611d6f610504565b93611d78610512565b95611d81610520565b97610184359b67ffffffffffffffff8d116103f957611da76100189d36906004016116b3565b9c909b612f7e565b346103f95760e03660031901126103f95760043567ffffffffffffffff81116103f957611de0903690600401610d7b565b602435604435916064356084359060a43567ffffffffffffffff81116103f957611e0e9036906004016116b3565b92909160c4359667ffffffffffffffff88116103f957611e356100189836906004016116b3565b979096612ff6565b346103f95760603660031901126103f957600435611e5a816104e8565b60243590611e6782610457565b60443590611e7482610457565b60ff5f5460081c16156103f957611ea89063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611eb782856105a7565b600984526020808501926820a1a927a9a996ab1960b91b8452611edc815191826105a7565b6005815201640312e302e360dc1b815260ff5f5460081c16156103f9576005611f26936100189651902091209061047f5561048055611f19613d0d565b611f21613d1c565b613d30565b613d88565b346103f95760803660031901126103f957600435611f4881610457565b611fb7602435611f57816104e8565b604435611f6381610457565b60643591611f7083610457565b5f5494611f9d60ff600888901c1615611f88565b1590565b80978198612031575b81156120115750612957565b85611fae600160ff195f5416175f55565b611ffa576130e4565b611fbd57005b611fcb61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61200c61010061ff00195f5416175f55565b6130e4565b303b15915081612023575b505f610808565b60ff1660011490505f61201c565b600160ff8216109150611f91565b346103f95760203660031901126103f9577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561207f81611878565b6120876133bb565b61208f6133db565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b346103f9575f3660031901126103f9576020604051468152f35b346103f9575f3660031901126103f957602063ffffffff61086b5460c01c16604051908152f35b346103f95760403660031901126103f9576004356024356121368261414d565b6001600160a01b03821691825f5261087360205261216760405f20336001600160a01b03165f5260205260405f2090565b549283156121fd576121b05f9161217d8461414d565b61219a33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556121cd836121be8361374f565b6121c78561374f565b90613e29565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061223e57505050505090565b909192939460208061225c600193603f19868203018752895161125e565b9701930193019193929061222f565b346103f9576122793661122f565b9061228382613192565b915f5b81811061229b576040518061134b868261220c565b5f806122a8838587612bd5565b906122b860405180938193612bec565b0390305af46122c5612928565b90156122eb57906001916122d98287612bc1565b526122e48186612bc1565b5001612286565b60448151106103f9578060248060046103f994015183010191016131db565b6101803660031901126103f9576044356024356004356064356084356101043560e43560c43560a43561233c846104e8565b612344610504565b9461234d610512565b96610164359a67ffffffffffffffff8c116103f9576123736100189c36906004016116b3565b9b909a61323e565b346103f95760206123b96001600160a01b0361239636610883565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346103f9575f3660031901126103f95760206001600160a01b0361086a5416604051908152f35b604051906123f86020836105a7565b5f808352366020840137565b346103f9575f3660031901126103f95761134b61241f6123e9565b60405191829160208352602083019061125e565b346103f95760c03660031901126103f95760043560243560443560643560843567ffffffffffffffff81116103f9576124709036906004016116b3565b60a4939193359067ffffffffffffffff82116103f9577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946124b96125089336906004016116b3565b9290916124c46133db565b6124cd8a61414d565b6124fc898b89896124df368888610623565b926124eb368b8b610623565b946001600160a01b034692166138fe565b60405196879687612c19565b0390a36001606555005b346103f95760203660031901126103f9576004355f52610872602052602060405f2054604051908152f35b346103f9575f3660031901126103f957602060405163ffffffff8152f35b919091610180818403126103f9576125716105d8565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526125d5610120830161052e565b6101208501526125e8610140830161052e565b61014085015261016082013567ffffffffffffffff81116103f95761260d9201610659565b610160830152565b906020828203126103f957813567ffffffffffffffff81116103f957610674920161255b565b346103f95760203660031901126103f95760043567ffffffffffffffff81116103f957611ba8610f79602092369060040161255b565b346103f9575f3660031901126103f957602060ff61086b5460e01c166040519015158152f35b346103f9575f3660031901126103f95760206040516ec097ce7bc90715b34b9f10000000008152f35b346103f95760203660031901126103f9576126f06004356126e081610457565b6126e86133bb565b611f216133db565b6001606555005b346103f95760603660031901126103f95760043567ffffffffffffffff81116103f95761272890369060040161255b565b60243590604435906127386133db565b60ff61086b5460e01c166110c75761014081015163ffffffff166127674263ffffffff165b9163ffffffff1690565b1015806127ca575b6127bb57610d3092612780826132f9565b60c08301516020840151906101608501519261279a6105c9565b958652602086015260408501526060840152608083015260a0820152613860565b630c3a9b9d60e41b5f5260045ffd5b506127d8604082015161374f565b6001600160a01b031633141561276f565b346103f95760203660031901126103f95761001860043561280981610457565b6128116133bb565b613de0565b6101603660031901126103f9576044356024356004356064356101043560e43560c43560a435608435612848856104e8565b6101243595612856876104e8565b610144359967ffffffffffffffff8b116103f95761287b6100189b36906004016116b3565b9a9099613396565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156128b55761086c5f52600360205f20910201905f90565b612883565b346103f95760203660031901126103f95760043561086c548110156103f9576128e4604091612897565b506001815491015482519182526020820152f35b346103f95760203660031901126103f9576126f060043561291881610457565b6129206133bb565b611f266133db565b3d15612952573d9061293982610607565b9161294760405193846105a7565b82523d5f602084013e565b606090565b156103f957565b91906129686133db565b60808101612980610cd882516001600160a01b031690565b602082019283514603612a8057611f846129a8918460016129a089612897565b500154613480565b612a715763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612a6460608501956129f26129ec885163ffffffff1690565b89613504565b8051958051612a4e612a40612a2f604085019a8c612a168d51915163ffffffff1690565b8a516001600160a01b03169160a089019788519461357c565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612afe565b0390a46104756001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612aac5750505090565b8251845260209384019390920191600101612a9f565b90602080835192838152019201905f5b818110612adf5750505090565b82516001600160a01b0316845260209384019390920191600101612ad2565b949695919260a0946001600160a01b03612b2a8196612b3e958a5260c060208b015260c08a0190612a8f565b921660408801528682036060880152612ac2565b951515608085015216910152565b61067490369061255b565b3561067481610457565b35610674816104e8565b903590601e19813603018212156103f9570180359067ffffffffffffffff82116103f9576020019181360383136103f957565b634e487b7160e01b5f52602160045260245ffd5b60031115612bbc57565b612b9e565b80518210156128b55760209160051b010190565b908210156128b55761125a9160051b810190612b6b565b908092918237015f815290565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612c3e92610674979587526020870152608060408701526080860191612bf9565b926060818503910152612bf9565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612cb6959a949916612ca88a8c83612c93368888610623565b91612c9f368b8b610623565b9346908d6138fe565b604051978897169a87612c19565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612ce957565b612cbb565b96949290916104759b9a9998969492612d0e63ffffffff42169889612ccf565b985b9593919b999897969492909b612d246133db565b61086b5460ff8160e81c16612e275760c01c63ffffffff1696612d46886132e2565b612d6d9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612d756105e8565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612deb919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e0e92610623565b610180820152612e1d90613a40565b6104756001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612e6e6074826105a7565b51902090565b939291602091612e8c91604087526040870191612bf9565b930152565b908160209103126103f957604051906020820182811067ffffffffffffffff8211176105695760405235815290565b9061018061016061067493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e0850152610100810151610100850152612f3a61012082015161012086019063ffffffff169052565b6101408181015163ffffffff169085015201519181610160820152019061125e565b612f7460409295949395606083526060830190612ec0565b9460208201520152565b9c9a9998979695949392919096612f936133db565b60ff61086b5460e81c16612e2757612fac908e33612e36565b96604051809e612fbb8261056e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612deb565b9792909596949391966130076133db565b60ff61086b5460e01c166110c7576130226101408a01612b61565b6130314263ffffffff1661275d565b1015806130c5575b6127bb57612e1d986130ba6130c097613055610f79368561255b565b9961305e6105c9565b9a613069368661255b565b8c5260208c01528560408c01528660608c015261308736868b610623565b60808c015260a08b01526130b261309e843561374f565b9860e0610100860135950135953691610623565b963691610623565b956138fe565b613860565b506130d360408a013561374f565b6001600160a01b0316331415613039565b91929060ff5f5460081c16156103f95761311b9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409081519161312b81846105a7565b600983526020808401916820a1a927a9a996ab1960b91b8352613150815191826105a7565b600581520194640312e302e360dc1b865260ff5f5460081c16156103f957610475956005611f26936128119651902091209061047f5561048055611f19613d0d565b9061319c826109cd565b6131a960405191826105a7565b82815280926131ba601f19916109cd565b01905f5b8281106131ca57505050565b8060606020809385010152016131be565b6020818303126103f95780519067ffffffffffffffff82116103f9570181601f820112156103f95780519061320f82610607565b9261321d60405194856105a7565b828452602083830101116103f957815f9260208093018386015e8301015290565b9b999897969492909593916132516133db565b61086b5460ff8160e81c16612e275760c01c63ffffffff1696613273886132e2565b61329a9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6132a26105e8565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612deb565b63ffffffff1663ffffffff8114612ce95760010190565b604051612e6e816133166020820194604086526060830190612ec0565b46604083015203601f1981018352826105a7565b9190916133356133db565b60ff61086b5460e01c166110c75761014081015163ffffffff1661335e4263ffffffff1661275d565b101580613377575b6127bb57612e1d92612780826132f9565b50613385604082015161374f565b6001600160a01b0316331415613366565b9a989795929693909491966133b263ffffffff42169788612ccf565b976132516133db565b60ff610c5a5460a01c16156133cc57565b631147e02f60e11b5f5260045ffd5b6002606554146103f9576002606555565b908160209103126103f9575161067481610457565b6040513d5f823e3d90fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613443575b50565b4761344b5750565b4790803b156103f9575f90600460405180948193630d0e30db60e41b83525af180156109c85715613440575f610475916105a7565b61067492916040516134fb81611c20602082019460208652805160408401526020810151606084015260a06134c5604083015160c06080870152610100860190612a8f565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612ac2565b51902091613eaf565b61350f600291612897565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b808092161461355157825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b908160209103126103f9575190565b91908201809211612ce957565b91959495939092935f968151908181510361374057816135fb575b505050826135a6575b50505050565b63ffffffff6135dd6107ae836107ae7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588613f72565b6040805195865233602087015290959190911693a45f8080806135a0565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109c8575f91613721575b505f5f5b84811061364157505050613597565b61364b8187612bc1565b51613659575b600101613632565b9061366f906136688388612bc1565b519061356f565b90828211613712576136a9611f8461369761368a8488612bc1565b516001600160a01b031690565b6136a1848a612bc1565b51908a613f00565b15613651579a506136ba8b86612bc1565b516137086137008d6136eb61368a6136e48c6001600160a01b03165f5261087360205260405f2090565b9289612bc1565b6001600160a01b03165f5260205260405f2090565b91825461356f565b905560019a613651565b632ddaa83160e11b5f5260045ffd5b61373a915060203d6020116112285761121981836105a7565b5f61362e565b6319a5316760e31b5f5260045ffd5b6001600160a01b03906137618161414d565b1690565b91611f84916137e1936040815191015191604051916137838361058b565b82526134fb61379f602084019246845260408501958652612897565b5054936040519283916137c6602084019660208852516060604086015260a0850190612ec0565b9151606084015251608083015203601f1981018352826105a7565b612a7157565b805163ffffffff6101208201511663ffffffff429116106110a957602082015190600261381d835f5261087260205260405f2090565b54146138515761047592600261383e6001945f5261087260205260405f2090565b5561384c60025f84846141fa565b6142fc565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110a9576020830151926001613897855f5261087260205260405f2090565b54036138e2576001935b60026138b6825f5261087260205260405f2090565b541461385157610475945f9460026138da61384c945f5261087260205260405f2090565b5584846141fa565b5f936138a1565b805190816138f75750505f90565b6020012090565b9392604293610475979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261396560e0826105a7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526139bd60a0826105a7565b519020906040519161190160f01b8352600283015260228201522090614563565b91908203918211612ce957565b9692610140989563ffffffff9586949285936106749e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e083015261010082015281610120820152019061125e565b613a4a815161414d565b6060810190815115613cff57610120810190613a76613a6d835163ffffffff1690565b63ffffffff1690565b804210908115613cc6575b50613cb757610140810192613a9a845163ffffffff1690565b63ffffffff613acb817f0000000000000000000000000000000000000000000000000000000000000000164261356f565b911611613ca85761016082015163ffffffff16918280613c65575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613c5c575b15613c0c5760808301513403613bfd57833b156103f9575f60049460405195868092630d0e30db60e41b825234905af19081156109c8577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613bde92613be3575b505b5191519260808101519060a081015160c082015197613bbd613bb26101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b6139eb565b0390a4565b80613bf15f613bf7936105a7565b806103ef565b5f613b84565b636452a35d60e01b5f5260045ffd5b925034613bfd57613bde83613c57613c486107ae7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3975161374f565b6080860151903090339061464f565b613b86565b50341515613b22565b6301e133801015613c90575b60e081015115613c81575f613ae6565b63495d907f60e01b5f5260045ffd5b91613ca29063ffffffff421690612ccf565b91613c71565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613cd19150426139de565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613a81565b6231010160e51b5f5260045ffd5b60ff5f5460081c16156103f957565b60ff5f5460081c16156103f9576001606555565b6001600160a01b03168015613d7957806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613dd157806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0380610c5a54921691826001600160a01b0319821617610c5a5516907fadbc50c98ab7fb1d3a35b4fc0d37eef0251e0aa6f831f8a3c5f6ed8c1efac8ce5f80a3565b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f5114811615613e90575b60409190915215613e755750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613ea6573d15833b15151616613e67565b503d5f823e3d90fd5b929091905f915b8451831015613ef857613ec98386612bc1565b519081811015613ee7575f52602052600160405f205b920191613eb6565b905f52602052600160405f20613edf565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91613f3c8160648101611c20565b519082855af1903d5f519083613f53575b50505090565b91925090613f6857503b15155b5f8080613f4d565b6001915014613f60565b906001600160a01b03811690826001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683145f146140a0575050803b156103f957604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109c85761408c575b50613ffe6107ae610c5a546001600160a01b031690565b9061401261086a546001600160a01b031690565b90823b156103f95760405163cd58657960e01b81525f600482018190526001600160a01b03909316602482015260448101829052606481018390526001608482015260c060a482015260c4810183905292839182908160e481015b03925af180156109c85761407e5750565b80613bf15f610475936105a7565b80613bf15f61409a936105a7565b5f613fe7565b6140c191926140bb6107ae610c5a546001600160a01b031690565b906146dc565b6140d76107ae610c5a546001600160a01b031690565b906140eb61086a546001600160a01b031690565b91803b156103f95761406d935f80946040519687958694859363cd58657960e01b855260048501919260e0936001600160a01b0380935f865216602085015260408401521660608201526001608082015260c060a08201525f60c08201520190565b60a01c61415657565b6379ec0ed760e11b5f5260045ffd5b61416e82612bb2565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906141f382612bb2565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613bde60808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61425e61012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956142c261428a61016060208b01519a01516138e9565b9960608c01519b60406142a060808301516138e9565b9101519060206142ae6105f8565b9e8f528e015260408d015260608c01614165565b6040519c8d9c8d614171565b9061067494936080936001600160a01b0380931684526020840152166040820152816060820152019061125e565b90608061430a91015161374f565b916080604083015192614320606082015161374f565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146144115750156143fd575b61437b91506001600160a01b03851661478c565b01519081511515806143f3575b6143925750505050565b6001600160a01b0316803b156103f9576143c8935f809460405196879586948593633a5be8cb60e01b85523391600486016142ce565b03925af180156109c8576143df575b8080806135a0565b80613bf15f6143ed936105a7565b5f6143d7565b50803b1515614388565b61440a913090339061464f565b5f84614367565b906144265761442192339061464f565b61437b565b614421925087613e29565b9161443b83614502565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916144fa575b5061447e575050565b613440915f80604051936144936060866105a7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46144f4612928565b916149ae565b90505f614475565b803b156103f9576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614570828461497d565b9390926005851015612bbc5761459994159384614639575b5083156145ae575b50505015151590565b61459f57565b63938a182160e01b5f5260045ffd5b5f935090611c206145e68594936040519283916020830195630b135d3f60e11b8752602484015260406044840152606483019061125e565b51915afa6145f2612928565b8161462b575b81614607575b505f8080614590565b9050614624630b135d3f60e11b9160208082518301019101613560565b145f6145fe565b9050602081511015906145f8565b6001600160a01b0384811691161493505f614588565b5f6001600160a01b0381926146ac9682604051978160208a01986323b872dd60e01b8a521660248a01521660448801526064870152606486526146936084876105a7565b169261469d614868565b94519082855af16144f4612928565b80519081159182156146c2575b5050156103f957565b6146d592506020809183010191016148a3565b5f806146b9565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109c8576104759461476892614734925f9161476d575b5061356f565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836105a7565b6148b8565b614786915060203d6020116112285761121981836105a7565b5f61472e565b906001600160a01b038216803b158015614859575b1561482557506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156103f957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109c85761047593614811575b50614955565b80613bf15f61481f936105a7565b5f61480b565b61047592506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613e29565b50614863816148e3565b6147a1565b604051906148776040836105a7565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b908160209103126103f9575161067481611878565b906001600160a01b036146ac92165f806148d0614868565b9360208151910182855af16144f4612928565b803b6148ee81610607565b906148fc60405192836105a7565b8082525f6020830180943c5190516001600160e81b03198116919060038210614936575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80614920565b8147106103f9575f8080936001600160a01b038294165af1614975612928565b50156103f957565b9060418151145f146149a55761125a91602082015190606060408401519301515f1a906149d9565b50505f90600290565b919250156149ca578151156149c1575090565b3b156103f95790565b5080519081156103f957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614a49576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109c8575f516001600160a01b03811615614a4157905f90565b505f90600190565b505050505f9060039056fea2646970667358221220d73655611bf167f42e60f03a5ab527a79294d17593712e22d14c3d3f0ad8e66064736f6c634300081e0033"}