@across-protocol/contracts 5.0.6-alpha.1 → 5.0.6-alpha.2

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 (350) hide show
  1. package/dist/abi/AccessControl.sol/AccessControl.json +1 -1
  2. package/dist/abi/AccessControlEnumerable.sol/AccessControlEnumerable.json +1 -1
  3. package/dist/abi/AccessControlUpgradeable.sol/AccessControlUpgradeable.json +1 -1
  4. package/dist/abi/AcrossConfigStore.sol/AcrossConfigStore.json +1 -1
  5. package/dist/abi/AcrossEventEmitter.sol/AcrossEventEmitter.json +1 -1
  6. package/dist/abi/AcrossMerkleDistributor.sol/AcrossMerkleDistributor.json +1 -1
  7. package/dist/abi/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -0
  8. package/dist/abi/AdapterInterface.sol/AdapterInterface.json +1 -1
  9. package/dist/abi/AdapterStore.sol/AdapterStore.json +1 -1
  10. package/dist/abi/AdapterStore.sol/MessengerTypes.json +1 -1
  11. package/dist/abi/Address.sol/Address.json +1 -1
  12. package/dist/abi/AddressConverters.sol/Bytes32ToAddress.json +1 -1
  13. package/dist/abi/AddressWhitelistInterface.sol/AddressWhitelistInterface.json +1 -1
  14. package/dist/abi/AdminRelayTokensAdapter.sol/AdminRelayTokensAdapter.json +1 -1
  15. package/dist/abi/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
  16. package/dist/abi/ArbitraryEVMFlowExecutor.sol/ArbitraryEVMFlowExecutor.json +1 -1
  17. package/dist/abi/ArbitrumBridge.sol/ArbitrumCustomGasTokenInbox.json +1 -1
  18. package/dist/abi/ArbitrumBridge.sol/ArbitrumERC20Bridge.json +1 -1
  19. package/dist/abi/ArbitrumBridge.sol/ArbitrumInboxLike.json +1 -1
  20. package/dist/abi/ArbitrumBridge.sol/ArbitrumL1ERC20GatewayLike.json +1 -1
  21. package/dist/abi/ArbitrumBridge.sol/ArbitrumL2ERC20GatewayLike.json +1 -1
  22. package/dist/abi/ArbitrumMocks.sol/ArbitrumMockErc20GatewayRouter.json +1 -0
  23. package/dist/abi/ArbitrumMocks.sol/Inbox.json +1 -0
  24. package/dist/abi/ArbitrumMocks.sol/L2GatewayRouter.json +1 -0
  25. package/dist/abi/Arbitrum_Adapter.sol/Arbitrum_Adapter.json +1 -1
  26. package/dist/abi/Arbitrum_CustomGasToken_Adapter.sol/Arbitrum_CustomGasToken_Adapter.json +1 -1
  27. package/dist/abi/Arbitrum_CustomGasToken_Adapter.sol/FunderInterface.json +1 -1
  28. package/dist/abi/Arbitrum_Forwarder.sol/Arbitrum_Forwarder.json +1 -1
  29. package/dist/abi/Arbitrum_RescueAdapter.sol/Arbitrum_RescueAdapter.json +1 -1
  30. package/dist/abi/Arbitrum_SendTokensAdapter.sol/Arbitrum_SendTokensAdapter.json +1 -1
  31. package/dist/abi/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
  32. package/dist/abi/Arbitrum_WithdrawalHelper.sol/Arbitrum_WithdrawalHelper.json +1 -1
  33. package/dist/abi/AuthorizedFundedFlow.sol/AuthorizedFundedFlow.json +1 -1
  34. package/dist/abi/BaseModuleHandler.sol/BaseModuleHandler.json +1 -1
  35. package/dist/abi/BaseSimulatorTest.sol/BaseSimulatorTest.json +1 -1
  36. package/dist/abi/Base_Adapter.sol/Base_Adapter.json +1 -1
  37. package/dist/abi/BeaconProxy.sol/BeaconProxy.json +1 -1
  38. package/dist/abi/Blast_Adapter.sol/Blast_Adapter.json +1 -1
  39. package/dist/abi/Blast_Adapter.sol/IL1ERC20Bridge.json +1 -1
  40. package/dist/abi/Blast_DaiRetriever.sol/Blast_DaiRetriever.json +1 -1
  41. package/dist/abi/Blast_DaiRetriever.sol/USDYieldManager.json +1 -1
  42. package/dist/abi/Blast_RescueAdapter.sol/Blast_RescueAdapter.json +1 -1
  43. package/dist/abi/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
  44. package/dist/abi/Blast_SpokePool.sol/IBlast.json +1 -1
  45. package/dist/abi/Blast_SpokePool.sol/IERC20Rebasing.json +1 -1
  46. package/dist/abi/Blast_SpokePool.sol/IUSDBL2Bridge.json +1 -1
  47. package/dist/abi/Boba_Adapter.sol/Boba_Adapter.json +1 -1
  48. package/dist/abi/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
  49. package/dist/abi/BondToken.sol/BondToken.json +1 -1
  50. package/dist/abi/BondToken.sol/ExtendedHubPoolInterface.json +1 -1
  51. package/dist/abi/BytesLib.sol/BytesLib.json +1 -1
  52. package/dist/abi/CCTPInterfaces.sol/IMessageTransmitter.json +1 -1
  53. package/dist/abi/CCTPInterfaces.sol/IMessageTransmitterV2.json +1 -1
  54. package/dist/abi/CCTPInterfaces.sol/ITokenMessenger.json +1 -1
  55. package/dist/abi/CCTPInterfaces.sol/ITokenMessengerV2.json +1 -1
  56. package/dist/abi/CCTPInterfaces.sol/ITokenMinter.json +1 -1
  57. package/dist/abi/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
  58. package/dist/abi/CircleCCTPAdapter.sol/CircleCCTPAdapter.json +1 -1
  59. package/dist/abi/CircleCCTPAdapter.sol/CircleDomainIds.json +1 -1
  60. package/dist/abi/Clones.sol/Clones.json +1 -1
  61. package/dist/abi/Constants.sol/Constants.json +1 -1
  62. package/dist/abi/Constants.sol/OptimisticOracleConstraints.json +1 -1
  63. package/dist/abi/Constants.sol/OracleInterfaces.json +1 -1
  64. package/dist/abi/ContextUpgradeable.sol/ContextUpgradeable.json +1 -1
  65. package/dist/abi/CoreExecution.sol/CoreExecution.json +1 -1
  66. package/dist/abi/CoreSimulatorLib.sol/HypeSystemContract.json +1 -1
  67. package/dist/abi/CoreState.sol/CoreState.json +1 -1
  68. package/dist/abi/CoreView.sol/CoreView.json +1 -1
  69. package/dist/abi/CoreWriterLib.sol/CoreWriterLib.json +1 -1
  70. package/dist/abi/CoreWriterSim.sol/CoreWriterSim.json +1 -1
  71. package/dist/abi/CounterfactualDeposit.sol/CounterfactualDeposit.json +1 -1
  72. package/dist/abi/CounterfactualDepositCCTP.sol/CounterfactualDepositCCTP.json +1 -1
  73. package/dist/abi/CounterfactualDepositCCTP.sol/ISponsoredCCTPSrcPeriphery.json +1 -1
  74. package/dist/abi/CounterfactualDepositFactory.sol/CounterfactualDepositFactory.json +1 -1
  75. package/dist/abi/CounterfactualDepositFactoryTron.sol/CounterfactualDepositFactoryTron.json +1 -1
  76. package/dist/abi/CounterfactualDepositOFT.sol/CounterfactualDepositOFT.json +1 -1
  77. package/dist/abi/CounterfactualDepositOFT.sol/ISponsoredOFTSrcPeriphery.json +1 -1
  78. package/dist/abi/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
  79. package/dist/abi/Create2.sol/Create2.json +1 -1
  80. package/dist/abi/CrossDomainEnabled.sol/CrossDomainEnabled.json +1 -1
  81. package/dist/abi/DeployedAddresses.sol/DeployedAddresses.json +1 -1
  82. package/dist/abi/DeploymentUtils.sol/DeploymentUtils.json +1 -1
  83. package/dist/abi/DoctorWho_Adapter.sol/DoctorWho_Adapter.json +1 -1
  84. package/dist/abi/DonationBox.sol/DonationBox.json +1 -1
  85. package/dist/abi/DstOFTHandler.sol/DstOFTHandler.json +1 -1
  86. package/dist/abi/ECDSA.sol/ECDSA.json +1 -1
  87. package/dist/abi/EIP712.sol/EIP712.json +1 -1
  88. package/dist/abi/EIP712CrossChainUpgradeable.sol/EIP712CrossChainUpgradeable.json +1 -1
  89. package/dist/abi/ERC1155.sol/ERC1155.json +1 -1
  90. package/dist/abi/ERC165.sol/ERC165.json +1 -1
  91. package/dist/abi/ERC165Upgradeable.sol/ERC165Upgradeable.json +1 -1
  92. package/dist/abi/ERC1967Proxy.sol/ERC1967Proxy.json +1 -1
  93. package/dist/abi/ERC1967Upgrade.sol/ERC1967Upgrade.json +1 -1
  94. package/dist/abi/ERC1967UpgradeUpgradeable.sol/ERC1967UpgradeUpgradeable.json +1 -1
  95. package/dist/abi/ERC1967Utils.sol/ERC1967Utils.json +1 -1
  96. package/dist/abi/ERC20.sol/ERC20.json +1 -1
  97. package/dist/abi/ERC20Permit.sol/ERC20Permit.json +1 -1
  98. package/dist/abi/ERC7683.sol/IDestinationSettler.json +1 -1
  99. package/dist/abi/Errors.sol/Errors.json +1 -1
  100. package/dist/abi/Ethereum_Adapter.sol/Ethereum_Adapter.json +1 -1
  101. package/dist/abi/Ethereum_RescueAdapter.sol/Ethereum_RescueAdapter.json +1 -1
  102. package/dist/abi/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
  103. package/dist/abi/ExpandedERC20.sol/ExpandedERC20.json +1 -1
  104. package/dist/abi/ExpandedERC20WithBlacklist.sol/ExpandedERC20WithBlacklist.json +1 -1
  105. package/dist/abi/ExpandedIERC20.sol/ExpandedIERC20.json +1 -1
  106. package/dist/abi/FinderInterface.sol/FinderInterface.json +1 -1
  107. package/dist/abi/ForwarderBase.sol/ForwarderBase.json +1 -1
  108. package/dist/abi/ForwarderInterface.sol/ForwarderInterface.json +1 -1
  109. package/dist/abi/HLConstants.sol/HLConstants.json +1 -1
  110. package/dist/abi/HLConversions.sol/HLConversions.json +1 -1
  111. package/dist/abi/HubPool.sol/HubPool.json +1 -1
  112. package/dist/abi/HubPoolInterface.sol/HubPoolInterface.json +1 -1
  113. package/dist/abi/HubPoolStore.sol/HubPoolStore.json +1 -1
  114. package/dist/abi/HubPoolStore.sol/IHubPool.json +1 -1
  115. package/dist/abi/HubPoolTestBase.sol/HubPoolTestBase.json +1 -1
  116. package/dist/abi/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
  117. package/dist/abi/HubPoolTestBase.sol/MockFinder.json +1 -1
  118. package/dist/abi/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
  119. package/dist/abi/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
  120. package/dist/abi/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
  121. package/dist/abi/HubPoolTestBase.sol/MockStore.json +1 -1
  122. package/dist/abi/HyperCore.sol/HyperCore.json +1 -1
  123. package/dist/abi/HyperCoreFlowExecutor.sol/HyperCoreFlowExecutor.json +1 -1
  124. package/dist/abi/HyperCoreFlowRoles.sol/HyperCoreFlowRoles.json +1 -1
  125. package/dist/abi/HyperCoreLib.sol/HyperCoreLib.json +1 -1
  126. package/dist/abi/HyperCoreLib.sol/ICoreWriter.json +1 -1
  127. package/dist/abi/HyperCoreMockHelper.sol/HyperCoreMockHelper.json +1 -0
  128. package/dist/abi/HyperliquidDepositHandler.sol/HyperliquidDepositHandler.json +1 -1
  129. package/dist/abi/IAccessControl.sol/IAccessControl.json +1 -1
  130. package/dist/abi/IAccessControlEnumerable.sol/IAccessControlEnumerable.json +1 -1
  131. package/dist/abi/IBeacon.sol/IBeacon.json +1 -1
  132. package/dist/abi/IBeaconUpgradeable.sol/IBeaconUpgradeable.json +1 -1
  133. package/dist/abi/ICoreDepositWallet.sol/ICoreDepositWallet.json +1 -1
  134. package/dist/abi/ICoreDepositWallet.sol/IForwardDepositReceiver.json +1 -1
  135. package/dist/abi/ICoreWriter.sol/ICoreWriter.json +1 -1
  136. package/dist/abi/ICounterfactualDeposit.sol/ICounterfactualDeposit.json +1 -1
  137. package/dist/abi/ICounterfactualDepositFactory.sol/ICounterfactualDepositFactory.json +1 -1
  138. package/dist/abi/ICounterfactualImplementation.sol/ICounterfactualImplementation.json +1 -1
  139. package/dist/abi/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +1 -1
  140. package/dist/abi/ICrossDomainMessengerUpgradeable.sol/ICrossDomainMessengerUpgradeable.json +1 -1
  141. package/dist/abi/IERC1155.sol/IERC1155.json +1 -1
  142. package/dist/abi/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +1 -1
  143. package/dist/abi/IERC1155Receiver.sol/IERC1155Receiver.json +1 -1
  144. package/dist/abi/IERC1271.sol/IERC1271.json +1 -1
  145. package/dist/abi/IERC1363.sol/IERC1363.json +1 -1
  146. package/dist/abi/IERC165.sol/IERC165.json +1 -1
  147. package/dist/abi/IERC1967.sol/IERC1967.json +1 -1
  148. package/dist/abi/IERC1967Upgradeable.sol/IERC1967Upgradeable.json +1 -1
  149. package/dist/abi/IERC20.sol/IERC20.json +1 -1
  150. package/dist/abi/IERC20Auth.sol/IERC20Auth.json +1 -1
  151. package/dist/abi/IERC20Metadata.sol/IERC20Metadata.json +1 -1
  152. package/dist/abi/IERC20Permit.sol/IERC20Permit.json +1 -1
  153. package/dist/abi/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +1 -1
  154. package/dist/abi/IERC20Upgradeable.sol/IERC20Upgradeable.json +1 -1
  155. package/dist/abi/IERC5267.sol/IERC5267.json +1 -1
  156. package/dist/abi/IHelios.sol/IHelios.json +1 -1
  157. package/dist/abi/IHypXERC20Router.sol/IHypXERC20Router.json +1 -1
  158. package/dist/abi/IHyperCoreFlowExecutor.sol/IHyperCoreFlowExecutor.json +1 -1
  159. package/dist/abi/IL1ERC20Bridge.sol/IL1ERC20Bridge.json +1 -1
  160. package/dist/abi/IL1ERC20Gateway.sol/IL1ERC20Gateway.json +1 -1
  161. package/dist/abi/IL1ETHGateway.sol/IL1ETHGateway.json +1 -1
  162. package/dist/abi/IL1GatewayRouter.sol/IL1GatewayRouter.json +1 -1
  163. package/dist/abi/IL1ScrollMessenger.sol/IL1ScrollMessenger.json +1 -1
  164. package/dist/abi/IL1StandardBridge.sol/IL1StandardBridge.json +1 -1
  165. package/dist/abi/IL2ERC20Gateway.sol/IL2ERC20Gateway.json +1 -1
  166. package/dist/abi/IL2ETHGateway.sol/IL2ETHGateway.json +1 -1
  167. package/dist/abi/IL2GasPriceOracle.sol/IL2GasPriceOracle.json +1 -1
  168. package/dist/abi/IL2GatewayRouter.sol/IL2GatewayRouter.json +1 -1
  169. package/dist/abi/ILayerZeroComposer.sol/ILayerZeroComposer.json +1 -1
  170. package/dist/abi/IMulticall3.sol/IMulticall3.json +1 -1
  171. package/dist/abi/IOFT.sol/IEndpoint.json +1 -1
  172. package/dist/abi/IOFT.sol/IOAppCore.json +1 -1
  173. package/dist/abi/IOFT.sol/IOFT.json +1 -1
  174. package/dist/abi/IOpUSDCBridgeAdapter.sol/IOpUSDCBridgeAdapter.json +1 -1
  175. package/dist/abi/IPermit2.sol/IPermit2.json +1 -1
  176. package/dist/abi/IPolygonZkEVMBridge.sol/IPolygonZkEVMBridge.json +1 -1
  177. package/dist/abi/IProxyAdmin.sol/IProxyAdmin.json +1 -1
  178. package/dist/abi/ISP1Verifier.sol/ISP1Verifier.json +1 -1
  179. package/dist/abi/ISP1Verifier.sol/ISP1VerifierWithHash.json +1 -1
  180. package/dist/abi/IScrollMessenger.sol/IScrollMessenger.json +1 -1
  181. package/dist/abi/ISpokePool.sol/ISpokePool.json +1 -1
  182. package/dist/abi/ITokenRegistry.sol/ITokenRegistry.json +1 -1
  183. package/dist/abi/IUpgradeableBeacon.sol/IUpgradeableBeacon.json +1 -1
  184. package/dist/abi/IUpgradeableProxy.sol/IUpgradeableProxy.json +1 -1
  185. package/dist/abi/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.json +1 -1
  186. package/dist/abi/Initializable.sol/Initializable.json +1 -1
  187. package/dist/abi/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
  188. package/dist/abi/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
  189. package/dist/abi/LibVariable.sol/LibVariable.json +1 -1
  190. package/dist/abi/LineaInterfaces.sol/IMessageService.json +1 -1
  191. package/dist/abi/LineaInterfaces.sol/ITokenBridge.json +1 -1
  192. package/dist/abi/LineaInterfaces.sol/IUSDCBridge.json +1 -1
  193. package/dist/abi/LineaMocks.sol/MockL2MessageService.json +1 -0
  194. package/dist/abi/LineaMocks.sol/MockL2TokenBridge.json +1 -0
  195. package/dist/abi/Linea_Adapter.sol/Linea_Adapter.json +1 -1
  196. package/dist/abi/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
  197. package/dist/abi/Lisk_Adapter.sol/Lisk_Adapter.json +1 -1
  198. package/dist/abi/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
  199. package/dist/abi/Lockable.sol/Lockable.json +1 -1
  200. package/dist/abi/LpTokenFactory.sol/LpTokenFactory.json +1 -1
  201. package/dist/abi/LpTokenFactoryInterface.sol/LpTokenFactoryInterface.json +1 -1
  202. package/dist/abi/Merkle.sol/Merkle.json +1 -1
  203. package/dist/abi/MerkleDistributor.sol/MerkleDistributor.json +1 -1
  204. package/dist/abi/MerkleDistributorInterface.sol/MerkleDistributorInterface.json +1 -1
  205. package/dist/abi/MerkleLibTest.sol/MerkleLibTest.json +1 -1
  206. package/dist/abi/MerkleProof.sol/MerkleProof.json +1 -1
  207. package/dist/abi/MinimalLZOptions.sol/MinimalLZOptions.json +1 -1
  208. package/dist/abi/MintableERC1155.sol/MintableERC1155.json +1 -1
  209. package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -0
  210. package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -0
  211. package/dist/abi/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -0
  212. package/dist/abi/MockBlastUsdYieldManager.sol/MockBlastUsdYieldManager.json +1 -0
  213. package/dist/abi/MockCCTP.sol/MockCCTPMessageTransmitter.json +1 -0
  214. package/dist/abi/MockCCTP.sol/MockCCTPMessenger.json +1 -0
  215. package/dist/abi/MockCCTP.sol/MockCCTPMessengerV2.json +1 -0
  216. package/dist/abi/MockCCTP.sol/MockCCTPMinter.json +1 -0
  217. package/dist/abi/MockCaller.sol/MockCaller.json +1 -0
  218. package/dist/abi/MockERC1271.sol/MockERC1271.json +1 -0
  219. package/dist/abi/MockERC20.sol/MintableERC20.json +1 -0
  220. package/dist/abi/MockERC20.sol/MockERC20.json +1 -0
  221. package/dist/abi/MockEndpoint.sol/MockEndpoint.json +1 -0
  222. package/dist/abi/MockHubPool.sol/MockHubPool.json +1 -0
  223. package/dist/abi/MockOFTMessenger.sol/MockOFTMessenger.json +1 -0
  224. package/dist/abi/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -0
  225. package/dist/abi/MockPermit2.sol/MockPermit2.json +1 -0
  226. package/dist/abi/MockPermit2.sol/Permit2EIP712.json +1 -0
  227. package/dist/abi/MockPermit2.sol/SignatureVerification.json +1 -0
  228. package/dist/abi/MockSpokePool.sol/MockSpokePool.json +1 -0
  229. package/dist/abi/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -0
  230. package/dist/abi/MockZkStackBridgeHub.sol/MockBridgeHub.json +1 -0
  231. package/dist/abi/Mock_Adapter.sol/Mock_Adapter.json +1 -0
  232. package/dist/abi/Mock_Adapter.sol/Mock_Bridge.json +1 -0
  233. package/dist/abi/Mode_Adapter.sol/Mode_Adapter.json +1 -1
  234. package/dist/abi/MultiCaller.sol/MultiCaller.json +1 -1
  235. package/dist/abi/MultiCallerUpgradeable.sol/MultiCallerUpgradeable.json +1 -1
  236. package/dist/abi/MultiRole.sol/MultiRole.json +1 -1
  237. package/dist/abi/Multicall3.sol/Multicall3.json +1 -1
  238. package/dist/abi/MulticallHandler.sol/MulticallHandler.json +1 -1
  239. package/dist/abi/MurkyBase.sol/MurkyBase.json +1 -1
  240. package/dist/abi/OFTCoreMath.sol/OFTCoreMath.json +1 -1
  241. package/dist/abi/OFTTransportAdapter.sol/OFTTransportAdapter.json +1 -1
  242. package/dist/abi/OFTTransportAdapterWithStore.sol/OFTTransportAdapterWithStore.json +1 -1
  243. package/dist/abi/OP_Adapter.sol/OP_Adapter.json +1 -1
  244. package/dist/abi/OP_SpokePool.sol/OP_SpokePool.json +1 -1
  245. package/dist/abi/Optimism_Adapter.sol/Optimism_Adapter.json +1 -1
  246. package/dist/abi/Optimism_Adapter.sol/SynthetixBridgeToOptimism.json +1 -1
  247. package/dist/abi/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
  248. package/dist/abi/Optimism_SpokePool.sol/SynthetixBridgeToBase.json +1 -1
  249. package/dist/abi/OptimisticOracleInterface.sol/OptimisticOracleInterface.json +1 -1
  250. package/dist/abi/Ovm_Forwarder.sol/Ovm_Forwarder.json +1 -1
  251. package/dist/abi/Ovm_SpokePool.sol/IL2ERC20Bridge.json +1 -1
  252. package/dist/abi/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
  253. package/dist/abi/Ovm_WithdrawalHelper.sol/IOvm_SpokePool.json +1 -1
  254. package/dist/abi/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
  255. package/dist/abi/Ownable.sol/Ownable.json +1 -1
  256. package/dist/abi/OwnableUpgradeable.sol/OwnableUpgradeable.json +1 -1
  257. package/dist/abi/PeripherySigningLib.sol/PeripherySigningLib.json +1 -1
  258. package/dist/abi/PermissionSplitterProxy.sol/PermissionSplitterProxy.json +1 -1
  259. package/dist/abi/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
  260. package/dist/abi/PolygonERC20Test.sol/PolygonERC20Test.json +1 -1
  261. package/dist/abi/PolygonMocks.sol/DepositManagerMock.json +1 -0
  262. package/dist/abi/PolygonMocks.sol/FxStateSenderMock.json +1 -0
  263. package/dist/abi/PolygonMocks.sol/PolygonERC20Mock.json +1 -0
  264. package/dist/abi/PolygonMocks.sol/PolygonERC20PredicateMock.json +1 -0
  265. package/dist/abi/PolygonMocks.sol/PolygonRegistryMock.json +1 -0
  266. package/dist/abi/PolygonMocks.sol/RootChainManagerMock.json +1 -0
  267. package/dist/abi/PolygonTokenBridger.sol/MaticToken.json +1 -1
  268. package/dist/abi/PolygonTokenBridger.sol/PolygonERC20Predicate.json +1 -1
  269. package/dist/abi/PolygonTokenBridger.sol/PolygonIERC20Upgradeable.json +1 -1
  270. package/dist/abi/PolygonTokenBridger.sol/PolygonRegistry.json +1 -1
  271. package/dist/abi/PolygonTokenBridger.sol/PolygonTokenBridger.json +1 -1
  272. package/dist/abi/PolygonZkEVMMocks.sol/MockPolygonZkEVMBridge.json +1 -0
  273. package/dist/abi/PolygonZkEVM_Adapter.sol/PolygonZkEVM_Adapter.json +1 -1
  274. package/dist/abi/PolygonZkEVM_SpokePool.sol/IBridgeMessageReceiver.json +1 -1
  275. package/dist/abi/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
  276. package/dist/abi/Polygon_Adapter.sol/DepositManager.json +1 -1
  277. package/dist/abi/Polygon_Adapter.sol/IFxStateSender.json +1 -1
  278. package/dist/abi/Polygon_Adapter.sol/IRootChainManager.json +1 -1
  279. package/dist/abi/Polygon_Adapter.sol/Polygon_Adapter.json +1 -1
  280. package/dist/abi/Polygon_SpokePool.sol/IFxMessageProcessor.json +1 -1
  281. package/dist/abi/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
  282. package/dist/abi/PrecompileLib.sol/PrecompileLib.json +1 -1
  283. package/dist/abi/PrecompileSim.sol/PrecompileSim.json +1 -1
  284. package/dist/abi/Proxy.sol/Proxy.json +1 -1
  285. package/dist/abi/ProxyAdmin.sol/ProxyAdmin.json +1 -1
  286. package/dist/abi/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  287. package/dist/abi/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +1 -1
  288. package/dist/abi/Router_Adapter.sol/Router_Adapter.json +1 -1
  289. package/dist/abi/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
  290. package/dist/abi/SP1Helios.sol/SP1Helios.json +1 -1
  291. package/dist/abi/SP1MockVerifier.sol/SP1MockVerifier.json +1 -0
  292. package/dist/abi/SafeCast.sol/SafeCast.json +1 -1
  293. package/dist/abi/SafeERC20.sol/SafeERC20.json +1 -1
  294. package/dist/abi/ScrollMocks.sol/MockScrollL2GatewayRouter.json +1 -0
  295. package/dist/abi/ScrollMocks.sol/MockScrollMessenger.json +1 -0
  296. package/dist/abi/Scroll_Adapter.sol/Scroll_Adapter.json +1 -1
  297. package/dist/abi/Scroll_SpokePool.sol/IL2GatewayRouterExtended.json +1 -1
  298. package/dist/abi/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
  299. package/dist/abi/ShortStrings.sol/ShortStrings.json +1 -1
  300. package/dist/abi/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.json +1 -1
  301. package/dist/abi/Solana_Adapter.sol/Solana_Adapter.json +1 -1
  302. package/dist/abi/SpokePool.sol/SpokePool.json +1 -1
  303. package/dist/abi/SpokePoolInterface.sol/SpokePoolInterface.json +1 -1
  304. package/dist/abi/SpokePoolMessageHandler.sol/AcrossMessageHandler.json +1 -1
  305. package/dist/abi/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
  306. package/dist/abi/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
  307. package/dist/abi/SpokePoolPeripheryInterface.sol/SpokePoolPeripheryInterface.json +1 -1
  308. package/dist/abi/SpokePoolVerifier.sol/SpokePoolVerifier.json +1 -1
  309. package/dist/abi/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
  310. package/dist/abi/SponsoredCCTPInterface.sol/SponsoredCCTPInterface.json +1 -1
  311. package/dist/abi/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
  312. package/dist/abi/SponsoredOFTInterface.sol/SponsoredOFTInterface.json +1 -1
  313. package/dist/abi/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
  314. package/dist/abi/StdConfig.sol/StdConfig.json +1 -1
  315. package/dist/abi/StoreInterface.sol/StoreInterface.json +1 -1
  316. package/dist/abi/Strings.sol/Strings.json +1 -1
  317. package/dist/abi/SwapHandler.sol/SwapHandler.json +1 -1
  318. package/dist/abi/Testable.sol/Testable.json +1 -1
  319. package/dist/abi/Timer.sol/Timer.json +1 -1
  320. package/dist/abi/TransferProxy.sol/TransferProxy.json +1 -1
  321. package/dist/abi/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
  322. package/dist/abi/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +1 -1
  323. package/dist/abi/UUPSUpgradeable.sol/UUPSUpgradeable.json +1 -1
  324. package/dist/abi/Universal_Adapter.sol/IOwnable.json +1 -1
  325. package/dist/abi/Universal_Adapter.sol/Universal_Adapter.json +1 -1
  326. package/dist/abi/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
  327. package/dist/abi/UpgradeableBeacon.sol/UpgradeableBeacon.json +1 -1
  328. package/dist/abi/V3SpokePoolInterface.sol/V3SpokePoolInterface.json +1 -1
  329. package/dist/abi/WETH9.sol/WETH9.json +1 -1
  330. package/dist/abi/WETH9Interface.sol/WETH9Interface.json +1 -1
  331. package/dist/abi/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
  332. package/dist/abi/WithdrawalHelperBase.sol/WithdrawalHelperBase.json +1 -1
  333. package/dist/abi/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
  334. package/dist/abi/ZkStackBridgeHub.sol/BridgeHubInterface.json +1 -1
  335. package/dist/abi/ZkStack_Adapter.sol/ZkStack_Adapter.json +1 -1
  336. package/dist/abi/ZkStack_CustomGasToken_Adapter.sol/FunderInterface.json +1 -1
  337. package/dist/abi/ZkStack_CustomGasToken_Adapter.sol/ZkStack_CustomGasToken_Adapter.json +1 -1
  338. package/dist/abi/ZkSyncMocks.sol/MockL2Eth.json +1 -0
  339. package/dist/abi/ZkSyncMocks.sol/MockZkBridge.json +1 -0
  340. package/dist/abi/ZkSync_SpokePool.sol/IL2AssetRouter.json +1 -1
  341. package/dist/abi/ZkSync_SpokePool.sol/IL2ETH.json +1 -1
  342. package/dist/abi/ZkSync_SpokePool.sol/ZkBridgeLike.json +1 -1
  343. package/dist/abi/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
  344. package/dist/abi/Zora_Adapter.sol/Zora_Adapter.json +1 -1
  345. package/dist/abi/draft-IERC1822.sol/IERC1822Proxiable.json +1 -1
  346. package/dist/abi/draft-IERC1822Upgradeable.sol/IERC1822ProxiableUpgradeable.json +1 -1
  347. package/dist/abi/eraVM_EIP7702.sol/SimpleContract.json +1 -1
  348. package/dist/abi/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
  349. package/dist/abi/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
  350. package/package.json +1 -1
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}]}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"_l1Weth","type":"address","internalType":"contract WETH9Interface"},{"name":"_crossDomainMessenger","type":"address","internalType":"address"},{"name":"_l1StandardBridge","type":"address","internalType":"contract IL1StandardBridge"},{"name":"_l1Usdc","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"L1_STANDARD_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IL1StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"L1_WETH","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"function","name":"L2_GAS_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"target","type":"address","internalType":"address"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"relayTokens","inputs":[{"name":"l1Token","type":"address","internalType":"address"},{"name":"l2Token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"event","name":"MessageRelayed","inputs":[{"name":"target","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokensRelayed","inputs":[{"name":"l1Token","type":"address","indexed":false,"internalType":"address"},{"name":"l2Token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"to","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":"0x61016080604052346101f957608081610e49803803809161002082856101fd565b8339810103126101f95780516001600160a01b03811681036101f95760208201516001600160a01b03811681036101f9576040830151926001600160a01b03841684036101f95760600151906001600160a01b03821682036101f95760805260c0525f60e05263ffffffff60a0525f80604051602081019063011a412160e61b8252600481526100b16024826101fd565b5190825afa3d156101f2573d6001600160401b0381116101de57604051906100e3601f8201601f1916602001836101fd565b81523d5f602083013e5b816101d2575b8161019c575b50610100526101205261014052604051610c289081610221823960805181818160ef0152610240015260a0518181816102be015281816105ed015261069b015260c0518181816104d3015281816108e001526109aa015260e0518181816101fc01526104a301526101005181818161027c015261056201526101205181818161034f01526109690152610140518181816103b6015281816107db01526109260152f35b90506020815191015190602081106101c1575b506001600160a01b031615155f6100f9565b5f199060200360031b1b165f6101af565b805160201491506100f3565b634e487b7160e01b5f52604160045260245ffd5b60606100ed565b5f80fd5b601f909101601f19168101906001600160401b038211908210176101de5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c90816311eac8551461098d575080631efd482a1461094a57806335a2db6a1461090757806352c8c75c146103005780635e743ef7146102e25780636e400983146102a1578063775c0d0314610264578063927ede2d146102205780639748cf7c146101dc5763e6eb8ade1461008c575f80fd5b60403660031901126101d9576100a06109ce565b6024359067ffffffffffffffff82116101d757366023830112156101d75781600401359067ffffffffffffffff82116101c457602483019260248336920101116101c457836001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b156101d357816001600160a01b0391604051928391633dbb202b60e01b8352169485600483015260606024830152818381610151606482018b8d610a1a565b62030d40604483015203925af180156101c8576101af575b50506101a97f9e6c52944e331ba6270e7fe4cea2a4086bae8f7a27e1cdba07f416806f5d0ac4936040519384938452604060208501526040840191610a1a565b0390a180f35b816101b9916109e4565b6101c457835f610169565b8380fd5b6040513d84823e3d90fd5b5080fd5b825b80fd5b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d95760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b50346101d957806003193601126101d957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b50346101d957806003193601126101d957602060405162030d408152f35b50608036600319011261076e576103156109ce565b602435906001600160a01b03821680920361076e5760443591606435906001600160a01b03821680920361076e57846001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169416938085145f1461049357803b156101d357818091602460405180948193632e1a7d4d60e01b83528b60048401525af180156101c85761047e575b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b156101d357818691608460405180948193639a2ac6d560e01b835289600484015262030d406024840152606060448401528560648401525af180156101c85761045f575b5050907fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b93608093925b604051938452602084015260408301526060820152a180f35b8161046d91959493956109e4565b61047a579091845f61041c565b8480fd5b81610488916109e4565b61047a57845f6103ab565b50506001600160a01b03939192937f000000000000000000000000000000000000000000000000000000000000000016801515806108d5575b156107d0577f0000000000000000000000000000000000000000000000000000000000000000906104fe848284610a3a565b6040516332dd704760e21b815291602083600481855afa92831561077a578893610785575b509060206001600160a01b03809316936024604051809581936352b7631960e11b8352886004840152165afa91821561077a578892610742575b5090917f0000000000000000000000000000000000000000000000000000000000000000919085805b6105bb575050505050917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b8481111561073c57845b841561068557833b15610681578a604051634701287760e11b815282600482015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201528a60448201528460648201528160848201528160a48201526107d060c4820152818160e481838a5af180156101c85761066c575b50505b81039081116106585780610586565b634e487b7160e01b8a52601160045260248afd5b81610676916109e4565b610681578a5f610646565b8a80fd5b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018a9052606481018490526020816084818f895af18015610731576106ee575b50610649565b6020813d8211610729575b81610706602093836109e4565b81010312610725575167ffffffffffffffff811603610681575f6106e8565b8b80fd5b3d91506106f9565b6040513d8e823e3d90fd5b806105c5565b9091506020813d602011610772575b8161075e602093836109e4565b8101031261076e5751905f61055d565b5f80fd5b3d9150610751565b6040513d8a823e3d90fd5b9092506020813d6020116107c8575b816107a1602093836109e4565b810103126107c45751906001600160a01b03821682036107c45790916020610523565b8780fd5b3d9150610794565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610806838287610a3a565b803b1561076e575f809160e46040518094819363041c592960e51b83528a600484015287602484015289604484015288606484015262030d40608484015260c060a48401528160c48401525af180156108ca5761088b575b50917fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b9391608093610446565b608093919550916108be5f7fd7e09655439c3932e55857df3220186e5a7f0980825f20691c2b35d941dee75b96946109e4565b5f95919350919361085e565b6040513d5f823e3d90fd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001685146104cc565b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461076e575f36600319011261076e576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361076e57565b90601f8019910116810190811067ffffffffffffffff821117610a0657604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b6001600160a01b0316916001600160a01b0360405192636eb1769f60e11b84523060048501521690816024840152602083604481875afa9283156108ca575f93610b93575b508201809211610b7f575f809160405193602085019163095ea7b360e01b83526024860152604485015260448452610ab86064856109e4565b60405193610ac76040866109e4565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082865af13d15610b72573d9067ffffffffffffffff8211610a0657604051610b39949092610b2b601f8201601f1916602001856109e4565b83523d5f602085013e610bc7565b8051908115918215610b4f575b50501561076e57565b819250906020918101031261076e5760200151801515810361076e575f80610b46565b91610b3992606091610bc7565b634e487b7160e01b5f52601160045260245ffd5b9092506020813d602011610bbf575b81610baf602093836109e4565b8101031261076e5751915f610a7f565b3d9150610ba2565b91925015610be357815115610bda575090565b3b1561076e5790565b50805190811561076e57602001fdfea26469706673582212205b4c0adeb83776a47fe6594eee1ba90c6915201c51cfda590a8139905af8df4064736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}]}
1
+ {"abi":[{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":"0x"}
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}]}
1
+ {"abi":[{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":"0x"}
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"doNothing","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}]}
1
+ {"abi":[{"type":"function","name":"doNothing","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"}],"bytecode":"0x608080604052346013576074908160188239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c632f576f20146023575f80fd5b34603a575f366003190112603a5780602a60209252f35b5f80fdfea2646970667358221220da575b7dc2492834a4ee493fd8278438bf19b0ed6ea70f264cf9833d5e9377b164736f6c634300081e0033"}
@@ -1 +1 @@
1
- {"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_fillRelayWithDelegatedRecipient","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_is7702DelegatedWallet_ReturnsFalseForDelegatedWallet","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrapToEOA","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrapToRegularContract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}]}
1
+ {"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_fillRelayWithDelegatedRecipient","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_is7702DelegatedWallet_ReturnsFalseForDelegatedWallet","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrapToEOA","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrapToRegularContract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f55619e8c90816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e414611e735750806314ee2ab814611b165780631ed7831c14611a985780632ade3880146118d85780633e5e3c231461185a5780633f7286f4146117dc5780635974200e14610b1357806366d9a9a0146109ea5780636b0f5f30146106a257806385226c8114610610578063916a17c614610566578063980298bd146102f4578063b0464fdc1461024a578063b5508aa9146101b1578063ba414fa61461018c578063e20c9f71146100fe5763fa7626d4146100d9575f80fd5b346100fb57806003193601126100fb57602060ff601f54166040519015158152f35b80fd5b50346100fb57806003193601126100fb5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061016d576101698561015d81870382612864565b604051918291826126cd565b0390f35b82546001600160a01b0316845260209093019260019283019201610146565b50346100fb57806003193601126100fb5760206101a7612c22565b6040519015158152f35b50346100fb57806003193601126100fb576019546101ce8161291d565b916101dc6040519384612864565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b83831061021e57604051806101698782612770565b60016020819260405161023c81610235818961296d565b0382612864565b815201920192019190610209565b50346100fb57806003193601126100fb57601c546102678161291d565b916102756040519384612864565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106102b7576040518061016987826127cf565b600260206001926040516102ca81612848565b6001600160a01b0386541681526102e2858701612a1e565b838201528152019201920191906102a2565b50346100fb57806003193601126100fb5761030d612f86565b80316001600160a01b036020541691604051916370a0823160e01b83526020836024816001600160a01b038616978860048301525afa92831561055b578593610527575b50846001600160a01b03601f5460081c16803b1561052357818091604460405180948193637232889760e11b83528b6004840152670de0b6b3a764000060248401525af18015610518576104ff575b505061040c913190604051916103b7606084612864565b602783527f526567756c617220636f6e74726163742073686f756c64206e6f74207265636560208401527f6976652045544800000000000000000000000000000000000000000000000000604084015261302a565b60206001600160a01b03815416926024604051809581936370a0823160e01b835260048301525afa9182156104f45783926104bc575b50670de0b6b3a764000081018091116104a857906104a59160405191610469606084612864565b602483527f526567756c617220636f6e74726163742073686f756c642072656365697665206020840152630ae8aa8960e31b604084015261302a565b80f35b634e487b7160e01b83526011600452602483fd5b9091506020813d6020116104ec575b816104d860209383612864565b810103126104e85751905f610442565b5f80fd5b3d91506104cb565b6040513d85823e3d90fd5b8161050991612864565b61051457845f6103a0565b8480fd5b6040513d84823e3d90fd5b5080fd5b9092506020813d602011610553575b8161054360209383612864565b810103126104e85751915f610351565b3d9150610536565b6040513d87823e3d90fd5b50346100fb57806003193601126100fb57601d546105838161291d565b916105916040519384612864565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106105d3576040518061016987826127cf565b600260206001926040516105e681612848565b6001600160a01b0386541681526105fe858701612a1e565b838201528152019201920191906105be565b50346100fb57806003193601126100fb57601a5461062d8161291d565b9161063b6040519384612864565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061067d57604051806101698782612770565b60016020819260405161069481610235818961296d565b815201920192019190610668565b50346100fb57806003193601126100fb576106bb6128e4565b9060405160208101906106e8602082865180838901875e810186838201520301601f198101835282612864565b519020916040519263ffa1864960e01b845260048401526020836024815f516020619e375f395f51905f525afa9283156105185782936109b9575b505f516020619e375f395f51905f523b15610523576040516318caf8e360e31b815282818061076d6001600160a01b0388169586600484015260406024840152604483019061270f565b0381835f516020619e375f395f51905f525af180156104f4579083916109a4575b50508231926001600160a01b03601f5460081c16803b156109a057838091604460405180948193637232889760e11b8352886004840152670de0b6b3a764000060248401525af180156109955790849161097c575b50503192670de0b6b3a764000081018091116104a85761083d839460409283519161080e8584612864565b601683527f454f412073686f756c6420726563656976652045544800000000000000000000602084015261302a565b60206001600160a01b038154169260248351809581936370a0823160e01b835260048301525afa91821561097257839261093b575b508051916108808284612864565b601b83527f454f412073686f756c64206e6f742072656365697665205745544800000000006020840152806108b457505050f35b5f516020619e375f395f51905f523b15610936576108fb928491835194859283926388b44c8560e01b8452600484015284602484015260606044840152606483019061270f565b03815f516020619e375f395f51905f525afa90811561092d575061091c5750f35b8161092691612864565b6100fb5780f35b513d84823e3d90fd5b505050fd5b925090506020823d60201161096a575b8161095860209383612864565b810103126104e857829151905f610872565b3d915061094b565b81513d85823e3d90fd5b8161098691612864565b61099157825f6107e3565b8280fd5b6040513d86823e3d90fd5b8380fd5b816109ae91612864565b61052357815f61078e565b6109dc91935060203d6020116109e3575b6109d48183612864565b810190612886565b915f610723565b503d6109ca565b50346100fb57806003193601126100fb57601b54610a078161291d565b610a146040519182612864565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310610ad057868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210610a8157505050500390f35b91936001919395506020610ac08192603f198a820301865288519083610ab0835160408452604084019061270f565b9201519084818403910152612733565b9601920192018594939192610a72565b60026020600192604051610ae381612848565b604051610af481610235818a61296d565b8152610b01858701612a1e565b83820152815201920192019190610a44565b50346100fb57806003193601126100fb57610b2c612da4565b90610b3682612d41565b8131916001600160a01b0360225416906001600160a01b036020541693610e1042018042116117c85760405193610180850185811067ffffffffffffffff8211176117b4579063ffffffff929160405285526001600160a01b03841660208601528560408601528660608601528660808601526706f05b59d3b2000060a08601526706f05b59d3b2000060c0860152600160e086015260016101008601521661012084015283610140840152602092604051610bf28582612864565b8581526101608201526040519060c0820182811067ffffffffffffffff8211176117b45760405281527f9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658848201526706f05b59d3b20000604082015260608101956001600160a01b0384168752604051610c6c8682612864565b8681526080830152600160a08301526001600160a01b03601f5460081c16908680604051888101906370a0823160e01b825285602482015260248152610cb3604482612864565b5190845afa50610cd2610cc461307d565b878082518301019101612a0f565b506001600160a01b031960115416176011556370a0823163ffffffff19600f541617600f55600e54680100000000000000008110156117b4576001810180600e558110156117a057600e875285872001556001600160a01b0360115416600f5460e01b60105490610d416130c3565b90610d5d846001600160a01b03165f52600d60205260405f2090565b9063ffffffff60e01b1690818a5288526040892060405189810190610d9581610d878888866130ac565b03601f198101835282612864565b5190208a52885260ff600360408b2001541615611792575b610dc8846001600160a01b03165f52600d60205260405f2090565b9089528752610d87610de860408a20936040519283918b830195866130ac565b5190208752855260408620906001820154916002810154610e0981856129ee565b6115d0575b8154604051630667f9d760e41b81526001600160a01b0385166004820152602481018290529490919089866044815f516020619e375f395f51905f525afa9586156115c5578b96611596575b506001908201610100031b5f1901811b198516915f516020619e375f395f51905f523b15611592576040516370ca10bb60e01b81526001600160a01b038616600482015260248101919091526706f05b59d3b2000090911b9190911760448201528881606481835f516020619e375f395f51905f525af1801561158757908991611572575b5050878088600f5460e01b610f2e6024610ef9600d61319d565b6040519485918183019563ffffffff60e01b1686528051918291018484015e810186838201520301601f198101845283612864565b6001600160a01b03601154169151915afa610f4761307d565b906010546001600160fb1b038116810361155e578a9280518b81115f1461155857508a905b8c925b8284106114cd5750505050159081156114ba575b50611448575050506001600160a01b03196011541660115563ffffffff19600f5416600f55600e5485600e5580611424575b508460105560ff1960135416601355610fcf601454612935565b95866113ce575b8596506001600160a01b03602254165f516020619e375f395f51905f523b156113ca57604051906303223eab60e11b825260048201528681602481835f516020619e375f395f51905f525af19081156113bf5787916113a6575b50506001600160a01b03601f5460081c16906001600160a01b036022541691803b156113a25786886111539360a09682966040519889978896879563736050a960e01b875260606004880152611124610160875160c060648b015280516101248b0152848101516101448b015260408101516101648b015260608101516101848b015260808101516101a48b0152868101516101c48b015260c08101516101e48b015260e08101516102048b01526101008101516102248b015263ffffffff610120820151166102448b015263ffffffff610140820151166102648b015201516101806102848a01526102a489019061270f565b918601516084880152604086015160a48801525160c487015260808501518682036063190160e488015261270f565b92015161010484015260248301526001604483015203925af190811561055b57859161138d575b50505f516020619e375f395f51905f523b15610936576040516390c5013b60e01b81528481600481835f516020619e375f395f51905f525af190811561055b578591611378575b505060405161122b9183316111d7606084612864565b603483527f44656c65676174656420726563697069656e742073686f756c64206e6f742072868401527f656365697665204554482066726f6d2066696c6c000000000000000000000000604084015261302a565b816001600160a01b036024818354169360405194859384926370a0823160e01b84521660048301525afa9081156104f4578391611347575b507f44656c65676174656420726563697069656e742073686f756c6420726563656960405192611294606085612864565b602784528301527f766520574554480000000000000000000000000000000000000000000000000060408301526706f05b59d3b2000081036112d4575050f35b5f516020619e375f395f51905f523b156113435761132491839160405193849283926388b44c8560e01b845260048401526706f05b59d3b20000602484015260606044840152606483019061270f565b03815f516020619e375f395f51905f525afa80156105185761091c5750f35b5050fd5b809350828092503d8311611371575b6113608183612864565b810103126104e8578291515f611263565b503d611356565b8161138291612864565b61093657835f6111c1565b8161139791612864565b61093657835f61117a565b8780fd5b816113b091612864565b6113bb57855f611030565b8580fd5b6040513d89823e3d90fd5b8680fd5b601f87116001146113e757858097505085601455610fd6565b601486526001601f868820980160051c880197015b878110611419575085965060148652858581208160145555610fd6565b5f81556001016113fc565b600e8652848620908101905b81811061143d5750610fb5565b868155600101611430565b8288928392545f516020619e375f395f51905f523b15610936576040516370ca10bb60e01b81526001600160a01b03929092166004830152602482015260448101919091528181606481835f516020619e375f395f51905f525af18015610518576114b05750fd5b8161052391612864565b6706f05b59d3b20000915014155f610f83565b909192946114de868360051b6129ee565b83518110156115445783018d01517fff0000000000000000000000000000000000000000000000000000000000000016600387901b8715600889830414171561152f571c1794600101929190610f6f565b50634e487b7160e01b8f52601160045260248ffd5b634e487b7160e01b8f52603260045260248ffd5b90610f6c565b634e487b7160e01b8b52601160045260248bfd5b8161157c91612864565b6113a257875f610edf565b6040513d8b823e3d90fd5b8a80fd5b9095508981813d83116115be575b6115ae8183612864565b810103126104e857519481610e5a565b503d6115a4565b6040513d8d823e3d90fd5b6115da81856129ee565b61010003610100811161177e5760ff811161177e5760405163348051d760e11b81526001821b60048201528a816024815f516020619e375f395f51905f525afa9081156115c557908b8b9281926116e3575b5091606a6116cf92600195946040519384927f73746453746f726167652066696e642853746453746f72616765293a20506163828501527f6b656420736c6f742e2057652063616e2774206669742076616c75652067726560408501527f61746572207468616e200000000000000000000000000000000000000000000060608501528051918291018585015e82019083820152030190601f1982018152612864565b1b6706f05b59d3b2000010610e0e575b8880fd5b925050503d808c833e6116f68183612864565b8101908a8183031261177a57805167ffffffffffffffff81116117765782601f82840101121561177657808201519161172e836128a5565b9361173c6040519586612864565b8385528d84848401010111611772578d60019594818f866116cf97828098606a9801018386015e8301015293509193945061162c565b8d80fd5b8c80fd5b8b80fd5b634e487b7160e01b8a52601160045260248afd5b61179a6133de565b50610dad565b634e487b7160e01b87526032600452602487fd5b634e487b7160e01b87526041600452602487fd5b634e487b7160e01b85526011600452602485fd5b50346100fb57806003193601126100fb5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061183b576101698561015d81870382612864565b82546001600160a01b0316845260209093019260019283019201611824565b50346100fb57806003193601126100fb5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106118b9576101698561015d81870382612864565b82546001600160a01b03168452602090930192600192830192016118a2565b50346100fb57806003193601126100fb57601e546118f58161291d565b6119026040519182612864565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b838310611a075786858760405192839260208401906020855251809152604084019160408260051b8601019392815b83831061196e5786860387f35b919395509193603f19878203018352855190602060408201926001600160a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b8281106119dc57505050505060208060019297019301930190928695949293611961565b90919293946020806119fa600193605f19878203018952895161270f565b97019501939291016119b8565b604051611a1381612848565b6001600160a01b038354168152600183018054611a2f8161291d565b91611a3d6040519384612864565b8183528a526020808b20908b9084015b838210611a73575050505060019282602092836002950152815201920192019190611932565b600160208192604051611a8a81610235818a61296d565b815201930191019091611a4d565b50346100fb57806003193601126100fb5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b818110611af7576101698561015d81870382612864565b82546001600160a01b0316845260209093019260019283019201611ae0565b50346100fb57806003193601126100fb57611b2f612da4565b611b37612f86565b90611b406128e4565b91836040516020810190611b6e602082885180838b01875e810186838201520301601f198101835282612864565b5190206040519063ffa1864960e01b825260048201526020816024815f516020619e375f395f51905f525afa908115610518578291611e54575b505f516020619e375f395f51905f523b1561052357816001600160a01b03611bf59260405193849283926318caf8e360e31b8452169889600484015260406024840152604483019061270f565b0381835f516020619e375f395f51905f525af1801561051857611e3f575b50506001600160a01b03601f5460081c16926001600160a01b036040519363eda355d760e01b8552166004840152602083602481875afa92831561055b578593611e1e575b50611cc260609360405190611c6d8683612864565b602b82527f53686f756c64206e6f7420646574656374204549502d373730322064656c656760208301527f617465642077616c6c65740000000000000000000000000000000000000000006040830152612fbe565b6001600160a01b036040519263eda355d760e01b8452166004830152602082602481875afa91821561055b57602092611d5f918791611e01575b5060405190611d0b8683612864565b602f82527f53686f756c64206e6f742064657465637420726567756c617220636f6e747261858301527f63742061732064656c65676174656400000000000000000000000000000000006040830152612fbe565b60246040518095819363eda355d760e01b835260048301525afa80156104f4576104a5928491611dd2575b50611d986040519283612864565b602282527f53686f756c64206e6f742064657465637420454f412061732064656c65676174602083015261195960f21b6040830152612fbe565b611df4915060203d602011611dfa575b611dec8183612864565b810190612905565b5f611d8a565b503d611de2565b611e189150843d8611611dfa57611dec8183612864565b5f611cfc565b611e3891935060203d602011611dfa57611dec8183612864565b915f611c58565b81611e4991612864565b6109a057835f611c13565b611e6d915060203d6020116109e3576109d48183612864565b5f611ba8565b9050346104e8575f3660031901126104e85761086e80820182811067ffffffffffffffff8211176126b9578291613d7d833903905ff0801561268f576001600160a01b03166001600160a01b0319602054161760205560405163ffa1864960e01b8152600160048201526020816024815f516020619e375f395f51905f525afa801561268f576001600160a01b03915f9161269a575b50166001600160a01b0319602154161760215560405163ffa1864960e01b8152600260048201526020816024815f516020619e375f395f51905f525afa801561268f576001600160a01b03915f91612670575b50166001600160a01b031960225416176022556040908151611f7e8382612864565b60098152602081017f726563697069656e7400000000000000000000000000000000000000000000008152835160096020820192835e5f602982015260098152611fc9602982612864565b51902083519063ffa1864960e01b825260048201526020816024815f516020619e375f395f51905f525afa908115612647575f91612651575b505f516020619e375f395f51905f523b156104e8575f6001600160a01b0361204d92865193849283926318caf8e360e31b84521695866004840152886024840152604483019061270f565b0381835f516020619e375f395f51905f525af1801561264757612632575b506001600160a01b0319602354161760235581516120898382612864565b60128152602081017f6d6f636b496d706c656d656e746174696f6e00000000000000000000000000008152835160126020820192835e836032820152601281526120d4603282612864565b51902083519063ffa1864960e01b825260048201526020816024815f516020619e375f395f51905f525afa908115612609578391612613575b505f516020619e375f395f51905f523b1561099157826001600160a01b0361215892865193849283926318caf8e360e31b84521695866004840152886024840152604483019061270f565b0381835f516020619e375f395f51905f525af18015612609579083916125f4575b50506001600160a01b031960245416176024556001600160a01b03602154165f516020619e375f395f51905f523b15610523578251906303223eab60e11b825260048201528181602481835f516020619e375f395f51905f525af180156125ea579082916125d5575b50506001600160a01b0360205416825190615529908183019183831067ffffffffffffffff8411176125c1579183916020936145eb8439815203019082f09182156125b7576001600160a01b03602154169281516122408382612864565b60078152602081017f687562506f6f6c000000000000000000000000000000000000000000000000008152835160076020820192835e8560278201526007815261228b602782612864565b51902083519063ffa1864960e01b825260048201526020816024815f516020619e375f395f51905f525afa90811561258e578591612598575b505f516020619e375f395f51905f523b1561051457846001600160a01b0361230f92865193849283926318caf8e360e31b84521695866004840152886024840152604483019061270f565b0381835f516020619e375f395f51905f525af1801561258e57908591612579575b505082519463191f15db60e21b60208701528460248701526044860152606485015260648452612361608485612864565b815190610297908183019183831067ffffffffffffffff841117612565579583926001600160a01b0361239c938899619b14873916906128c1565b039083f0801561255a577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f555f516020619e375f395f51905f523b156125365780516390c5013b60e01b81528281600481835f516020619e375f395f51905f525af1801561253957908391612545575b50506124486001600160a01b03601f5460081c16612cd4565b6001600160a01b03601f5460081c165f516020619e375f395f51905f523b156113435781519063ca669fa760e01b825260048201528281602481835f516020619e375f395f51905f525af1801561253957908391612521575b50506001600160a01b036020541690813b156113435782674563918244f40000926004835180958193630d0e30db60e41b83525af190811561092d575061250c575b506124f86001600160a01b0360225416612cd4565b6104a56001600160a01b0360235416612d41565b8161251691612864565b6100fb57805f6124e3565b8161252b91612864565b61253657815f6124a1565b50fd5b505051903d90823e3d90fd5b8161254f91612864565b61253657815f61242f565b5051903d90823e3d90fd5b634e487b7160e01b86526041600452602486fd5b8161258391612864565b6109a057835f612330565b84513d87823e3d90fd5b6125b1915060203d6020116109e3576109d48183612864565b5f6122c4565b51903d90823e3d90fd5b634e487b7160e01b85526041600452602485fd5b816125df91612864565b6100fb57805f6121e2565b83513d84823e3d90fd5b816125fe91612864565b61052357815f612179565b84513d85823e3d90fd5b61262c915060203d6020116109e3576109d48183612864565b5f61210d565b61263f9192505f90612864565b5f905f61206b565b84513d5f823e3d90fd5b61266a915060203d6020116109e3576109d48183612864565b5f612002565b612689915060203d6020116109e3576109d48183612864565b5f611f5c565b6040513d5f823e3d90fd5b6126b3915060203d6020116109e3576109d48183612864565b5f611f09565b634e487b7160e01b5f52604160045260245ffd5b60206040818301928281528451809452019201905f5b8181106126f05750505090565b82516001600160a01b03168452602093840193909201916001016126e3565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106127505750505090565b82516001600160e01b031916845260209384019390920191600101612743565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106127a257505050505090565b90919293946020806127c0600193603f19868203018752895161270f565b97019301930191939290612793565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061280157505050505090565b9091929394602080612839600193603f198682030187526040838b516001600160a01b03815116845201519181858201520190612733565b970193019301919392906127f2565b6040810190811067ffffffffffffffff8211176126b957604052565b90601f8019910116810190811067ffffffffffffffff8211176126b957604052565b908160209103126104e857516001600160a01b03811681036104e85790565b67ffffffffffffffff81116126b957601f01601f191660200190565b6040906001600160a01b036128e19493168152816020820152019061270f565b90565b604051906128f3604083612864565b6003825262656f6160e81b6020830152565b908160209103126104e8575180151581036104e85790565b67ffffffffffffffff81116126b95760051b60200190565b90600182811c92168015612963575b602083101461294f57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612944565b5f929181549161297c83612935565b80835292600181169081156129d1575060011461299857505050565b5f9081526020812093945091925b8383106129b7575060209250010190565b6001816020929493945483858701015201910191906129a6565b915050602093945060ff929192191683830152151560051b010190565b919082018092116129fb57565b634e487b7160e01b5f52601160045260245ffd5b908160209103126104e8575190565b90604051918281549182825260208201905f5260205f20925f905b806007830110612b7d57612a8f945491818110612b5e575b818110612b3f575b818110612b20575b818110612b01575b818110612ae2575b818110612ac3575b818110612aa6575b10612a91575b500383612864565b565b6001600160e01b03191681526020015f612a87565b602083811b6001600160e01b031916855290930192600101612a81565b604083901b6001600160e01b0319168452602090930192600101612a79565b606083901b6001600160e01b0319168452602090930192600101612a71565b608083901b6001600160e01b0319168452602090930192600101612a69565b60a083901b6001600160e01b0319168452602090930192600101612a61565b60c083901b6001600160e01b0319168452602090930192600101612a59565b60e083901b6001600160e01b0319168452602090930192600101612a51565b916008919350610100600191865463ffffffff60e01b8160e01b16825263ffffffff60e01b8160c01b16602083015263ffffffff60e01b8160a01b16604083015263ffffffff60e01b8160801b16606083015263ffffffff60e01b8160601b16608083015263ffffffff60e01b8160401b1660a083015263ffffffff60e01b8160201b1660c083015263ffffffff60e01b1660e0820152019401920185929391612a39565b60085460ff1615612c3257600190565b604051630667f9d760e41b81525f516020619e375f395f51905f5260048201527f6661696c6564000000000000000000000000000000000000000000000000000060248201526020816044815f516020619e375f395f51905f525afa90811561268f575f91612ca2575b50151590565b90506020813d602011612ccc575b81612cbd60209383612864565b810103126104e857515f612c9c565b3d9150612cb0565b5f516020619e375f395f51905f523b156104e85760405163c88a5e6d60e01b81526001600160a01b03919091166004820152678ac7230489e8000060248201525f81604481835f516020619e375f395f51905f525af1801561268f57612d375750565b5f612a8f91612864565b5f516020619e375f395f51905f523b156104e85760405163c88a5e6d60e01b81526001600160a01b03919091166004820152670de0b6b3a764000060248201525f81604481835f516020619e375f395f51905f525af1801561268f57612d375750565b60245460405161ef0160f01b602082015260609190911b6bffffffffffffffffffffffff19166023820152601781525f612ddf603783612864565b6040805192612dee8285612864565b600f8452602084017f64656c65676174656457616c6c6574000000000000000000000000000000000081528251600f6020820192835e5f602f820152600f8152612e39602f82612864565b5190209382519463ffa1864960e01b865260048601526020856024815f516020619e375f395f51905f525afa948515612f5b575f95612f65575b505f516020619e375f395f51905f523b156104e8575f612ebc918451809381926318caf8e360e31b83526001600160a01b038a166004840152876024840152604483019061270f565b0381835f516020619e375f395f51905f525af18015612f5b57612f46575b505f516020619e375f395f51905f523b15610991579082612f0f92825180948192635a6b63c160e11b835288600484016128c1565b0381835f516020619e375f395f51905f525af190811561092d5750612f3357505090565b612f3e828092612864565b6100fb575090565b612f539193505f90612864565b5f915f612eda565b83513d5f823e3d90fd5b612f7f91955060203d6020116109e3576109d48183612864565b935f612e73565b604051608c80820182811067ffffffffffffffff8211176126b9578291619dab833903905ff0801561268f576001600160a01b031690565b80612fc7575050565b5f516020619e375f395f51905f523b156104e85760408051637ba0480960e01b815291151560048301526024820152905f908290819061300b90604483019061270f565b03815f516020619e375f395f51905f525afa801561268f57612d375750565b9080820361303757505050565b5f516020619e375f395f51905f523b156104e8575f9161300b60405194859384936388b44c8560e01b85526004850152602484015260606044840152606483019061270f565b3d156130a7573d9061308e826128a5565b9161309c6040519384612864565b82523d5f602084013e565b606090565b60209291908391805192839101825e019081520190565b6130ce601454612935565b61318b576040519081826020600e549283815201600e5f5260205f20925f5b81811061317257505061310292500383612864565b81518060051b90808204602014901517156129fb57613120816128a5565b9061312e6040519283612864565b80825261313d601f19916128a5565b013660208301375f5b835181101561316d578061315c6001928661336d565b5160208260051b8501015201613146565b509150565b84548352600194850194879450602090930192016130ed565b6040516128e18161023581601461296d565b60078101906131ac8254612935565b61326857600191500190604051808360208295549384815201905f5260205f20925f5b81811061324f5750506131e492500383612864565b81518060051b90808204602014901517156129fb57613202816128a5565b906132106040519283612864565b80825261321f601f19916128a5565b013660208301375f5b835181101561316d578061323e6001928661336d565b5160208260051b8501015201613228565b84548352600194850194879450602090930192016131cf565b506128e1610235916040519283809261296d565b905f806020600285015460e01b6132976024610ef98861319d565b6001600160a01b036004870154169151915afa60036132b461307d565b9301548060051b906001600160fb1b038116036129fb575f938051602081115f1461336757506020905b5f925b8284106132f057505050509190565b909192956132fe87836129ee565b835181101561335357830160200151600388901b91907fff0000000000000000000000000000000000000000000000000000000000000016881560088a85041417156129fb576001921c1796019291906132e1565b634e487b7160e01b5f52603260045260245ffd5b906132de565b80518210156133535760209160051b010190565b9080601f830112156104e85781516133988161291d565b926133a66040519485612864565b81845260208085019260051b8201019283116104e857602001905b8282106133ce5750505090565b81518152602091820191016133c1565b5f906001600160a01b036011541690600f5460e01b60105490613401600d61319d565b90845f52600d60205260405f209063ffffffff60e01b1690815f5260205260405f20604051602081019061343a81610d878888866130ac565b5190205f5260205260ff600360405f20015416613ba1575f516020619e375f395f51905f523b156104e85760405163266cf10960e01b81525f81600481835f516020619e375f395f51905f525af1801561268f57613b8c575b5061349e600d61327c565b90506040516365bc948160e01b815286600482015287816024815f516020619e375f395f51905f525afa908115613b08578891613b27575b508051806134e2578880fd5b979596975b8015613b135790613533915f1901906020613502838361336d565b51604051630667f9d760e41b81526001600160a01b038d166004820152602481019190915293849081906044820190565b03815f516020619e375f395f51905f525afa928315613b08578893613ad5575b508215613a8a575b613565828261336d565b51601154604051630667f9d760e41b81526001600160a01b03909116600482018190526024820183905291906020816044815f516020619e375f395f51905f525afa9081156115c5578b91613a59575b506135c0600d61327c565b91909382155f14613a52575f19905b5f516020619e375f395f51905f523b15611772576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810185905260448101919091528c81606481835f516020619e375f395f51905f525af180156139be57908d91613a3d575b5050613640600d61327c565b9390506001600160a01b03601154165f516020619e375f395f51905f523b15611772576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528b81606481835f516020619e375f395f51905f525af18015613a3257908c91613a1d575b505082613a12575b505015613a0b578793889360ff6013541661388e575b6001868601610100031b5f1901851b16841c8103613885575090613759917f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed60808c89610d8761372e8d6040519283916020830195866130ac565b51902061373b868661336d565b51906040519283528a602084015260408301526060820152a161336d565b5190604051916080830183811067ffffffffffffffff82111761387157906003939291604052825260208201938452604082019081526060820193600185528a8952600d60205260408920868a526020526040892060405160208101906137c581610d878d8d866130ac565b5190208a526020526040892092518355516001830155516002820155019051151560ff80198354169116179055858452600d6020526040842081855260205260408420604051602081019061381f81610d878888866130ac565b519020855260205260ff600360408620015416156109a057604094958452600d602052848420908452602052610d876138658585209386519283916020830195866130ac565b51902082526020522090565b634e487b7160e01b89526041600452602489fd5b935091506134e7565b94506138d9935061389f838361336d565b51601154604051630667f9d760e41b81526001600160a01b0390911660048201526024810182905290959094602090869081906044820190565b03815f516020619e375f395f51905f525afa948515613a00578a956139cd575b5061390586600d613be3565b95909661391381600d613cba565b9290916001600160a01b03601154165f516020619e375f395f51905f523b156139c9576040516370ca10bb60e01b81526001600160a01b03919091166004820152602481019190915260448101919091528c81606481835f516020619e375f395f51905f525af180156139be57908d916139a9575b5050876139a1575b5094956136d35750935091506134e7565b96505f613990565b816139b391612864565b61177a578b5f613988565b6040513d8f823e3d90fd5b8e80fd5b9094506020813d82116139f8575b816139e860209383612864565b810103126104e85751935f6138f9565b3d91506139db565b6040513d8c823e3d90fd5b91506134e7565b141590505f806136bd565b81613a2791612864565b611592578a5f6136b5565b6040513d8e823e3d90fd5b81613a4791612864565b61177a578b5f613634565b8c906135cf565b90506020813d8211613a82575b81613a7360209383612864565b810103126104e857515f6135b5565b3d9150613a66565b7f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5613ab5838361336d565b51604080516001600160a01b038e168152602081019290925290a161355b565b9092506020813d8211613b00575b81613af060209383612864565b810103126104e85751915f613553565b3d9150613ae3565b6040513d8a823e3d90fd5b634e487b7160e01b87526011600452602487fd5b90503d8089833e613b388183612864565b8101906040818303126116df57805167ffffffffffffffff8111613b885782613b62918301613381565b91602082015167ffffffffffffffff811161159257613b819201613381565b505f6134d6565b8980fd5b613b999196505f90612864565b5f945f613493565b9193909294505f52600d60205260405f20905f52602052610d87613bd460405f20936040519283916020830195866130ac565b5190205f5260205260405f2090565b91905f5b6101008110613bfa57505090505f905f90565b8060ff0360ff81116129fb576001901b6001600160a01b036004860154165f516020619e375f395f51905f523b156104e8576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020619e375f395f51905f525af1801561268f57613caa575b50613c848461327c565b81613ca0575b50613c9757600101613be7565b92505060019190565b905015155f613c8a565b5f613cb491612864565b5f613c7a565b91905f5b6101008110613cd157505090505f905f90565b6001811b6001600160a01b036004860154165f516020619e375f395f51905f523b156104e8576040516370ca10bb60e01b81526001600160a01b039190911660048201526024810184905260448101919091525f81606481835f516020619e375f395f51905f525af1801561268f57613d6c575b50613d4f8461327c565b81613d62575b50613c9757600101613cbe565b905015155f613d55565b5f613d7691612864565b5f613d4556fe60806040523461010e576100135f54610112565b601f81116100c7575b507f577261707065642045746865720000000000000000000000000000000000001a5f5560015461004c90610112565b601f811161007f575b6008630ae8aa8960e31b016001556002805460ff19166012179055604051610723908161014b8239f35b60015f52601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6908101905b8181106100bc5750610055565b5f81556001016100af565b5f8052601f0160051c7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563908101905b818110610103575061001c565b5f81556001016100f6565b5f80fd5b90600182811c92168015610140575b602083101461012c57565b634e487b7160e01b5f52602260045260245ffd5b91607f169161012156fe60806040526004361015610026575b361561001e5761001c6106a6565b005b61001c6106a6565b5f3560e01c806306fdde0314610411578063095ea7b31461039957806318160ddd1461037e57806323b872dd1461034f5780632e1a7d4d146102b6578063313ce5671461029657806370a082311461025e57806395d89b4114610140578063a9059cbb1461010e578063d0e30db0146100fb5763dd62ed3e0361000e57346100f75760403660031901126100f7576100bc61050d565b6001600160a01b036100cc610523565b91165f5260046020526001600160a01b0360405f2091165f52602052602060405f2054604051908152f35b5f80fd5b5f3660031901126100f75761001c6106a6565b346100f75760403660031901126100f757602061013661012c61050d565b6024359033610567565b6040519015158152f35b346100f7575f3660031901126100f7576040515f6001548060011c90600181168015610254575b6020831081146102405782855290811561022457506001146101ce575b50819003601f01601f191681019067ffffffffffffffff8211818310176101ba57604082905281906101b690826104e3565b0390f35b634e487b7160e01b5f52604160045260245ffd5b60015f9081529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82821061020e57506020915082010182610184565b60018160209254838588010152019101906101f9565b90506020925060ff191682840152151560051b82010182610184565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610167565b346100f75760203660031901126100f7576001600160a01b0361027f61050d565b165f526003602052602060405f2054604051908152f35b346100f7575f3660031901126100f757602060ff60025416604051908152f35b346100f75760203660031901126100f757600435335f5260036020528060405f2054106100f757335f52600360205260405f206102f4828254610539565b9055805f8115610346575b5f80809381933390f11561033b576040519081527f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6560203392a2005b6040513d5f823e3d90fd5b506108fc6102ff565b346100f75760603660031901126100f757602061013661036d61050d565b610375610523565b60443591610567565b346100f7575f3660031901126100f757602047604051908152f35b346100f75760403660031901126100f7576103b261050d565b6001600160a01b0360243591335f52600460205260405f208282165f526020528260405f205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100f7575f3660031901126100f7576040515f5f548060011c906001811680156104d9575b6020831081146102405782855290811561022457506001146104855750819003601f01601f191681019067ffffffffffffffff8211818310176101ba57604082905281906101b690826104e3565b5f8080529091507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8282106104c357506020915082010182610184565b60018160209254838588010152019101906104ae565b91607f1691610437565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f757565b602435906001600160a01b03821682036100f757565b9190820391821161054657565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161054657565b6001600160a01b031690815f5260036020528260405f2054106100f757338214158061067b575b6105fd575b60206001600160a01b037fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92845f526003835260405f206105d5878254610539565b90551693845f526003825260405f206105ef82825461055a565b9055604051908152a3600190565b815f52600460205260405f206001600160a01b0333165f526020528260405f2054106100f75760206001600160a01b037fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92845f526004835260405f208233165f52835260405f20610670878254610539565b905592505050610593565b50815f52600460205260405f206001600160a01b0333165f5260205260405f205f199054141561058e565b335f52600360205260405f206106bd34825461055a565b90556040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a256fea2646970667358221220a8f81421a470c75e9f0c793f452bd62c584a36d4653a6db6577767bb9ba8e79c64736f6c634300081e0033610200806040523461029c57602081615529803803809161002082856102a0565b83398101031261029c57516001600160a01b0381169081900361029c57306080525f60c0525f60a05260e052610e1061010052617e90610120525f5460ff8160081c1661029c5760ff80821603610262575b505f610160525f610180525f610140525f80604051602081019063011a412160e61b8252600481526100a56024826102a0565b5190825afa3d1561025b573d6001600160401b03811161024757604051906100d7601f8201601f1916602001836102a0565b81523d5f602083013e5b8161023b575b81610205575b506101a0525f6101c05260016101e05260405161526590816102c482396080518181816110a90152818161143a01526114fb015260a051816116f3015260c051816118c3015260e05181818161081a0152818161358101528181613e81015281816141d5015281816142580152818161437401526147d001526101005181818161167401526140600152610120518181816104b90152613e2d01526101405181818161188301528181614f0b0152614fb30152610160518181816107830152818161445d0152614df20152610180518181816120550152818161448d0152614e1b01526101a051818181611c920152614eb101526101c05181818161115101526144e101526101e0518181816107be0152614c4b0152f35b905060208151910151906020811061022a575b506001600160a01b031615155f6100ed565b5f199060200360031b1b165f610218565b805160201491506100e7565b634e487b7160e01b5f52604160045260245ffd5b60606100e1565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f610072565b5f80fd5b601f909101601f19168101906001600160401b038211908210176102475760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461048a5780630cb84d9a146104855780631186ec331461048057806311eac8551461047b57806312622e5b1461047657806315348e44146103fe57806317fcb39b1461047157806319c1648c1461046c5780631b3d5559146104675780631fab657c1461046257806329cb924d1461045d5780632e378115146104585780632e63e59a146104535780633659cfe61461044e5780633a90dc85146104495780633f00627b1461036d578063437b911614610444578063490e49ef1461043f578063493a4f841461043a5780634f1ef286146104355780635285e0581461043057806352d1902d1461042b578063541f4f1414610426578063577f51f81461042157806357f6dcb81461041c57806358f105ed146104175780636068d6cb1461041257806361a04d301461040d578063647c576c14610408578063670fa8ac146104035780636bbbcd2e146103fe5780636e400983146103f95780636fd5c10e146103f4578063736050a9146103ef578063738b62e5146103ea5780637659f9e0146103e5578063775c0d03146103e05780637aef642c146103db5780637b939232146103d65780637ef413e1146103d157806382e2c43f146103cc5780638a7860ce146103c75780638b15788e146103c25780639748cf7c146103bd57806397943aa9146103b8578063979f2bc2146103b357806399cc2968146103ae5780639a8a0592146103a9578063a1244c67146103a4578063a18a096e1461039f578063ac9650d81461039a578063ad5425c614610395578063adb5a6a61461033b578063b370b7f514610390578063b4c0d7ab1461038b578063babb6aac14610386578063c35c83fc14610381578063ceb4c9871461037c578063d513cb6614610377578063d7e1583a14610372578063da9578691461036d578063dda5211314610368578063ddd224f114610363578063de7eba781461035e578063deff4b2414610359578063e322921114610354578063e465112e1461034f578063ea86bd461461034a578063eda355d714610345578063ee2a53f814610340578063f79f29ed1461033b5763fc8a584f0361000e57612a72565b612526565b612a34565b6129d7565b61296a565b612941565b61291a565b612828565b6127d8565b6127af565b612789565b611189565b612753565b612706565b6126e8565b6126bd565b6125de565b6125af565b61256d565b6124b5565b612416565b6122be565b612297565b61227d565b6121ce565b612107565b612079565b612036565b611fc5565b611f35565b611e17565b611de1565b611d49565b611cb7565b611c7b565b611b3c565b611a7c565b6119b8565b6118a7565b611867565b6107e1565b61182d565b611748565b6116dc565b6116b6565b611698565b611658565b6115db565b61154b565b6114e1565b6114ba565b6113f8565b611357565b611339565b61126c565b611132565b611082565b610e89565b610d36565b610d0d565b610c05565b610ae3565b610863565b6107fb565b6107a7565b610764565b6106fd565b610508565b61049d565b5f91031261049957565b5f80fd5b34610499575f36600319011261049957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361049957565b60e435906104fb826104dd565b565b35906104fb826104dd565b34610499576020366003190112610499576001600160a01b0360043561052d816104dd565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b820361049957565b60a435908160070b820361049957565b63ffffffff81160361049957565b61010435906104fb8261056e565b61012435906104fb8261056e565b61014435906104fb8261056e565b61016435906104fb8261056e565b35906104fb8261056e565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105ef57604052565b6105bf565b6101a0810190811067ffffffffffffffff8211176105ef57604052565b6060810190811067ffffffffffffffff8211176105ef57604052565b90601f8019910116810190811067ffffffffffffffff8211176105ef57604052565b604051906104fb60c08361062d565b604051906104fb6101808361062d565b604051906104fb6101a08361062d565b604051906104fb60808361062d565b67ffffffffffffffff81116105ef57601f01601f191660200190565b9291926106b58261068d565b916106c3604051938461062d565b829481845281830111610499578281602093845f960137010152565b9080601f83011215610499578160206106fa933591016106a9565b90565b610100366003190112610499576107156004356104dd565b6107206024356104dd565b61072861054e565b5061073460a43561056e565b60c43567ffffffffffffffff8111610499576107549036906004016106df565b506332ed1ba560e21b5f5260045ffd5b34610499575f3660031901126104995760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610499575f3660031901126104995760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610499575f3660031901126104995760206040515f8152f35b34610499575f3660031901126104995760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261049957600435610856816104dd565b906024356106fa816104dd565b34610499576108713661083e565b6001600160a01b0361111161111160901b018161086954160116330361049957610899613546565b6001600160a01b0381169182151580610932575b610923576108f46001600160a01b03926108d9836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa90811561099b575f9161096c575b506001600160a01b03808316911614156108ad565b61098e915060203d602011610994575b610986818361062d565b810190613557565b5f610957565b503d61097c565b61356c565b67ffffffffffffffff81116105ef5760051b60200190565b9080601f830112156104995781356109cf816109a0565b926109dd604051948561062d565b81845260208085019260051b82010192831161049957602001905b828210610a055750505090565b81358152602091820191016109f8565b9080601f83011215610499578135610a2c816109a0565b92610a3a604051948561062d565b81845260208085019260051b82010192831161049957602001905b828210610a625750505090565b602080918335610a71816104dd565b815201910190610a55565b929190610a88816109a0565b93610a96604051958661062d565b602085838152019160051b810192831161049957905b828210610ab857505050565b8135815260209182019101610aac565b9080601f83011215610499578160206106fa93359101610a7c565b606036600319011261049957600435610afb8161056e565b6024359067ffffffffffffffff82116104995760c0600319833603011261049957610b2461064f565b918060040135835260248101356020840152604481013567ffffffffffffffff811161049957610b5a90600436918401016109b8565b6040840152610b6b606482016105b4565b6060840152610b7c608482016104fd565b608084015260a48101359067ffffffffffffffff8211610499576004610ba59236920101610a15565b60a08301526044359167ffffffffffffffff831161049957610bce610018933690600401610ac8565b91612abb565b9181601f840112156104995782359167ffffffffffffffff8311610499576020808501948460051b01011161049957565b346104995760603660031901126104995760043567ffffffffffffffff81116104995780360390606060031983011261049957602435610c448161056e565b60443567ffffffffffffffff811161049957610c64903690600401610bd4565b919093610c6f613546565b600484013590610182190181121561049957610d0394610cfe93610c9a6004610cf794880101612ca9565b95610cb0610cab60808901516138ca565b613577565b6044610cbb88613488565b91013560208801519061016089015192610cd361064f565b998a5260208a01526040890152606088015260808701525f60a08701523691610a7c565b90836138e0565b613962565b6100186001606555565b34610499575f366003190112610499576020604051428152f35b90816101809103126104995790565b346104995760403660031901126104995760043567ffffffffffffffff811161049957610d67903690600401610d27565b602435610d7382612cb4565b6001600160a01b031691610d8960208201612cb4565b6001600160a01b031690610d9f60408201612cb4565b6001600160a01b031690610db560608201612cb4565b6001600160a01b0316610dca60808301612cb4565b6001600160a01b031660e083013560c084013560a0850135610def6101008701612cbe565b93610dfd6101208801612cbe565b95610e0b6101408901612cbe565b976101608101610e1a91612cc8565b99909a610e2561065e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610e77926106a9565b610160830152610018913391906134b9565b346104995760203660031901126104995760043567ffffffffffffffff811161049957610eba903690600401610d27565b610ec2613546565b60ff61086b5460e01c166110735763ffffffff421690610140810190610efa83610eeb84612cbe565b63ffffffff9182169116101590565b6110645761012081019263ffffffff610f1285612cbe565b161061105557610f2a610f2536836118e7565b613488565b90610f3e825f5261087260205260405f2090565b5461104757610f80610f7a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561103a60808301359260a08101359060c081013560e082013597610fb7610fb16101008501359b612cbe565b91612cbe565b604084013591843593610fe6610fe1610fda602089013598610160810190612cc8565b36916106a9565b613b04565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b346104995760203660031901126104995760043561109f816104dd565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803014610499576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541603610499576001600160a01b0361111161111160901b0181610869541601163303610499576100189061112c612594565b90613b19565b34610499575f3660031901126104995760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b634e487b7160e01b5f52601160045260245ffd5b34610499575f36600319011261049957604051620100038152602090f35b6020600319820112610499576004359067ffffffffffffffff8211610499576111d291600401610bd4565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061122c57505050505090565b909192939460208061125d600193603f198682030187526040838b51805115158452015191818582015201906111d6565b9701930193019193929061121d565b346104995761127a366111a7565b611283816109a0565b91611291604051938461062d565b818352601f196112a0836109a0565b015f5b8181106113155750505f5b8281106112c757604051806112c386826111fa565b0390f35b8061130f6112d760019387612d25565b515f806112e5858989612d39565b906112f560405180938193612d50565b0390305af490611303612d5d565b60208201529015159052565b016112ae565b602090604051611324816105d3565b5f8152606083820152828288010152016112a3565b34610499575f3660031901126104995760206040516301e133808152f35b3461049957604036600319011261049957600435602435906001600160a01b0361111161111160901b018161086954160116330361049957611397613546565b61086c54680100000000000000008110156105ef5780600163ffffffff920161086c55836113c482612a11565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261049957600435611410816104dd565b60243567ffffffffffffffff8111610499576114309036906004016106df565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803014610499576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541603610499576001600160a01b0361111161111160901b01816108695416011633036104995761001891613bcf565b34610499575f3660031901126104995760206001600160a01b036108695416604051908152f35b34610499575f366003190112610499576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104995760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b610120366003190112610499576115636004356104dd565b61156e6024356104dd565b6115796044356104dd565b61158161055e565b5061158d60c43561056e565b60e43567ffffffffffffffff8111610499576107549036906004016106df565b9181601f840112156104995782359167ffffffffffffffff8311610499576020838186019501011161049957565b346104995760c0366003190112610499576004356115f8816104dd565b6024356044359160643561160b816104dd565b60843567ffffffffffffffff81116104995761162b9036906004016115ad565b9160a4359567ffffffffffffffff8711610499576116506100189736906004016115ad565b969095612ddf565b34610499575f36600319011261049957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610499575f36600319011261049957604051620100048152602090f35b34610499575f36600319011261049957602060ff61086b5460e81c166040519015158152f35b34610499575f3660031901126104995760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104995760043561172e8161056e565b9060243561173b816104dd565b906044356106fa816104dd565b34610499576117a561175936611716565b5f54939290919061178b60ff600887901c1615611775565b1590565b8096819761181f575b81156117ff575b50612d1e565b8461179c600160ff195f5416175f55565b6117e857612e4e565b6117ab57005b6117b961ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b6117fa61010061ff00195f5416175f55565b612e4e565b303b15915081611811575b505f611785565b60ff1660011490505f61180a565b600160ff821610915061177e565b34610499575f3660031901126104995760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b34610499575f36600319011261049957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610499575f36600319011261049957602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b91909161018081840312610499576118fd61065e565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261196161012083016105b4565b61012085015261197461014083016105b4565b61014085015261016082013567ffffffffffffffff81116104995761199992016106df565b610160830152565b8015150361049957565b604435906104fb826119a1565b346104995760603660031901126104995760043567ffffffffffffffff81116104995760c06003198236030112610499576119f161064f565b816004013567ffffffffffffffff811161049957611a1590600436918501016118e7565b8152602482013560208201526044820135604082015260648201356060820152608482013567ffffffffffffffff81116104995761001892611a5f60a492600436918401016106df565b6080840152013560a0820152602435611a766119ab565b91613a64565b3461049957602036600319011261049957600435611a99816119a1565b6001600160a01b0361111161111160901b01816108695416011633036104995760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921991611ae5613546565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206106fa9281815201906111d6565b346104995760203660031901126104995760043567ffffffffffffffff811161049957611b6d9036906004016115ad565b6001600160a01b0361111161111160901b018161086954160116330361049957611b95613546565b810160408282031261049957813591611bad836104dd565b60208101359167ffffffffffffffff8311610499576001600160a01b0392611bd592016106df565b91168015611c6c576004825110611c5d575f8083516020850182855af190611bfb612d5d565b9115611c4e577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611c356112c39460405191829182611b2b565b0390a2611c426001606555565b60405191829182611b2b565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b34610499575f3660031901126104995760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261049957600435611cd0816104dd565b602435611cdc816104dd565b60443591611ce9836104dd565b606435611cf5816104dd565b60843560e43560c43560a435611d0a836104dd565b611d1261057c565b93611d1b61058a565b95610144359967ffffffffffffffff8b1161049957611d416100189b36906004016115ad565b9a9099612f2b565b61018036600319011261049957600435611d62816104dd565b602435611d6e816104dd565b60443591611d7b836104dd565b606435611d87816104dd565b60843560a43560c435611d986104ee565b90611da161057c565b92611daa61058a565b94611db3610598565b96610164359a67ffffffffffffffff8c1161049957611dd96100189c36906004016115ad565b9b909a612f4d565b34610499576060366003190112610499576020611e0f600435611e03816104dd565b60243560443591613073565b604051908152f35b346104995760603660031901126104995760043560243567ffffffffffffffff811161049957611e4b9036906004016115ad565b9060443567ffffffffffffffff811161049957611e6c9036906004016115ad565b9190936040516020810190611e9581611e87468988876130b1565b03601f19810183528261062d565b51902003611f26575f93611eb0828695611eb994019061272d565b928101906130ce565b51611ef0611ece335b6001600160a01b031690565b91611e8760405193849260208401966337bfd2c960e21b885260248501613199565b5190305af4611efd612d5d565b9015611f0557005b60405163b8fe37a760e01b8152908190611f229060048301611b2b565b0390fd5b630f0c8f4760e11b5f5260045ffd5b34610499576020366003190112610499576004356001600160a01b0361111161111160901b018161086954160116330361049957611f71613546565b611f7a81612a11565b611fb2576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104995760443560243560043560643560843560a4356101043560e43560c435611ff661058a565b93611fff610598565b956120086105a6565b97610184359b67ffffffffffffffff8d116104995761202e6100189d36906004016115ad565b9c909b6131bb565b34610499575f3660031901126104995760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104995760e03660031901126104995760043567ffffffffffffffff8111610499576120aa903690600401610d27565b602435604435916064356084359060a43567ffffffffffffffff8111610499576120d89036906004016115ad565b92909160c4359667ffffffffffffffff8811610499576120ff6100189836906004016115ad565b979096613233565b346104995761211536611716565b909160ff5f5460081c16156104995761214b9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261215a828561062d565b600984526020808501926820a1a927a9a996ab1960b91b845261217f8151918261062d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104995760056121c9936100189651902091209061047f55610480556121bc614095565b6121c46140a4565b6140b8565b614110565b34610499576020366003190112610499576004356121eb816119a1565b6001600160a01b0361111161111160901b01816108695416011633036104995760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91612237613546565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b34610499575f366003190112610499576020604051468152f35b34610499575f36600319011261049957602063ffffffff61086b5460c01c16604051908152f35b34610499576040366003190112610499576004356024356122de826145e5565b6001600160a01b03821691825f5261087360205261230f60405f20336001600160a01b03165f5260205260405f2090565b549283156123a8576123585f91612325846145e5565b61234233916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561237883612369611ec2846138ca565b612372856138ca565b90614168565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106123e957505050505090565b9091929394602080612407600193603f1986820301875289516111d6565b970193019301919392906123da565b3461049957612424366111a7565b9061242e82613321565b915f5b81811061244657604051806112c386826123b7565b5f80612453838587612d39565b9061246360405180938193612d50565b0390305af4612470612d5d565b901561249657906001916124848287612d25565b5261248f8186612d25565b5001612431565b604481511061049957806024806004610499940151830101910161336a565b610180366003190112610499576044356024356004356064356084356101043560e43560c43560a4356124e78461056e565b6124ef61058a565b946124f8610598565b96610164359a67ffffffffffffffff8c116104995761251e6100189c36906004016115ad565b9b909a6133cd565b346104995760206125646001600160a01b036125413661083e565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610499575f3660031901126104995760206001600160a01b0361086a5416604051908152f35b604051906125a360208361062d565b5f808352366020840137565b34610499575f366003190112610499576112c36125ca612594565b6040519182916020835260208301906111d6565b346104995760c03660031901126104995760043560243560443560643560843567ffffffffffffffff81116104995761261b9036906004016115ad565b60a4939193359067ffffffffffffffff8211610499577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946126646126b39336906004016115ad565b92909161266f613546565b6126788a6145e5565b6126a7898b898961268a3688886106a9565b92612696368b8b6106a9565b946001600160a01b03469216613c86565b60405196879687612dac565b0390a36001606555005b34610499576020366003190112610499576004355f52610872602052602060405f2054604051908152f35b34610499575f36600319011261049957602060405163ffffffff8152f35b34610499575f3660031901126104995760206001600160a01b03610c5b5416604051908152f35b9060208282031261049957813567ffffffffffffffff8111610499576106fa92016118e7565b346104995760203660031901126104995760043567ffffffffffffffff811161049957611e0f610f2560209236906004016118e7565b34610499575f36600319011261049957602060ff61086b5460e01c166040519015158152f35b34610499575f3660031901126104995760206040516ec097ce7bc90715b34b9f10000000008152f35b34610499576020366003190112610499576004356127f5816104dd565b6001600160a01b0361111161111160901b018161086954160116330361049957612821906121c4613546565b6001606555005b346104995760603660031901126104995760043567ffffffffffffffff8111610499576128599036906004016118e7565b6024359060443590612869613546565b60ff61086b5460e01c166110735761014081015163ffffffff166128984263ffffffff165b9163ffffffff1690565b1015806128fb575b6128ec57610d03926128b182613488565b60c0830151602084015190610160850151926128cb61064f565b958652602086015260408501526060840152608083015260a08201526139db565b630c3a9b9d60e41b5f5260045ffd5b5061290960408201516138ca565b6001600160a01b03163314156128a0565b34610499575f3660031901126104995760206001600160a01b03610c5a5416604051908152f35b3461049957604036600319011261049957610018600435612961816104dd565b602435906141b0565b610160366003190112610499576044356024356004356064356101043560e43560c43560a43560843561299c8561056e565b61012435956129aa8761056e565b610144359967ffffffffffffffff8b11610499576129cf6100189b36906004016115ad565b9a9099613525565b34610499576020366003190112610499576129f36004356104dd565b60206040515f8152f35b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612a2f5761086c5f52600360205f20910201905f90565b6129fd565b346104995760203660031901126104995760043561086c5481101561049957612a5e604091612a11565b506001815491015482519182526020820152f35b3461049957602036600319011261049957600435612a8f816104dd565b6001600160a01b0361111161111160901b018161086954160116330361049957612821906121c9613546565b9190612ac5613546565b60808101612add610cab82516001600160a01b031690565b602082019283514603612bdd57611771612b0591846001612afd89612a11565b5001546135eb565b612bce5763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612bc16060850195612b4f612b49885163ffffffff1690565b8961366f565b8051958051612bab612b9d612b8c604085019a8c612b738d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946136e7565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612c5b565b0390a46104fb6001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612c095750505090565b8251845260209384019390920191600101612bfc565b90602080835192838152019201905f5b818110612c3c5750505090565b82516001600160a01b0316845260209384019390920191600101612c2f565b949695919260a0946001600160a01b03612c878196612c9b958a5260c060208b015260c08a0190612bec565b921660408801528682036060880152612c1f565b951515608085015216910152565b6106fa9036906118e7565b356106fa816104dd565b356106fa8161056e565b903590601e1981360301821215610499570180359067ffffffffffffffff82116104995760200191813603831361049957565b634e487b7160e01b5f52602160045260245ffd5b60031115612d1957565b612cfb565b1561049957565b8051821015612a2f5760209160051b010190565b90821015612a2f576111d29160051b810190612cc8565b908092918237015f815290565b3d15612d87573d90612d6e8261068d565b91612d7c604051938461062d565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612dd1926106fa979587526020870152608060408701526080860191612d8c565b926060818503910152612d8c565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612e49959a949916612e3b8a8c83612e263688886106a9565b91612e32368b8b6106a9565b9346908d613c86565b604051978897169a87612dac565b0390a3565b91909161800a6001600160a01b0319610c5a541617610c5a5560ff5f5460081c161561049957612e9b9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192612eaa828561062d565b600984526020808501926820a1a927a9a996ab1960b91b8452612ecf8151918261062d565b6005815201640312e302e360dc1b815260ff5f5460081c16156104995760056121c9936104fb9651902091209061047f55610480556121bc614095565b9063ffffffff8091169116019063ffffffff8211612f2657565b611175565b96949290916104fb9b9a9998969492612f4b63ffffffff42169889612f0c565b985b9593919b999897969492909b612f61613546565b61086b5460ff8160e81c166130645760c01c63ffffffff1696612f8388613471565b612faa9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612fb261066e565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190613028919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061304b926106a9565b61018082015261305a90613dc8565b6104fb6001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526130ab60748261062d565b51902090565b9392916020916130c991604087526040870191612d8c565b930152565b9081602091031261049957604051906020820182811067ffffffffffffffff8211176105ef5760405235815290565b906101806101606106fa93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e085015261010081015161010085015261317761012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906111d6565b6131b1604092959493956060835260608301906130fd565b9460208201520152565b9c9a99989796959493929190966131d0613546565b60ff61086b5460e81c16613064576131e9908e33613073565b96604051809e6131f8826105f4565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152613028565b979290959694939196613244613546565b60ff61086b5460e01c166110735761325f6101408a01612cbe565b61326e4263ffffffff1661288e565b101580613302575b6128ec5761305a986132f76132fd97613292610f2536856118e7565b9961329b61064f565b9a6132a636866118e7565b8c5260208c01528560408c01528660608c01526132c436868b6106a9565b60808c015260a08b01526132ef6132db84356138ca565b9860e06101008601359501359536916106a9565b9636916106a9565b95613c86565b6139db565b5061331060408a01356138ca565b6001600160a01b0316331415613276565b9061332b826109a0565b613338604051918261062d565b8281528092613349601f19916109a0565b01905f5b82811061335957505050565b80606060208093850101520161334d565b6020818303126104995780519067ffffffffffffffff8211610499570181601f820112156104995780519061339e8261068d565b926133ac604051948561062d565b8284526020838301011161049957815f9260208093018386015e8301015290565b9b999897969492909593916133e0613546565b61086b5460ff8160e81c166130645760c01c63ffffffff169661340288613471565b6134299063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61343161066e565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152613028565b63ffffffff1663ffffffff8114612f265760010190565b6040516130ab816134a560208201946040865260608301906130fd565b46604083015203601f19810183528261062d565b9190916134c4613546565b60ff61086b5460e01c166110735761014081015163ffffffff166134ed4263ffffffff1661288e565b101580613506575b6128ec5761305a926128b182613488565b5061351460408201516138ca565b6001600160a01b03163314156134f5565b9a9897959296939094919661354163ffffffff42169788612f0c565b976133e05b600260655414610499576002606555565b9081602091031261049957516106fa816104dd565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146135ae575b50565b476135b65750565b4790803b15610499575f90600460405180948193630d0e30db60e41b83525af1801561099b57156135ab575f6104fb9161062d565b6106fa929160405161366681611e87602082019460208652805160408401526020810151606084015260a0613630604083015160c06080870152610100860190612bec565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612c1f565b51902091614284565b61367a600291612a11565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146136bc57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b90816020910312610499575190565b91908201809211612f2657565b91959495939092935f96815190818151036138bb5781613766575b50505082613711575b50505050565b63ffffffff613748611ec283611ec27ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861435e565b6040805195865233602087015290959190911693a45f80808061370b565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa90811561099b575f9161388c575b505f5f5b8481106137ac57505050613702565b6137b68187612d25565b516137c4575b60010161379d565b906137da906137d38388612d25565b51906136da565b9082821161387d576138146117716138026137f58488612d25565b516001600160a01b031690565b61380c848a612d25565b51908a6142d5565b156137bc579a506138258b86612d25565b5161387361386b8d6138566137f561384f8c6001600160a01b03165f5261087360205260405f2090565b9289612d25565b6001600160a01b03165f5260205260405f2090565b9182546136da565b905560019a6137bc565b632ddaa83160e11b5f5260045ffd5b6138ae915060203d6020116138b4575b6138a6818361062d565b8101906136cb565b5f613799565b503d61389c565b6319a5316760e31b5f5260045ffd5b6001600160a01b03906138dc816145e5565b1690565b916117719161395c936040815191015191604051916138fe83610611565b825261366661391a602084019246845260408501958652612a11565b505493604051928391613941602084019660208852516060604086015260a08501906130fd565b9151606084015251608083015203601f19810183528261062d565b612bce57565b805163ffffffff6101208201511663ffffffff42911610611055576020820151906002613998835f5261087260205260405f2090565b54146139cc576104fb9260026139b96001945f5261087260205260405f2090565b556139c760025f8484614692565b614794565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff42911610611055576020830151926001613a12855f5261087260205260405f2090565b5403613a5d576001935b6002613a31825f5261087260205260405f2090565b54146139cc576104fb945f946002613a556139c7945f5261087260205260405f2090565b558484614692565b5f93613a1c565b919091805190613a7c61012083015163ffffffff1690565b63ffffffff429116106110555760208101518315613adc5760025b6002613aac835f5261087260205260405f2090565b54146139cc576104fb95613ad5613acf6139c7945f5261087260205260405f2090565b60029055565b8484614692565b6001613af1825f5261087260205260405f2090565b5403613afe576001613a97565b5f613a97565b80519081613b125750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613b4d576104fb9150614998565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181613bae575b50613b7d575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc03610499576104fb915f916148c7565b613bc891925060203d6020116138b4576138a6818361062d565b905f613b74565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613c03576104fb9150614998565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181613c65575b50613c33575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc03610499576104fb916001916148c7565b613c7f91925060203d6020116138b4576138a6818361062d565b905f613c2a565b93926042936104fb979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613ced60e08261062d565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613d4560a08261062d565b519020906040519161190160f01b83526002830152602282015220906149f9565b91908203918211612f2657565b9692610140989563ffffffff9586949285936106fa9e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906111d6565b613dd281516145e5565b606081019081511561408757610120810190613dfe613df5835163ffffffff1690565b63ffffffff1690565b80421090811561404e575b5061403f57610140810192613e22845163ffffffff1690565b63ffffffff613e53817f000000000000000000000000000000000000000000000000000000000000000016426136da565b9116116140305761016082015163ffffffff16918280613fed575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613fe4575b15613f945760808301513403613f8557833b15610499575f60049460405195868092630d0e30db60e41b825234905af190811561099b577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613f6692613f6b575b505b5191519260808101519060a081015160c082015197613f45613f3a6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613d73565b0390a4565b80613f795f613f7f9361062d565b8061048f565b5f613f0c565b636452a35d60e01b5f5260045ffd5b925034613f8557613f6683613fdf613fd0611ec27f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad397516138ca565b60808601519030903390614ad8565b613f0e565b50341515613eaa565b6301e133801015614018575b60e081015115614009575f613e6e565b63495d907f60e01b5f5260045ffd5b9161402a9063ffffffff421690612f0c565b91613ff9565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614059915042613d66565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613e09565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561049957565b60ff5f5460081c1615610499576001606555565b6001600160a01b0316801561410157806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561415957806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104fb916141ab82606481015b03601f19810184528361062d565b614b2f565b906001600160a01b038216803b15801561427d575b1561424957506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561049957604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af192831561099b576104fb93614235575b50614bba565b80613f795f6142439361062d565b5f61422f565b6104fb92506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614168565b505f6141c5565b929091905f915b84518310156142cd5761429e8386612d25565b5190818110156142bc575f52602052600160405f205b92019161428b565b905f52602052600160405f206142b4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143118160648101611e87565b519082855af1903d5f519083614328575b50505090565b9192509061433d57503b15155b5f8080614322565b6001915014614335565b6040906106fa9392815281602082015201906111d6565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f146144595750803b1561049957604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af1801561099b57614445575b506143eb611ec2611ec2610c5a546001600160a01b031690565b61086a546001600160a01b0316813b15610499576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af1801561099b576144375750565b80613f795f6104fb9361062d565b80613f795f6144539361062d565b5f6143d1565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168103614562577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316156144d2575061086a546104fb92506001600160a01b0316614de6565b90614508816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168094614cf7565b61086a546001600160a01b031691803b1561049957604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af1801561099b576144375750565b50602090614590836145766145bc95614be2565b9261458a61086a546001600160a01b031690565b90614cc8565b9061459e611ec26201000381565b905f6040518096819582946325171add60e11b845260048401614347565b03925af1801561099b576145cd5750565b6135ab9060203d6020116138b4576138a6818361062d565b60a01c6145ee57565b6379ec0ed760e11b5f5260045ffd5b61460682612d0f565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061468b82612d0f565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613f6660808501519260a08601519660c08701519660a08301519860e0820151986101008301519a6146f661012085015163ffffffff1690565b61014085015163ffffffff169160408601519386519561475a61472261016060208b01519a0151613b04565b9960608c01519b60406147386080830151613b04565b91015190602061474661067e565b9e8f528e015260408d015260608c016145fd565b6040519c8d9c8d614609565b906106fa94936080936001600160a01b038093168452602084015216604082015281606082015201906111d6565b9060806147a29101516138ca565b9160806040830151926147b860608201516138ca565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146148a9575015614895575b61481391506001600160a01b0385166141b0565b015190815115158061488b575b61482a5750505050565b6001600160a01b0316803b1561049957614860935f809460405196879586948593633a5be8cb60e01b8552339160048601614766565b03925af1801561099b57614877575b80808061370b565b80613f795f6148859361062d565b5f61486f565b50803b1515614820565b6148a29130903390614ad8565b5f846147ff565b906148be576148b9923390614ad8565b614813565b6148b992614168565b916148d183614998565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614990575b50614914575050565b6135ab915f806040519361492960608661062d565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af461498a612d5d565b91615189565b90505f61490b565b803b15610499576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614a0682846150b2565b9390926005851015612d1957614a2f94159384614ac2575b508315614a44575b50505015151590565b614a3557565b63938a182160e01b5f5260045ffd5b5f935090611e87614a6f8594936040519283916020830195630b135d3f60e11b875260248401614347565b51915afa614a7b612d5d565b81614ab4575b81614a90575b505f8080614a26565b9050614aad630b135d3f60e11b91602080825183010191016136cb565b145f614a87565b905060208151101590614a81565b6001600160a01b0384811691161493505f614a1e565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648201929092526104fb916141ab826084810161419d565b9081602091031261049957516106fa816119a1565b906001600160a01b03614b8a92165f8060405193614b4e60408661062d565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af161498a612d5d565b8051908115918215614ba0575b50501561049957565b614bb39250602080918301019101614b1a565b5f80614b97565b814710610499575f8080936001600160a01b038294165af1614bda612d5d565b501561049957565b6020614c2391614bf8611ec2611ec26201000390565b6040518080958194637aa1335160e11b8352600483019190916001600160a01b036020820193169052565b03915afa90811561099b575f91614ca9575b506001600160a01b03811615614c9a57604080517f00000000000000000000000000000000000000000000000000000000000000006020820190815262010004928201929092526001600160a01b039092166060830152906130ab8160808101611e87565b630f58058360e11b5f5260045ffd5b614cc2915060203d60201161099457610986818361062d565b5f614c35565b6040805160208101929092526001600160a01b0392831690820152911660608201526106fa8160808101611e87565b60405163095ea7b360e01b602082019081526001600160a01b03841660248301526044808301959095529381529192614d6390614d3560648561062d565b5f806001600160a01b0385169286519082855af190614d52612d5d565b82614db4575b5081614dad57501590565b614d6c57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f60448401526104fb926141ab90614da78160648101611e87565b82614b2f565b3b15919050565b80519192508115918215614dcc575b5050905f614d58565b614ddf9250602080918301019101614b1a565b5f80614dc3565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614e478385846150e3565b6040516332dd704760e21b815291602083600481885afa92831561099b575f93615068575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa92831561099b575f93615047575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614ede57505050505050565b8381111561504157835b8515614f9d57863b1561049957604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561099b57614f8393614f89575b50613d66565b80614ed2565b80613f795f614f979361062d565b5f614f7d565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561099b57614f83936150135750613d66565b6150339060203d811161503a575b61502b818361062d565b810190615092565b505f614f7d565b503d615021565b80614ee8565b61506191935060203d6020116138b4576138a6818361062d565b915f614eac565b6001600160a01b0391935061508b9060203d60201161099457610986818361062d565b9290614e6c565b90816020910312610499575167ffffffffffffffff811681036104995790565b9060418151145f146150da576111d291602082015190606060408401519301515f1a906151b4565b50505f90600290565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa90811561099b576104fb946141ab9261513b925f9161516a575b506136da565b60405163095ea7b360e01b60208201526001600160a01b0390941660248501526044840152826064810161419d565b615183915060203d6020116138b4576138a6818361062d565b5f615135565b919250156151a55781511561519c575090565b3b156104995790565b50805190811561049957602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615224576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa1561099b575f516001600160a01b0381161561521c57905f90565b505f90600190565b505050505f9060039056fea264697066735822122004d26c38a2bf199151147f2ca99483a6afed48143769819f26d603c7974f2cb664736f6c634300081e003360806040526102978038038061001481610158565b9283398101604082820312610140578151916001600160a01b03831690818403610140576020810151906001600160401b038211610140570182601f82011215610140578051906001600160401b0382116101445761007c601f8301601f1916602001610158565b938285526020838301011161014057815f9260208093018387015e84010152823b1561012e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610117576101079161017d565b505b604051608d908161020a8239f35b505034156101095763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6040519190601f01601f191682016001600160401b0381118382101761014457604052565b905f8091602081519101845af480806101f6575b156101b15750506040513d81523d5f602083013e60203d82010160405290565b156101d657639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d156101e7576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806101915750813b151561019156fe60806040525f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156053573d5ff35b3d5ffdfea2646970667358221220b4f751551e8c993724d80b75f06a6b733e676ce4a8ce689fc4276947d90a676664736f6c634300081e0033608080604052346013576074908160188239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c632f576f20146023575f80fd5b34603a575f366003190112603a5780602a60209252f35b5f80fdfea2646970667358221220da575b7dc2492834a4ee493fd8278438bf19b0ed6ea70f264cf9833d5e9377b164736f6c634300081e00330000000000000000000000007109709ecfa91a80626ff3989d68f67f5b1dd12da264697066735822122003ce00860c38700270bc5cacb581693f66c472fb06bce4ed04220ca3f5d739d764736f6c634300081e0033"}