@pimlico/alto 0.0.0-main.20250711T114933 → 0.0.0-main.20250713T101154

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 (232) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  4. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  5. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  8. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  9. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  10. package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  11. package/contracts/Exec.sol/Exec.json +1 -1
  12. package/contracts/IAccount.sol/IAccount.json +1 -1
  13. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  14. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  15. package/contracts/IERC165.sol/IERC165.json +1 -1
  16. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  17. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  18. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  19. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  20. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  21. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  22. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  23. package/contracts/LibBytes.sol/LibBytes.json +1 -1
  24. package/contracts/Math.sol/Math.json +1 -1
  25. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  26. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  27. package/contracts/Panic.sol/Panic.json +1 -1
  28. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  29. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  30. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  31. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  32. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  33. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  34. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  35. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  36. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  37. package/contracts/Strings.sol/Strings.json +1 -1
  38. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  39. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  40. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  41. package/contracts/build-info/{2f5dec90e180c3a0.json → 7a4c5850aabacc3b.json} +1 -1
  42. package/contracts/build-info/{a404540bf9e30752.json → db6850b431aca366.json} +1 -1
  43. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  44. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  45. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  46. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  47. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
  48. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  49. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
  50. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
  51. package/esm/cli/alto.js +1 -1
  52. package/esm/cli/alto.js.map +1 -1
  53. package/esm/cli/config/bundler.d.ts +6 -6
  54. package/esm/cli/config/bundler.js +1 -1
  55. package/esm/cli/config/bundler.js.map +1 -1
  56. package/esm/cli/config/options.d.ts +1 -1
  57. package/esm/cli/config/options.js +2 -2
  58. package/esm/cli/config/options.js.map +1 -1
  59. package/esm/cli/customTransport.js +2 -2
  60. package/esm/cli/customTransport.js.map +1 -1
  61. package/esm/cli/deploySimulationsContract.d.ts +2 -2
  62. package/esm/cli/deploySimulationsContract.js +3 -3
  63. package/esm/cli/deploySimulationsContract.js.map +1 -1
  64. package/esm/cli/handler.js +35 -20
  65. package/esm/cli/handler.js.map +1 -1
  66. package/esm/cli/instrumentation.js +2 -2
  67. package/esm/cli/instrumentation.js.map +1 -1
  68. package/esm/cli/parseArgs.js.map +1 -1
  69. package/esm/cli/setupServer.js +8 -8
  70. package/esm/cli/setupServer.js.map +1 -1
  71. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
  72. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
  73. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
  74. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
  75. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
  76. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
  77. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
  78. package/esm/createConfig.d.ts +1 -1
  79. package/esm/executor/executor.d.ts +3 -3
  80. package/esm/executor/executor.js +7 -7
  81. package/esm/executor/executor.js.map +1 -1
  82. package/esm/executor/executorManager.d.ts +16 -8
  83. package/esm/executor/executorManager.js +75 -53
  84. package/esm/executor/executorManager.js.map +1 -1
  85. package/esm/executor/filterOpsAndEstimateGas.d.ts +3 -3
  86. package/esm/executor/filterOpsAndEstimateGas.js +13 -16
  87. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
  88. package/esm/executor/getBundleStatus.d.ts +6 -6
  89. package/esm/executor/getBundleStatus.js +1 -1
  90. package/esm/executor/getBundleStatus.js.map +1 -1
  91. package/esm/executor/senderManager/createMemorySenderManager.d.ts +3 -3
  92. package/esm/executor/senderManager/createMemorySenderManager.js +1 -1
  93. package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
  94. package/esm/executor/senderManager/createRedisSenderManager.d.ts +3 -3
  95. package/esm/executor/senderManager/createRedisSenderManager.js +1 -1
  96. package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
  97. package/esm/executor/senderManager/flushOnStartUp.d.ts +3 -3
  98. package/esm/executor/senderManager/index.d.ts +3 -3
  99. package/esm/executor/senderManager/index.js.map +1 -1
  100. package/esm/executor/senderManager/validateAndRefill.d.ts +4 -4
  101. package/esm/executor/senderManager/validateAndRefill.js +1 -1
  102. package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
  103. package/esm/executor/userOpMonitor.d.ts +24 -7
  104. package/esm/executor/userOpMonitor.js +63 -65
  105. package/esm/executor/userOpMonitor.js.map +1 -1
  106. package/esm/executor/utilityWalletMonitor.d.ts +1 -1
  107. package/esm/executor/utilityWalletMonitor.js.map +1 -1
  108. package/esm/executor/utils.d.ts +3 -3
  109. package/esm/executor/utils.js +2 -2
  110. package/esm/executor/utils.js.map +1 -1
  111. package/esm/handlers/arbitrumGasPriceManager.d.ts +1 -1
  112. package/esm/handlers/arbitrumGasPriceManager.js +3 -3
  113. package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
  114. package/esm/handlers/eventManager.js +5 -2
  115. package/esm/handlers/eventManager.js.map +1 -1
  116. package/esm/handlers/gasPriceManager.js.map +1 -1
  117. package/esm/handlers/mantleGasPriceManager.d.ts +1 -1
  118. package/esm/handlers/mantleGasPriceManager.js.map +1 -1
  119. package/esm/handlers/optimismManager.d.ts +1 -1
  120. package/esm/handlers/optimismManager.js.map +1 -1
  121. package/esm/mempool/mempool.d.ts +4 -4
  122. package/esm/mempool/mempool.js +2 -2
  123. package/esm/mempool/mempool.js.map +1 -1
  124. package/esm/mempool/monitoring.d.ts +1 -1
  125. package/esm/mempool/monitoring.js +8 -5
  126. package/esm/mempool/monitoring.js.map +1 -1
  127. package/esm/mempool/reputationManager.d.ts +1 -1
  128. package/esm/mempool/reputationManager.js.map +1 -1
  129. package/esm/rpc/createMethodHandler.d.ts +2 -2
  130. package/esm/rpc/estimation/gasEstimationHandler.d.ts +2 -2
  131. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  132. package/esm/rpc/estimation/gasEstimations06.d.ts +1 -1
  133. package/esm/rpc/estimation/gasEstimations06.js +4 -4
  134. package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
  135. package/esm/rpc/estimation/gasEstimations07.d.ts +2 -2
  136. package/esm/rpc/estimation/gasEstimations07.js +34 -36
  137. package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
  138. package/esm/rpc/estimation/types.d.ts +1 -1
  139. package/esm/rpc/estimation/utils.d.ts +2 -2
  140. package/esm/rpc/estimation/utils.js +7 -5
  141. package/esm/rpc/estimation/utils.js.map +1 -1
  142. package/esm/rpc/methods/boost_sendUserOperation.js +2 -2
  143. package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -1
  144. package/esm/rpc/methods/debug_bundler_clearReputation.js +3 -3
  145. package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
  146. package/esm/rpc/methods/debug_bundler_clearState.js +3 -3
  147. package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
  148. package/esm/rpc/methods/debug_bundler_dumpMempool.js +1 -1
  149. package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
  150. package/esm/rpc/methods/debug_bundler_dumpReputation.js +3 -3
  151. package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
  152. package/esm/rpc/methods/debug_bundler_getStakeStatus.js +1 -2
  153. package/esm/rpc/methods/debug_bundler_getStakeStatus.js.map +1 -1
  154. package/esm/rpc/methods/debug_bundler_sendBundleNow.js +1 -1
  155. package/esm/rpc/methods/debug_bundler_sendBundleNow.js.map +1 -1
  156. package/esm/rpc/methods/debug_bundler_setBundlingMode.js +1 -1
  157. package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
  158. package/esm/rpc/methods/debug_bundler_setReputation.js +1 -1
  159. package/esm/rpc/methods/debug_bundler_setReputation.js.map +1 -1
  160. package/esm/rpc/methods/eth_chainId.js +1 -1
  161. package/esm/rpc/methods/eth_chainId.js.map +1 -1
  162. package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +1 -1
  163. package/esm/rpc/methods/eth_estimateUserOperationGas.js +5 -5
  164. package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
  165. package/esm/rpc/methods/eth_getUserOperationByHash.js +2 -2
  166. package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
  167. package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
  168. package/esm/rpc/methods/eth_getUserOperationReceipt.js.map +1 -1
  169. package/esm/rpc/methods/eth_sendUserOperation.d.ts +3 -3
  170. package/esm/rpc/methods/eth_sendUserOperation.js +4 -4
  171. package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
  172. package/esm/rpc/methods/eth_supportedEntryPoints.js +1 -1
  173. package/esm/rpc/methods/eth_supportedEntryPoints.js.map +1 -1
  174. package/esm/rpc/methods/index.js +7 -7
  175. package/esm/rpc/methods/index.js.map +1 -1
  176. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js +1 -1
  177. package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js.map +1 -1
  178. package/esm/rpc/methods/pimlico_getUserOperationStatus.js +1 -1
  179. package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
  180. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +1 -1
  181. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  182. package/esm/rpc/rpcHandler.d.ts +1 -1
  183. package/esm/rpc/rpcHandler.js +2 -2
  184. package/esm/rpc/rpcHandler.js.map +1 -1
  185. package/esm/rpc/validation/BundlerCollectorTracerV06.js +1 -1
  186. package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
  187. package/esm/rpc/validation/SafeValidator.d.ts +1 -1
  188. package/esm/rpc/validation/SafeValidator.js +2 -2
  189. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  190. package/esm/rpc/validation/TracerResultParserV06.js +4 -4
  191. package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
  192. package/esm/rpc/validation/TracerResultParserV07.js +4 -4
  193. package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
  194. package/esm/rpc/validation/UnsafeValidator.d.ts +1 -1
  195. package/esm/rpc/validation/UnsafeValidator.js +1 -1
  196. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  197. package/esm/rpc/validation/tracer.d.ts +1 -1
  198. package/esm/store/createMemoryOutstandingStore.d.ts +3 -3
  199. package/esm/store/createMemoryOutstandingStore.js +25 -16
  200. package/esm/store/createMemoryOutstandingStore.js.map +1 -1
  201. package/esm/store/createMempoolStore.d.ts +3 -3
  202. package/esm/store/createMempoolStore.js +2 -2
  203. package/esm/store/createMempoolStore.js.map +1 -1
  204. package/esm/store/createRedisOutstandingStore.d.ts +4 -4
  205. package/esm/store/createRedisOutstandingStore.js +20 -20
  206. package/esm/store/createRedisOutstandingStore.js.map +1 -1
  207. package/esm/store/createRedisStore.d.ts +3 -3
  208. package/esm/store/createRedisStore.js +1 -1
  209. package/esm/store/createRedisStore.js.map +1 -1
  210. package/esm/store/createStore.d.ts +2 -2
  211. package/esm/types/mempool.d.ts +2 -1
  212. package/esm/utils/eip7702.d.ts +2 -2
  213. package/esm/utils/eip7702.js +1 -1
  214. package/esm/utils/eip7702.js.map +1 -1
  215. package/esm/utils/entryPointOverrides.d.ts +2 -2
  216. package/esm/utils/entryPointOverrides.js.map +1 -1
  217. package/esm/utils/helpers.js +1 -1
  218. package/esm/utils/helpers.js.map +1 -1
  219. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +2 -2
  220. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +9 -8
  221. package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
  222. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +2 -2
  223. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +7 -4
  224. package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
  225. package/esm/utils/minMaxQueue/index.d.ts +1 -1
  226. package/esm/utils/preVerificationGasCalulator.js +29 -33
  227. package/esm/utils/preVerificationGasCalulator.js.map +1 -1
  228. package/esm/utils/toViemStateOverrides.d.ts +2 -2
  229. package/esm/utils/toViemStateOverrides.js.map +1 -1
  230. package/esm/utils/userop.js +6 -8
  231. package/esm/utils/userop.js.map +1 -1
  232. package/package.json +2 -2
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchCallGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps06","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct UserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps07","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps08","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAndEstimateGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","components":[{"name":"simulationResult","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]},{"name":"verificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]},{"name":"paymasterVerificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateEntryPointBulk","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"event","name":"PimlicoSimulationDeployed","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a1612b7590816100408239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063141eb033146119995780632e5a0a931461192a578063713499031461181c578063861d9d5914611606578063959c4cb714610e345780639f2d378914610da2578063a4968eab14610b5b578063de040de11461083b578063f1143043146107b35763fccb5ff61461008a57600080fd5b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c576100bb903690600401611d6e565b906100c4611bb4565b906044356001600160a01b03811680910361060c576100e1612069565b506100ea6123c5565b80519068010000000000000000821161079d57600054826000558083106106a2575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061067a575060409560009586956020955093509091506001600160a01b0316845b8281106102a75787878782519161017983611bde565b825260208201526000549161018d83611cab565b61019982519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b8287106101e6578486018490528451806101e28882611ea6565b0390f35b84516101f181611bfa565b8254815285516001840180546000916102098261240d565b8085529160018116908115610282575060011461024a575b505092600292826102386020946001970382611c89565b838201528152019201960195906101c8565b6000908152602081209092505b81831061026c57505081016020018282610221565b6001816020925483868801015201920191610257565b60ff191660208087019190915292151560051b85019092019250849150839050610221565b87516102b38982611c89565b6001815260005b86811061061157506102cd8285876127b7565b6101208136031261060c578951906102e482611c4f565b6102ed81611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576103199036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c5761033e9036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161060c576103829036908301611cdf565b60e08301526101008101359067ffffffffffffffff821161060c576103a991369101611cdf565b6101008201526103b882612012565b526103c281612012565b5082315a918b3b1561060c578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b81811061055a575050505081806000929d9e9b9c9d8860248301520381838d5af19081610549575b5061051b5750506104986104526125aa565b602061045f8487896127b7565b8c51809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061211f565b03818b5afa918215610510576000926104d8575b50600192916104cd918c51916104c183611bfa565b825260208201526125da565b019796959497610163565b90916020823d8211610508575b816104f260209383611c89565b81010312610505575051906104cd6104ac565b80fd5b3d91506104e5565b8b513d6000823e3d90fd5b976105376001939961053d610543949c6105375a89319f612590565b9061259d565b9b612590565b966104cd565b600061055491611c89565b38610440565b909192938f602061060081926001946063198b82030189526101006105ee6105be6105ac8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190611d49565b60608601518582036060870152611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152611d49565b92015190610100818403910152611d49565b96019401929101610418565b600080fd5b6020908a989699939a97929495975161062981611c4f565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e082015260606101008201528282870101520198919794969895939290956102ba565b60026020826106916001949b98999a9b518661245e565b01920192019190969594939661013f565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061071f575061010c565b6002906000815560018101610734815461240d565b9081610743575b505001610712565b81601f6000931160011461075b5750555b388061073b565b8183526020832061077791601f0160051c810190600101612447565b8082528160208120915555610754565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b3461060c576101e26108276108186108116108036001600160a01b036107d836611f92565b6107e6979394969197612632565b5060405197889363af32494360e01b602086015260248501612675565b03601f198101865285611c89565b16906127da565b6020808251830101910161269b565b604051918291602083526020830190611f33565b3461060c576109546108116108036001600160a01b0361085a36611f92565b60409793949691975161086c81611c33565b60405161087881611c33565b600081526000602082015260006040820152600060608201526060608082015281526040516108a681611bfa565b600081526000602082015260208201526040516108c281611bfa565b600081526000602082015260408201526040516108de81611bfa565b600081526000602082015260608201526080604051916108fd83611bfa565b6000835260405161090d81611bfa565b6000815260006020820152602084015201526040519788937faec321fb00000000000000000000000000000000000000000000000000000000602086015260248501612675565b8051810190602082019060208184031261060c5760208101519067ffffffffffffffff821161060c5701808303601f1981019291906101401361060c576040519361099e85611c33565b602082015167ffffffffffffffff811161060c578201602081019160a09190031261060c57604051906109d082611c33565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161060c57610a139185910161229a565b60808201528452610a27826040830161278f565b9160208501928352610a3c816080840161278f565b93604086019485526060610a538360c0860161278f565b8782019081529160bf19011261060c5760405190610a7082611bfa565b610100840151906001600160a01b038216820361060c576020809781610b0560806101409c610aaa849b9a610120869c879b8d520161278f565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190611d49565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461060c57610b6936611d9f565b96906040969296959394955196610b7f88611bde565b610b87612632565b88526020880195610b9661208a565b87526040890197610ba561208a565b895260405163af32494360e01b602082015280610bc784848b60248501612675565b03601f1981018252610bd99082611c89565b610bed906001600160a01b038816876127da565b805181016020019060200190610c029161269b565b8a526040517f2e5a0a9300000000000000000000000000000000000000000000000000000000815280610c3f8d878787878e8e8e60048a0161273d565b03813091815a6000948591f1908115610d7b57600091610d87575b50885260e0820135601e198336030181121561060c57820180359067ffffffffffffffff821161060c57602082360391011361060c5760141115610ce7575b610cc18a6101e28b610cd48c6040519586956020875251606060208801526080870190611f33565b9051858203601f19016040870152611e2b565b9051838203601f19016060850152611e2b565b91610d28939160009799989b936040519a8b9889987f9f2d3789000000000000000000000000000000000000000000000000000000008a5260048a0161273d565b038183305af1918215610d7b57610cc1946101e293610cd492600091610d58575b50835291928680808080610c99565b610d7591503d806000833e610d6d8183611c89565b8101906122dc565b87610d49565b6040513d6000823e3d90fd5b610d9c91503d806000833e610d6d8183611c89565b8c610c5a565b3461060c576101e2610e20610e116108036108116001600160a01b03610dc736611d9f565b929580979996610ddb9b959b93929361208a565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612243565b602080825183010191016122dc565b604051918291602083526020830190611e2b565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57610e65903690600401611d6e565b90610e6e611bb4565b906044356001600160a01b03811680910361060c57610e8b612069565b50610e946123c5565b80519068010000000000000000821161079d5760005482600055808310611521575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b8383106114f9575060409560009586956020955093509091506001600160a01b0316845b82811061104d57878787825191610f2383611bde565b8252602082015260005491610f3783611cab565b610f4382519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b828710610f8c578486018490528451806101e28882611ea6565b8451610f9781611bfa565b825481528551600184018054600091610faf8261240d565b80855291600181169081156110285750600114610ff0575b50509260029282610fde6020946001970382611c89565b83820152815201920196019590610f72565b6000908152602081209092505b81831061101257505081016020018282610fc7565b6001816020925483868801015201920191610ffd565b60ff191660208087019190915292151560051b85019092019250849150839050610fc7565b87516110598982611c89565b6001815260005b868110611480575061107382858761256d565b6101608136031261060c5789519061108a82611c16565b61109381611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576110bf9036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c576110e49036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161060c5761113f9036908301611cdf565b6101208301526101408101359067ffffffffffffffff821161060c5761116791369101611cdf565b61014082015261117682612012565b5261118081612012565b5082315a918b3b1561060c578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b8181106113c8575050505081806000929d9e9b9c9d8860248301520381838d5af190816113b7575b506113955750506112986112106125aa565b60206112858c61132c611224878a8c61256d565b61131961130d6112b78551998a9788977fa61935310000000000000000000000000000000000000000000000000000000089528a60048a01526001600160a01b0361126e88611bca565b1660248a01528a87013560448a01528601866120cc565b61016060648a01526101848901916120fe565b6112a560608601866120cc565b8883036023190160848a0152906120fe565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526112fa6101208501856120cc565b87830360231901610144890152906120fe565b916101408101906120cc565b84830360231901610164860152906120fe565b03818b5afa91821561051057600092611360575b5060019291611355918c51916104c183611bfa565b019796959497610f0d565b90916020823d821161138d575b8161137a60209383611c89565b8101031261050557505190611355611340565b3d915061136d565b976105376001939961053d6113b1949c6105375a89319f612590565b96611355565b60006113c291611c89565b8c6111fe565b909192938f602061147481926001946063198b820301895261014061146261141a6105ac8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152611d49565b92015190610140818403910152611d49565b960194019291016111d6565b6020908a989699939a97929495975161149881611c16565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e0820152600061010082015260606101208201526060610140820152828287010152019891979496989593929095611060565b60026020826115106001949b98999a9b518661245e565b019201920191909695949396610ee9565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061159e5750610eb6565b60029060008155600181016115b3815461240d565b90816115c2575b505001611591565b81601f600093116001146115da5750555b89806115ba565b818352602083206115f691601f0160051c810190600101612447565b80825281602081209155556115d3565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57611637903690600401611d6e565b61163f611bb4565b91604435916001600160a01b03831680930361060c576116a993600093611664612069565b506001600160a01b0360405196879586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916121dc565b921660248401526044830152038183305af1908115610d7b576000916116d8575b604051806101e28482611ea6565b3d8083833e6116e78183611c89565b8101906020818303126118145780519067ffffffffffffffff8211611818570190606082820312611814576040519161171f83611bde565b805183526020810151602084015260408101519067ffffffffffffffff8211611810570181601f820112156118185780519361175a85611cab565b926117686040519485611c89565b85845260208085019660051b840101928184116118145760208101965b8488106117a0575050505050604082015290506101e26116ca565b875167ffffffffffffffff81116118105782016040818503601f19011261181057604051906117ce82611bfa565b6020810151825260408101519067ffffffffffffffff821161180c57916117fd8660208096948196010161229a565b83820152815201970196611785565b8680fd5b8480fd5b8280fd5b8380fd5b3461060c5760e036600319011261060c57611835611b9e565b61183d611bb4565b60443567ffffffffffffffff811161060c5761185d903690600401611d6e565b906064359267ffffffffffffffff841161060c57610120600319853603011261060c576101e294611925610e11946118f0610e209761189a61208a565b506118db6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916121dc565b8381036023190160448501529060040161211f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284611c89565b6127da565b3461060c576101e2610e20610e116108036108116001600160a01b0361194f36611d9f565b9295809799966119639b959b93929361208a565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612243565b3461060c57606036600319011261060c576119b2611b9e565b6119ba611bb4565b60443567ffffffffffffffff811161060c573660238201121561060c5780600401356119e581611cab565b916119f36040519384611c89565b8183526024602084019260051b8201019036821161060c5760248101925b828410611b6e5750505050805192611a2884611cab565b93611a366040519586611c89565b808552611a45601f1991611cab565b0160005b818110611b5d5750506001600160a01b0360009316925b8251811015611af5576001906060600080611a7b8488612035565b5160405190611aae82611aa0602082019363428557b160e11b85528b60248401612049565b03601f198101845283611c89565b828a5a935193f115611ad7575b611ac58288612035565b52611ad08187612035565b5001611a60565b503d604051906020818301016040528082526000602083013e611abb565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210611b2e57505050500390f35b91936001919395506020611b4d8192603f198a82030186528851611d49565b9601920192018594939192611b1f565b806060602080938901015201611a49565b833567ffffffffffffffff811161060c57602091611b93839260243691870101611cdf565b815201930192611a11565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b35906001600160a01b038216820361060c57565b6060810190811067ffffffffffffffff82111761079d57604052565b6040810190811067ffffffffffffffff82111761079d57604052565b610160810190811067ffffffffffffffff82111761079d57604052565b60a0810190811067ffffffffffffffff82111761079d57604052565b610120810190811067ffffffffffffffff82111761079d57604052565b610100810190811067ffffffffffffffff82111761079d57604052565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d5760051b60200190565b67ffffffffffffffff811161079d57601f01601f191660200190565b81601f8201121561060c57803590611cf682611cc3565b92611d046040519485611c89565b8284526020838301011161060c57816000926020809301838601378301015290565b60005b838110611d395750506000910152565b8181015183820152602001611d29565b90602091611d6281518092818552858086019101611d26565b601f01601f1916010190565b9181601f8401121561060c5782359167ffffffffffffffff831161060c576020808501948460051b01011161060c57565b60e060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611df291600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c57600401906084359060a4359060c43590565b9081516002811015611e905781526080604080611e7581602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190611d49565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310611ef557505050505090565b9091929394602080611f24600193609f198682030187526040838b518051845201519181858201520190611d49565b97019301930191939290611ee6565b9061010060e0611f8f93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190611d49565b90565b608060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611fe591600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c5760040190565b80511561201f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561201f5760209160051b010190565b6040906001600160a01b03611f8f94931681528160208201520190611d49565b6040519061207682611bde565b606060408360008152600060208201520152565b6040519061209782611bde565b81600081526120a4612069565b602082015260408051916120b783611bde565b60008352600060208401526000828401520152565b9035601e198236030181121561060c57016020813591019167ffffffffffffffff821161060c57813603831361060c57565b908060209392818452848401376000828201840152601f01601f1916010190565b611f8f916001600160a01b0361213483611bca565b168152602082013560208201526121cd6121c161218861216d61215a60408701876120cc565b61012060408801526101208701916120fe565b61217a60608701876120cc565b9086830360608801526120fe565b6080850135608085015260a085013560a085015260c085013560c08501526121b360e08601866120cc565b9085830360e08701526120fe565b926101008101906120cc565b916101008185039101526120fe565b90602083828152019060208160051b85010193836000915b8383106122045750505050505090565b909192939495601f19828203018652863561011e198436030181121561060c5760206122356001938683940161211f565b9801960194930191906121f4565b93979695926122789061226a6001600160a01b039360a0989560c0895260c08901916121dc565b90868203602088015261211f565b97166040840152606083015260808201520152565b5190811515820361060c57565b81601f8201121561060c5780516122b081611cc3565b926122be6040519485611c89565b8184526020828401011161060c57611f8f9160208085019101611d26565b60208183031261060c5780519067ffffffffffffffff821161060c57018082039160a0831261060c576040519261231284611bde565b8251600281101561060c578452602083015167ffffffffffffffff811161060c57830160608184031261060c576040519061234c82611bde565b8051825261235c6020820161228d565b602083015260408101519367ffffffffffffffff851161060c57606094612383920161229a565b60408201526020850152603f19011261060c576080604051916123a583611bde565b604081015183526060810151602084015201516040820152604082015290565b604051906123d4602083611c89565b600080835282815b8281106123e857505050565b6020906040516123f781611bfa565b60008152606083820152828285010152016123dc565b90600182811c9216801561243d575b602083101461242757565b634e487b7160e01b600052602260045260246000fd5b91607f169161241c565b818110612452575050565b60008155600101612447565b6001602091939293845181550192015191825167ffffffffffffffff811161079d5761248a825461240d565b601f8111612530575b506020601f82116001146124ce57819293946000926124c3575b50508160011b916000199060031b1c1916179055565b0151905038806124ad565b601f1982169083600052806000209160005b818110612518575095836001959697106124ff575b505050811b019055565b015160001960f88460031b161c191690553880806124f5565b9192602060018192868b0151815501940192016124e0565b61255d90836000526020600020601f840160051c81019160208510612563575b601f0160051c0190612447565b38612493565b9091508190612550565b919081101561201f5760051b8101359061015e198136030182121561060c570190565b9190820391821161078757565b9190820180921161078757565b3d156125d5573d906125bb82611cc3565b916125c96040519384611c89565b82523d6000602084013e565b606090565b600054906801000000000000000082101561079d57600182018060005582101561201f57600080526126309160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630161245e565b565b6040519061263f82611c6c565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91611f8f939161268d916040855260408501916121dc565b91602081840391015261211f565b60208183031261060c5780519067ffffffffffffffff821161060c57016101008183031261060c57604051916126d083611c6c565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261271260c0830161228d565b60c084015260e082015167ffffffffffffffff811161060c57612735920161229a565b60e082015290565b94919260c096999897946001600160a01b0361278095816127729516895216602088015260e0604088015260e08701916121dc565b90848203606086015261211f565b95608083015260a08201520152565b919082604091031261060c576040516127a781611bfa565b6020808294805184520151910152565b919081101561201f5760051b8101359061011e198136030182121561060c570190565b60405163428557b160e11b602082019081526000948594859485926128089186916108039160248401612049565b5a935193f1612ad5573d60405191602082840101604052818352602083013e6004815110612a6b576000600460609183516004811115612a63575b8015612a5b575b508181106129e8575b50507fffffffff0000000000000000000000000000000000000000000000000000000063428557b160e11b916020815191015182811691600481106129d3575b50501614612969578051606091600482612961565b6004811115612959575b50828110612910575b5050508051810160408282031261060c576128d86020830161228d565b9160408101519167ffffffffffffffff831161060c576128ff92602080920192010161229a565b90156129085790565b602081519101fd5b6040519350918290039101601f8201601f19165b8181015184820152601f190190811561293d5790612924565b50506040818301600060208201520160405281523880806128bb565b9050386128b2565b9250826128a8565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b839250829060040360031b1b16163880612893565b604051925090819003908301601f8201601f19165b8181015184820152601f1901908115612a1657906129fd565b505063428557b160e11b917fffffffff000000000000000000000000000000000000000000000000000000009160408183016000602082015201604052815291612853565b90503861284a565b915081612843565b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fdfea2646970667358221220cbccf29c790f96f4235df84b0fd5c1cc2de547093f5bf08c46fc21a93e16cb5364736f6c634300081c0033","sourceMap":"852:14571:20:-:0;;;;;;;2573:27;;;;852:14571;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063141eb033146119995780632e5a0a931461192a578063713499031461181c578063861d9d5914611606578063959c4cb714610e345780639f2d378914610da2578063a4968eab14610b5b578063de040de11461083b578063f1143043146107b35763fccb5ff61461008a57600080fd5b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c576100bb903690600401611d6e565b906100c4611bb4565b906044356001600160a01b03811680910361060c576100e1612069565b506100ea6123c5565b80519068010000000000000000821161079d57600054826000558083106106a2575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061067a575060409560009586956020955093509091506001600160a01b0316845b8281106102a75787878782519161017983611bde565b825260208201526000549161018d83611cab565b61019982519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b8287106101e6578486018490528451806101e28882611ea6565b0390f35b84516101f181611bfa565b8254815285516001840180546000916102098261240d565b8085529160018116908115610282575060011461024a575b505092600292826102386020946001970382611c89565b838201528152019201960195906101c8565b6000908152602081209092505b81831061026c57505081016020018282610221565b6001816020925483868801015201920191610257565b60ff191660208087019190915292151560051b85019092019250849150839050610221565b87516102b38982611c89565b6001815260005b86811061061157506102cd8285876127b7565b6101208136031261060c578951906102e482611c4f565b6102ed81611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576103199036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c5761033e9036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161060c576103829036908301611cdf565b60e08301526101008101359067ffffffffffffffff821161060c576103a991369101611cdf565b6101008201526103b882612012565b526103c281612012565b5082315a918b3b1561060c578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b81811061055a575050505081806000929d9e9b9c9d8860248301520381838d5af19081610549575b5061051b5750506104986104526125aa565b602061045f8487896127b7565b8c51809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061211f565b03818b5afa918215610510576000926104d8575b50600192916104cd918c51916104c183611bfa565b825260208201526125da565b019796959497610163565b90916020823d8211610508575b816104f260209383611c89565b81010312610505575051906104cd6104ac565b80fd5b3d91506104e5565b8b513d6000823e3d90fd5b976105376001939961053d610543949c6105375a89319f612590565b9061259d565b9b612590565b966104cd565b600061055491611c89565b38610440565b909192938f602061060081926001946063198b82030189526101006105ee6105be6105ac8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190611d49565b60608601518582036060870152611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152611d49565b92015190610100818403910152611d49565b96019401929101610418565b600080fd5b6020908a989699939a97929495975161062981611c4f565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e082015260606101008201528282870101520198919794969895939290956102ba565b60026020826106916001949b98999a9b518661245e565b01920192019190969594939661013f565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061071f575061010c565b6002906000815560018101610734815461240d565b9081610743575b505001610712565b81601f6000931160011461075b5750555b388061073b565b8183526020832061077791601f0160051c810190600101612447565b8082528160208120915555610754565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b3461060c576101e26108276108186108116108036001600160a01b036107d836611f92565b6107e6979394969197612632565b5060405197889363af32494360e01b602086015260248501612675565b03601f198101865285611c89565b16906127da565b6020808251830101910161269b565b604051918291602083526020830190611f33565b3461060c576109546108116108036001600160a01b0361085a36611f92565b60409793949691975161086c81611c33565b60405161087881611c33565b600081526000602082015260006040820152600060608201526060608082015281526040516108a681611bfa565b600081526000602082015260208201526040516108c281611bfa565b600081526000602082015260408201526040516108de81611bfa565b600081526000602082015260608201526080604051916108fd83611bfa565b6000835260405161090d81611bfa565b6000815260006020820152602084015201526040519788937faec321fb00000000000000000000000000000000000000000000000000000000602086015260248501612675565b8051810190602082019060208184031261060c5760208101519067ffffffffffffffff821161060c5701808303601f1981019291906101401361060c576040519361099e85611c33565b602082015167ffffffffffffffff811161060c578201602081019160a09190031261060c57604051906109d082611c33565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161060c57610a139185910161229a565b60808201528452610a27826040830161278f565b9160208501928352610a3c816080840161278f565b93604086019485526060610a538360c0860161278f565b8782019081529160bf19011261060c5760405190610a7082611bfa565b610100840151906001600160a01b038216820361060c576020809781610b0560806101409c610aaa849b9a610120869c879b8d520161278f565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190611d49565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461060c57610b6936611d9f565b96906040969296959394955196610b7f88611bde565b610b87612632565b88526020880195610b9661208a565b87526040890197610ba561208a565b895260405163af32494360e01b602082015280610bc784848b60248501612675565b03601f1981018252610bd99082611c89565b610bed906001600160a01b038816876127da565b805181016020019060200190610c029161269b565b8a526040517f2e5a0a9300000000000000000000000000000000000000000000000000000000815280610c3f8d878787878e8e8e60048a0161273d565b03813091815a6000948591f1908115610d7b57600091610d87575b50885260e0820135601e198336030181121561060c57820180359067ffffffffffffffff821161060c57602082360391011361060c5760141115610ce7575b610cc18a6101e28b610cd48c6040519586956020875251606060208801526080870190611f33565b9051858203601f19016040870152611e2b565b9051838203601f19016060850152611e2b565b91610d28939160009799989b936040519a8b9889987f9f2d3789000000000000000000000000000000000000000000000000000000008a5260048a0161273d565b038183305af1918215610d7b57610cc1946101e293610cd492600091610d58575b50835291928680808080610c99565b610d7591503d806000833e610d6d8183611c89565b8101906122dc565b87610d49565b6040513d6000823e3d90fd5b610d9c91503d806000833e610d6d8183611c89565b8c610c5a565b3461060c576101e2610e20610e116108036108116001600160a01b03610dc736611d9f565b929580979996610ddb9b959b93929361208a565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612243565b602080825183010191016122dc565b604051918291602083526020830190611e2b565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57610e65903690600401611d6e565b90610e6e611bb4565b906044356001600160a01b03811680910361060c57610e8b612069565b50610e946123c5565b80519068010000000000000000821161079d5760005482600055808310611521575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b8383106114f9575060409560009586956020955093509091506001600160a01b0316845b82811061104d57878787825191610f2383611bde565b8252602082015260005491610f3783611cab565b610f4382519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b828710610f8c578486018490528451806101e28882611ea6565b8451610f9781611bfa565b825481528551600184018054600091610faf8261240d565b80855291600181169081156110285750600114610ff0575b50509260029282610fde6020946001970382611c89565b83820152815201920196019590610f72565b6000908152602081209092505b81831061101257505081016020018282610fc7565b6001816020925483868801015201920191610ffd565b60ff191660208087019190915292151560051b85019092019250849150839050610fc7565b87516110598982611c89565b6001815260005b868110611480575061107382858761256d565b6101608136031261060c5789519061108a82611c16565b61109381611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576110bf9036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c576110e49036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161060c5761113f9036908301611cdf565b6101208301526101408101359067ffffffffffffffff821161060c5761116791369101611cdf565b61014082015261117682612012565b5261118081612012565b5082315a918b3b1561060c578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b8181106113c8575050505081806000929d9e9b9c9d8860248301520381838d5af190816113b7575b506113955750506112986112106125aa565b60206112858c61132c611224878a8c61256d565b61131961130d6112b78551998a9788977fa61935310000000000000000000000000000000000000000000000000000000089528a60048a01526001600160a01b0361126e88611bca565b1660248a01528a87013560448a01528601866120cc565b61016060648a01526101848901916120fe565b6112a560608601866120cc565b8883036023190160848a0152906120fe565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526112fa6101208501856120cc565b87830360231901610144890152906120fe565b916101408101906120cc565b84830360231901610164860152906120fe565b03818b5afa91821561051057600092611360575b5060019291611355918c51916104c183611bfa565b019796959497610f0d565b90916020823d821161138d575b8161137a60209383611c89565b8101031261050557505190611355611340565b3d915061136d565b976105376001939961053d6113b1949c6105375a89319f612590565b96611355565b60006113c291611c89565b8c6111fe565b909192938f602061147481926001946063198b820301895261014061146261141a6105ac8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152611d49565b92015190610140818403910152611d49565b960194019291016111d6565b6020908a989699939a97929495975161149881611c16565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e0820152600061010082015260606101208201526060610140820152828287010152019891979496989593929095611060565b60026020826115106001949b98999a9b518661245e565b019201920191909695949396610ee9565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061159e5750610eb6565b60029060008155600181016115b3815461240d565b90816115c2575b505001611591565b81601f600093116001146115da5750555b89806115ba565b818352602083206115f691601f0160051c810190600101612447565b80825281602081209155556115d3565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57611637903690600401611d6e565b61163f611bb4565b91604435916001600160a01b03831680930361060c576116a993600093611664612069565b506001600160a01b0360405196879586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916121dc565b921660248401526044830152038183305af1908115610d7b576000916116d8575b604051806101e28482611ea6565b3d8083833e6116e78183611c89565b8101906020818303126118145780519067ffffffffffffffff8211611818570190606082820312611814576040519161171f83611bde565b805183526020810151602084015260408101519067ffffffffffffffff8211611810570181601f820112156118185780519361175a85611cab565b926117686040519485611c89565b85845260208085019660051b840101928184116118145760208101965b8488106117a0575050505050604082015290506101e26116ca565b875167ffffffffffffffff81116118105782016040818503601f19011261181057604051906117ce82611bfa565b6020810151825260408101519067ffffffffffffffff821161180c57916117fd8660208096948196010161229a565b83820152815201970196611785565b8680fd5b8480fd5b8280fd5b8380fd5b3461060c5760e036600319011261060c57611835611b9e565b61183d611bb4565b60443567ffffffffffffffff811161060c5761185d903690600401611d6e565b906064359267ffffffffffffffff841161060c57610120600319853603011261060c576101e294611925610e11946118f0610e209761189a61208a565b506118db6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916121dc565b8381036023190160448501529060040161211f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284611c89565b6127da565b3461060c576101e2610e20610e116108036108116001600160a01b0361194f36611d9f565b9295809799966119639b959b93929361208a565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612243565b3461060c57606036600319011261060c576119b2611b9e565b6119ba611bb4565b60443567ffffffffffffffff811161060c573660238201121561060c5780600401356119e581611cab565b916119f36040519384611c89565b8183526024602084019260051b8201019036821161060c5760248101925b828410611b6e5750505050805192611a2884611cab565b93611a366040519586611c89565b808552611a45601f1991611cab565b0160005b818110611b5d5750506001600160a01b0360009316925b8251811015611af5576001906060600080611a7b8488612035565b5160405190611aae82611aa0602082019363428557b160e11b85528b60248401612049565b03601f198101845283611c89565b828a5a935193f115611ad7575b611ac58288612035565b52611ad08187612035565b5001611a60565b503d604051906020818301016040528082526000602083013e611abb565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210611b2e57505050500390f35b91936001919395506020611b4d8192603f198a82030186528851611d49565b9601920192018594939192611b1f565b806060602080938901015201611a49565b833567ffffffffffffffff811161060c57602091611b93839260243691870101611cdf565b815201930192611a11565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b35906001600160a01b038216820361060c57565b6060810190811067ffffffffffffffff82111761079d57604052565b6040810190811067ffffffffffffffff82111761079d57604052565b610160810190811067ffffffffffffffff82111761079d57604052565b60a0810190811067ffffffffffffffff82111761079d57604052565b610120810190811067ffffffffffffffff82111761079d57604052565b610100810190811067ffffffffffffffff82111761079d57604052565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d5760051b60200190565b67ffffffffffffffff811161079d57601f01601f191660200190565b81601f8201121561060c57803590611cf682611cc3565b92611d046040519485611c89565b8284526020838301011161060c57816000926020809301838601378301015290565b60005b838110611d395750506000910152565b8181015183820152602001611d29565b90602091611d6281518092818552858086019101611d26565b601f01601f1916010190565b9181601f8401121561060c5782359167ffffffffffffffff831161060c576020808501948460051b01011161060c57565b60e060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611df291600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c57600401906084359060a4359060c43590565b9081516002811015611e905781526080604080611e7581602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190611d49565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310611ef557505050505090565b9091929394602080611f24600193609f198682030187526040838b518051845201519181858201520190611d49565b97019301930191939290611ee6565b9061010060e0611f8f93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190611d49565b90565b608060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611fe591600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c5760040190565b80511561201f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561201f5760209160051b010190565b6040906001600160a01b03611f8f94931681528160208201520190611d49565b6040519061207682611bde565b606060408360008152600060208201520152565b6040519061209782611bde565b81600081526120a4612069565b602082015260408051916120b783611bde565b60008352600060208401526000828401520152565b9035601e198236030181121561060c57016020813591019167ffffffffffffffff821161060c57813603831361060c57565b908060209392818452848401376000828201840152601f01601f1916010190565b611f8f916001600160a01b0361213483611bca565b168152602082013560208201526121cd6121c161218861216d61215a60408701876120cc565b61012060408801526101208701916120fe565b61217a60608701876120cc565b9086830360608801526120fe565b6080850135608085015260a085013560a085015260c085013560c08501526121b360e08601866120cc565b9085830360e08701526120fe565b926101008101906120cc565b916101008185039101526120fe565b90602083828152019060208160051b85010193836000915b8383106122045750505050505090565b909192939495601f19828203018652863561011e198436030181121561060c5760206122356001938683940161211f565b9801960194930191906121f4565b93979695926122789061226a6001600160a01b039360a0989560c0895260c08901916121dc565b90868203602088015261211f565b97166040840152606083015260808201520152565b5190811515820361060c57565b81601f8201121561060c5780516122b081611cc3565b926122be6040519485611c89565b8184526020828401011161060c57611f8f9160208085019101611d26565b60208183031261060c5780519067ffffffffffffffff821161060c57018082039160a0831261060c576040519261231284611bde565b8251600281101561060c578452602083015167ffffffffffffffff811161060c57830160608184031261060c576040519061234c82611bde565b8051825261235c6020820161228d565b602083015260408101519367ffffffffffffffff851161060c57606094612383920161229a565b60408201526020850152603f19011261060c576080604051916123a583611bde565b604081015183526060810151602084015201516040820152604082015290565b604051906123d4602083611c89565b600080835282815b8281106123e857505050565b6020906040516123f781611bfa565b60008152606083820152828285010152016123dc565b90600182811c9216801561243d575b602083101461242757565b634e487b7160e01b600052602260045260246000fd5b91607f169161241c565b818110612452575050565b60008155600101612447565b6001602091939293845181550192015191825167ffffffffffffffff811161079d5761248a825461240d565b601f8111612530575b506020601f82116001146124ce57819293946000926124c3575b50508160011b916000199060031b1c1916179055565b0151905038806124ad565b601f1982169083600052806000209160005b818110612518575095836001959697106124ff575b505050811b019055565b015160001960f88460031b161c191690553880806124f5565b9192602060018192868b0151815501940192016124e0565b61255d90836000526020600020601f840160051c81019160208510612563575b601f0160051c0190612447565b38612493565b9091508190612550565b919081101561201f5760051b8101359061015e198136030182121561060c570190565b9190820391821161078757565b9190820180921161078757565b3d156125d5573d906125bb82611cc3565b916125c96040519384611c89565b82523d6000602084013e565b606090565b600054906801000000000000000082101561079d57600182018060005582101561201f57600080526126309160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630161245e565b565b6040519061263f82611c6c565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91611f8f939161268d916040855260408501916121dc565b91602081840391015261211f565b60208183031261060c5780519067ffffffffffffffff821161060c57016101008183031261060c57604051916126d083611c6c565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261271260c0830161228d565b60c084015260e082015167ffffffffffffffff811161060c57612735920161229a565b60e082015290565b94919260c096999897946001600160a01b0361278095816127729516895216602088015260e0604088015260e08701916121dc565b90848203606086015261211f565b95608083015260a08201520152565b919082604091031261060c576040516127a781611bfa565b6020808294805184520151910152565b919081101561201f5760051b8101359061011e198136030182121561060c570190565b60405163428557b160e11b602082019081526000948594859485926128089186916108039160248401612049565b5a935193f1612ad5573d60405191602082840101604052818352602083013e6004815110612a6b576000600460609183516004811115612a63575b8015612a5b575b508181106129e8575b50507fffffffff0000000000000000000000000000000000000000000000000000000063428557b160e11b916020815191015182811691600481106129d3575b50501614612969578051606091600482612961565b6004811115612959575b50828110612910575b5050508051810160408282031261060c576128d86020830161228d565b9160408101519167ffffffffffffffff831161060c576128ff92602080920192010161229a565b90156129085790565b602081519101fd5b6040519350918290039101601f8201601f19165b8181015184820152601f190190811561293d5790612924565b50506040818301600060208201520160405281523880806128bb565b9050386128b2565b9250826128a8565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b839250829060040360031b1b16163880612893565b604051925090819003908301601f8201601f19165b8181015184820152601f1901908115612a1657906129fd565b505063428557b160e11b917fffffffff000000000000000000000000000000000000000000000000000000009160408183016000602082015201604052815291612853565b90503861284a565b915081612843565b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fdfea2646970667358221220cbccf29c790f96f4235df84b0fd5c1cc2de547093f5bf08c46fc21a93e16cb5364736f6c634300081c0033","sourceMap":"852:14571:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;:::i;:::-;;12191:23;;:::i;:::-;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;12412:13:20;-1:-1:-1;852:14571:20;;-1:-1:-1;;;;;;852:14571:20;;12427:18;;;;;;852:14571;;;;;;;;;:::i;:::-;;;;13459:155;;852:14571;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13459:155;;;852:14571;;;;;;;13459:155;852:14571;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;12447:3;852:14571;;;;;;:::i;:::-;;;;;;;;;;;12647:10;;;;;;:::i;:::-;852:14571;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12628:29;;;:::i;:::-;;;;;:::i;:::-;;12696:19;;12749:9;12777:48;;;;;;852:14571;;12777:48;852:14571;12777:48;;852:14571;;;12777:48;852:14571;12777:48;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12777:48;;;;;;;;;;852:14571;-1:-1:-1;12773:659:20;;13130:302;;852:14571;13130:302;;:::i;:::-;852:14571;13298:10;;;;;:::i;:::-;852:14571;;13273:36;;;;852:14571;13273:36;;;852:14571;13273:36;;852:14571;;;;;;:::i;:::-;13273:36;;;;;;;;;;852:14571;13273:36;;;12773:659;852:14571;;;;13327:90;852:14571;;;;;;;:::i;:::-;;;;13348:68;;852:14571;13327:90;:::i;:::-;852:14571;12412:13;;;;;;;13273:36;;;852:14571;13273:36;;;;;;;;;852:14571;13273:36;;;:::i;:::-;;;852:14571;;;;-1:-1:-1;852:14571:20;;13327:90;13273:36;;852:14571;;;13273:36;;;-1:-1:-1;13273:36:20;;;852:14571;;;;;;;;;12773:659;12863:9;13086:28;852:14571;12863:9;;13010:36;13064:50;12863:9;;13026:20;12863:9;12913:19;;13026:20;;:::i;:::-;13010:36;;:::i;:::-;13086:28;;:::i;13064:50::-;12773:659;;;12777:48;852:14571;12777:48;;;:::i;:::-;;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12777:48;852:14571;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;852:14571:20;;;;;;;;;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;11026:64;10950:59;10853:61;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10853:61;;;-1:-1:-1;;;10853:61:20;;;;;;;;:::i;:::-;;852:14571;;10853:61;;;;;;:::i;:::-;852:14571;10950:59;;:::i;:::-;10853:61;852:14571;;;11026:64;;;;;;:::i;:::-;852:14571;;;;;10853:61;852:14571;;10853:61;852:14571;;;;:::i;:::-;;;;10263:59;10166:61;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;10166:61;;;10086:50;852:14571;10166:61;;;;;;;:::i;10263:59::-;852:14571;;10339:65;;;852:14571;10339:65;;852:14571;;;;;;;;;10339:65;;852:14571;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;-1:-1:-1;852:14571:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;852:14571:20;6022:61;;;852:14571;6022:61;;;;;;;;:::i;:::-;;852:14571;;6022:61;;;;;;;;:::i;:::-;6119:59;;-1:-1:-1;;;;;852:14571:20;;6119:59;;:::i;:::-;852:14571;;6214:64;;852:14571;6214:64;;852:14571;6214:64;;;;;:::i;:::-;6188:90;;852:14571;;;6374:162;;852:14571;6374:162;852:14571;;;;;;;;;6374:162;;;:::i;:::-;;:4;;:162;;;852:14571;6374:162;;;;;;;;;852:14571;6374:162;;;852:14571;6344:192;;;852:14571;6641:29;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6681:2;-1:-1:-1;6641:42:20;6637:387;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;6637:387::-;852:14571;6738:275;852:14571;;;;;;;;;;6738:275;;;;;852:14571;6738:275;;852:14571;6738:275;;;:::i;:::-;;6374:4;;;6738:275;;;;;;;852:14571;6738:275;852:14571;6738:275;852:14571;6738:275;852:14571;6738:275;;;6637:387;6699:314;;;6637:387;;;;;;;;;6738:275;;;;;;852:14571;6738:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;852:14571;;;;;;;;;6374:162;;;;;;852:14571;6374:162;;;;;;:::i;:::-;;;;852:14571;;;;;8778:67;8702:59;8526:140;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8526:140;;;8428:68;8526:140;;;;;;;;:::i;8702:59::-;8526:140;852:14571;;;8778:67;;;;;;:::i;:::-;852:14571;;;;;8526:140;852:14571;;8526:140;852:14571;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;:::i;:::-;;14003:23;;:::i;:::-;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;14224:13:20;-1:-1:-1;852:14571:20;;-1:-1:-1;;;;;;852:14571:20;;14239:18;;;;;;852:14571;;;;;;;;;:::i;:::-;;;;15259:155;;852:14571;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15259:155;;;852:14571;;;;;;;15259:155;852:14571;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;14259:3;852:14571;;;;;;:::i;:::-;;;;;;;;;;;14447:10;;;;;;:::i;:::-;852:14571;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14428:29;;;:::i;:::-;;;;;:::i;:::-;;14496:19;;14549:9;14577:48;;;;;;852:14571;;14577:48;852:14571;14577:48;;852:14571;;;14577:48;852:14571;14577:48;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14577:48;;;;;;;;;;852:14571;-1:-1:-1;14573:659:20;;14930:302;;852:14571;14930:302;;:::i;:::-;852:14571;;15098:10;852:14571;15098:10;;;;;:::i;:::-;852:14571;;;;;15073:36;;;;;852:14571;15073:36;;;852:14571;15073:36;;852:14571;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;15073:36;;;;;;;;;;852:14571;15073:36;;;14573:659;852:14571;;;;15127:90;852:14571;;;;;;;:::i;15127:90::-;852:14571;14224:13;;;;;;;15073:36;;;852:14571;15073:36;;;;;;;;;852:14571;15073:36;;;:::i;:::-;;;852:14571;;;;-1:-1:-1;852:14571:20;;15127:90;15073:36;;;;;-1:-1:-1;15073:36:20;;14573:659;14663:9;14886:28;852:14571;14663:9;;14810:36;14864:50;14663:9;;14826:20;14663:9;14713:19;;14826:20;;:::i;14864:50::-;14573:659;;;14577:48;852:14571;14577:48;;;:::i;:::-;;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;852:14571:20;;11722:74;;;;;852:14571;11722:74;;852:14571;;11722:74;;852:14571;;;;;;:::i;:::-;;;;;;;;;;;11722:74;:4;;;:74;;;;;;;852:14571;11722:74;;;852:14571;;;;;;;;:::i;11722:74::-;;;;;;;;;;:::i;:::-;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;-1:-1:-1;852:14571:20;11722:74;;852:14571;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9391:140;9567:59;852:14571;;9643:67;852:14571;;;:::i;:::-;;;;;9391:140;;;9310:51;852:14571;9391:140;;;852:14571;;9391:140;;852:14571;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;9391:140;852:14571;;9391:140;;;;;;:::i;:::-;9567:59;:::i;852:14571::-;;;;;7853:67;7777:59;7601:140;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7601:140;;;7512:59;7601:140;;;;;;;;:::i;852:14571::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;3142:13;;-1:-1:-1;;;;;852:14571:20;;;3137:468;3174:3;852:14571;;3157:15;;;;;852:14571;3193:23;852:14571;;3357:7;;;;;:::i;:::-;;852:14571;;3270:95;;;;852:14571;3270:95;;;-1:-1:-1;;;3270:95:20;;;852:14571;3270:95;;;:::i;:::-;;852:14571;;3270:95;;;;;;:::i;:::-;3429:9;;;378:118:11;;;;3457:8:20;3453:97;;3174:3;3563:31;;;;:::i;:::-;;;;;;:::i;:::-;;852:14571;3142:13;;3453:97;1204:349:11;;852:14571:20;1204:349:11;;852:14571:20;1204:349:11;;;;852:14571:20;1204:349:11;;;;852:14571:20;;1204:349:11;;;3453:97:20;;3157:15;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;852:14571:20;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;852:14571:20;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;852:14571:20;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;852:14571:20;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3933:1459::-;852:14571;;-1:-1:-1;;;4217:60:20;;;;;;-1:-1:-1;;;;;;;;4217:60:20;;852:14571;;4217:60;;;;;;:::i;:::-;4337:9;378:118:11;;;;-1:-1:-1;;1204:349:11;852:14571:20;1204:349:11;;4217:60:20;1204:349:11;;;;852:14571:20;1204:349:11;;;;4217:60:20;1204:349:11;;;4217:60:20;852:14571;;4609:21;4605:104;;-1:-1:-1;4217:60:20;852:14571;15879:919:18;;;4217:60:20;15879:919:18;;;;;4358:174:20;15879:919:18;;;;4358:174:20;15879:919:18;;;;;;4358:174:20;4797:30;;852:14571;-1:-1:-1;;;4797:30:20;4217:60;852:14571;;;;;;;;;4217:60;852:14571;;;;4358:174;852:14571;;;4841:60;4837:162;;852:14571;;;;4217:60;852:14571;15879:919:18;;4358:174:20;4217:60;15879:919:18;;;;;4358:174:20;15879:919:18;;;;;;4358:174:20;852:14571;;;;;5201:37;;852:14571;;;;;;;;4217:60;5201:37;;852:14571;:::i;:::-;;;;;;;;;;;;;5201:37;4217:60;5201:37;;;852:14571;;;;:::i;:::-;5253:25;;5249:98;;3933:1459;:::o;5249:98::-;4217:60;1712:95:11;;;;;15879:919:18;852:14571:20;15879:919:18;;-1:-1:-1;15879:919:18;;;;;;852:14571:20;15879:919:18;;-1:-1:-1;;15879:919:18;;;;;;;;;;-1:-1:-1;;15879:919:18;;;;;;;;;;;;852:14571:20;15879:919:18;;;-1:-1:-1;4217:60:20;15879:919:18;;;;852:14571:20;15879:919:18;;;;;;;;;;;;;;;;-1:-1:-1;15879:919:18;;;4837:162:20;4917:71;852:14571;;-1:-1:-1;;;4917:71:20;;4217:60;;4917:71;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4917:71;852:14571;;;;;;4217:60;852:14571;;;;;;;;;;15879:919:18;852:14571:20;15879:919:18;;-1:-1:-1;15879:919:18;;;;;;;852:14571:20;15879:919:18;;-1:-1:-1;;15879:919:18;;;;;;;;;;-1:-1:-1;;15879:919:18;;;;;;;;;;;;-1:-1:-1;;;15879:919:18;852:14571:20;15879:919:18;852:14571:20;15879:919:18;;;-1:-1:-1;4217:60:20;15879:919:18;;;;852:14571:20;15879:919:18;;;;;;;;;;;;;;-1:-1:-1;15879:919:18;;;4605:104:20;4646:52;852:14571;;-1:-1:-1;;;4646:52:20;;4217:60;;4646:52;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4646:52;4358:174;4467:54;852:14571;;-1:-1:-1;;;4467:54:20;;4217:60;;4467:54;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4467:54","linkReferences":{}},"methodIdentifiers":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"71349903","binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"9f2d3789","binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"2e5a0a93","filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)":"959c4cb7","filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"fccb5ff6","filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"861d9d59","simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"a4968eab","simulateEntryPointBulk(address,address,bytes[])":"141eb033","simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"f1143043","simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"de040de1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb\",\"dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x9cb47e6711c497da1b9e568fbcc5166d6c909b31d67fece5010be04feb4b8a5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467cc57ebe88b4cba702b618ac046916820cf5ece94cdd0d2c846037207c54b3\",\"dweb:/ipfs/QmYjhKx7nvjhu2DfrefUYi75ju43KNgCUWpss5HyjvVTqn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"event","name":"PimlicoSimulationDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"struct UserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps06","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps07","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps08","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndEstimateGas","outputs":[{"internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","name":"result","type":"tuple","components":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"simulationResult","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"verificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"paymasterVerificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateEntryPointBulk","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal call gas limit"},"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal paymaster verification gas limit"},"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal verification gas limit"},"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Simulates userOp and estimates verification & paymaster gas limits"},"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates handling of a UserOperation"},"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates validation of a UserOperation"}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.1.0/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PimlicoSimulations.sol":"PimlicoSimulations"},"evmVersion":"london","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v6/contracts/core/Helpers.sol":{"keccak256":"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a","urls":["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746","dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol":{"keccak256":"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a","urls":["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b","dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8","urls":["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf","dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol":{"keccak256":"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12","urls":["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2","dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f","urls":["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3","dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol":{"keccak256":"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c","urls":["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c","dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol":{"keccak256":"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf","urls":["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77","dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64","urls":["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931","dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol":{"keccak256":"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87","urls":["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d","dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0","urls":["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85","dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800","urls":["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79","dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"],"license":"MIT"},"lib/solady/src/utils/LibBytes.sol":{"keccak256":"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e","urls":["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862","dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb","urls":["bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb","dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp"],"license":"MIT"},"src/PimlicoSimulations.sol":{"keccak256":"0x9cb47e6711c497da1b9e568fbcc5166d6c909b31d67fece5010be04feb4b8a5b","urls":["bzz-raw://467cc57ebe88b4cba702b618ac046916820cf5ece94cdd0d2c846037207c54b3","dweb:/ipfs/QmYjhKx7nvjhu2DfrefUYi75ju43KNgCUWpss5HyjvVTqn"],"license":"MIT"}},"version":1},"id":20}
1
+ {"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchCallGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchPaymasterVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"binarySearchVerificationGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps06","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct UserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"callGasLimit","type":"uint256","internalType":"uint256"},{"name":"verificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"maxFeePerGas","type":"uint256","internalType":"uint256"},{"name":"maxPriorityFeePerGas","type":"uint256","internalType":"uint256"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps07","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"filterOps08","inputs":[{"name":"userOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"beneficiary","type":"address","internalType":"address payable"},{"name":"entryPoint","type":"address","internalType":"contract IEntryPoint"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PimlicoSimulations.FilterOpsResult","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"balanceChange","type":"uint256","internalType":"uint256"},{"name":"rejectedUserOps","type":"tuple[]","internalType":"struct PimlicoSimulations.RejectedUserOp[]","components":[{"name":"userOpHash","type":"bytes32","internalType":"bytes32"},{"name":"revertReason","type":"bytes","internalType":"bytes"}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateAndEstimateGas","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"initialMinGas","type":"uint256","internalType":"uint256"},{"name":"toleranceDelta","type":"uint256","internalType":"uint256"},{"name":"gasAllowance","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","components":[{"name":"simulationResult","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]},{"name":"verificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]},{"name":"paymasterVerificationGasLimit","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchResult","components":[{"name":"resultType","type":"uint8","internalType":"enum IEntryPointSimulations.BinarySearchResultType"},{"name":"successData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchSuccess","components":[{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]},{"name":"outOfGasData","type":"tuple","internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","components":[{"name":"optimalGas","type":"uint256","internalType":"uint256"},{"name":"minGas","type":"uint256","internalType":"uint256"},{"name":"maxGas","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateEntryPointBulk","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateHandleOp","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ExecutionResult","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"paid","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterVerificationGasLimit","type":"uint256","internalType":"uint256"},{"name":"paymasterPostOpGasLimit","type":"uint256","internalType":"uint256"},{"name":"targetSuccess","type":"bool","internalType":"bool"},{"name":"targetResult","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateValidation","inputs":[{"name":"entryPointSimulation","type":"address","internalType":"address"},{"name":"entryPoint","type":"address","internalType":"address payable"},{"name":"queuedUserOps","type":"tuple[]","internalType":"struct PackedUserOperation[]","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]},{"name":"targetUserOp","type":"tuple","internalType":"struct PackedUserOperation","components":[{"name":"sender","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"initCode","type":"bytes","internalType":"bytes"},{"name":"callData","type":"bytes","internalType":"bytes"},{"name":"accountGasLimits","type":"bytes32","internalType":"bytes32"},{"name":"preVerificationGas","type":"uint256","internalType":"uint256"},{"name":"gasFees","type":"bytes32","internalType":"bytes32"},{"name":"paymasterAndData","type":"bytes","internalType":"bytes"},{"name":"signature","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntryPointSimulations.ValidationResult","components":[{"name":"returnInfo","type":"tuple","internalType":"struct IEntryPoint.ReturnInfo","components":[{"name":"preOpGas","type":"uint256","internalType":"uint256"},{"name":"prefund","type":"uint256","internalType":"uint256"},{"name":"accountValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterValidationData","type":"uint256","internalType":"uint256"},{"name":"paymasterContext","type":"bytes","internalType":"bytes"}]},{"name":"senderInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"factoryInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"paymasterInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]},{"name":"aggregatorInfo","type":"tuple","internalType":"struct IEntryPoint.AggregatorStakeInfo","components":[{"name":"aggregator","type":"address","internalType":"address"},{"name":"stakeInfo","type":"tuple","internalType":"struct IStakeManager.StakeInfo","components":[{"name":"stake","type":"uint256","internalType":"uint256"},{"name":"unstakeDelaySec","type":"uint256","internalType":"uint256"}]}]}]}],"stateMutability":"nonpayable"},{"type":"event","name":"PimlicoSimulationDeployed","inputs":[],"anonymous":false}],"bytecode":{"object":"0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a1612b7590816100408239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063141eb033146119995780632e5a0a931461192a578063713499031461181c578063861d9d5914611606578063959c4cb714610e345780639f2d378914610da2578063a4968eab14610b5b578063de040de11461083b578063f1143043146107b35763fccb5ff61461008a57600080fd5b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c576100bb903690600401611d6e565b906100c4611bb4565b906044356001600160a01b03811680910361060c576100e1612069565b506100ea6123c5565b80519068010000000000000000821161079d57600054826000558083106106a2575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061067a575060409560009586956020955093509091506001600160a01b0316845b8281106102a75787878782519161017983611bde565b825260208201526000549161018d83611cab565b61019982519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b8287106101e6578486018490528451806101e28882611ea6565b0390f35b84516101f181611bfa565b8254815285516001840180546000916102098261240d565b8085529160018116908115610282575060011461024a575b505092600292826102386020946001970382611c89565b838201528152019201960195906101c8565b6000908152602081209092505b81831061026c57505081016020018282610221565b6001816020925483868801015201920191610257565b60ff191660208087019190915292151560051b85019092019250849150839050610221565b87516102b38982611c89565b6001815260005b86811061061157506102cd8285876127b7565b6101208136031261060c578951906102e482611c4f565b6102ed81611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576103199036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c5761033e9036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161060c576103829036908301611cdf565b60e08301526101008101359067ffffffffffffffff821161060c576103a991369101611cdf565b6101008201526103b882612012565b526103c281612012565b5082315a918b3b1561060c578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b81811061055a575050505081806000929d9e9b9c9d8860248301520381838d5af19081610549575b5061051b5750506104986104526125aa565b602061045f8487896127b7565b8c51809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061211f565b03818b5afa918215610510576000926104d8575b50600192916104cd918c51916104c183611bfa565b825260208201526125da565b019796959497610163565b90916020823d8211610508575b816104f260209383611c89565b81010312610505575051906104cd6104ac565b80fd5b3d91506104e5565b8b513d6000823e3d90fd5b976105376001939961053d610543949c6105375a89319f612590565b9061259d565b9b612590565b966104cd565b600061055491611c89565b38610440565b909192938f602061060081926001946063198b82030189526101006105ee6105be6105ac8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190611d49565b60608601518582036060870152611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152611d49565b92015190610100818403910152611d49565b96019401929101610418565b600080fd5b6020908a989699939a97929495975161062981611c4f565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e082015260606101008201528282870101520198919794969895939290956102ba565b60026020826106916001949b98999a9b518661245e565b01920192019190969594939661013f565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061071f575061010c565b6002906000815560018101610734815461240d565b9081610743575b505001610712565b81601f6000931160011461075b5750555b388061073b565b8183526020832061077791601f0160051c810190600101612447565b8082528160208120915555610754565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b3461060c576101e26108276108186108116108036001600160a01b036107d836611f92565b6107e6979394969197612632565b5060405197889363af32494360e01b602086015260248501612675565b03601f198101865285611c89565b16906127da565b6020808251830101910161269b565b604051918291602083526020830190611f33565b3461060c576109546108116108036001600160a01b0361085a36611f92565b60409793949691975161086c81611c33565b60405161087881611c33565b600081526000602082015260006040820152600060608201526060608082015281526040516108a681611bfa565b600081526000602082015260208201526040516108c281611bfa565b600081526000602082015260408201526040516108de81611bfa565b600081526000602082015260608201526080604051916108fd83611bfa565b6000835260405161090d81611bfa565b6000815260006020820152602084015201526040519788937faec321fb00000000000000000000000000000000000000000000000000000000602086015260248501612675565b8051810190602082019060208184031261060c5760208101519067ffffffffffffffff821161060c5701808303601f1981019291906101401361060c576040519361099e85611c33565b602082015167ffffffffffffffff811161060c578201602081019160a09190031261060c57604051906109d082611c33565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161060c57610a139185910161229a565b60808201528452610a27826040830161278f565b9160208501928352610a3c816080840161278f565b93604086019485526060610a538360c0860161278f565b8782019081529160bf19011261060c5760405190610a7082611bfa565b610100840151906001600160a01b038216820361060c576020809781610b0560806101409c610aaa849b9a610120869c879b8d520161278f565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190611d49565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461060c57610b6936611d9f565b96906040969296959394955196610b7f88611bde565b610b87612632565b88526020880195610b9661208a565b87526040890197610ba561208a565b895260405163af32494360e01b602082015280610bc784848b60248501612675565b03601f1981018252610bd99082611c89565b610bed906001600160a01b038816876127da565b805181016020019060200190610c029161269b565b8a526040517f2e5a0a9300000000000000000000000000000000000000000000000000000000815280610c3f8d878787878e8e8e60048a0161273d565b03813091815a6000948591f1908115610d7b57600091610d87575b50885260e0820135601e198336030181121561060c57820180359067ffffffffffffffff821161060c57602082360391011361060c5760141115610ce7575b610cc18a6101e28b610cd48c6040519586956020875251606060208801526080870190611f33565b9051858203601f19016040870152611e2b565b9051838203601f19016060850152611e2b565b91610d28939160009799989b936040519a8b9889987f9f2d3789000000000000000000000000000000000000000000000000000000008a5260048a0161273d565b038183305af1918215610d7b57610cc1946101e293610cd492600091610d58575b50835291928680808080610c99565b610d7591503d806000833e610d6d8183611c89565b8101906122dc565b87610d49565b6040513d6000823e3d90fd5b610d9c91503d806000833e610d6d8183611c89565b8c610c5a565b3461060c576101e2610e20610e116108036108116001600160a01b03610dc736611d9f565b929580979996610ddb9b959b93929361208a565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612243565b602080825183010191016122dc565b604051918291602083526020830190611e2b565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57610e65903690600401611d6e565b90610e6e611bb4565b906044356001600160a01b03811680910361060c57610e8b612069565b50610e946123c5565b80519068010000000000000000821161079d5760005482600055808310611521575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b8383106114f9575060409560009586956020955093509091506001600160a01b0316845b82811061104d57878787825191610f2383611bde565b8252602082015260005491610f3783611cab565b610f4382519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b828710610f8c578486018490528451806101e28882611ea6565b8451610f9781611bfa565b825481528551600184018054600091610faf8261240d565b80855291600181169081156110285750600114610ff0575b50509260029282610fde6020946001970382611c89565b83820152815201920196019590610f72565b6000908152602081209092505b81831061101257505081016020018282610fc7565b6001816020925483868801015201920191610ffd565b60ff191660208087019190915292151560051b85019092019250849150839050610fc7565b87516110598982611c89565b6001815260005b868110611480575061107382858761256d565b6101608136031261060c5789519061108a82611c16565b61109381611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576110bf9036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c576110e49036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161060c5761113f9036908301611cdf565b6101208301526101408101359067ffffffffffffffff821161060c5761116791369101611cdf565b61014082015261117682612012565b5261118081612012565b5082315a918b3b1561060c578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b8181106113c8575050505081806000929d9e9b9c9d8860248301520381838d5af190816113b7575b506113955750506112986112106125aa565b60206112858c61132c611224878a8c61256d565b61131961130d6112b78551998a9788977fa61935310000000000000000000000000000000000000000000000000000000089528a60048a01526001600160a01b0361126e88611bca565b1660248a01528a87013560448a01528601866120cc565b61016060648a01526101848901916120fe565b6112a560608601866120cc565b8883036023190160848a0152906120fe565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526112fa6101208501856120cc565b87830360231901610144890152906120fe565b916101408101906120cc565b84830360231901610164860152906120fe565b03818b5afa91821561051057600092611360575b5060019291611355918c51916104c183611bfa565b019796959497610f0d565b90916020823d821161138d575b8161137a60209383611c89565b8101031261050557505190611355611340565b3d915061136d565b976105376001939961053d6113b1949c6105375a89319f612590565b96611355565b60006113c291611c89565b8c6111fe565b909192938f602061147481926001946063198b820301895261014061146261141a6105ac8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152611d49565b92015190610140818403910152611d49565b960194019291016111d6565b6020908a989699939a97929495975161149881611c16565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e0820152600061010082015260606101208201526060610140820152828287010152019891979496989593929095611060565b60026020826115106001949b98999a9b518661245e565b019201920191909695949396610ee9565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061159e5750610eb6565b60029060008155600181016115b3815461240d565b90816115c2575b505001611591565b81601f600093116001146115da5750555b89806115ba565b818352602083206115f691601f0160051c810190600101612447565b80825281602081209155556115d3565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57611637903690600401611d6e565b61163f611bb4565b91604435916001600160a01b03831680930361060c576116a993600093611664612069565b506001600160a01b0360405196879586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916121dc565b921660248401526044830152038183305af1908115610d7b576000916116d8575b604051806101e28482611ea6565b3d8083833e6116e78183611c89565b8101906020818303126118145780519067ffffffffffffffff8211611818570190606082820312611814576040519161171f83611bde565b805183526020810151602084015260408101519067ffffffffffffffff8211611810570181601f820112156118185780519361175a85611cab565b926117686040519485611c89565b85845260208085019660051b840101928184116118145760208101965b8488106117a0575050505050604082015290506101e26116ca565b875167ffffffffffffffff81116118105782016040818503601f19011261181057604051906117ce82611bfa565b6020810151825260408101519067ffffffffffffffff821161180c57916117fd8660208096948196010161229a565b83820152815201970196611785565b8680fd5b8480fd5b8280fd5b8380fd5b3461060c5760e036600319011261060c57611835611b9e565b61183d611bb4565b60443567ffffffffffffffff811161060c5761185d903690600401611d6e565b906064359267ffffffffffffffff841161060c57610120600319853603011261060c576101e294611925610e11946118f0610e209761189a61208a565b506118db6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916121dc565b8381036023190160448501529060040161211f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284611c89565b6127da565b3461060c576101e2610e20610e116108036108116001600160a01b0361194f36611d9f565b9295809799966119639b959b93929361208a565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612243565b3461060c57606036600319011261060c576119b2611b9e565b6119ba611bb4565b60443567ffffffffffffffff811161060c573660238201121561060c5780600401356119e581611cab565b916119f36040519384611c89565b8183526024602084019260051b8201019036821161060c5760248101925b828410611b6e5750505050805192611a2884611cab565b93611a366040519586611c89565b808552611a45601f1991611cab565b0160005b818110611b5d5750506001600160a01b0360009316925b8251811015611af5576001906060600080611a7b8488612035565b5160405190611aae82611aa0602082019363428557b160e11b85528b60248401612049565b03601f198101845283611c89565b828a5a935193f115611ad7575b611ac58288612035565b52611ad08187612035565b5001611a60565b503d604051906020818301016040528082526000602083013e611abb565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210611b2e57505050500390f35b91936001919395506020611b4d8192603f198a82030186528851611d49565b9601920192018594939192611b1f565b806060602080938901015201611a49565b833567ffffffffffffffff811161060c57602091611b93839260243691870101611cdf565b815201930192611a11565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b35906001600160a01b038216820361060c57565b6060810190811067ffffffffffffffff82111761079d57604052565b6040810190811067ffffffffffffffff82111761079d57604052565b610160810190811067ffffffffffffffff82111761079d57604052565b60a0810190811067ffffffffffffffff82111761079d57604052565b610120810190811067ffffffffffffffff82111761079d57604052565b610100810190811067ffffffffffffffff82111761079d57604052565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d5760051b60200190565b67ffffffffffffffff811161079d57601f01601f191660200190565b81601f8201121561060c57803590611cf682611cc3565b92611d046040519485611c89565b8284526020838301011161060c57816000926020809301838601378301015290565b60005b838110611d395750506000910152565b8181015183820152602001611d29565b90602091611d6281518092818552858086019101611d26565b601f01601f1916010190565b9181601f8401121561060c5782359167ffffffffffffffff831161060c576020808501948460051b01011161060c57565b60e060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611df291600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c57600401906084359060a4359060c43590565b9081516002811015611e905781526080604080611e7581602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190611d49565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310611ef557505050505090565b9091929394602080611f24600193609f198682030187526040838b518051845201519181858201520190611d49565b97019301930191939290611ee6565b9061010060e0611f8f93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190611d49565b90565b608060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611fe591600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c5760040190565b80511561201f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561201f5760209160051b010190565b6040906001600160a01b03611f8f94931681528160208201520190611d49565b6040519061207682611bde565b606060408360008152600060208201520152565b6040519061209782611bde565b81600081526120a4612069565b602082015260408051916120b783611bde565b60008352600060208401526000828401520152565b9035601e198236030181121561060c57016020813591019167ffffffffffffffff821161060c57813603831361060c57565b908060209392818452848401376000828201840152601f01601f1916010190565b611f8f916001600160a01b0361213483611bca565b168152602082013560208201526121cd6121c161218861216d61215a60408701876120cc565b61012060408801526101208701916120fe565b61217a60608701876120cc565b9086830360608801526120fe565b6080850135608085015260a085013560a085015260c085013560c08501526121b360e08601866120cc565b9085830360e08701526120fe565b926101008101906120cc565b916101008185039101526120fe565b90602083828152019060208160051b85010193836000915b8383106122045750505050505090565b909192939495601f19828203018652863561011e198436030181121561060c5760206122356001938683940161211f565b9801960194930191906121f4565b93979695926122789061226a6001600160a01b039360a0989560c0895260c08901916121dc565b90868203602088015261211f565b97166040840152606083015260808201520152565b5190811515820361060c57565b81601f8201121561060c5780516122b081611cc3565b926122be6040519485611c89565b8184526020828401011161060c57611f8f9160208085019101611d26565b60208183031261060c5780519067ffffffffffffffff821161060c57018082039160a0831261060c576040519261231284611bde565b8251600281101561060c578452602083015167ffffffffffffffff811161060c57830160608184031261060c576040519061234c82611bde565b8051825261235c6020820161228d565b602083015260408101519367ffffffffffffffff851161060c57606094612383920161229a565b60408201526020850152603f19011261060c576080604051916123a583611bde565b604081015183526060810151602084015201516040820152604082015290565b604051906123d4602083611c89565b600080835282815b8281106123e857505050565b6020906040516123f781611bfa565b60008152606083820152828285010152016123dc565b90600182811c9216801561243d575b602083101461242757565b634e487b7160e01b600052602260045260246000fd5b91607f169161241c565b818110612452575050565b60008155600101612447565b6001602091939293845181550192015191825167ffffffffffffffff811161079d5761248a825461240d565b601f8111612530575b506020601f82116001146124ce57819293946000926124c3575b50508160011b916000199060031b1c1916179055565b0151905038806124ad565b601f1982169083600052806000209160005b818110612518575095836001959697106124ff575b505050811b019055565b015160001960f88460031b161c191690553880806124f5565b9192602060018192868b0151815501940192016124e0565b61255d90836000526020600020601f840160051c81019160208510612563575b601f0160051c0190612447565b38612493565b9091508190612550565b919081101561201f5760051b8101359061015e198136030182121561060c570190565b9190820391821161078757565b9190820180921161078757565b3d156125d5573d906125bb82611cc3565b916125c96040519384611c89565b82523d6000602084013e565b606090565b600054906801000000000000000082101561079d57600182018060005582101561201f57600080526126309160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630161245e565b565b6040519061263f82611c6c565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91611f8f939161268d916040855260408501916121dc565b91602081840391015261211f565b60208183031261060c5780519067ffffffffffffffff821161060c57016101008183031261060c57604051916126d083611c6c565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261271260c0830161228d565b60c084015260e082015167ffffffffffffffff811161060c57612735920161229a565b60e082015290565b94919260c096999897946001600160a01b0361278095816127729516895216602088015260e0604088015260e08701916121dc565b90848203606086015261211f565b95608083015260a08201520152565b919082604091031261060c576040516127a781611bfa565b6020808294805184520151910152565b919081101561201f5760051b8101359061011e198136030182121561060c570190565b60405163428557b160e11b602082019081526000948594859485926128089186916108039160248401612049565b5a935193f1612ad5573d60405191602082840101604052818352602083013e6004815110612a6b576000600460609183516004811115612a63575b8015612a5b575b508181106129e8575b50507fffffffff0000000000000000000000000000000000000000000000000000000063428557b160e11b916020815191015182811691600481106129d3575b50501614612969578051606091600482612961565b6004811115612959575b50828110612910575b5050508051810160408282031261060c576128d86020830161228d565b9160408101519167ffffffffffffffff831161060c576128ff92602080920192010161229a565b90156129085790565b602081519101fd5b6040519350918290039101601f8201601f19165b8181015184820152601f190190811561293d5790612924565b50506040818301600060208201520160405281523880806128bb565b9050386128b2565b9250826128a8565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b839250829060040360031b1b16163880612893565b604051925090819003908301601f8201601f19165b8181015184820152601f1901908115612a1657906129fd565b505063428557b160e11b917fffffffff000000000000000000000000000000000000000000000000000000009160408183016000602082015201604052815291612853565b90503861284a565b915081612843565b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fdfea26469706673582212200610ae9f26d55cee66bb05b38cc21738c2adadd91170e486f981e2e046ca7bb164736f6c634300081c0033","sourceMap":"852:14571:20:-:0;;;;;;;2573:27;;;;852:14571;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c8063141eb033146119995780632e5a0a931461192a578063713499031461181c578063861d9d5914611606578063959c4cb714610e345780639f2d378914610da2578063a4968eab14610b5b578063de040de11461083b578063f1143043146107b35763fccb5ff61461008a57600080fd5b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c576100bb903690600401611d6e565b906100c4611bb4565b906044356001600160a01b03811680910361060c576100e1612069565b506100ea6123c5565b80519068010000000000000000821161079d57600054826000558083106106a2575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061067a575060409560009586956020955093509091506001600160a01b0316845b8281106102a75787878782519161017983611bde565b825260208201526000549161018d83611cab565b61019982519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b8287106101e6578486018490528451806101e28882611ea6565b0390f35b84516101f181611bfa565b8254815285516001840180546000916102098261240d565b8085529160018116908115610282575060011461024a575b505092600292826102386020946001970382611c89565b838201528152019201960195906101c8565b6000908152602081209092505b81831061026c57505081016020018282610221565b6001816020925483868801015201920191610257565b60ff191660208087019190915292151560051b85019092019250849150839050610221565b87516102b38982611c89565b6001815260005b86811061061157506102cd8285876127b7565b6101208136031261060c578951906102e482611c4f565b6102ed81611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576103199036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c5761033e9036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff811161060c576103829036908301611cdf565b60e08301526101008101359067ffffffffffffffff821161060c576103a991369101611cdf565b6101008201526103b882612012565b526103c281612012565b5082315a918b3b1561060c578a51907f765e827f000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b81811061055a575050505081806000929d9e9b9c9d8860248301520381838d5af19081610549575b5061051b5750506104986104526125aa565b602061045f8487896127b7565b8c51809481927f22cdde4c000000000000000000000000000000000000000000000000000000008352846004840152602483019061211f565b03818b5afa918215610510576000926104d8575b50600192916104cd918c51916104c183611bfa565b825260208201526125da565b019796959497610163565b90916020823d8211610508575b816104f260209383611c89565b81010312610505575051906104cd6104ac565b80fd5b3d91506104e5565b8b513d6000823e3d90fd5b976105376001939961053d610543949c6105375a89319f612590565b9061259d565b9b612590565b966104cd565b600061055491611c89565b38610440565b909192938f602061060081926001946063198b82030189526101006105ee6105be6105ac8d51956001600160a01b03875116865288870151898701526101208188015191870152610120860190611d49565b60608601518582036060870152611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e0860152611d49565b92015190610100818403910152611d49565b96019401929101610418565b600080fd5b6020908a989699939a97929495975161062981611c4f565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e082015260606101008201528282870101520198919794969895939290956102ba565b60026020826106916001949b98999a9b518661245e565b01920192019190969594939661013f565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061071f575061010c565b6002906000815560018101610734815461240d565b9081610743575b505001610712565b81601f6000931160011461075b5750555b388061073b565b8183526020832061077791601f0160051c810190600101612447565b8082528160208120915555610754565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b3461060c576101e26108276108186108116108036001600160a01b036107d836611f92565b6107e6979394969197612632565b5060405197889363af32494360e01b602086015260248501612675565b03601f198101865285611c89565b16906127da565b6020808251830101910161269b565b604051918291602083526020830190611f33565b3461060c576109546108116108036001600160a01b0361085a36611f92565b60409793949691975161086c81611c33565b60405161087881611c33565b600081526000602082015260006040820152600060608201526060608082015281526040516108a681611bfa565b600081526000602082015260208201526040516108c281611bfa565b600081526000602082015260408201526040516108de81611bfa565b600081526000602082015260608201526080604051916108fd83611bfa565b6000835260405161090d81611bfa565b6000815260006020820152602084015201526040519788937faec321fb00000000000000000000000000000000000000000000000000000000602086015260248501612675565b8051810190602082019060208184031261060c5760208101519067ffffffffffffffff821161060c5701808303601f1981019291906101401361060c576040519361099e85611c33565b602082015167ffffffffffffffff811161060c578201602081019160a09190031261060c57604051906109d082611c33565b8051825260208101516020830152604081015160408301526060810151606083015260808101519067ffffffffffffffff821161060c57610a139185910161229a565b60808201528452610a27826040830161278f565b9160208501928352610a3c816080840161278f565b93604086019485526060610a538360c0860161278f565b8782019081529160bf19011261060c5760405190610a7082611bfa565b610100840151906001600160a01b038216820361060c576020809781610b0560806101409c610aaa849b9a610120869c879b8d520161278f565b848a01528181019889526040519d848f9e928f938452519201528c61016082519101528c610180858301519101528c6101a060408301519101528c6101c06060830151910152015160a06101e08d01526102008c0190611d49565b9851805160408c0152015160608a015251805160808a0152015160a088015251805160c0880152015160e0860152516001600160a01b038151166101008601520151805161012085015201516101408301520390f35b3461060c57610b6936611d9f565b96906040969296959394955196610b7f88611bde565b610b87612632565b88526020880195610b9661208a565b87526040890197610ba561208a565b895260405163af32494360e01b602082015280610bc784848b60248501612675565b03601f1981018252610bd99082611c89565b610bed906001600160a01b038816876127da565b805181016020019060200190610c029161269b565b8a526040517f2e5a0a9300000000000000000000000000000000000000000000000000000000815280610c3f8d878787878e8e8e60048a0161273d565b03813091815a6000948591f1908115610d7b57600091610d87575b50885260e0820135601e198336030181121561060c57820180359067ffffffffffffffff821161060c57602082360391011361060c5760141115610ce7575b610cc18a6101e28b610cd48c6040519586956020875251606060208801526080870190611f33565b9051858203601f19016040870152611e2b565b9051838203601f19016060850152611e2b565b91610d28939160009799989b936040519a8b9889987f9f2d3789000000000000000000000000000000000000000000000000000000008a5260048a0161273d565b038183305af1918215610d7b57610cc1946101e293610cd492600091610d58575b50835291928680808080610c99565b610d7591503d806000833e610d6d8183611c89565b8101906122dc565b87610d49565b6040513d6000823e3d90fd5b610d9c91503d806000833e610d6d8183611c89565b8c610c5a565b3461060c576101e2610e20610e116108036108116001600160a01b03610dc736611d9f565b929580979996610ddb9b959b93929361208a565b506040519b8c977fd72f25930000000000000000000000000000000000000000000000000000000060208a015260248901612243565b602080825183010191016122dc565b604051918291602083526020830190611e2b565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57610e65903690600401611d6e565b90610e6e611bb4565b906044356001600160a01b03811680910361060c57610e8b612069565b50610e946123c5565b80519068010000000000000000821161079d5760005482600055808310611521575b50602090959493929501600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b8383106114f9575060409560009586956020955093509091506001600160a01b0316845b82811061104d57878787825191610f2383611bde565b8252602082015260005491610f3783611cab565b610f4382519182611c89565b8381526000808052937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602083015b828710610f8c578486018490528451806101e28882611ea6565b8451610f9781611bfa565b825481528551600184018054600091610faf8261240d565b80855291600181169081156110285750600114610ff0575b50509260029282610fde6020946001970382611c89565b83820152815201920196019590610f72565b6000908152602081209092505b81831061101257505081016020018282610fc7565b6001816020925483868801015201920191610ffd565b60ff191660208087019190915292151560051b85019092019250849150839050610fc7565b87516110598982611c89565b6001815260005b868110611480575061107382858761256d565b6101608136031261060c5789519061108a82611c16565b61109381611bca565b8252602081013560208301528a81013567ffffffffffffffff811161060c576110bf9036908301611cdf565b8b830152606081013567ffffffffffffffff811161060c576110e49036908301611cdf565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff811161060c5761113f9036908301611cdf565b6101208301526101408101359067ffffffffffffffff821161060c5761116791369101611cdf565b61014082015261117682612012565b5261118081612012565b5082315a918b3b1561060c578a51907f1fad948c000000000000000000000000000000000000000000000000000000008252604482018c6004840152815180915260648301602060648360051b86010193019160005b8181106113c8575050505081806000929d9e9b9c9d8860248301520381838d5af190816113b7575b506113955750506112986112106125aa565b60206112858c61132c611224878a8c61256d565b61131961130d6112b78551998a9788977fa61935310000000000000000000000000000000000000000000000000000000089528a60048a01526001600160a01b0361126e88611bca565b1660248a01528a87013560448a01528601866120cc565b61016060648a01526101848901916120fe565b6112a560608601866120cc565b8883036023190160848a0152906120fe565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526112fa6101208501856120cc565b87830360231901610144890152906120fe565b916101408101906120cc565b84830360231901610164860152906120fe565b03818b5afa91821561051057600092611360575b5060019291611355918c51916104c183611bfa565b019796959497610f0d565b90916020823d821161138d575b8161137a60209383611c89565b8101031261050557505190611355611340565b3d915061136d565b976105376001939961053d6113b1949c6105375a89319f612590565b96611355565b60006113c291611c89565b8c6111fe565b909192938f602061147481926001946063198b820301895261014061146261141a6105ac8d51956001600160a01b03875116865288870151898701526101608188015191870152610160860190611d49565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e0850152610100850151610100850152610120850151848203610120860152611d49565b92015190610140818403910152611d49565b960194019291016111d6565b6020908a989699939a97929495975161149881611c16565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e0820152600061010082015260606101208201526060610140820152828287010152019891979496989593929095611060565b60026020826115106001949b98999a9b518661245e565b019201920191909695949396610ee9565b6001600160ff1b0381168103610787576001600160ff1b0383168303610787576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b81811061159e5750610eb6565b60029060008155600181016115b3815461240d565b90816115c2575b505001611591565b81601f600093116001146115da5750555b89806115ba565b818352602083206115f691601f0160051c810190600101612447565b80825281602081209155556115d3565b3461060c57606036600319011261060c5760043567ffffffffffffffff811161060c57611637903690600401611d6e565b61163f611bb4565b91604435916001600160a01b03831680930361060c576116a993600093611664612069565b506001600160a01b0360405196879586957ffccb5ff60000000000000000000000000000000000000000000000000000000087526060600488015260648701916121dc565b921660248401526044830152038183305af1908115610d7b576000916116d8575b604051806101e28482611ea6565b3d8083833e6116e78183611c89565b8101906020818303126118145780519067ffffffffffffffff8211611818570190606082820312611814576040519161171f83611bde565b805183526020810151602084015260408101519067ffffffffffffffff8211611810570181601f820112156118185780519361175a85611cab565b926117686040519485611c89565b85845260208085019660051b840101928184116118145760208101965b8488106117a0575050505050604082015290506101e26116ca565b875167ffffffffffffffff81116118105782016040818503601f19011261181057604051906117ce82611bfa565b6020810151825260408101519067ffffffffffffffff821161180c57916117fd8660208096948196010161229a565b83820152815201970196611785565b8680fd5b8480fd5b8280fd5b8380fd5b3461060c5760e036600319011261060c57611835611b9e565b61183d611bb4565b60443567ffffffffffffffff811161060c5761185d903690600401611d6e565b906064359267ffffffffffffffff841161060c57610120600319853603011261060c576101e294611925610e11946118f0610e209761189a61208a565b506118db6040519788947facbe911e00000000000000000000000000000000000000000000000000000000602087015260c0602487015260e48601916121dc565b8381036023190160448501529060040161211f565b6001600160a01b0385166064830152608435608483015260a43560a483015260c43560c483015203601f198101855284611c89565b6127da565b3461060c576101e2610e20610e116108036108116001600160a01b0361194f36611d9f565b9295809799966119639b959b93929361208a565b506040519b8c977f212eccc60000000000000000000000000000000000000000000000000000000060208a015260248901612243565b3461060c57606036600319011261060c576119b2611b9e565b6119ba611bb4565b60443567ffffffffffffffff811161060c573660238201121561060c5780600401356119e581611cab565b916119f36040519384611c89565b8183526024602084019260051b8201019036821161060c5760248101925b828410611b6e5750505050805192611a2884611cab565b93611a366040519586611c89565b808552611a45601f1991611cab565b0160005b818110611b5d5750506001600160a01b0360009316925b8251811015611af5576001906060600080611a7b8488612035565b5160405190611aae82611aa0602082019363428557b160e11b85528b60248401612049565b03601f198101845283611c89565b828a5a935193f115611ad7575b611ac58288612035565b52611ad08187612035565b5001611a60565b503d604051906020818301016040528082526000602083013e611abb565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210611b2e57505050500390f35b91936001919395506020611b4d8192603f198a82030186528851611d49565b9601920192018594939192611b1f565b806060602080938901015201611a49565b833567ffffffffffffffff811161060c57602091611b93839260243691870101611cdf565b815201930192611a11565b600435906001600160a01b038216820361060c57565b602435906001600160a01b038216820361060c57565b35906001600160a01b038216820361060c57565b6060810190811067ffffffffffffffff82111761079d57604052565b6040810190811067ffffffffffffffff82111761079d57604052565b610160810190811067ffffffffffffffff82111761079d57604052565b60a0810190811067ffffffffffffffff82111761079d57604052565b610120810190811067ffffffffffffffff82111761079d57604052565b610100810190811067ffffffffffffffff82111761079d57604052565b90601f8019910116810190811067ffffffffffffffff82111761079d57604052565b67ffffffffffffffff811161079d5760051b60200190565b67ffffffffffffffff811161079d57601f01601f191660200190565b81601f8201121561060c57803590611cf682611cc3565b92611d046040519485611c89565b8284526020838301011161060c57816000926020809301838601378301015290565b60005b838110611d395750506000910152565b8181015183820152602001611d29565b90602091611d6281518092818552858086019101611d26565b601f01601f1916010190565b9181601f8401121561060c5782359167ffffffffffffffff831161060c576020808501948460051b01011161060c57565b60e060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611df291600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c57600401906084359060a4359060c43590565b9081516002811015611e905781526080604080611e7581602087015160a06020880152805160a08801526020810151151560c08801520151606060e0870152610100860190611d49565b94015180518285015260208101516060850152015191015290565b634e487b7160e01b600052602160045260246000fd5b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b838310611ef557505050505090565b9091929394602080611f24600193609f198682030187526040838b518051845201519181858201520190611d49565b97019301930191939290611ee6565b9061010060e0611f8f93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c0810151151560c08501520151918160e08201520190611d49565b90565b608060031982011261060c576004356001600160a01b038116810361060c57916024356001600160a01b038116810361060c579160443567ffffffffffffffff811161060c5781611fe591600401611d6e565b929092916064359067ffffffffffffffff821161060c5761012090829003600319011261060c5760040190565b80511561201f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561201f5760209160051b010190565b6040906001600160a01b03611f8f94931681528160208201520190611d49565b6040519061207682611bde565b606060408360008152600060208201520152565b6040519061209782611bde565b81600081526120a4612069565b602082015260408051916120b783611bde565b60008352600060208401526000828401520152565b9035601e198236030181121561060c57016020813591019167ffffffffffffffff821161060c57813603831361060c57565b908060209392818452848401376000828201840152601f01601f1916010190565b611f8f916001600160a01b0361213483611bca565b168152602082013560208201526121cd6121c161218861216d61215a60408701876120cc565b61012060408801526101208701916120fe565b61217a60608701876120cc565b9086830360608801526120fe565b6080850135608085015260a085013560a085015260c085013560c08501526121b360e08601866120cc565b9085830360e08701526120fe565b926101008101906120cc565b916101008185039101526120fe565b90602083828152019060208160051b85010193836000915b8383106122045750505050505090565b909192939495601f19828203018652863561011e198436030181121561060c5760206122356001938683940161211f565b9801960194930191906121f4565b93979695926122789061226a6001600160a01b039360a0989560c0895260c08901916121dc565b90868203602088015261211f565b97166040840152606083015260808201520152565b5190811515820361060c57565b81601f8201121561060c5780516122b081611cc3565b926122be6040519485611c89565b8184526020828401011161060c57611f8f9160208085019101611d26565b60208183031261060c5780519067ffffffffffffffff821161060c57018082039160a0831261060c576040519261231284611bde565b8251600281101561060c578452602083015167ffffffffffffffff811161060c57830160608184031261060c576040519061234c82611bde565b8051825261235c6020820161228d565b602083015260408101519367ffffffffffffffff851161060c57606094612383920161229a565b60408201526020850152603f19011261060c576080604051916123a583611bde565b604081015183526060810151602084015201516040820152604082015290565b604051906123d4602083611c89565b600080835282815b8281106123e857505050565b6020906040516123f781611bfa565b60008152606083820152828285010152016123dc565b90600182811c9216801561243d575b602083101461242757565b634e487b7160e01b600052602260045260246000fd5b91607f169161241c565b818110612452575050565b60008155600101612447565b6001602091939293845181550192015191825167ffffffffffffffff811161079d5761248a825461240d565b601f8111612530575b506020601f82116001146124ce57819293946000926124c3575b50508160011b916000199060031b1c1916179055565b0151905038806124ad565b601f1982169083600052806000209160005b818110612518575095836001959697106124ff575b505050811b019055565b015160001960f88460031b161c191690553880806124f5565b9192602060018192868b0151815501940192016124e0565b61255d90836000526020600020601f840160051c81019160208510612563575b601f0160051c0190612447565b38612493565b9091508190612550565b919081101561201f5760051b8101359061015e198136030182121561060c570190565b9190820391821161078757565b9190820180921161078757565b3d156125d5573d906125bb82611cc3565b916125c96040519384611c89565b82523d6000602084013e565b606090565b600054906801000000000000000082101561079d57600182018060005582101561201f57600080526126309160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5630161245e565b565b6040519061263f82611c6c565b606060e08360008152600060208201526000604082015260008382015260006080820152600060a0820152600060c08201520152565b91611f8f939161268d916040855260408501916121dc565b91602081840391015261211f565b60208183031261060c5780519067ffffffffffffffff821161060c57016101008183031261060c57604051916126d083611c6c565b815183526020820151602084015260408201516040840152606082015160608401526080820151608084015260a082015160a084015261271260c0830161228d565b60c084015260e082015167ffffffffffffffff811161060c57612735920161229a565b60e082015290565b94919260c096999897946001600160a01b0361278095816127729516895216602088015260e0604088015260e08701916121dc565b90848203606086015261211f565b95608083015260a08201520152565b919082604091031261060c576040516127a781611bfa565b6020808294805184520151910152565b919081101561201f5760051b8101359061011e198136030182121561060c570190565b60405163428557b160e11b602082019081526000948594859485926128089186916108039160248401612049565b5a935193f1612ad5573d60405191602082840101604052818352602083013e6004815110612a6b576000600460609183516004811115612a63575b8015612a5b575b508181106129e8575b50507fffffffff0000000000000000000000000000000000000000000000000000000063428557b160e11b916020815191015182811691600481106129d3575b50501614612969578051606091600482612961565b6004811115612959575b50828110612910575b5050508051810160408282031261060c576128d86020830161228d565b9160408101519167ffffffffffffffff831161060c576128ff92602080920192010161229a565b90156129085790565b602081519101fd5b6040519350918290039101601f8201601f19165b8181015184820152601f190190811561293d5790612924565b50506040818301600060208201520160405281523880806128bb565b9050386128b2565b9250826128a8565b608460405162461bcd60e51b815260206004820152603d60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20776974682044656c6567617465416e64526576657274206572726f720000006064820152fd5b839250829060040360031b1b16163880612893565b604051925090819003908301601f8201601f19165b8181015184820152601f1901908115612a1657906129fd565b505063428557b160e11b917fffffffff000000000000000000000000000000000000000000000000000000009160408183016000602082015201604052815291612853565b90503861284a565b915081612843565b608460405162461bcd60e51b815260206004820152602a60248201527f44656c6567617465416e6452657665727420726576657274206461746120697360448201527f20746f6f2073686f7274000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602c60248201527f44656c6567617465416e6452657665727420646964206e6f742072657665727460448201527f20617320657870656374656400000000000000000000000000000000000000006064820152fdfea26469706673582212200610ae9f26d55cee66bb05b38cc21738c2adadd91170e486f981e2e046ca7bb164736f6c634300081c0033","sourceMap":"852:14571:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;:::i;:::-;;12191:23;;:::i;:::-;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;12412:13:20;-1:-1:-1;852:14571:20;;-1:-1:-1;;;;;;852:14571:20;;12427:18;;;;;;852:14571;;;;;;;;;:::i;:::-;;;;13459:155;;852:14571;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13459:155;;;852:14571;;;;;;;13459:155;852:14571;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;12447:3;852:14571;;;;;;:::i;:::-;;;;;;;;;;;12647:10;;;;;;:::i;:::-;852:14571;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;12628:29;;;:::i;:::-;;;;;:::i;:::-;;12696:19;;12749:9;12777:48;;;;;;852:14571;;12777:48;852:14571;12777:48;;852:14571;;;12777:48;852:14571;12777:48;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12777:48;;;;;;;;;;852:14571;-1:-1:-1;12773:659:20;;13130:302;;852:14571;13130:302;;:::i;:::-;852:14571;13298:10;;;;;:::i;:::-;852:14571;;13273:36;;;;852:14571;13273:36;;;852:14571;13273:36;;852:14571;;;;;;:::i;:::-;13273:36;;;;;;;;;;852:14571;13273:36;;;12773:659;852:14571;;;;13327:90;852:14571;;;;;;;:::i;:::-;;;;13348:68;;852:14571;13327:90;:::i;:::-;852:14571;12412:13;;;;;;;13273:36;;;852:14571;13273:36;;;;;;;;;852:14571;13273:36;;;:::i;:::-;;;852:14571;;;;-1:-1:-1;852:14571:20;;13327:90;13273:36;;852:14571;;;13273:36;;;-1:-1:-1;13273:36:20;;;852:14571;;;;;;;;;12773:659;12863:9;13086:28;852:14571;12863:9;;13010:36;13064:50;12863:9;;13026:20;12863:9;12913:19;;13026:20;;:::i;:::-;13010:36;;:::i;:::-;13086:28;;:::i;13064:50::-;12773:659;;;12777:48;852:14571;12777:48;;;:::i;:::-;;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12777:48;852:14571;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;852:14571:20;;;;;;;;;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;11026:64;10950:59;10853:61;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;10853:61;;;-1:-1:-1;;;10853:61:20;;;;;;;;:::i;:::-;;852:14571;;10853:61;;;;;;:::i;:::-;852:14571;10950:59;;:::i;:::-;10853:61;852:14571;;;11026:64;;;;;;:::i;:::-;852:14571;;;;;10853:61;852:14571;;10853:61;852:14571;;;;:::i;:::-;;;;10263:59;10166:61;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;10166:61;;;10086:50;852:14571;10166:61;;;;;;;:::i;10263:59::-;852:14571;;10339:65;;;852:14571;10339:65;;852:14571;;;;;;;;;10339:65;;852:14571;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;-1:-1:-1;852:14571:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;852:14571:20;6022:61;;;852:14571;6022:61;;;;;;;;:::i;:::-;;852:14571;;6022:61;;;;;;;;:::i;:::-;6119:59;;-1:-1:-1;;;;;852:14571:20;;6119:59;;:::i;:::-;852:14571;;6214:64;;852:14571;6214:64;;852:14571;6214:64;;;;;:::i;:::-;6188:90;;852:14571;;;6374:162;;852:14571;6374:162;852:14571;;;;;;;;;6374:162;;;:::i;:::-;;:4;;:162;;;852:14571;6374:162;;;;;;;;;852:14571;6374:162;;;852:14571;6344:192;;;852:14571;6641:29;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6681:2;-1:-1:-1;6641:42:20;6637:387;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;6637:387::-;852:14571;6738:275;852:14571;;;;;;;;;;6738:275;;;;;852:14571;6738:275;;852:14571;6738:275;;;:::i;:::-;;6374:4;;;6738:275;;;;;;;852:14571;6738:275;852:14571;6738:275;852:14571;6738:275;852:14571;6738:275;;;6637:387;6699:314;;;6637:387;;;;;;;;;6738:275;;;;;;852:14571;6738:275;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;852:14571;;;;;;;;;6374:162;;;;;;852:14571;6374:162;;;;;;:::i;:::-;;;;852:14571;;;;;8778:67;8702:59;8526:140;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;8526:140;;;8428:68;8526:140;;;;;;;;:::i;8702:59::-;8526:140;852:14571;;;8778:67;;;;;;:::i;:::-;852:14571;;;;;8526:140;852:14571;;8526:140;852:14571;;;;:::i;:::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;:::i;:::-;;14003:23;;:::i;:::-;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;14224:13:20;-1:-1:-1;852:14571:20;;-1:-1:-1;;;;;;852:14571:20;;14239:18;;;;;;852:14571;;;;;;;;;:::i;:::-;;;;15259:155;;852:14571;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15259:155;;;852:14571;;;;;;;15259:155;852:14571;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;14259:3;852:14571;;;;;;:::i;:::-;;;;;;;;;;;14447:10;;;;;;:::i;:::-;852:14571;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;14428:29;;;:::i;:::-;;;;;:::i;:::-;;14496:19;;14549:9;14577:48;;;;;;852:14571;;14577:48;852:14571;14577:48;;852:14571;;;14577:48;852:14571;14577:48;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14577:48;;;;;;;;;;852:14571;-1:-1:-1;14573:659:20;;14930:302;;852:14571;14930:302;;:::i;:::-;852:14571;;15098:10;852:14571;15098:10;;;;;:::i;:::-;852:14571;;;;;15073:36;;;;;852:14571;15073:36;;;852:14571;15073:36;;852:14571;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;:::i;:::-;15073:36;;;;;;;;;;852:14571;15073:36;;;14573:659;852:14571;;;;15127:90;852:14571;;;;;;;:::i;15127:90::-;852:14571;14224:13;;;;;;;15073:36;;;852:14571;15073:36;;;;;;;;;852:14571;15073:36;;;:::i;:::-;;;852:14571;;;;-1:-1:-1;852:14571:20;;15127:90;15073:36;;;;;-1:-1:-1;15073:36:20;;14573:659;14663:9;14886:28;852:14571;14663:9;;14810:36;14864:50;14663:9;;14826:20;14663:9;14713:19;;14826:20;;:::i;14864:50::-;14573:659;;;14577:48;852:14571;14577:48;;;:::i;:::-;;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;852:14571:20;;11722:74;;;;;852:14571;11722:74;;852:14571;;11722:74;;852:14571;;;;;;:::i;:::-;;;;;;;;;;;11722:74;:4;;;:74;;;;;;;852:14571;11722:74;;;852:14571;;;;;;;;:::i;11722:74::-;;;;;;;;;;:::i;:::-;;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;-1:-1:-1;852:14571:20;11722:74;;852:14571;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9391:140;9567:59;852:14571;;9643:67;852:14571;;;:::i;:::-;;;;;9391:140;;;9310:51;852:14571;9391:140;;;852:14571;;9391:140;;852:14571;;;;;;:::i;:::-;;;;-1:-1:-1;;852:14571:20;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;9391:140;852:14571;;9391:140;;;;;;:::i;:::-;9567:59;:::i;852:14571::-;;;;;7853:67;7777:59;7601:140;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;7601:140;;;7512:59;7601:140;;;;;;;;:::i;852:14571::-;;;;;;-1:-1:-1;;852:14571:20;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;3142:13;;-1:-1:-1;;;;;852:14571:20;;;3137:468;3174:3;852:14571;;3157:15;;;;;852:14571;3193:23;852:14571;;3357:7;;;;;:::i;:::-;;852:14571;;3270:95;;;;852:14571;3270:95;;;-1:-1:-1;;;3270:95:20;;;852:14571;3270:95;;;:::i;:::-;;852:14571;;3270:95;;;;;;:::i;:::-;3429:9;;;378:118:11;;;;3457:8:20;3453:97;;3174:3;3563:31;;;;:::i;:::-;;;;;;:::i;:::-;;852:14571;3142:13;;3453:97;1204:349:11;;852:14571:20;1204:349:11;;852:14571:20;1204:349:11;;;;852:14571:20;1204:349:11;;;;852:14571:20;;1204:349:11;;;3453:97:20;;3157:15;;852:14571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;852:14571:20;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;852:14571:20;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;-1:-1:-1;;852:14571:20;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;852:14571:20;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;-1:-1:-1;;852:14571:20;;;;:::o;:::-;;;-1:-1:-1;;;;;852:14571:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;852:14571:20;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;852:14571:20;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;-1:-1:-1;852:14571:20;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;852:14571:20;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3933:1459::-;852:14571;;-1:-1:-1;;;4217:60:20;;;;;;-1:-1:-1;;;;;;;;4217:60:20;;852:14571;;4217:60;;;;;;:::i;:::-;4337:9;378:118:11;;;;-1:-1:-1;;1204:349:11;852:14571:20;1204:349:11;;4217:60:20;1204:349:11;;;;852:14571:20;1204:349:11;;;;4217:60:20;1204:349:11;;;4217:60:20;852:14571;;4609:21;4605:104;;-1:-1:-1;4217:60:20;852:14571;15879:919:18;;;4217:60:20;15879:919:18;;;;;4358:174:20;15879:919:18;;;;4358:174:20;15879:919:18;;;;;;4358:174:20;4797:30;;852:14571;-1:-1:-1;;;4797:30:20;4217:60;852:14571;;;;;;;;;4217:60;852:14571;;;;4358:174;852:14571;;;4841:60;4837:162;;852:14571;;;;4217:60;852:14571;15879:919:18;;4358:174:20;4217:60;15879:919:18;;;;;4358:174:20;15879:919:18;;;;;;4358:174:20;852:14571;;;;;5201:37;;852:14571;;;;;;;;4217:60;5201:37;;852:14571;:::i;:::-;;;;;;;;;;;;;5201:37;4217:60;5201:37;;;852:14571;;;;:::i;:::-;5253:25;;5249:98;;3933:1459;:::o;5249:98::-;4217:60;1712:95:11;;;;;15879:919:18;852:14571:20;15879:919:18;;-1:-1:-1;15879:919:18;;;;;;852:14571:20;15879:919:18;;-1:-1:-1;;15879:919:18;;;;;;;;;;-1:-1:-1;;15879:919:18;;;;;;;;;;;;852:14571:20;15879:919:18;;;-1:-1:-1;4217:60:20;15879:919:18;;;;852:14571:20;15879:919:18;;;;;;;;;;;;;;;;-1:-1:-1;15879:919:18;;;4837:162:20;4917:71;852:14571;;-1:-1:-1;;;4917:71:20;;4217:60;;4917:71;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4917:71;852:14571;;;;;;4217:60;852:14571;;;;;;;;;;15879:919:18;852:14571:20;15879:919:18;;-1:-1:-1;15879:919:18;;;;;;;852:14571:20;15879:919:18;;-1:-1:-1;;15879:919:18;;;;;;;;;;-1:-1:-1;;15879:919:18;;;;;;;;;;;;-1:-1:-1;;;15879:919:18;852:14571:20;15879:919:18;852:14571:20;15879:919:18;;;-1:-1:-1;4217:60:20;15879:919:18;;;;852:14571:20;15879:919:18;;;;;;;;;;;;;;-1:-1:-1;15879:919:18;;;4605:104:20;4646:52;852:14571;;-1:-1:-1;;;4646:52:20;;4217:60;;4646:52;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4646:52;4358:174;4467:54;852:14571;;-1:-1:-1;;;4467:54:20;;4217:60;;4467:54;;852:14571;;4217:60;852:14571;;;;;;;;;;;;;4467:54","linkReferences":{}},"methodIdentifiers":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"71349903","binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"9f2d3789","binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"2e5a0a93","filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)":"959c4cb7","filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"fccb5ff6","filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)":"861d9d59","simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":"a4968eab","simulateEntryPointBulk(address,address,bytes[])":"141eb033","simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"f1143043","simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":"de040de1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchCallGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchPaymasterVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"binarySearchVerificationGas\",\"outputs\":[{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"initialMinGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"toleranceDelta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasAllowance\",\"type\":\"uint256\"}],\"name\":\"simulateAndEstimateGas\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"simulationResult\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"verificationGasLimit\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum IEntryPointSimulations.BinarySearchResultType\",\"name\":\"resultType\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchSuccess\",\"name\":\"successData\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"optimalGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxGas\",\"type\":\"uint256\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchOutOfGas\",\"name\":\"outOfGasData\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.BinarySearchResult\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"tuple\"}],\"internalType\":\"struct PimlicoSimulations.SimulateAndEstimateGasResult\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPointBulk\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateHandleOp\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterVerificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterPostOpGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"targetSuccess\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"targetResult\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPointSimulations.ExecutionResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"queuedUserOps\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation\",\"name\":\"targetUserOp\",\"type\":\"tuple\"}],\"name\":\"simulateValidation\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"preOpGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"prefund\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accountValidationData\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"paymasterValidationData\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterContext\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntryPoint.ReturnInfo\",\"name\":\"returnInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"senderInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"factoryInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"paymasterInfo\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"aggregator\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakeDelaySec\",\"type\":\"uint256\"}],\"internalType\":\"struct IStakeManager.StakeInfo\",\"name\":\"stakeInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPoint.AggregatorStakeInfo\",\"name\":\"aggregatorInfo\",\"type\":\"tuple\"}],\"internalType\":\"struct IEntryPointSimulations.ValidationResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal call gas limit\"},\"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal paymaster verification gas limit\"},\"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Binary search for optimal verification gas limit\"},\"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)\":{\"notice\":\"Simulates userOp and estimates verification & paymaster gas limits\"},\"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates handling of a UserOperation\"},\"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))\":{\"notice\":\"Simulates validation of a UserOperation\"}},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/IEntryPointSimulations.sol\":{\"keccak256\":\"0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb\",\"dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0x9cb47e6711c497da1b9e568fbcc5166d6c909b31d67fece5010be04feb4b8a5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://467cc57ebe88b4cba702b618ac046916820cf5ece94cdd0d2c846037207c54b3\",\"dweb:/ipfs/QmYjhKx7nvjhu2DfrefUYi75ju43KNgCUWpss5HyjvVTqn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"event","name":"PimlicoSimulationDeployed","anonymous":false},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchCallGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchPaymasterVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"binarySearchVerificationGas","outputs":[{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]},{"inputs":[{"internalType":"struct UserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"callGasLimit","type":"uint256"},{"internalType":"uint256","name":"verificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"uint256","name":"maxFeePerGas","type":"uint256"},{"internalType":"uint256","name":"maxPriorityFeePerGas","type":"uint256"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps06","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps07","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"struct PackedUserOperation[]","name":"userOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"contract IEntryPoint","name":"entryPoint","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"filterOps08","outputs":[{"internalType":"struct PimlicoSimulations.FilterOpsResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"uint256","name":"balanceChange","type":"uint256"},{"internalType":"struct PimlicoSimulations.RejectedUserOp[]","name":"rejectedUserOps","type":"tuple[]","components":[{"internalType":"bytes32","name":"userOpHash","type":"bytes32"},{"internalType":"bytes","name":"revertReason","type":"bytes"}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"uint256","name":"initialMinGas","type":"uint256"},{"internalType":"uint256","name":"toleranceDelta","type":"uint256"},{"internalType":"uint256","name":"gasAllowance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"simulateAndEstimateGas","outputs":[{"internalType":"struct PimlicoSimulations.SimulateAndEstimateGasResult","name":"result","type":"tuple","components":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"simulationResult","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"verificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]},{"internalType":"struct IEntryPointSimulations.BinarySearchResult","name":"paymasterVerificationGasLimit","type":"tuple","components":[{"internalType":"enum IEntryPointSimulations.BinarySearchResultType","name":"resultType","type":"uint8"},{"internalType":"struct IEntryPointSimulations.BinarySearchSuccess","name":"successData","type":"tuple","components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]},{"internalType":"struct IEntryPointSimulations.BinarySearchOutOfGas","name":"outOfGasData","type":"tuple","components":[{"internalType":"uint256","name":"optimalGas","type":"uint256"},{"internalType":"uint256","name":"minGas","type":"uint256"},{"internalType":"uint256","name":"maxGas","type":"uint256"}]}]}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"simulateEntryPointBulk","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateHandleOp","outputs":[{"internalType":"struct IEntryPointSimulations.ExecutionResult","name":"","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterVerificationGasLimit","type":"uint256"},{"internalType":"uint256","name":"paymasterPostOpGasLimit","type":"uint256"},{"internalType":"bool","name":"targetSuccess","type":"bool"},{"internalType":"bytes","name":"targetResult","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"entryPointSimulation","type":"address"},{"internalType":"address payable","name":"entryPoint","type":"address"},{"internalType":"struct PackedUserOperation[]","name":"queuedUserOps","type":"tuple[]","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]},{"internalType":"struct PackedUserOperation","name":"targetUserOp","type":"tuple","components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"bytes32","name":"accountGasLimits","type":"bytes32"},{"internalType":"uint256","name":"preVerificationGas","type":"uint256"},{"internalType":"bytes32","name":"gasFees","type":"bytes32"},{"internalType":"bytes","name":"paymasterAndData","type":"bytes"},{"internalType":"bytes","name":"signature","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"simulateValidation","outputs":[{"internalType":"struct IEntryPointSimulations.ValidationResult","name":"","type":"tuple","components":[{"internalType":"struct IEntryPoint.ReturnInfo","name":"returnInfo","type":"tuple","components":[{"internalType":"uint256","name":"preOpGas","type":"uint256"},{"internalType":"uint256","name":"prefund","type":"uint256"},{"internalType":"uint256","name":"accountValidationData","type":"uint256"},{"internalType":"uint256","name":"paymasterValidationData","type":"uint256"},{"internalType":"bytes","name":"paymasterContext","type":"bytes"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"senderInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"factoryInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IStakeManager.StakeInfo","name":"paymasterInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]},{"internalType":"struct IEntryPoint.AggregatorStakeInfo","name":"aggregatorInfo","type":"tuple","components":[{"internalType":"address","name":"aggregator","type":"address"},{"internalType":"struct IStakeManager.StakeInfo","name":"stakeInfo","type":"tuple","components":[{"internalType":"uint256","name":"stake","type":"uint256"},{"internalType":"uint256","name":"unstakeDelaySec","type":"uint256"}]}]}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"binarySearchCallGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal call gas limit"},"binarySearchPaymasterVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal paymaster verification gas limit"},"binarySearchVerificationGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Binary search for optimal verification gas limit"},"simulateAndEstimateGas(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),uint256,uint256,uint256)":{"notice":"Simulates userOp and estimates verification & paymaster gas limits"},"simulateHandleOp(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates handling of a UserOperation"},"simulateValidation(address,address,(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],(address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes))":{"notice":"Simulates validation of a UserOperation"}},"version":1}},"settings":{"remappings":["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/","@account-abstraction-v7/=lib/account-abstraction-v7/contracts/","@account-abstraction-v8/=lib/account-abstraction-v8/contracts/","@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/","@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/","@test-utils/=lib/singleton-paymaster/test/utils/","account-abstraction-v6/=lib/account-abstraction-v6/contracts/","account-abstraction-v7/=lib/account-abstraction-v7/contracts/","account-abstraction-v8/=lib/account-abstraction-v8/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/","openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/","openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/","openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/","singleton-paymaster/=lib/singleton-paymaster/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PimlicoSimulations.sol":"PimlicoSimulations"},"evmVersion":"london","libraries":{},"viaIR":true},"sources":{"lib/account-abstraction-v6/contracts/core/Helpers.sol":{"keccak256":"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a","urls":["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746","dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol":{"keccak256":"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a","urls":["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b","dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8","urls":["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf","dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol":{"keccak256":"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12","urls":["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2","dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"],"license":"GPL-3.0"},"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f","urls":["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3","dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"],"license":"GPL-3.0-only"},"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol":{"keccak256":"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c","urls":["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c","dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol":{"keccak256":"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588","urls":["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155","dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4","urls":["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9","dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol":{"keccak256":"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb","urls":["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3","dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04","urls":["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00","dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"],"license":"GPL-3.0-only"},"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359","urls":["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be","dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"],"license":"GPL-3.0"},"lib/account-abstraction-v7/contracts/utils/Exec.sol":{"keccak256":"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74","urls":["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77","dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"],"license":"LGPL-3.0-only"},"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol":{"keccak256":"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf","urls":["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77","dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol":{"keccak256":"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64","urls":["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931","dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol":{"keccak256":"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87","urls":["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d","dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol":{"keccak256":"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4","urls":["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570","dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol":{"keccak256":"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0","urls":["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85","dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"],"license":"MIT"},"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol":{"keccak256":"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800","urls":["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79","dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"],"license":"MIT"},"lib/solady/src/utils/LibBytes.sol":{"keccak256":"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e","urls":["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862","dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"],"license":"MIT"},"src/IEntryPointSimulations.sol":{"keccak256":"0x3e675bb230bc7a40b25efd914975233e1f04cc5fbb19cd3b0b3c11574894eeeb","urls":["bzz-raw://dac88adcdabc296cc02d1986684d722132e09683a5420c720b927614422c32eb","dweb:/ipfs/QmTU5SQkBzfhkeCiVTXiPxvNdfpBqqHW9kuAiizQ4DEBXp"],"license":"MIT"},"src/PimlicoSimulations.sol":{"keccak256":"0x9cb47e6711c497da1b9e568fbcc5166d6c909b31d67fece5010be04feb4b8a5b","urls":["bzz-raw://467cc57ebe88b4cba702b618ac046916820cf5ece94cdd0d2c846037207c54b3","dweb:/ipfs/QmYjhKx7nvjhu2DfrefUYi75ju43KNgCUWpss5HyjvVTqn"],"license":"MIT"}},"version":1},"id":20}