@layerzerolabs/protocol-v2-messagelib-evm-contracts 1.2.95 → 1.2.97

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 (272) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/Executor.sol/Executor.json +1413 -0
  3. package/artifacts/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  5. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  6. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  7. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  8. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  9. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  10. package/artifacts/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  11. package/artifacts/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  12. package/artifacts/contracts/Treasury.sol/Treasury.json +309 -0
  13. package/artifacts/contracts/Worker.sol/Worker.json +579 -0
  14. package/artifacts/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  15. package/artifacts/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  16. package/artifacts/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  17. package/artifacts/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  18. package/artifacts/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  19. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  20. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  21. package/artifacts/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  22. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  23. package/artifacts/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  24. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  25. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  26. package/artifacts/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  27. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  28. package/artifacts/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  29. package/artifacts/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  30. package/artifacts/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  31. package/artifacts/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  32. package/artifacts/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  33. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  34. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  35. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  36. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  37. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  38. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  39. package/artifacts/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  40. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  41. package/artifacts/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  42. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  43. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  44. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  45. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  46. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  47. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  48. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  49. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  50. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  51. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  52. package/artifacts/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  53. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  54. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  55. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  56. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  57. package/artifacts/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  58. package/artifacts/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  59. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  60. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  61. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  62. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  63. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  64. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  65. package/artifacts/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  66. package/artifacts/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  67. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  68. package/artifacts/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  69. package/artifacts/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  70. package/artifacts/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  71. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  72. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  73. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  74. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  75. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  76. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  77. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  78. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  79. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  80. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  81. package/artifacts/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  82. package/artifacts/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  83. package/artifacts/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  84. package/artifacts/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  85. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  86. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  87. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  88. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  89. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  90. package/artifacts/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  91. package/artifacts/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  92. package/artifacts-tron/contracts/Executor.sol/Executor.json +1413 -0
  93. package/artifacts-tron/contracts/Executor.sol/ILayerZeroEndpointV2.json +230 -0
  94. package/artifacts-tron/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +546 -0
  95. package/artifacts-tron/contracts/MessageLibBase.sol/MessageLibBase.json +16 -0
  96. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +694 -0
  97. package/artifacts-tron/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +154 -0
  98. package/artifacts-tron/contracts/SendLibBase.sol/SendLibBase.json +381 -0
  99. package/artifacts-tron/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +819 -0
  100. package/artifacts-tron/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +139 -0
  101. package/artifacts-tron/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +260 -0
  102. package/artifacts-tron/contracts/Treasury.sol/Treasury.json +309 -0
  103. package/artifacts-tron/contracts/Worker.sol/Worker.json +579 -0
  104. package/artifacts-tron/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +10 -0
  105. package/artifacts-tron/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +329 -0
  106. package/artifacts-tron/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +92 -0
  107. package/artifacts-tron/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +10 -0
  108. package/artifacts-tron/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +220 -0
  109. package/artifacts-tron/contracts/interfaces/IExecutor.sol/IExecutor.json +487 -0
  110. package/artifacts-tron/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +410 -0
  111. package/artifacts-tron/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +79 -0
  112. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +222 -0
  113. package/artifacts-tron/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +59 -0
  114. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +79 -0
  115. package/artifacts-tron/contracts/interfaces/IWorker.sol/IWorker.json +221 -0
  116. package/artifacts-tron/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +31 -0
  117. package/artifacts-tron/contracts/libs/SafeCall.sol/SafeCall.json +10 -0
  118. package/artifacts-tron/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +369 -0
  119. package/artifacts-tron/contracts/lowlat/MultiCall.sol/MultiCall.json +120 -0
  120. package/artifacts-tron/contracts/mocks/DVNMock.sol/DVNMock.json +135 -0
  121. package/artifacts-tron/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +397 -0
  122. package/artifacts-tron/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  123. package/artifacts-tron/contracts/uln/LzExecutor.sol/LzExecutor.json +515 -0
  124. package/artifacts-tron/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +551 -0
  125. package/artifacts-tron/contracts/uln/SendUlnBase.sol/SendUlnBase.json +412 -0
  126. package/artifacts-tron/contracts/uln/UlnBase.sol/UlnBase.json +387 -0
  127. package/artifacts-tron/contracts/uln/dvn/DVN.sol/DVN.json +1509 -0
  128. package/artifacts-tron/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +695 -0
  129. package/artifacts-tron/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +164 -0
  130. package/artifacts-tron/contracts/uln/dvn/MultiSig.sol/MultiSig.json +217 -0
  131. package/artifacts-tron/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +231 -0
  132. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1040 -0
  133. package/artifacts-tron/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +417 -0
  134. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +789 -0
  135. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  136. package/artifacts-tron/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  137. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  138. package/artifacts-tron/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  139. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1171 -0
  140. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  141. package/artifacts-tron/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +574 -0
  142. package/artifacts-tron/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  143. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  144. package/artifacts-tron/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  145. package/artifacts-tron/contracts/uln/interfaces/IDVN.sol/IDVN.json +438 -0
  146. package/artifacts-tron/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +374 -0
  147. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +96 -0
  148. package/artifacts-tron/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +79 -0
  149. package/artifacts-tron/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +52 -0
  150. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  151. package/artifacts-tron/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +293 -0
  152. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +78 -0
  153. package/artifacts-tron/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +301 -0
  154. package/artifacts-tron/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +27 -0
  155. package/artifacts-tron/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +26 -0
  156. package/artifacts-tron/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +16 -0
  157. package/artifacts-tron/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +54 -0
  158. package/artifacts-tron/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1288 -0
  159. package/artifacts-tron/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +285 -0
  160. package/artifacts-tron/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +387 -0
  161. package/artifacts-tron/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +129 -0
  162. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +68 -0
  163. package/artifacts-tron/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +416 -0
  164. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1000 -0
  165. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  166. package/artifacts-tron/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  167. package/artifacts-tron/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +804 -0
  168. package/artifacts-tron/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1278 -0
  169. package/artifacts-tron/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +94 -0
  170. package/artifacts-tron/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +247 -0
  171. package/artifacts-tron/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +40 -0
  172. package/artifacts-tron/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +44 -0
  173. package/artifacts-tron/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +29 -0
  174. package/artifacts-tron/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +93 -0
  175. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +757 -0
  176. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  177. package/artifacts-tron/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  178. package/artifacts-tron/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1259 -0
  179. package/artifacts-tron/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +592 -0
  180. package/artifacts-tron/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +181 -0
  181. package/artifacts-tron/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +160 -0
  182. package/artifacts-zk/contracts/Executor.sol/Executor.json +1414 -0
  183. package/artifacts-zk/contracts/Executor.sol/ILayerZeroEndpointV2.json +231 -0
  184. package/artifacts-zk/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +547 -0
  185. package/artifacts-zk/contracts/MessageLibBase.sol/MessageLibBase.json +17 -0
  186. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +695 -0
  187. package/artifacts-zk/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +155 -0
  188. package/artifacts-zk/contracts/SendLibBase.sol/SendLibBase.json +382 -0
  189. package/artifacts-zk/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +820 -0
  190. package/artifacts-zk/contracts/SimpleReadExecutor.sol/ILayerZeroEndpointV2.json +140 -0
  191. package/artifacts-zk/contracts/SimpleReadExecutor.sol/SimpleReadExecutor.json +261 -0
  192. package/artifacts-zk/contracts/Treasury.sol/Treasury.json +310 -0
  193. package/artifacts-zk/contracts/Worker.sol/Worker.json +580 -0
  194. package/artifacts-zk/contracts/decompressor/DVNDecoder.sol/DVNDecoder.json +11 -0
  195. package/artifacts-zk/contracts/decompressor/DVNDecompressor.sol/DVNDecompressor.json +330 -0
  196. package/artifacts-zk/contracts/decompressor/DecompressorExtension.sol/DecompressorExtension.json +93 -0
  197. package/artifacts-zk/contracts/decompressor/ExecutorDecoder.sol/ExecutorDecoder.json +11 -0
  198. package/artifacts-zk/contracts/decompressor/ExecutorDecompressor.sol/ExecutorDecompressor.json +221 -0
  199. package/artifacts-zk/contracts/interfaces/IExecutor.sol/IExecutor.json +488 -0
  200. package/artifacts-zk/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +411 -0
  201. package/artifacts-zk/contracts/interfaces/ILayerZeroExecutor.sol/ILayerZeroExecutor.json +80 -0
  202. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +223 -0
  203. package/artifacts-zk/contracts/interfaces/ILayerZeroReadExecutor.sol/ILayerZeroReadExecutor.json +60 -0
  204. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +80 -0
  205. package/artifacts-zk/contracts/interfaces/IWorker.sol/IWorker.json +222 -0
  206. package/artifacts-zk/contracts/libs/ExecutorOptions.sol/ExecutorOptions.json +32 -0
  207. package/artifacts-zk/contracts/libs/SafeCall.sol/SafeCall.json +11 -0
  208. package/artifacts-zk/contracts/lowlat/EssenceDVNWrapper.sol/EssenceDVNWrapper.json +370 -0
  209. package/artifacts-zk/contracts/lowlat/MultiCall.sol/MultiCall.json +121 -0
  210. package/artifacts-zk/contracts/mocks/DVNMock.sol/DVNMock.json +136 -0
  211. package/artifacts-zk/contracts/mocks/ExecutorMock.sol/ExecutorMock.json +398 -0
  212. package/artifacts-zk/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +36 -0
  213. package/artifacts-zk/contracts/uln/LzExecutor.sol/LzExecutor.json +516 -0
  214. package/artifacts-zk/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +552 -0
  215. package/artifacts-zk/contracts/uln/SendUlnBase.sol/SendUlnBase.json +413 -0
  216. package/artifacts-zk/contracts/uln/UlnBase.sol/UlnBase.json +388 -0
  217. package/artifacts-zk/contracts/uln/dvn/DVN.sol/DVN.json +1510 -0
  218. package/artifacts-zk/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +696 -0
  219. package/artifacts-zk/contracts/uln/dvn/DeadDVN.sol/DeadDVN.json +165 -0
  220. package/artifacts-zk/contracts/uln/dvn/MultiSig.sol/MultiSig.json +218 -0
  221. package/artifacts-zk/contracts/uln/dvn/SimpleReadDVN.sol/SimpleReadDVN.json +232 -0
  222. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +1041 -0
  223. package/artifacts-zk/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +418 -0
  224. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +790 -0
  225. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +35 -0
  226. package/artifacts-zk/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +31 -0
  227. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +937 -0
  228. package/artifacts-zk/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +869 -0
  229. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +1172 -0
  230. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +31 -0
  231. package/artifacts-zk/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +575 -0
  232. package/artifacts-zk/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +17 -0
  233. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +925 -0
  234. package/artifacts-zk/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +892 -0
  235. package/artifacts-zk/contracts/uln/interfaces/IDVN.sol/IDVN.json +439 -0
  236. package/artifacts-zk/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +375 -0
  237. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroDVN.sol/ILayerZeroDVN.json +97 -0
  238. package/artifacts-zk/contracts/uln/interfaces/ILayerZeroReadDVN.sol/ILayerZeroReadDVN.json +80 -0
  239. package/artifacts-zk/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +53 -0
  240. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +161 -0
  241. package/artifacts-zk/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +294 -0
  242. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +79 -0
  243. package/artifacts-zk/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +302 -0
  244. package/artifacts-zk/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +28 -0
  245. package/artifacts-zk/contracts/uln/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +27 -0
  246. package/artifacts-zk/contracts/uln/libs/SupportedCmdTypes.sol/SupportedCmdTypesLib.json +17 -0
  247. package/artifacts-zk/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +55 -0
  248. package/artifacts-zk/contracts/uln/readlib/ReadLib1002.sol/ReadLib1002.json +1289 -0
  249. package/artifacts-zk/contracts/uln/readlib/ReadLib1002View.sol/ReadLib1002View.json +286 -0
  250. package/artifacts-zk/contracts/uln/readlib/ReadLibBase.sol/ReadLibBase.json +388 -0
  251. package/artifacts-zk/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +130 -0
  252. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ILayerZeroReceiveLibrary.json +69 -0
  253. package/artifacts-zk/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +417 -0
  254. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +1001 -0
  255. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +179 -0
  256. package/artifacts-zk/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +127 -0
  257. package/artifacts-zk/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +805 -0
  258. package/artifacts-zk/contracts/uln/uln301/SendUln301.sol/SendUln301.json +1279 -0
  259. package/artifacts-zk/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +95 -0
  260. package/artifacts-zk/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +248 -0
  261. package/artifacts-zk/contracts/uln/uln301/interfaces/INonceContract.sol/INonceContract.json +41 -0
  262. package/artifacts-zk/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol/ITreasuryFeeHandler.json +45 -0
  263. package/artifacts-zk/contracts/uln/uln301/interfaces/IUltraLightNode301.sol/IUltraLightNode301.json +30 -0
  264. package/artifacts-zk/contracts/uln/uln301/mocks/NonceContractMock.sol/NonceContractMock.json +94 -0
  265. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +758 -0
  266. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +147 -0
  267. package/artifacts-zk/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +252 -0
  268. package/artifacts-zk/contracts/uln/uln302/SendUln302.sol/SendUln302.json +1260 -0
  269. package/artifacts-zk/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +593 -0
  270. package/artifacts-zk/contracts/upgradeable/proxy/ProxyAdmin.sol/ProxyAdmin.json +182 -0
  271. package/artifacts-zk/contracts/upgradeable/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +161 -0
  272. package/package.json +6 -6
@@ -0,0 +1,1509 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "DVN",
4
+ "sourceName": "contracts/uln/dvn/DVN.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint32",
10
+ "name": "_localEidV2",
11
+ "type": "uint32"
12
+ },
13
+ {
14
+ "internalType": "uint32",
15
+ "name": "_vid",
16
+ "type": "uint32"
17
+ },
18
+ {
19
+ "internalType": "address[]",
20
+ "name": "_messageLibs",
21
+ "type": "address[]"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_priceFeed",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address[]",
30
+ "name": "_signers",
31
+ "type": "address[]"
32
+ },
33
+ {
34
+ "internalType": "uint64",
35
+ "name": "_quorum",
36
+ "type": "uint64"
37
+ },
38
+ {
39
+ "internalType": "address[]",
40
+ "name": "_admins",
41
+ "type": "address[]"
42
+ }
43
+ ],
44
+ "stateMutability": "nonpayable",
45
+ "type": "constructor"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "bytes32",
51
+ "name": "executableHash",
52
+ "type": "bytes32"
53
+ }
54
+ ],
55
+ "name": "DVN_DuplicatedHash",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [],
60
+ "name": "DVN_InstructionExpired",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "inputs": [
65
+ {
66
+ "internalType": "bytes32",
67
+ "name": "role",
68
+ "type": "bytes32"
69
+ }
70
+ ],
71
+ "name": "DVN_InvalidRole",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [],
76
+ "name": "DVN_InvalidSignatures",
77
+ "type": "error"
78
+ },
79
+ {
80
+ "inputs": [
81
+ {
82
+ "internalType": "address",
83
+ "name": "target",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "DVN_InvalidTarget",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "uint32",
94
+ "name": "vid",
95
+ "type": "uint32"
96
+ }
97
+ ],
98
+ "name": "DVN_InvalidVid",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "DVN_OnlySelf",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [],
108
+ "name": "MultiSig_InvalidSigner",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [],
113
+ "name": "MultiSig_OnlySigner",
114
+ "type": "error"
115
+ },
116
+ {
117
+ "inputs": [],
118
+ "name": "MultiSig_QuorumIsZero",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [
123
+ {
124
+ "internalType": "uint64",
125
+ "name": "signersSize",
126
+ "type": "uint64"
127
+ },
128
+ {
129
+ "internalType": "uint64",
130
+ "name": "quorum",
131
+ "type": "uint64"
132
+ }
133
+ ],
134
+ "name": "MultiSig_SignersSizeIsLessThanQuorum",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "address",
141
+ "name": "signer",
142
+ "type": "address"
143
+ },
144
+ {
145
+ "internalType": "bool",
146
+ "name": "active",
147
+ "type": "bool"
148
+ }
149
+ ],
150
+ "name": "MultiSig_StateAlreadySet",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [
155
+ {
156
+ "internalType": "address",
157
+ "name": "signer",
158
+ "type": "address"
159
+ },
160
+ {
161
+ "internalType": "bool",
162
+ "name": "active",
163
+ "type": "bool"
164
+ }
165
+ ],
166
+ "name": "MultiSig_StateNotSet",
167
+ "type": "error"
168
+ },
169
+ {
170
+ "inputs": [],
171
+ "name": "MultiSig_UnorderedSigners",
172
+ "type": "error"
173
+ },
174
+ {
175
+ "inputs": [
176
+ {
177
+ "internalType": "address",
178
+ "name": "_to",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "internalType": "uint256",
183
+ "name": "_value",
184
+ "type": "uint256"
185
+ }
186
+ ],
187
+ "name": "Transfer_NativeFailed",
188
+ "type": "error"
189
+ },
190
+ {
191
+ "inputs": [],
192
+ "name": "Transfer_ToAddressIsZero",
193
+ "type": "error"
194
+ },
195
+ {
196
+ "inputs": [],
197
+ "name": "Worker_NotAllowed",
198
+ "type": "error"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "Worker_OnlyMessageLib",
203
+ "type": "error"
204
+ },
205
+ {
206
+ "inputs": [],
207
+ "name": "Worker_RoleRenouncingDisabled",
208
+ "type": "error"
209
+ },
210
+ {
211
+ "anonymous": false,
212
+ "inputs": [
213
+ {
214
+ "indexed": false,
215
+ "internalType": "uint256",
216
+ "name": "_index",
217
+ "type": "uint256"
218
+ },
219
+ {
220
+ "indexed": false,
221
+ "internalType": "bytes",
222
+ "name": "_data",
223
+ "type": "bytes"
224
+ }
225
+ ],
226
+ "name": "ExecuteFailed",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "components": [
234
+ {
235
+ "internalType": "uint32",
236
+ "name": "vid",
237
+ "type": "uint32"
238
+ },
239
+ {
240
+ "internalType": "address",
241
+ "name": "target",
242
+ "type": "address"
243
+ },
244
+ {
245
+ "internalType": "bytes",
246
+ "name": "callData",
247
+ "type": "bytes"
248
+ },
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "expiration",
252
+ "type": "uint256"
253
+ },
254
+ {
255
+ "internalType": "bytes",
256
+ "name": "signatures",
257
+ "type": "bytes"
258
+ }
259
+ ],
260
+ "indexed": false,
261
+ "internalType": "struct ExecuteParam",
262
+ "name": "param",
263
+ "type": "tuple"
264
+ },
265
+ {
266
+ "indexed": false,
267
+ "internalType": "bytes32",
268
+ "name": "_hash",
269
+ "type": "bytes32"
270
+ }
271
+ ],
272
+ "name": "HashAlreadyUsed",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": false,
280
+ "internalType": "address",
281
+ "name": "account",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "Paused",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": true,
293
+ "internalType": "bytes32",
294
+ "name": "role",
295
+ "type": "bytes32"
296
+ },
297
+ {
298
+ "indexed": true,
299
+ "internalType": "bytes32",
300
+ "name": "previousAdminRole",
301
+ "type": "bytes32"
302
+ },
303
+ {
304
+ "indexed": true,
305
+ "internalType": "bytes32",
306
+ "name": "newAdminRole",
307
+ "type": "bytes32"
308
+ }
309
+ ],
310
+ "name": "RoleAdminChanged",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "bytes32",
319
+ "name": "role",
320
+ "type": "bytes32"
321
+ },
322
+ {
323
+ "indexed": true,
324
+ "internalType": "address",
325
+ "name": "account",
326
+ "type": "address"
327
+ },
328
+ {
329
+ "indexed": true,
330
+ "internalType": "address",
331
+ "name": "sender",
332
+ "type": "address"
333
+ }
334
+ ],
335
+ "name": "RoleGranted",
336
+ "type": "event"
337
+ },
338
+ {
339
+ "anonymous": false,
340
+ "inputs": [
341
+ {
342
+ "indexed": true,
343
+ "internalType": "bytes32",
344
+ "name": "role",
345
+ "type": "bytes32"
346
+ },
347
+ {
348
+ "indexed": true,
349
+ "internalType": "address",
350
+ "name": "account",
351
+ "type": "address"
352
+ },
353
+ {
354
+ "indexed": true,
355
+ "internalType": "address",
356
+ "name": "sender",
357
+ "type": "address"
358
+ }
359
+ ],
360
+ "name": "RoleRevoked",
361
+ "type": "event"
362
+ },
363
+ {
364
+ "anonymous": false,
365
+ "inputs": [
366
+ {
367
+ "indexed": false,
368
+ "internalType": "uint16",
369
+ "name": "multiplierBps",
370
+ "type": "uint16"
371
+ }
372
+ ],
373
+ "name": "SetDefaultMultiplierBps",
374
+ "type": "event"
375
+ },
376
+ {
377
+ "anonymous": false,
378
+ "inputs": [
379
+ {
380
+ "components": [
381
+ {
382
+ "internalType": "uint32",
383
+ "name": "dstEid",
384
+ "type": "uint32"
385
+ },
386
+ {
387
+ "internalType": "uint64",
388
+ "name": "gas",
389
+ "type": "uint64"
390
+ },
391
+ {
392
+ "internalType": "uint16",
393
+ "name": "multiplierBps",
394
+ "type": "uint16"
395
+ },
396
+ {
397
+ "internalType": "uint128",
398
+ "name": "floorMarginUSD",
399
+ "type": "uint128"
400
+ }
401
+ ],
402
+ "indexed": false,
403
+ "internalType": "struct IDVN.DstConfigParam[]",
404
+ "name": "params",
405
+ "type": "tuple[]"
406
+ }
407
+ ],
408
+ "name": "SetDstConfig",
409
+ "type": "event"
410
+ },
411
+ {
412
+ "anonymous": false,
413
+ "inputs": [
414
+ {
415
+ "indexed": false,
416
+ "internalType": "address",
417
+ "name": "priceFeed",
418
+ "type": "address"
419
+ }
420
+ ],
421
+ "name": "SetPriceFeed",
422
+ "type": "event"
423
+ },
424
+ {
425
+ "anonymous": false,
426
+ "inputs": [
427
+ {
428
+ "indexed": false,
429
+ "internalType": "uint32",
430
+ "name": "dstEid",
431
+ "type": "uint32"
432
+ },
433
+ {
434
+ "indexed": false,
435
+ "internalType": "uint8[]",
436
+ "name": "optionTypes",
437
+ "type": "uint8[]"
438
+ }
439
+ ],
440
+ "name": "SetSupportedOptionTypes",
441
+ "type": "event"
442
+ },
443
+ {
444
+ "anonymous": false,
445
+ "inputs": [
446
+ {
447
+ "indexed": false,
448
+ "internalType": "address",
449
+ "name": "workerLib",
450
+ "type": "address"
451
+ }
452
+ ],
453
+ "name": "SetWorkerLib",
454
+ "type": "event"
455
+ },
456
+ {
457
+ "anonymous": false,
458
+ "inputs": [
459
+ {
460
+ "indexed": false,
461
+ "internalType": "address",
462
+ "name": "account",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "name": "Unpaused",
467
+ "type": "event"
468
+ },
469
+ {
470
+ "anonymous": false,
471
+ "inputs": [
472
+ {
473
+ "indexed": false,
474
+ "internalType": "uint64",
475
+ "name": "_quorum",
476
+ "type": "uint64"
477
+ }
478
+ ],
479
+ "name": "UpdateQuorum",
480
+ "type": "event"
481
+ },
482
+ {
483
+ "anonymous": false,
484
+ "inputs": [
485
+ {
486
+ "indexed": false,
487
+ "internalType": "address",
488
+ "name": "_signer",
489
+ "type": "address"
490
+ },
491
+ {
492
+ "indexed": false,
493
+ "internalType": "bool",
494
+ "name": "_active",
495
+ "type": "bool"
496
+ }
497
+ ],
498
+ "name": "UpdateSigner",
499
+ "type": "event"
500
+ },
501
+ {
502
+ "anonymous": false,
503
+ "inputs": [
504
+ {
505
+ "indexed": false,
506
+ "internalType": "uint256",
507
+ "name": "fee",
508
+ "type": "uint256"
509
+ }
510
+ ],
511
+ "name": "VerifierFeePaid",
512
+ "type": "event"
513
+ },
514
+ {
515
+ "anonymous": false,
516
+ "inputs": [
517
+ {
518
+ "indexed": false,
519
+ "internalType": "uint256",
520
+ "name": "idx",
521
+ "type": "uint256"
522
+ }
523
+ ],
524
+ "name": "VerifySignaturesFailed",
525
+ "type": "event"
526
+ },
527
+ {
528
+ "anonymous": false,
529
+ "inputs": [
530
+ {
531
+ "indexed": false,
532
+ "internalType": "address",
533
+ "name": "lib",
534
+ "type": "address"
535
+ },
536
+ {
537
+ "indexed": false,
538
+ "internalType": "address",
539
+ "name": "to",
540
+ "type": "address"
541
+ },
542
+ {
543
+ "indexed": false,
544
+ "internalType": "uint256",
545
+ "name": "amount",
546
+ "type": "uint256"
547
+ }
548
+ ],
549
+ "name": "Withdraw",
550
+ "type": "event"
551
+ },
552
+ {
553
+ "inputs": [],
554
+ "name": "DEFAULT_ADMIN_ROLE",
555
+ "outputs": [
556
+ {
557
+ "internalType": "bytes32",
558
+ "name": "",
559
+ "type": "bytes32"
560
+ }
561
+ ],
562
+ "stateMutability": "view",
563
+ "type": "function"
564
+ },
565
+ {
566
+ "inputs": [],
567
+ "name": "allowlistSize",
568
+ "outputs": [
569
+ {
570
+ "internalType": "uint64",
571
+ "name": "",
572
+ "type": "uint64"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [
580
+ {
581
+ "components": [
582
+ {
583
+ "internalType": "uint32",
584
+ "name": "dstEid",
585
+ "type": "uint32"
586
+ },
587
+ {
588
+ "internalType": "bytes",
589
+ "name": "packetHeader",
590
+ "type": "bytes"
591
+ },
592
+ {
593
+ "internalType": "bytes32",
594
+ "name": "payloadHash",
595
+ "type": "bytes32"
596
+ },
597
+ {
598
+ "internalType": "uint64",
599
+ "name": "confirmations",
600
+ "type": "uint64"
601
+ },
602
+ {
603
+ "internalType": "address",
604
+ "name": "sender",
605
+ "type": "address"
606
+ }
607
+ ],
608
+ "internalType": "struct ILayerZeroDVN.AssignJobParam",
609
+ "name": "_param",
610
+ "type": "tuple"
611
+ },
612
+ {
613
+ "internalType": "bytes",
614
+ "name": "_options",
615
+ "type": "bytes"
616
+ }
617
+ ],
618
+ "name": "assignJob",
619
+ "outputs": [
620
+ {
621
+ "internalType": "uint256",
622
+ "name": "totalFee",
623
+ "type": "uint256"
624
+ }
625
+ ],
626
+ "stateMutability": "payable",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [
631
+ {
632
+ "internalType": "uint16",
633
+ "name": "_dstEid",
634
+ "type": "uint16"
635
+ },
636
+ {
637
+ "internalType": "uint16",
638
+ "name": "",
639
+ "type": "uint16"
640
+ },
641
+ {
642
+ "internalType": "uint64",
643
+ "name": "_confirmations",
644
+ "type": "uint64"
645
+ },
646
+ {
647
+ "internalType": "address",
648
+ "name": "_sender",
649
+ "type": "address"
650
+ }
651
+ ],
652
+ "name": "assignJob",
653
+ "outputs": [
654
+ {
655
+ "internalType": "uint256",
656
+ "name": "totalFee",
657
+ "type": "uint256"
658
+ }
659
+ ],
660
+ "stateMutability": "nonpayable",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "address",
667
+ "name": "_sender",
668
+ "type": "address"
669
+ },
670
+ {
671
+ "internalType": "bytes",
672
+ "name": "",
673
+ "type": "bytes"
674
+ },
675
+ {
676
+ "internalType": "bytes",
677
+ "name": "_cmd",
678
+ "type": "bytes"
679
+ },
680
+ {
681
+ "internalType": "bytes",
682
+ "name": "_options",
683
+ "type": "bytes"
684
+ }
685
+ ],
686
+ "name": "assignJob",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "fee",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "payable",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [],
699
+ "name": "defaultMultiplierBps",
700
+ "outputs": [
701
+ {
702
+ "internalType": "uint16",
703
+ "name": "",
704
+ "type": "uint16"
705
+ }
706
+ ],
707
+ "stateMutability": "view",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "uint32",
714
+ "name": "dstEid",
715
+ "type": "uint32"
716
+ }
717
+ ],
718
+ "name": "dstConfig",
719
+ "outputs": [
720
+ {
721
+ "internalType": "uint64",
722
+ "name": "gas",
723
+ "type": "uint64"
724
+ },
725
+ {
726
+ "internalType": "uint16",
727
+ "name": "multiplierBps",
728
+ "type": "uint16"
729
+ },
730
+ {
731
+ "internalType": "uint128",
732
+ "name": "floorMarginUSD",
733
+ "type": "uint128"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [
741
+ {
742
+ "components": [
743
+ {
744
+ "internalType": "uint32",
745
+ "name": "vid",
746
+ "type": "uint32"
747
+ },
748
+ {
749
+ "internalType": "address",
750
+ "name": "target",
751
+ "type": "address"
752
+ },
753
+ {
754
+ "internalType": "bytes",
755
+ "name": "callData",
756
+ "type": "bytes"
757
+ },
758
+ {
759
+ "internalType": "uint256",
760
+ "name": "expiration",
761
+ "type": "uint256"
762
+ },
763
+ {
764
+ "internalType": "bytes",
765
+ "name": "signatures",
766
+ "type": "bytes"
767
+ }
768
+ ],
769
+ "internalType": "struct ExecuteParam[]",
770
+ "name": "_params",
771
+ "type": "tuple[]"
772
+ }
773
+ ],
774
+ "name": "execute",
775
+ "outputs": [],
776
+ "stateMutability": "nonpayable",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "inputs": [
781
+ {
782
+ "internalType": "uint32",
783
+ "name": "_dstEid",
784
+ "type": "uint32"
785
+ },
786
+ {
787
+ "internalType": "uint64",
788
+ "name": "_confirmations",
789
+ "type": "uint64"
790
+ },
791
+ {
792
+ "internalType": "address",
793
+ "name": "_sender",
794
+ "type": "address"
795
+ },
796
+ {
797
+ "internalType": "bytes",
798
+ "name": "_options",
799
+ "type": "bytes"
800
+ }
801
+ ],
802
+ "name": "getFee",
803
+ "outputs": [
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "fee",
807
+ "type": "uint256"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
813
+ {
814
+ "inputs": [
815
+ {
816
+ "internalType": "uint16",
817
+ "name": "_dstEid",
818
+ "type": "uint16"
819
+ },
820
+ {
821
+ "internalType": "uint16",
822
+ "name": "",
823
+ "type": "uint16"
824
+ },
825
+ {
826
+ "internalType": "uint64",
827
+ "name": "_confirmations",
828
+ "type": "uint64"
829
+ },
830
+ {
831
+ "internalType": "address",
832
+ "name": "_sender",
833
+ "type": "address"
834
+ }
835
+ ],
836
+ "name": "getFee",
837
+ "outputs": [
838
+ {
839
+ "internalType": "uint256",
840
+ "name": "fee",
841
+ "type": "uint256"
842
+ }
843
+ ],
844
+ "stateMutability": "view",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "address",
851
+ "name": "_sender",
852
+ "type": "address"
853
+ },
854
+ {
855
+ "internalType": "bytes",
856
+ "name": "",
857
+ "type": "bytes"
858
+ },
859
+ {
860
+ "internalType": "bytes",
861
+ "name": "_cmd",
862
+ "type": "bytes"
863
+ },
864
+ {
865
+ "internalType": "bytes",
866
+ "name": "_options",
867
+ "type": "bytes"
868
+ }
869
+ ],
870
+ "name": "getFee",
871
+ "outputs": [
872
+ {
873
+ "internalType": "uint256",
874
+ "name": "fee",
875
+ "type": "uint256"
876
+ }
877
+ ],
878
+ "stateMutability": "view",
879
+ "type": "function"
880
+ },
881
+ {
882
+ "inputs": [
883
+ {
884
+ "internalType": "bytes32",
885
+ "name": "role",
886
+ "type": "bytes32"
887
+ }
888
+ ],
889
+ "name": "getRoleAdmin",
890
+ "outputs": [
891
+ {
892
+ "internalType": "bytes32",
893
+ "name": "",
894
+ "type": "bytes32"
895
+ }
896
+ ],
897
+ "stateMutability": "view",
898
+ "type": "function"
899
+ },
900
+ {
901
+ "inputs": [],
902
+ "name": "getSigners",
903
+ "outputs": [
904
+ {
905
+ "internalType": "address[]",
906
+ "name": "",
907
+ "type": "address[]"
908
+ }
909
+ ],
910
+ "stateMutability": "view",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [
915
+ {
916
+ "internalType": "uint32",
917
+ "name": "_eid",
918
+ "type": "uint32"
919
+ }
920
+ ],
921
+ "name": "getSupportedOptionTypes",
922
+ "outputs": [
923
+ {
924
+ "internalType": "uint8[]",
925
+ "name": "",
926
+ "type": "uint8[]"
927
+ }
928
+ ],
929
+ "stateMutability": "view",
930
+ "type": "function"
931
+ },
932
+ {
933
+ "inputs": [
934
+ {
935
+ "internalType": "bytes32",
936
+ "name": "_role",
937
+ "type": "bytes32"
938
+ },
939
+ {
940
+ "internalType": "address",
941
+ "name": "_account",
942
+ "type": "address"
943
+ }
944
+ ],
945
+ "name": "grantRole",
946
+ "outputs": [],
947
+ "stateMutability": "nonpayable",
948
+ "type": "function"
949
+ },
950
+ {
951
+ "inputs": [
952
+ {
953
+ "internalType": "address",
954
+ "name": "_sender",
955
+ "type": "address"
956
+ }
957
+ ],
958
+ "name": "hasAcl",
959
+ "outputs": [
960
+ {
961
+ "internalType": "bool",
962
+ "name": "",
963
+ "type": "bool"
964
+ }
965
+ ],
966
+ "stateMutability": "view",
967
+ "type": "function"
968
+ },
969
+ {
970
+ "inputs": [
971
+ {
972
+ "internalType": "bytes32",
973
+ "name": "role",
974
+ "type": "bytes32"
975
+ },
976
+ {
977
+ "internalType": "address",
978
+ "name": "account",
979
+ "type": "address"
980
+ }
981
+ ],
982
+ "name": "hasRole",
983
+ "outputs": [
984
+ {
985
+ "internalType": "bool",
986
+ "name": "",
987
+ "type": "bool"
988
+ }
989
+ ],
990
+ "stateMutability": "view",
991
+ "type": "function"
992
+ },
993
+ {
994
+ "inputs": [
995
+ {
996
+ "internalType": "uint32",
997
+ "name": "_vid",
998
+ "type": "uint32"
999
+ },
1000
+ {
1001
+ "internalType": "address",
1002
+ "name": "_target",
1003
+ "type": "address"
1004
+ },
1005
+ {
1006
+ "internalType": "bytes",
1007
+ "name": "_callData",
1008
+ "type": "bytes"
1009
+ },
1010
+ {
1011
+ "internalType": "uint256",
1012
+ "name": "_expiration",
1013
+ "type": "uint256"
1014
+ }
1015
+ ],
1016
+ "name": "hashCallData",
1017
+ "outputs": [
1018
+ {
1019
+ "internalType": "bytes32",
1020
+ "name": "",
1021
+ "type": "bytes32"
1022
+ }
1023
+ ],
1024
+ "stateMutability": "pure",
1025
+ "type": "function"
1026
+ },
1027
+ {
1028
+ "inputs": [
1029
+ {
1030
+ "internalType": "address",
1031
+ "name": "_signer",
1032
+ "type": "address"
1033
+ }
1034
+ ],
1035
+ "name": "isSigner",
1036
+ "outputs": [
1037
+ {
1038
+ "internalType": "bool",
1039
+ "name": "",
1040
+ "type": "bool"
1041
+ }
1042
+ ],
1043
+ "stateMutability": "view",
1044
+ "type": "function"
1045
+ },
1046
+ {
1047
+ "inputs": [],
1048
+ "name": "localEidV2",
1049
+ "outputs": [
1050
+ {
1051
+ "internalType": "uint32",
1052
+ "name": "",
1053
+ "type": "uint32"
1054
+ }
1055
+ ],
1056
+ "stateMutability": "view",
1057
+ "type": "function"
1058
+ },
1059
+ {
1060
+ "inputs": [],
1061
+ "name": "paused",
1062
+ "outputs": [
1063
+ {
1064
+ "internalType": "bool",
1065
+ "name": "",
1066
+ "type": "bool"
1067
+ }
1068
+ ],
1069
+ "stateMutability": "view",
1070
+ "type": "function"
1071
+ },
1072
+ {
1073
+ "inputs": [],
1074
+ "name": "priceFeed",
1075
+ "outputs": [
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "",
1079
+ "type": "address"
1080
+ }
1081
+ ],
1082
+ "stateMutability": "view",
1083
+ "type": "function"
1084
+ },
1085
+ {
1086
+ "inputs": [],
1087
+ "name": "quorum",
1088
+ "outputs": [
1089
+ {
1090
+ "internalType": "uint64",
1091
+ "name": "",
1092
+ "type": "uint64"
1093
+ }
1094
+ ],
1095
+ "stateMutability": "view",
1096
+ "type": "function"
1097
+ },
1098
+ {
1099
+ "inputs": [
1100
+ {
1101
+ "components": [
1102
+ {
1103
+ "internalType": "uint32",
1104
+ "name": "vid",
1105
+ "type": "uint32"
1106
+ },
1107
+ {
1108
+ "internalType": "address",
1109
+ "name": "target",
1110
+ "type": "address"
1111
+ },
1112
+ {
1113
+ "internalType": "bytes",
1114
+ "name": "callData",
1115
+ "type": "bytes"
1116
+ },
1117
+ {
1118
+ "internalType": "uint256",
1119
+ "name": "expiration",
1120
+ "type": "uint256"
1121
+ },
1122
+ {
1123
+ "internalType": "bytes",
1124
+ "name": "signatures",
1125
+ "type": "bytes"
1126
+ }
1127
+ ],
1128
+ "internalType": "struct ExecuteParam",
1129
+ "name": "_param",
1130
+ "type": "tuple"
1131
+ }
1132
+ ],
1133
+ "name": "quorumChangeAdmin",
1134
+ "outputs": [],
1135
+ "stateMutability": "nonpayable",
1136
+ "type": "function"
1137
+ },
1138
+ {
1139
+ "inputs": [
1140
+ {
1141
+ "internalType": "bytes32",
1142
+ "name": "",
1143
+ "type": "bytes32"
1144
+ },
1145
+ {
1146
+ "internalType": "address",
1147
+ "name": "",
1148
+ "type": "address"
1149
+ }
1150
+ ],
1151
+ "name": "renounceRole",
1152
+ "outputs": [],
1153
+ "stateMutability": "pure",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "internalType": "bytes32",
1160
+ "name": "_role",
1161
+ "type": "bytes32"
1162
+ },
1163
+ {
1164
+ "internalType": "address",
1165
+ "name": "_account",
1166
+ "type": "address"
1167
+ }
1168
+ ],
1169
+ "name": "revokeRole",
1170
+ "outputs": [],
1171
+ "stateMutability": "nonpayable",
1172
+ "type": "function"
1173
+ },
1174
+ {
1175
+ "inputs": [
1176
+ {
1177
+ "internalType": "uint16",
1178
+ "name": "_multiplierBps",
1179
+ "type": "uint16"
1180
+ }
1181
+ ],
1182
+ "name": "setDefaultMultiplierBps",
1183
+ "outputs": [],
1184
+ "stateMutability": "nonpayable",
1185
+ "type": "function"
1186
+ },
1187
+ {
1188
+ "inputs": [
1189
+ {
1190
+ "components": [
1191
+ {
1192
+ "internalType": "uint32",
1193
+ "name": "dstEid",
1194
+ "type": "uint32"
1195
+ },
1196
+ {
1197
+ "internalType": "uint64",
1198
+ "name": "gas",
1199
+ "type": "uint64"
1200
+ },
1201
+ {
1202
+ "internalType": "uint16",
1203
+ "name": "multiplierBps",
1204
+ "type": "uint16"
1205
+ },
1206
+ {
1207
+ "internalType": "uint128",
1208
+ "name": "floorMarginUSD",
1209
+ "type": "uint128"
1210
+ }
1211
+ ],
1212
+ "internalType": "struct IDVN.DstConfigParam[]",
1213
+ "name": "_params",
1214
+ "type": "tuple[]"
1215
+ }
1216
+ ],
1217
+ "name": "setDstConfig",
1218
+ "outputs": [],
1219
+ "stateMutability": "nonpayable",
1220
+ "type": "function"
1221
+ },
1222
+ {
1223
+ "inputs": [
1224
+ {
1225
+ "internalType": "bool",
1226
+ "name": "_paused",
1227
+ "type": "bool"
1228
+ }
1229
+ ],
1230
+ "name": "setPaused",
1231
+ "outputs": [],
1232
+ "stateMutability": "nonpayable",
1233
+ "type": "function"
1234
+ },
1235
+ {
1236
+ "inputs": [
1237
+ {
1238
+ "internalType": "address",
1239
+ "name": "_priceFeed",
1240
+ "type": "address"
1241
+ }
1242
+ ],
1243
+ "name": "setPriceFeed",
1244
+ "outputs": [],
1245
+ "stateMutability": "nonpayable",
1246
+ "type": "function"
1247
+ },
1248
+ {
1249
+ "inputs": [
1250
+ {
1251
+ "internalType": "uint64",
1252
+ "name": "_quorum",
1253
+ "type": "uint64"
1254
+ }
1255
+ ],
1256
+ "name": "setQuorum",
1257
+ "outputs": [],
1258
+ "stateMutability": "nonpayable",
1259
+ "type": "function"
1260
+ },
1261
+ {
1262
+ "inputs": [
1263
+ {
1264
+ "internalType": "address",
1265
+ "name": "_signer",
1266
+ "type": "address"
1267
+ },
1268
+ {
1269
+ "internalType": "bool",
1270
+ "name": "_active",
1271
+ "type": "bool"
1272
+ }
1273
+ ],
1274
+ "name": "setSigner",
1275
+ "outputs": [],
1276
+ "stateMutability": "nonpayable",
1277
+ "type": "function"
1278
+ },
1279
+ {
1280
+ "inputs": [
1281
+ {
1282
+ "internalType": "uint32",
1283
+ "name": "_eid",
1284
+ "type": "uint32"
1285
+ },
1286
+ {
1287
+ "internalType": "uint8[]",
1288
+ "name": "_optionTypes",
1289
+ "type": "uint8[]"
1290
+ }
1291
+ ],
1292
+ "name": "setSupportedOptionTypes",
1293
+ "outputs": [],
1294
+ "stateMutability": "nonpayable",
1295
+ "type": "function"
1296
+ },
1297
+ {
1298
+ "inputs": [
1299
+ {
1300
+ "internalType": "address",
1301
+ "name": "_workerFeeLib",
1302
+ "type": "address"
1303
+ }
1304
+ ],
1305
+ "name": "setWorkerFeeLib",
1306
+ "outputs": [],
1307
+ "stateMutability": "nonpayable",
1308
+ "type": "function"
1309
+ },
1310
+ {
1311
+ "inputs": [],
1312
+ "name": "signerSize",
1313
+ "outputs": [
1314
+ {
1315
+ "internalType": "uint256",
1316
+ "name": "",
1317
+ "type": "uint256"
1318
+ }
1319
+ ],
1320
+ "stateMutability": "view",
1321
+ "type": "function"
1322
+ },
1323
+ {
1324
+ "inputs": [
1325
+ {
1326
+ "internalType": "address",
1327
+ "name": "_signer",
1328
+ "type": "address"
1329
+ }
1330
+ ],
1331
+ "name": "signers",
1332
+ "outputs": [
1333
+ {
1334
+ "internalType": "bool",
1335
+ "name": "",
1336
+ "type": "bool"
1337
+ }
1338
+ ],
1339
+ "stateMutability": "view",
1340
+ "type": "function"
1341
+ },
1342
+ {
1343
+ "inputs": [
1344
+ {
1345
+ "internalType": "bytes4",
1346
+ "name": "interfaceId",
1347
+ "type": "bytes4"
1348
+ }
1349
+ ],
1350
+ "name": "supportsInterface",
1351
+ "outputs": [
1352
+ {
1353
+ "internalType": "bool",
1354
+ "name": "",
1355
+ "type": "bool"
1356
+ }
1357
+ ],
1358
+ "stateMutability": "view",
1359
+ "type": "function"
1360
+ },
1361
+ {
1362
+ "inputs": [
1363
+ {
1364
+ "internalType": "bytes32",
1365
+ "name": "executableHash",
1366
+ "type": "bytes32"
1367
+ }
1368
+ ],
1369
+ "name": "usedHashes",
1370
+ "outputs": [
1371
+ {
1372
+ "internalType": "bool",
1373
+ "name": "used",
1374
+ "type": "bool"
1375
+ }
1376
+ ],
1377
+ "stateMutability": "view",
1378
+ "type": "function"
1379
+ },
1380
+ {
1381
+ "inputs": [
1382
+ {
1383
+ "internalType": "bytes32",
1384
+ "name": "_hash",
1385
+ "type": "bytes32"
1386
+ },
1387
+ {
1388
+ "internalType": "bytes",
1389
+ "name": "_signatures",
1390
+ "type": "bytes"
1391
+ }
1392
+ ],
1393
+ "name": "verifySignatures",
1394
+ "outputs": [
1395
+ {
1396
+ "internalType": "bool",
1397
+ "name": "",
1398
+ "type": "bool"
1399
+ },
1400
+ {
1401
+ "internalType": "enum MultiSig.Errors",
1402
+ "name": "",
1403
+ "type": "uint8"
1404
+ }
1405
+ ],
1406
+ "stateMutability": "view",
1407
+ "type": "function"
1408
+ },
1409
+ {
1410
+ "inputs": [],
1411
+ "name": "vid",
1412
+ "outputs": [
1413
+ {
1414
+ "internalType": "uint32",
1415
+ "name": "",
1416
+ "type": "uint32"
1417
+ }
1418
+ ],
1419
+ "stateMutability": "view",
1420
+ "type": "function"
1421
+ },
1422
+ {
1423
+ "inputs": [
1424
+ {
1425
+ "internalType": "address",
1426
+ "name": "_lib",
1427
+ "type": "address"
1428
+ },
1429
+ {
1430
+ "internalType": "address",
1431
+ "name": "_to",
1432
+ "type": "address"
1433
+ },
1434
+ {
1435
+ "internalType": "uint256",
1436
+ "name": "_amount",
1437
+ "type": "uint256"
1438
+ }
1439
+ ],
1440
+ "name": "withdrawFee",
1441
+ "outputs": [],
1442
+ "stateMutability": "nonpayable",
1443
+ "type": "function"
1444
+ },
1445
+ {
1446
+ "inputs": [
1447
+ {
1448
+ "internalType": "address",
1449
+ "name": "_lib",
1450
+ "type": "address"
1451
+ },
1452
+ {
1453
+ "internalType": "address payable",
1454
+ "name": "_to",
1455
+ "type": "address"
1456
+ },
1457
+ {
1458
+ "internalType": "uint256",
1459
+ "name": "_amount",
1460
+ "type": "uint256"
1461
+ }
1462
+ ],
1463
+ "name": "withdrawFeeFromUlnV2",
1464
+ "outputs": [],
1465
+ "stateMutability": "nonpayable",
1466
+ "type": "function"
1467
+ },
1468
+ {
1469
+ "inputs": [
1470
+ {
1471
+ "internalType": "address",
1472
+ "name": "_token",
1473
+ "type": "address"
1474
+ },
1475
+ {
1476
+ "internalType": "address",
1477
+ "name": "_to",
1478
+ "type": "address"
1479
+ },
1480
+ {
1481
+ "internalType": "uint256",
1482
+ "name": "_amount",
1483
+ "type": "uint256"
1484
+ }
1485
+ ],
1486
+ "name": "withdrawToken",
1487
+ "outputs": [],
1488
+ "stateMutability": "nonpayable",
1489
+ "type": "function"
1490
+ },
1491
+ {
1492
+ "inputs": [],
1493
+ "name": "workerFeeLib",
1494
+ "outputs": [
1495
+ {
1496
+ "internalType": "address",
1497
+ "name": "",
1498
+ "type": "address"
1499
+ }
1500
+ ],
1501
+ "stateMutability": "view",
1502
+ "type": "function"
1503
+ }
1504
+ ],
1505
+ "bytecode": "0x60c06040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b5060405162005a9c38038062005a9c833981016040819052620000509162000578565b6001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b0319166001600160a01b03861617905582828686612ee060008660005b8551811015620000fb57620000e87f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d457620000d46200065c565b6020026020010151620002a660201b60201c565b620000f38162000688565b905062000090565b5060005b81518110156200015657620001437fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d457620000d46200065c565b6200014e8162000688565b9050620000ff565b505050505050806001600160401b03166000036200018757604051635f86e17760e01b815260040160405180910390fd5b60005b82518110156200020e576000838281518110620001ab57620001ab6200065c565b6020026020010151905060006001600160a01b0316816001600160a01b031603620001e957604051632e5fb71360e11b815260040160405180910390fd5b620001f660048262000354565b50508080620002059062000688565b9150506200018a565b5060006200021d600462000374565b9050816001600160401b0316816001600160401b031610156200026a576040516378e2c15760e11b81526001600160401b0380831660048301528316602482015260440160405180910390fd5b50600680546001600160401b0319166001600160401b03929092169190911790555050505063ffffffff92831660805250501660a052620006d5565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620002f757506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b156200034457600180546015906200031f90600160a81b90046001600160401b0316620006a4565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b6200035082826200037f565b5050565b60006200036b836001600160a01b0384166200041f565b90505b92915050565b60006200036e825490565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000350576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620003db3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205462000468575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200036e565b5060006200036e565b805163ffffffff811681146200048657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b80516000906001600160a81b0381168114620004bc57600080fd5b6001600160a01b031692915050565b600082601f830112620004dd57600080fd5b815160206001600160401b0380831115620004fc57620004fc6200048b565b8260051b604051601f19603f830116810181811084821117156200052457620005246200048b565b6040529384528581018301938381019250878511156200054357600080fd5b83870191505b848210156200056d576200055d82620004a1565b8352918301919083019062000549565b979650505050505050565b600080600080600080600060e0888a0312156200059457600080fd5b6200059f8862000471565b9650620005af6020890162000471565b60408901519096506001600160401b0380821115620005cd57600080fd5b620005db8b838c01620004cb565b9650620005eb60608b01620004a1565b955060808a01519150808211156200060257600080fd5b620006108b838c01620004cb565b945060a08a0151915080821682146200062857600080fd5b60c08a0151919350808211156200063e57600080fd5b506200064d8a828b01620004cb565b91505092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200069d576200069d62000672565b5060010190565b60006001600160401b038281166002600160401b03198101620006cb57620006cb62000672565b6001019392505050565b60805160a0516153856200071760003960008181610d6101528181612a0b0152612b9f015260008181610c3601528181611c1d015261277d01526153856000f3fe6080604052600436106102e65760003560e01c806394cf795e11610184578063cd88b903116100d6578063e395eb5c1161008a578063f42ed2ed11610064578063f42ed2ed14610df7578063fd62e75014610e0a578063fdb9b0f114610e3957600080fd5b8063e395eb5c14610d35578063f010cb2314610d83578063f3b4ebd014610dbd57600080fd5b8063d2ae2104116100bb578063d2ae210414610c6d578063d547741f14610cc1578063dafe0ccc14610cfb57600080fd5b8063cd88b90314610bd0578063cf34c76814610c0a57600080fd5b8063b143044b11610138578063c5e193cd11610112578063c5e193cd14610b14578063c7a823e014610b4e578063c7b2370b14610b9657600080fd5b8063b143044b14610a54578063c358de0a14610a8e578063c416aa5114610ac857600080fd5b80639e944965116101695780639e9449651461091c578063a217fddf146109db578063aef18bf714610a0a57600080fd5b806394cf795e146108cd57806395d376d71461090957600080fd5b806331cb61051161023d578063724e78da116101f15780637df73e27116101cb5780637df73e27146107ee5780638585c9451461082857806391d148541461086257600080fd5b8063724e78da1461070e578063736c0d5b14610748578063741bef1a1461078257600080fd5b806352d3b8711161022257806352d3b871146106685780635553fb8e146106a25780635c975abb146106dc57600080fd5b806331cb6105146105f457806336568abe1461062e57600080fd5b80631703a0181161029f5780632de11376116102795780632de11376146105465780632f2ff15d1461058057806330bb3aac146105ba57600080fd5b80631703a01814610453578063248a9ca3146104a757806326e67a37146104ff57600080fd5b806301ffc9a7116102d057806301ffc9a7146103955780631095b6d7146103df57806316c38b3c1461041957600080fd5b8062bf2e80146102eb57806301e3366714610359575b600080fd5b3480156102f757600080fd5b50d3801561030457600080fd5b50d2801561031157600080fd5b50600154610341907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561036557600080fd5b50d3801561037257600080fd5b50d2801561037f57600080fd5b5061039361038e3660046141c8565b610e73565b005b3480156103a157600080fd5b50d380156103ae57600080fd5b50d280156103bb57600080fd5b506103cf6103ca366004614223565b610eae565b6040519015158152602001610350565b3480156103eb57600080fd5b50d380156103f857600080fd5b50d2801561040557600080fd5b506103936104143660046141c8565b610f47565b34801561042557600080fd5b50d3801561043257600080fd5b50d2801561043f57600080fd5b5061039361044e366004614273565b6110d7565b34801561045f57600080fd5b50d3801561046c57600080fd5b50d2801561047957600080fd5b5060065461048e9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610350565b3480156104b357600080fd5b50d380156104c057600080fd5b50d280156104cd57600080fd5b506104f16104dc366004614290565b60009081526020819052604090206001015490565b604051908152602001610350565b34801561050b57600080fd5b50d3801561051857600080fd5b50d2801561052557600080fd5b506105396105343660046142bd565b6110fc565b60405161035091906142d8565b34801561055257600080fd5b50d3801561055f57600080fd5b50d2801561056c57600080fd5b506103cf61057b36600461431f565b611183565b34801561058c57600080fd5b50d3801561059957600080fd5b50d280156105a657600080fd5b506103936105b5366004614359565b611268565b3480156105c657600080fd5b50d380156105d357600080fd5b50d280156105e057600080fd5b506104f16105ef3660046143f9565b6113bc565b34801561060057600080fd5b50d3801561060d57600080fd5b50d2801561061a57600080fd5b50610393610629366004614487565b611527565b34801561063a57600080fd5b50d3801561064757600080fd5b50d2801561065457600080fd5b50610393610663366004614359565b61156a565b34801561067457600080fd5b50d3801561068157600080fd5b50d2801561068e57600080fd5b5061039361069d3660046144d6565b61159c565b3480156106ae57600080fd5b50d380156106bb57600080fd5b50d280156106c857600080fd5b506104f16106d736600461455d565b611770565b3480156106e857600080fd5b50d380156106f557600080fd5b50d2801561070257600080fd5b5060015460ff166103cf565b34801561071a57600080fd5b50d3801561072757600080fd5b50d2801561073457600080fd5b5061039361074336600461431f565b6118db565b34801561075457600080fd5b50d3801561076157600080fd5b50d2801561076e57600080fd5b506103cf61077d36600461431f565b611980565b34801561078e57600080fd5b50d3801561079b57600080fd5b50d280156107a857600080fd5b506002546107c99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610350565b3480156107fa57600080fd5b50d3801561080757600080fd5b50d2801561081457600080fd5b506103cf61082336600461431f565b611987565b34801561083457600080fd5b50d3801561084157600080fd5b50d2801561084e57600080fd5b5061039361085d3660046145cb565b611994565b34801561086e57600080fd5b50d3801561087b57600080fd5b50d2801561088857600080fd5b506103cf610897366004614359565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156108d957600080fd5b50d380156108e657600080fd5b50d280156108f357600080fd5b506108fc6119d9565b60405161035091906145e6565b6104f161091736600461464c565b6119ea565b34801561092857600080fd5b50d3801561093557600080fd5b50d2801561094257600080fd5b506109a06109513660046142bd565b60076020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610350565b3480156109e757600080fd5b50d380156109f457600080fd5b50d28015610a0157600080fd5b506104f1600081565b348015610a1657600080fd5b50d38015610a2357600080fd5b50d28015610a3057600080fd5b506103cf610a3f366004614290565b60086020526000908152604090205460ff1681565b348015610a6057600080fd5b50d38015610a6d57600080fd5b50d28015610a7a57600080fd5b50610393610a893660046146fa565b611bba565b348015610a9a57600080fd5b50d38015610aa757600080fd5b50d28015610ab457600080fd5b50610393610ac336600461473c565b611ed2565b348015610ad457600080fd5b50d38015610ae157600080fd5b50d28015610aee57600080fd5b506001546107c990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b348015610b2057600080fd5b50d38015610b2d57600080fd5b50d28015610b3a57600080fd5b506104f1610b4936600461455d565b611f80565b348015610b5a57600080fd5b50d38015610b6757600080fd5b50d28015610b7457600080fd5b50610b88610b83366004614757565b612152565b6040516103509291906147c5565b348015610ba257600080fd5b50d38015610baf57600080fd5b50d28015610bbc57600080fd5b50610393610bcb36600461431f565b612336565b348015610bdc57600080fd5b50d38015610be957600080fd5b50d28015610bf657600080fd5b50610393610c05366004614812565b6123da565b348015610c1657600080fd5b50d38015610c2357600080fd5b50d28015610c3057600080fd5b50610c587f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610350565b348015610c7957600080fd5b50d38015610c8657600080fd5b50d28015610c9357600080fd5b5060015461048e907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b348015610ccd57600080fd5b50d38015610cda57600080fd5b50d28015610ce757600080fd5b50610393610cf6366004614359565b61242b565b348015610d0757600080fd5b50d38015610d1457600080fd5b50d28015610d2157600080fd5b50610393610d303660046141c8565b612540565b348015610d4157600080fd5b50d38015610d4e57600080fd5b50d28015610d5b57600080fd5b50610c587f000000000000000000000000000000000000000000000000000000000000000081565b348015610d8f57600080fd5b50d38015610d9c57600080fd5b50d28015610da957600080fd5b506104f1610db8366004614858565b612676565b348015610dc957600080fd5b50d38015610dd657600080fd5b50d28015610de357600080fd5b50610393610df23660046148d9565b6126b2565b6104f1610e0536600461490e565b612927565b348015610e1657600080fd5b50d38015610e2357600080fd5b50d28015610e3057600080fd5b506104f1612ad9565b348015610e4557600080fd5b50d38015610e5257600080fd5b50d28015610e5f57600080fd5b506104f1610e6e36600461490e565b612ae5565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610e9d81612c6a565b610ea8848484612c74565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610f4157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f7181612c6a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610fef576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006110e281612c6a565b81156110f4576110f0612ca4565b5050565b6110f0612d23565b63ffffffff811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561117757602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116111485790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff16156111d857506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff16158061124e575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b1561125b57506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8114806112b657507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b806112e057507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b156113235730331461131e576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ad565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581036113735761131e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612c6a565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6113b78383612d7a565b505050565b6000836113c881611183565b6113fe576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260065416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260079091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a9916114da918591908a908a90600401614a1a565b602060405180830381865afa1580156114f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151b9190614ae7565b98975050505050505050565b303314611560576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f08282612e40565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115c681612c6a565b60005b8281101561173157368484838181106115e4576115e4614b00565b9050608002019050604051806060016040528082602001602081019061160a91906145cb565b67ffffffffffffffff168152602001611629606084016040850161473c565b61ffff1681526020016116426080840160608501614b4f565b6fffffffffffffffffffffffffffffffff1690526007600061166760208501856142bd565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff9093169290921792909217929092169190911790555061172a81614b99565b90506115c9565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051611763929190614bd1565b60405180910390a1505050565b60008161177c81611183565b6117b2576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261188f928692600401614cdd565b602060405180830381865afa1580156118ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d09190614ae7565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561190581612c6a565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b6000610f41825b6000610f41600483613015565b3033146119cd576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119d681613047565b50565b60606119e56004613162565b905090565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611a1681612c6a565b611a2660a086016080870161431f565b611a2f81611183565b611a65576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff168152600090602080820190611aa0908a018a6142bd565b63ffffffff168152602001611abb60808a0160608b016145cb565b67ffffffffffffffff168152602001611ada60a08a0160808b0161431f565b73ffffffffffffffffffffffffffffffffffffffff908116825260065467ffffffffffffffff1660208084019190915260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416604090940193909352929350610100909104169063df2b057e908390600790600090611b60908d018d6142bd565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b8152600401611b9b9493929190614a1a565b6020604051808303816000875af11580156118ac573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611be481612c6a565b60005b82811015610ea85736848483818110611c0257611c02614b00565b9050602002810190611c149190614db3565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611c4a60208301836142bd565b63ffffffff1614611c5b5750611ec2565b42816060013511611c6c5750611ec2565b6000611ca5611c7e60208401846142bd565b611c8e604085016020860161431f565b611c9b6040860186614df1565b8660600135612676565b90506000611cba82610b836080860186614df1565b50905080611cfd576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611ec2565b6000611d1d611d0f6040860186614df1565b611d1891614e56565b61316f565b90508015611db65760008381526008602052604090205460ff1615611d7e577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611d6d929190614f02565b60405180910390a150505050611ec2565b600083815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b600080611dc9604087016020880161431f565b73ffffffffffffffffffffffffffffffffffffffff16611dec6040880188614df1565b604051611dfa929190614fc8565b6000604051808303816000865af19150503d8060008114611e37576040519150601f19603f3d011682016040523d82523d6000602084013e611e3c565b606091505b509150915081611ebb578215611e8157600085815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8782604051611eb2929190614fd8565b60405180910390a15b5050505050505b611ecb81614b99565b9050611be7565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611efc81612c6a565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611974565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611fac81612c6a565b82611fb681611183565b611fec576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e926120c9928692600401614cdd565b6020604051808303816000875af11580156120e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210c9190614ae7565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161213f91815260200190565b60405180910390a1505050949350505050565b600654600090819061216f9067ffffffffffffffff166041614ff1565b8314612181575060009050600161232e565b60006121da866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60065467ffffffffffffffff16811015612322573660008888612204856041614ff1565b90612210866001615008565b61221b906041614ff1565b926122289392919061501b565b9150915060008061226f8785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061325892505050565b9092509050600081600481111561228857612288614796565b146122a15760006001985098505050505050505061232e565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16116122e85760006002985098505050505050505061232e565b6122f182611987565b6123095760006003985098505050505050505061232e565b50935082915061231a905081614b99565b9150506121e0565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561236081612c6a565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611974565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561240481612c6a565b63ffffffff841660009081526003602052604090206124249084846140e7565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81148061247957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b806124a357507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b156124e6573033146124e1576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612536565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103611373576124e17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612c6a565b6113b7838361329d565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561256a81612c6a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166125e8576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b15801561265857600080fd5b505af115801561266c573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001612691959493929190615045565b60405160208183030381529060405280519060200120905095945050505050565b428160600135116126ef576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b30612700604083016020840161431f565b73ffffffffffffffffffffffffffffffffffffffff16146127765761272b604082016020830161431f565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016113a4565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166127aa60208301836142bd565b63ffffffff16146127fd576127c260208201826142bd565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024016113a4565b600061280f611c7e60208401846142bd565b9050600061282482610b836080860186614df1565b5090508061285e576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526008602052604090205460ff16156128aa576040517f9d6a45a6000000000000000000000000000000000000000000000000000000008152600481018390526024016113a4565b6000828152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556113b7907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759061291590860186614df1565b810190612922919061431f565b612d7a565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61295381612c6a565b8861295d81611183565b612993576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528c811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fbbc5a33b00000000000000000000000000000000000000000000000000000000815292936101009091049091169163bbc5a33b91612a87918591908d908d908d908d906004016150b7565b6020604051808303816000875af1158015612aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aca9190614ae7565b9b9a5050505050505050505050565b60006119e56004613362565b600087612af181611183565b612b27576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528b811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fd358b30000000000000000000000000000000000000000000000000000000000815292936101009091049091169163d358b30091612c1b918591908c908c908c908c906004016150b7565b602060405180830381865afa158015612c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5c9190614ae7565b9a9950505050505050505050565b6119d6813361336c565b73ffffffffffffffffffffffffffffffffffffffff8316612c99576113b78282613424565b6113b783838361352a565b612cac613598565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612d2b613607565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612cf9565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612dd7575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15612e365760018054601590612e0f907501000000000000000000000000000000000000000000900467ffffffffffffffff1661517d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6110f08282613673565b8015612ef95773ffffffffffffffffffffffffffffffffffffffff8216612e93576040517f5cbf6e2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e9e600483613763565b612ef4576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015281151560248201526044016113a4565b612f5a565b612f04600483613785565b612f5a576040517f7e1e4ae200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015281151560248201526044016113a4565b6000612f666004613362565b60065490915067ffffffffffffffff908116908216811115612fc8576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8084166004830152821660248201526044016113a4565b6040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce91016110c9565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b8067ffffffffffffffff1660000361308b576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006130976004613362565b90508167ffffffffffffffff168167ffffffffffffffff1610156130fb576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8083166004830152831660248201526044016113a4565b600680547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84169081179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611974565b60606000613040836137a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e000000000000000000000000000000000000000000000000000000001480159061320557507fffffffff0000000000000000000000000000000000000000000000000000000082167fab750e750000000000000000000000000000000000000000000000000000000014155b8015610f4157507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b600080825160410361328e5760208301516040840151606085015160001a61328287828585613802565b94509450505050613296565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156132f9575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156133585760018054601590613331907501000000000000000000000000000000000000000000900467ffffffffffffffff166151a4565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6110f082826138f1565b6000610f41825490565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166110f0576133aa816139a8565b6133b58360206139c7565b6040516020016133c69291906151e6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526113a491600401615267565b73ffffffffffffffffffffffffffffffffffffffff8216613471576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146134cb576040519150601f19603f3d011682016040523d82523d6000602084013e6134d0565b606091505b50509050806113b7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016113a4565b73ffffffffffffffffffffffffffffffffffffffff8216613577576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113b773ffffffffffffffffffffffffffffffffffffffff84168383613c0a565b60015460ff1615613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016113a4565b565b60015460ff16613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016113a4565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166110f05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556137053390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006130408373ffffffffffffffffffffffffffffffffffffffff8416613c97565b60006130408373ffffffffffffffffffffffffffffffffffffffff8416613ce6565b60608160000180548060200260200160405190810160405280929190818152602001828054801561117757602002820191906000526020600020905b8154815260200190600101908083116137e35750505050509050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561383957506000905060036138e8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561388d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166138e1576000600192509250506138e8565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156110f05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610f4173ffffffffffffffffffffffffffffffffffffffff831660145b606060006139d6836002614ff1565b6139e1906002615008565b67ffffffffffffffff8111156139f9576139f961527a565b6040519080825280601f01601f191660200182016040528015613a23576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613a5a57613a5a614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110613abd57613abd614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613af9846002614ff1565b613b04906001615008565b90505b6001811115613ba1577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613b4557613b45614b00565b1a60f81b828281518110613b5b57613b5b614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93613b9a816152a9565b9050613b07565b508315613040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016113a4565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526113b7908490613dd9565b6000818152600183016020526040812054613cde57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f41565b506000610f41565b60008181526001830160205260408120548015613dcf576000613d0a6001836152de565b8554909150600090613d1e906001906152de565b9050818114613d83576000866000018281548110613d3e57613d3e614b00565b9060005260206000200154905080876000018481548110613d6157613d61614b00565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d9457613d946152f1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f41565b6000915050610f41565b6000613e3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613ee89092919063ffffffff16565b9050805160001480613e5c575080806020019051810190613e5c9190615320565b6113b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016113a4565b6060613ef78484600085613eff565b949350505050565b606082471015613f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016113a4565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613fba919061533d565b60006040518083038185875af1925050503d8060008114613ff7576040519150601f19603f3d011682016040523d82523d6000602084013e613ffc565b606091505b50915091506118d0878383876060831561409e5782516000036140975773ffffffffffffffffffffffffffffffffffffffff85163b614097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113a4565b5081613ef7565b613ef783838151156140b35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a49190615267565b82805482825590600052602060002090601f016020900481019282156141805791602002820160005b8382111561415157833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302614110565b801561417e5782816101000a81549060ff0219169055600101602081600001049283019260010302614151565b505b5061418c929150614190565b5090565b5b8082111561418c5760008155600101614191565b74ffffffffffffffffffffffffffffffffffffffffff811681146119d657600080fd5b6000806000606084860312156141dd57600080fd5b83356141e8816141a5565b73ffffffffffffffffffffffffffffffffffffffff9081169350602085013590614211826141a5565b93969316945050506040919091013590565b60006020828403121561423557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461304057600080fd5b80151581146119d657600080fd5b60006020828403121561428557600080fd5b813561304081614265565b6000602082840312156142a257600080fd5b5035919050565b803563ffffffff8116811461126357600080fd5b6000602082840312156142cf57600080fd5b613040826142a9565b6020808252825182820181905260009190848201906040850190845b8181101561431357835160ff16835292840192918401916001016142f4565b50909695505050505050565b60006020828403121561433157600080fd5b813561433c816141a5565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b6000806040838503121561436c57600080fd5b82359150602083013561437e816141a5565b73ffffffffffffffffffffffffffffffffffffffff81169150509250929050565b803567ffffffffffffffff8116811461126357600080fd5b60008083601f8401126143c957600080fd5b50813567ffffffffffffffff8111156143e157600080fd5b60208301915083602082850101111561329657600080fd5b60008060008060006080868803121561441157600080fd5b61441a866142a9565b94506144286020870161439f565b93506040860135614438816141a5565b73ffffffffffffffffffffffffffffffffffffffff169250606086013567ffffffffffffffff81111561446a57600080fd5b614476888289016143b7565b969995985093965092949392505050565b6000806040838503121561449a57600080fd5b82356144a5816141a5565b73ffffffffffffffffffffffffffffffffffffffff16915060208301356144cb81614265565b809150509250929050565b600080602083850312156144e957600080fd5b823567ffffffffffffffff8082111561450157600080fd5b818501915085601f83011261451557600080fd5b81358181111561452457600080fd5b8660208260071b850101111561453957600080fd5b60209290920196919550909350505050565b803561ffff8116811461126357600080fd5b6000806000806080858703121561457357600080fd5b61457c8561454b565b935061458a6020860161454b565b92506145986040860161439f565b915060608501356145a8816141a5565b73ffffffffffffffffffffffffffffffffffffffff811691505092959194509250565b6000602082840312156145dd57600080fd5b6130408261439f565b6020808252825182820181905260009190848201906040850190845b8181101561431357835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614602565b600060a0828403121561464657600080fd5b50919050565b60008060006040848603121561466157600080fd5b833567ffffffffffffffff8082111561467957600080fd5b61468587838801614634565b9450602086013591508082111561469b57600080fd5b506146a8868287016143b7565b9497909650939450505050565b60008083601f8401126146c757600080fd5b50813567ffffffffffffffff8111156146df57600080fd5b6020830191508360208260051b850101111561329657600080fd5b6000806020838503121561470d57600080fd5b823567ffffffffffffffff81111561472457600080fd5b614730858286016146b5565b90969095509350505050565b60006020828403121561474e57600080fd5b6130408261454b565b60008060006040848603121561476c57600080fd5b83359250602084013567ffffffffffffffff81111561478a57600080fd5b6146a8868287016143b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310614805577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561482757600080fd5b614830846142a9565b9250602084013567ffffffffffffffff81111561484c57600080fd5b6146a8868287016146b5565b60008060008060006080868803121561487057600080fd5b614879866142a9565b94506020860135614889816141a5565b73ffffffffffffffffffffffffffffffffffffffff169350604086013567ffffffffffffffff8111156148bb57600080fd5b6148c7888289016143b7565b96999598509660600135949350505050565b6000602082840312156148eb57600080fd5b813567ffffffffffffffff81111561490257600080fd5b613ef784828501614634565b60008060008060008060006080888a03121561492957600080fd5b8735614934816141a5565b73ffffffffffffffffffffffffffffffffffffffff169650602088013567ffffffffffffffff8082111561496757600080fd5b6149738b838c016143b7565b909850965060408a013591508082111561498c57600080fd5b6149988b838c016143b7565b909650945060608a01359150808211156149b157600080fd5b506149be8a828b016143b7565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140614a92838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b614ad360c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526118d081840185876149d1565b600060208284031215614af957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff8116811461126357600080fd5b600060208284031215614b6157600080fd5b61304082614b2f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614bca57614bca614b6a565b5060010190565b6020808252818101839052600090604080840186845b87811015614c625763ffffffff614bfd836142a9565b16835267ffffffffffffffff614c1486840161439f565b168584015261ffff614c2785840161454b565b168484015260606fffffffffffffffffffffffffffffffff614c4a828501614b2f565b16908401526080928301929190910190600101614be7565b5090979650505050505050565b60005b83811015614c8a578181015183820152602001614c72565b50506000910152565b60008151808452614cab816020860160208601614c6f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000610140614d55838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b614d9660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b80610120840152614da981840185614c93565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112614de757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e2657600080fd5b83018035915067ffffffffffffffff821115614e4157600080fd5b60200191503681900382131561329657600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015614e965780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ed357600080fd5b830160208101925035905067ffffffffffffffff811115614ef357600080fd5b80360382131561329657600080fd5b6040815263ffffffff614f14846142a9565b16604082015260006020840135614f2a816141a5565b73ffffffffffffffffffffffffffffffffffffffff166060830152614f526040850185614e9e565b60a06080850152614f6760e0850182846149d1565b915050606085013560a0840152614f816080860186614e9e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c0860152614fb68382846149d1565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000613ef76040830184614c93565b8082028115828204841417610f4157610f41614b6a565b80820180821115610f4157610f41614b6a565b6000808585111561502b57600080fd5b8386111561503857600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600061012073ffffffffffffffffffffffffffffffffffffffff808a511684528060208b01511660208501525067ffffffffffffffff60408a015116604084015261ffff60608a015116606084015261514760808401895467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8060e084015261515a81840187896149d1565b90508281036101008401526151708185876149d1565b9998505050505050505050565b600067ffffffffffffffff80831681810361519a5761519a614b6a565b6001019392505050565b600067ffffffffffffffff8216806151be576151be614b6a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161521e816017850160208801614c6f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161525b816028840160208801614c6f565b01602801949350505050565b6020815260006130406020830184614c93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816152b8576152b8614b6a565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b81810381811115610f4157610f41614b6a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006020828403121561533257600080fd5b815161304081614265565b60008251614de7818460208701614c6f56fea26474726f6e58221220930cd46565742a0f1ac2b93903f0f24a8345ac76627c09c464f812184720c2f464736f6c63430008140033",
1506
+ "deployedBytecode": "0x6080604052600436106102e65760003560e01c806394cf795e11610184578063cd88b903116100d6578063e395eb5c1161008a578063f42ed2ed11610064578063f42ed2ed14610df7578063fd62e75014610e0a578063fdb9b0f114610e3957600080fd5b8063e395eb5c14610d35578063f010cb2314610d83578063f3b4ebd014610dbd57600080fd5b8063d2ae2104116100bb578063d2ae210414610c6d578063d547741f14610cc1578063dafe0ccc14610cfb57600080fd5b8063cd88b90314610bd0578063cf34c76814610c0a57600080fd5b8063b143044b11610138578063c5e193cd11610112578063c5e193cd14610b14578063c7a823e014610b4e578063c7b2370b14610b9657600080fd5b8063b143044b14610a54578063c358de0a14610a8e578063c416aa5114610ac857600080fd5b80639e944965116101695780639e9449651461091c578063a217fddf146109db578063aef18bf714610a0a57600080fd5b806394cf795e146108cd57806395d376d71461090957600080fd5b806331cb61051161023d578063724e78da116101f15780637df73e27116101cb5780637df73e27146107ee5780638585c9451461082857806391d148541461086257600080fd5b8063724e78da1461070e578063736c0d5b14610748578063741bef1a1461078257600080fd5b806352d3b8711161022257806352d3b871146106685780635553fb8e146106a25780635c975abb146106dc57600080fd5b806331cb6105146105f457806336568abe1461062e57600080fd5b80631703a0181161029f5780632de11376116102795780632de11376146105465780632f2ff15d1461058057806330bb3aac146105ba57600080fd5b80631703a01814610453578063248a9ca3146104a757806326e67a37146104ff57600080fd5b806301ffc9a7116102d057806301ffc9a7146103955780631095b6d7146103df57806316c38b3c1461041957600080fd5b8062bf2e80146102eb57806301e3366714610359575b600080fd5b3480156102f757600080fd5b50d3801561030457600080fd5b50d2801561031157600080fd5b50600154610341907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561036557600080fd5b50d3801561037257600080fd5b50d2801561037f57600080fd5b5061039361038e3660046141c8565b610e73565b005b3480156103a157600080fd5b50d380156103ae57600080fd5b50d280156103bb57600080fd5b506103cf6103ca366004614223565b610eae565b6040519015158152602001610350565b3480156103eb57600080fd5b50d380156103f857600080fd5b50d2801561040557600080fd5b506103936104143660046141c8565b610f47565b34801561042557600080fd5b50d3801561043257600080fd5b50d2801561043f57600080fd5b5061039361044e366004614273565b6110d7565b34801561045f57600080fd5b50d3801561046c57600080fd5b50d2801561047957600080fd5b5060065461048e9067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610350565b3480156104b357600080fd5b50d380156104c057600080fd5b50d280156104cd57600080fd5b506104f16104dc366004614290565b60009081526020819052604090206001015490565b604051908152602001610350565b34801561050b57600080fd5b50d3801561051857600080fd5b50d2801561052557600080fd5b506105396105343660046142bd565b6110fc565b60405161035091906142d8565b34801561055257600080fd5b50d3801561055f57600080fd5b50d2801561056c57600080fd5b506103cf61057b36600461431f565b611183565b34801561058c57600080fd5b50d3801561059957600080fd5b50d280156105a657600080fd5b506103936105b5366004614359565b611268565b3480156105c657600080fd5b50d380156105d357600080fd5b50d280156105e057600080fd5b506104f16105ef3660046143f9565b6113bc565b34801561060057600080fd5b50d3801561060d57600080fd5b50d2801561061a57600080fd5b50610393610629366004614487565b611527565b34801561063a57600080fd5b50d3801561064757600080fd5b50d2801561065457600080fd5b50610393610663366004614359565b61156a565b34801561067457600080fd5b50d3801561068157600080fd5b50d2801561068e57600080fd5b5061039361069d3660046144d6565b61159c565b3480156106ae57600080fd5b50d380156106bb57600080fd5b50d280156106c857600080fd5b506104f16106d736600461455d565b611770565b3480156106e857600080fd5b50d380156106f557600080fd5b50d2801561070257600080fd5b5060015460ff166103cf565b34801561071a57600080fd5b50d3801561072757600080fd5b50d2801561073457600080fd5b5061039361074336600461431f565b6118db565b34801561075457600080fd5b50d3801561076157600080fd5b50d2801561076e57600080fd5b506103cf61077d36600461431f565b611980565b34801561078e57600080fd5b50d3801561079b57600080fd5b50d280156107a857600080fd5b506002546107c99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610350565b3480156107fa57600080fd5b50d3801561080757600080fd5b50d2801561081457600080fd5b506103cf61082336600461431f565b611987565b34801561083457600080fd5b50d3801561084157600080fd5b50d2801561084e57600080fd5b5061039361085d3660046145cb565b611994565b34801561086e57600080fd5b50d3801561087b57600080fd5b50d2801561088857600080fd5b506103cf610897366004614359565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b3480156108d957600080fd5b50d380156108e657600080fd5b50d280156108f357600080fd5b506108fc6119d9565b60405161035091906145e6565b6104f161091736600461464c565b6119ea565b34801561092857600080fd5b50d3801561093557600080fd5b50d2801561094257600080fd5b506109a06109513660046142bd565b60076020526000908152604090205467ffffffffffffffff81169068010000000000000000810461ffff16906a010000000000000000000090046fffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff909416845261ffff90921660208401526fffffffffffffffffffffffffffffffff1690820152606001610350565b3480156109e757600080fd5b50d380156109f457600080fd5b50d28015610a0157600080fd5b506104f1600081565b348015610a1657600080fd5b50d38015610a2357600080fd5b50d28015610a3057600080fd5b506103cf610a3f366004614290565b60086020526000908152604090205460ff1681565b348015610a6057600080fd5b50d38015610a6d57600080fd5b50d28015610a7a57600080fd5b50610393610a893660046146fa565b611bba565b348015610a9a57600080fd5b50d38015610aa757600080fd5b50d28015610ab457600080fd5b50610393610ac336600461473c565b611ed2565b348015610ad457600080fd5b50d38015610ae157600080fd5b50d28015610aee57600080fd5b506001546107c990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b348015610b2057600080fd5b50d38015610b2d57600080fd5b50d28015610b3a57600080fd5b506104f1610b4936600461455d565b611f80565b348015610b5a57600080fd5b50d38015610b6757600080fd5b50d28015610b7457600080fd5b50610b88610b83366004614757565b612152565b6040516103509291906147c5565b348015610ba257600080fd5b50d38015610baf57600080fd5b50d28015610bbc57600080fd5b50610393610bcb36600461431f565b612336565b348015610bdc57600080fd5b50d38015610be957600080fd5b50d28015610bf657600080fd5b50610393610c05366004614812565b6123da565b348015610c1657600080fd5b50d38015610c2357600080fd5b50d28015610c3057600080fd5b50610c587f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610350565b348015610c7957600080fd5b50d38015610c8657600080fd5b50d28015610c9357600080fd5b5060015461048e907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b348015610ccd57600080fd5b50d38015610cda57600080fd5b50d28015610ce757600080fd5b50610393610cf6366004614359565b61242b565b348015610d0757600080fd5b50d38015610d1457600080fd5b50d28015610d2157600080fd5b50610393610d303660046141c8565b612540565b348015610d4157600080fd5b50d38015610d4e57600080fd5b50d28015610d5b57600080fd5b50610c587f000000000000000000000000000000000000000000000000000000000000000081565b348015610d8f57600080fd5b50d38015610d9c57600080fd5b50d28015610da957600080fd5b506104f1610db8366004614858565b612676565b348015610dc957600080fd5b50d38015610dd657600080fd5b50d28015610de357600080fd5b50610393610df23660046148d9565b6126b2565b6104f1610e0536600461490e565b612927565b348015610e1657600080fd5b50d38015610e2357600080fd5b50d28015610e3057600080fd5b506104f1612ad9565b348015610e4557600080fd5b50d38015610e5257600080fd5b50d28015610e5f57600080fd5b506104f1610e6e36600461490e565b612ae5565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610e9d81612c6a565b610ea8848484612c74565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b000000000000000000000000000000000000000000000000000000001480610f4157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f7181612c6a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff16610fef576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb925060600190505b60405180910390a150505050565b60006110e281612c6a565b81156110f4576110f0612ca4565b5050565b6110f0612d23565b63ffffffff811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561117757602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116111485790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff16156111d857506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff16158061124e575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b1561125b57506001919050565b506000919050565b919050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca8114806112b657507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b806112e057507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b156113235730331461131e576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ad565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177581036113735761131e7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612c6a565b6040517f94fdc372000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6113b78383612d7a565b505050565b6000836113c881611183565b6113fe576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825263ffffffff8a16602080840182905267ffffffffffffffff808c16858701528a8416606086015260065416608085015260015461ffff7d01000000000000000000000000000000000000000000000000000000000082041660a0860152600092835260079091529084902093517f7bfa20a9000000000000000000000000000000000000000000000000000000008152929361010090910490911691637bfa20a9916114da918591908a908a90600401614a1a565b602060405180830381865afa1580156114f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151b9190614ae7565b98975050505050505050565b303314611560576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110f08282612e40565b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756115c681612c6a565b60005b8281101561173157368484838181106115e4576115e4614b00565b9050608002019050604051806060016040528082602001602081019061160a91906145cb565b67ffffffffffffffff168152602001611629606084016040850161473c565b61ffff1681526020016116426080840160608501614b4f565b6fffffffffffffffffffffffffffffffff1690526007600061166760208501856142bd565b63ffffffff1681526020808201929092526040908101600020835181549385015194909201516fffffffffffffffffffffffffffffffff166a0100000000000000000000027fffffffffffff00000000000000000000000000000000ffffffffffffffffffff61ffff90951668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000000090941667ffffffffffffffff9093169290921792909217929092169190911790555061172a81614b99565b90506115c9565b507f7dd21e42791b013d1929e86f0c59085e4fca24251f0f1aa81917b3b1611766e08383604051611763929190614bd1565b60405180910390a1505050565b60008161177c81611183565b6117b2576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808a16602080850182905267ffffffffffffffff808b168688015289851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517f7bfa20a9000000000000000000000000000000000000000000000000000000008152939461010090920490921692637bfa20a99261188f928692600401614cdd565b602060405180830381865afa1580156118ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d09190614ae7565b979650505050505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561190581612c6a565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d906020015b60405180910390a15050565b6000610f41825b6000610f41600483613015565b3033146119cd576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119d681613047565b50565b60606119e56004613162565b905090565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611a1681612c6a565b611a2660a086016080870161431f565b611a2f81611183565b611a65576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c0810190915260025473ffffffffffffffffffffffffffffffffffffffff168152600090602080820190611aa0908a018a6142bd565b63ffffffff168152602001611abb60808a0160608b016145cb565b67ffffffffffffffff168152602001611ada60a08a0160808b0161431f565b73ffffffffffffffffffffffffffffffffffffffff908116825260065467ffffffffffffffff1660208084019190915260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416604090940193909352929350610100909104169063df2b057e908390600790600090611b60908d018d6142bd565b63ffffffff1663ffffffff16815260200190815260200160002089896040518563ffffffff1660e01b8152600401611b9b9493929190614a1a565b6020604051808303816000875af11580156118ac573d6000803e3d6000fd5b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611be481612c6a565b60005b82811015610ea85736848483818110611c0257611c02614b00565b9050602002810190611c149190614db3565b905063ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611c4a60208301836142bd565b63ffffffff1614611c5b5750611ec2565b42816060013511611c6c5750611ec2565b6000611ca5611c7e60208401846142bd565b611c8e604085016020860161431f565b611c9b6040860186614df1565b8660600135612676565b90506000611cba82610b836080860186614df1565b50905080611cfd576040518481527fd6d90193101048cc1b6edcdc2348f5acf7a4a4a97d3e7b668b74cb7602ab3ebc9060200160405180910390a1505050611ec2565b6000611d1d611d0f6040860186614df1565b611d1891614e56565b61316f565b90508015611db65760008381526008602052604090205460ff1615611d7e577f9bb9bddbdf537a2104255307230b323d7982f4512ee8e5bd15df62ddca50ab978484604051611d6d929190614f02565b60405180910390a150505050611ec2565b600083815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b600080611dc9604087016020880161431f565b73ffffffffffffffffffffffffffffffffffffffff16611dec6040880188614df1565b604051611dfa929190614fc8565b6000604051808303816000865af19150503d8060008114611e37576040519150601f19603f3d011682016040523d82523d6000602084013e611e3c565b606091505b509150915081611ebb578215611e8157600085815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555b7fdc8cdd96296241bbefda4a8e18ad2e0985a8da6495b34d409cfc4c886ee3b0cf8782604051611eb2929190614fd8565b60405180910390a15b5050505050505b611ecb81614b99565b9050611be7565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775611efc81612c6a565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001611974565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de611fac81612c6a565b82611fb681611183565b611fec576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160c08101825260025473ffffffffffffffffffffffffffffffffffffffff908116825261ffff808b16602080850182905267ffffffffffffffff808c16868801528a851660608701526006541660808601526001547d010000000000000000000000000000000000000000000000000000000000810490931660a08601526000918252600781528582208651918201875291815294517fdf2b057e00000000000000000000000000000000000000000000000000000000815293946101009092049092169263df2b057e926120c9928692600401614cdd565b6020604051808303816000875af11580156120e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061210c9190614ae7565b93507f87e46b0a6199bc734632187269a103c05714ee0adae5b28f30723955724f37ef8460405161213f91815260200190565b60405180910390a1505050949350505050565b600654600090819061216f9067ffffffffffffffff166041614ff1565b8314612181575060009050600161232e565b60006121da866040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b90506000805b60065467ffffffffffffffff16811015612322573660008888612204856041614ff1565b90612210866001615008565b61221b906041614ff1565b926122289392919061501b565b9150915060008061226f8785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061325892505050565b9092509050600081600481111561228857612288614796565b146122a15760006001985098505050505050505061232e565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16116122e85760006002985098505050505050505061232e565b6122f182611987565b6123095760006003985098505050505050505061232e565b50935082915061231a905081614b99565b9150506121e0565b50600160009350935050505b935093915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561236081612c6a565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001611974565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561240481612c6a565b63ffffffff841660009081526003602052604090206124249084846140e7565b5050505050565b817f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca81148061247957507f4270fae16c6d150d00e80b689daca99e8073b1838ff2b6063a37be9d851283e481145b806124a357507f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de81145b156124e6573033146124e1576040517ffaba723a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612536565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217758103611373576124e17fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775612c6a565b6113b7838361329d565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561256a81612c6a565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166125e8576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f07b18bde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152602482018490528516906307b18bde90604401600060405180830381600087803b15801561265857600080fd5b505af115801561266c573d6000803e3d6000fd5b5050505050505050565b60008585838686604051602001612691959493929190615045565b60405160208183030381529060405280519060200120905095945050505050565b428160600135116126ef576040517f0bbaf26300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b30612700604083016020840161431f565b73ffffffffffffffffffffffffffffffffffffffff16146127765761272b604082016020830161431f565b6040517f1ce0bfcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024016113a4565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166127aa60208301836142bd565b63ffffffff16146127fd576127c260208201826142bd565b6040517f2697e1c200000000000000000000000000000000000000000000000000000000815263ffffffff90911660048201526024016113a4565b600061280f611c7e60208401846142bd565b9050600061282482610b836080860186614df1565b5090508061285e576040517f15ecadee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526008602052604090205460ff16156128aa576040517f9d6a45a6000000000000000000000000000000000000000000000000000000008152600481018390526024016113a4565b6000828152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556113b7907fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217759061291590860186614df1565b810190612922919061431f565b612d7a565b60007f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de61295381612c6a565b8861295d81611183565b612993576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528c811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fbbc5a33b00000000000000000000000000000000000000000000000000000000815292936101009091049091169163bbc5a33b91612a87918591908d908d908d908d906004016150b7565b6020604051808303816000875af1158015612aa6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aca9190614ae7565b9b9a5050505050505050505050565b60006119e56004613362565b600087612af181611183565b612b27576040517f4ab5ebcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160808101825260025473ffffffffffffffffffffffffffffffffffffffff90811682528b811660208084019190915260065467ffffffffffffffff168385015260015461ffff7d010000000000000000000000000000000000000000000000000000000000820416606085015263ffffffff7f000000000000000000000000000000000000000000000000000000000000000016600090815260079092529084902093517fd358b30000000000000000000000000000000000000000000000000000000000815292936101009091049091169163d358b30091612c1b918591908c908c908c908c906004016150b7565b602060405180830381865afa158015612c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c5c9190614ae7565b9a9950505050505050505050565b6119d6813361336c565b73ffffffffffffffffffffffffffffffffffffffff8316612c99576113b78282613424565b6113b783838361352a565b612cac613598565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b612d2b613607565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33612cf9565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015612dd7575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b15612e365760018054601590612e0f907501000000000000000000000000000000000000000000900467ffffffffffffffff1661517d565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6110f08282613673565b8015612ef95773ffffffffffffffffffffffffffffffffffffffff8216612e93576040517f5cbf6e2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e9e600483613763565b612ef4576040517f58c8d2a000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015281151560248201526044016113a4565b612f5a565b612f04600483613785565b612f5a576040517f7e1e4ae200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015281151560248201526044016113a4565b6000612f666004613362565b60065490915067ffffffffffffffff908116908216811115612fc8576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8084166004830152821660248201526044016113a4565b6040805173ffffffffffffffffffffffffffffffffffffffff8616815284151560208201527f863d338cad74814b108a06288ad5e0e80d56495e0332238b1d2cdcfa0ca8e5ce91016110c9565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b9392505050565b8067ffffffffffffffff1660000361308b576040517f5f86e17700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006130976004613362565b90508167ffffffffffffffff168167ffffffffffffffff1610156130fb576040517ff1c582ae00000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8083166004830152831660248201526044016113a4565b600680547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff84169081179091556040519081527fb600f3cf7f38a4b49bb0c75f722ef69f7e3e39ef3bb4aa8207fd86e724a2324990602001611974565b60606000613040836137a7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f0223536e000000000000000000000000000000000000000000000000000000001480159061320557507fffffffff0000000000000000000000000000000000000000000000000000000082167fab750e750000000000000000000000000000000000000000000000000000000014155b8015610f4157507fffffffff0000000000000000000000000000000000000000000000000000000082167f704316e500000000000000000000000000000000000000000000000000000000141592915050565b600080825160410361328e5760208301516040840151606085015160001a61328287828585613802565b94509450505050613296565b506000905060025b9250929050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156132f9575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b156133585760018054601590613331907501000000000000000000000000000000000000000000900467ffffffffffffffff166151a4565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6110f082826138f1565b6000610f41825490565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166110f0576133aa816139a8565b6133b58360206139c7565b6040516020016133c69291906151e6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a00000000000000000000000000000000000000000000000000000000082526113a491600401615267565b73ffffffffffffffffffffffffffffffffffffffff8216613471576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146134cb576040519150601f19603f3d011682016040523d82523d6000602084013e6134d0565b606091505b50509050806113b7576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018390526044016113a4565b73ffffffffffffffffffffffffffffffffffffffff8216613577576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113b773ffffffffffffffffffffffffffffffffffffffff84168383613c0a565b60015460ff1615613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016113a4565b565b60015460ff16613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016113a4565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166110f05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556137053390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006130408373ffffffffffffffffffffffffffffffffffffffff8416613c97565b60006130408373ffffffffffffffffffffffffffffffffffffffff8416613ce6565b60608160000180548060200260200160405190810160405280929190818152602001828054801561117757602002820191906000526020600020905b8154815260200190600101908083116137e35750505050509050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561383957506000905060036138e8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561388d573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166138e1576000600192509250506138e8565b9150600090505b94509492505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156110f05760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6060610f4173ffffffffffffffffffffffffffffffffffffffff831660145b606060006139d6836002614ff1565b6139e1906002615008565b67ffffffffffffffff8111156139f9576139f961527a565b6040519080825280601f01601f191660200182016040528015613a23576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110613a5a57613a5a614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110613abd57613abd614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000613af9846002614ff1565b613b04906001615008565b90505b6001811115613ba1577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110613b4557613b45614b00565b1a60f81b828281518110613b5b57613b5b614b00565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93613b9a816152a9565b9050613b07565b508315613040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016113a4565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526113b7908490613dd9565b6000818152600183016020526040812054613cde57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f41565b506000610f41565b60008181526001830160205260408120548015613dcf576000613d0a6001836152de565b8554909150600090613d1e906001906152de565b9050818114613d83576000866000018281548110613d3e57613d3e614b00565b9060005260206000200154905080876000018481548110613d6157613d61614b00565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613d9457613d946152f1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610f41565b6000915050610f41565b6000613e3b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613ee89092919063ffffffff16565b9050805160001480613e5c575080806020019051810190613e5c9190615320565b6113b7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016113a4565b6060613ef78484600085613eff565b949350505050565b606082471015613f91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016113a4565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051613fba919061533d565b60006040518083038185875af1925050503d8060008114613ff7576040519150601f19603f3d011682016040523d82523d6000602084013e613ffc565b606091505b50915091506118d0878383876060831561409e5782516000036140975773ffffffffffffffffffffffffffffffffffffffff85163b614097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016113a4565b5081613ef7565b613ef783838151156140b35781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a49190615267565b82805482825590600052602060002090601f016020900481019282156141805791602002820160005b8382111561415157833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302614110565b801561417e5782816101000a81549060ff0219169055600101602081600001049283019260010302614151565b505b5061418c929150614190565b5090565b5b8082111561418c5760008155600101614191565b74ffffffffffffffffffffffffffffffffffffffffff811681146119d657600080fd5b6000806000606084860312156141dd57600080fd5b83356141e8816141a5565b73ffffffffffffffffffffffffffffffffffffffff9081169350602085013590614211826141a5565b93969316945050506040919091013590565b60006020828403121561423557600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461304057600080fd5b80151581146119d657600080fd5b60006020828403121561428557600080fd5b813561304081614265565b6000602082840312156142a257600080fd5b5035919050565b803563ffffffff8116811461126357600080fd5b6000602082840312156142cf57600080fd5b613040826142a9565b6020808252825182820181905260009190848201906040850190845b8181101561431357835160ff16835292840192918401916001016142f4565b50909695505050505050565b60006020828403121561433157600080fd5b813561433c816141a5565b73ffffffffffffffffffffffffffffffffffffffff169392505050565b6000806040838503121561436c57600080fd5b82359150602083013561437e816141a5565b73ffffffffffffffffffffffffffffffffffffffff81169150509250929050565b803567ffffffffffffffff8116811461126357600080fd5b60008083601f8401126143c957600080fd5b50813567ffffffffffffffff8111156143e157600080fd5b60208301915083602082850101111561329657600080fd5b60008060008060006080868803121561441157600080fd5b61441a866142a9565b94506144286020870161439f565b93506040860135614438816141a5565b73ffffffffffffffffffffffffffffffffffffffff169250606086013567ffffffffffffffff81111561446a57600080fd5b614476888289016143b7565b969995985093965092949392505050565b6000806040838503121561449a57600080fd5b82356144a5816141a5565b73ffffffffffffffffffffffffffffffffffffffff16915060208301356144cb81614265565b809150509250929050565b600080602083850312156144e957600080fd5b823567ffffffffffffffff8082111561450157600080fd5b818501915085601f83011261451557600080fd5b81358181111561452457600080fd5b8660208260071b850101111561453957600080fd5b60209290920196919550909350505050565b803561ffff8116811461126357600080fd5b6000806000806080858703121561457357600080fd5b61457c8561454b565b935061458a6020860161454b565b92506145986040860161439f565b915060608501356145a8816141a5565b73ffffffffffffffffffffffffffffffffffffffff811691505092959194509250565b6000602082840312156145dd57600080fd5b6130408261439f565b6020808252825182820181905260009190848201906040850190845b8181101561431357835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614602565b600060a0828403121561464657600080fd5b50919050565b60008060006040848603121561466157600080fd5b833567ffffffffffffffff8082111561467957600080fd5b61468587838801614634565b9450602086013591508082111561469b57600080fd5b506146a8868287016143b7565b9497909650939450505050565b60008083601f8401126146c757600080fd5b50813567ffffffffffffffff8111156146df57600080fd5b6020830191508360208260051b850101111561329657600080fd5b6000806020838503121561470d57600080fd5b823567ffffffffffffffff81111561472457600080fd5b614730858286016146b5565b90969095509350505050565b60006020828403121561474e57600080fd5b6130408261454b565b60008060006040848603121561476c57600080fd5b83359250602084013567ffffffffffffffff81111561478a57600080fd5b6146a8868287016143b7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82151581526040810160048310614805577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561482757600080fd5b614830846142a9565b9250602084013567ffffffffffffffff81111561484c57600080fd5b6146a8868287016146b5565b60008060008060006080868803121561487057600080fd5b614879866142a9565b94506020860135614889816141a5565b73ffffffffffffffffffffffffffffffffffffffff169350604086013567ffffffffffffffff8111156148bb57600080fd5b6148c7888289016143b7565b96999598509660600135949350505050565b6000602082840312156148eb57600080fd5b813567ffffffffffffffff81111561490257600080fd5b613ef784828501614634565b60008060008060008060006080888a03121561492957600080fd5b8735614934816141a5565b73ffffffffffffffffffffffffffffffffffffffff169650602088013567ffffffffffffffff8082111561496757600080fd5b6149738b838c016143b7565b909850965060408a013591508082111561498c57600080fd5b6149988b838c016143b7565b909650945060608a01359150808211156149b157600080fd5b506149be8a828b016143b7565b989b979a50959850939692959293505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6000610140614a92838873ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b614ad360c08401875467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b806101208401526118d081840185876149d1565b600060208284031215614af957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff8116811461126357600080fd5b600060208284031215614b6157600080fd5b61304082614b2f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614bca57614bca614b6a565b5060010190565b6020808252818101839052600090604080840186845b87811015614c625763ffffffff614bfd836142a9565b16835267ffffffffffffffff614c1486840161439f565b168584015261ffff614c2785840161454b565b168484015260606fffffffffffffffffffffffffffffffff614c4a828501614b2f565b16908401526080928301929190910190600101614be7565b5090979650505050505050565b60005b83811015614c8a578181015183820152602001614c72565b50506000910152565b60008151808452614cab816020860160208601614c6f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000610140614d55838773ffffffffffffffffffffffffffffffffffffffff80825116835263ffffffff6020830151166020840152604082015167ffffffffffffffff808216604086015282606085015116606086015280608085015116608086015250505061ffff60a08201511660a08301525050565b614d9660c08401865467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b80610120840152614da981840185614c93565b9695505050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61833603018112614de757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e2657600080fd5b83018035915067ffffffffffffffff821115614e4157600080fd5b60200191503681900382131561329657600080fd5b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015614e965780818660040360031b1b83161692505b505092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614ed357600080fd5b830160208101925035905067ffffffffffffffff811115614ef357600080fd5b80360382131561329657600080fd5b6040815263ffffffff614f14846142a9565b16604082015260006020840135614f2a816141a5565b73ffffffffffffffffffffffffffffffffffffffff166060830152614f526040850185614e9e565b60a06080850152614f6760e0850182846149d1565b915050606085013560a0840152614f816080860186614e9e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08584030160c0860152614fb68382846149d1565b93505050508260208301529392505050565b8183823760009101908152919050565b828152604060208201526000613ef76040830184614c93565b8082028115828204841417610f4157610f41614b6a565b80820180821115610f4157610f41614b6a565b6000808585111561502b57600080fd5b8386111561503857600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b600061012073ffffffffffffffffffffffffffffffffffffffff808a511684528060208b01511660208501525067ffffffffffffffff60408a015116604084015261ffff60608a015116606084015261514760808401895467ffffffffffffffff81168252604081811c61ffff16602084015260509190911c6fffffffffffffffffffffffffffffffff16910152565b8060e084015261515a81840187896149d1565b90508281036101008401526151708185876149d1565b9998505050505050505050565b600067ffffffffffffffff80831681810361519a5761519a614b6a565b6001019392505050565b600067ffffffffffffffff8216806151be576151be614b6a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161521e816017850160208801614c6f565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161525b816028840160208801614c6f565b01602801949350505050565b6020815260006130406020830184614c93565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816152b8576152b8614b6a565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b81810381811115610f4157610f41614b6a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006020828403121561533257600080fd5b815161304081614265565b60008251614de7818460208701614c6f56fea26474726f6e58221220930cd46565742a0f1ac2b93903f0f24a8345ac76627c09c464f812184720c2f464736f6c63430008140033",
1507
+ "linkReferences": {},
1508
+ "deployedLinkReferences": {}
1509
+ }