@layerzerolabs/lz-evm-sdk-v2 2.0.12-tron-rc.2 → 2.0.12

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 (218) hide show
  1. package/artifacts/contracts/EndpointV2.sol/EndpointV2.json +2 -2
  2. package/artifacts/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2 -2
  3. package/artifacts/contracts/Executor.sol/Executor.json +2 -2
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +2 -2
  5. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +2 -2
  6. package/artifacts/contracts/Treasury.sol/Treasury.json +2 -2
  7. package/artifacts/contracts/libs/AddressCast.sol/AddressCast.json +2 -2
  8. package/artifacts/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +2 -2
  9. package/artifacts/contracts/libs/Errors.sol/Errors.json +2 -2
  10. package/artifacts/contracts/libs/GUID.sol/GUID.json +2 -2
  11. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +2 -2
  12. package/artifacts/contracts/libs/Transfer.sol/Transfer.json +2 -2
  13. package/artifacts/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +2 -2
  14. package/artifacts/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +2 -2
  15. package/artifacts/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +2 -2
  16. package/artifacts/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +2 -2
  17. package/artifacts/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +2 -2
  18. package/artifacts/contracts/oapp/examples/OmniCounter.sol/MsgCodec.json +2 -2
  19. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +2 -2
  20. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +2 -2
  21. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +2 -2
  22. package/artifacts/contracts/oft/OFT.sol/OFT.json +2 -2
  23. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +2 -2
  24. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +2 -2
  25. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +2 -2
  26. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +2 -2
  27. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +5 -5
  28. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +2 -2
  29. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +2 -2
  30. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +2 -2
  31. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +2 -2
  32. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +2 -2
  33. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +2 -2
  34. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +2 -2
  35. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +2 -2
  36. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +2 -2
  37. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +2 -2
  38. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +2 -2
  39. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +2 -2
  40. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +2 -2
  41. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +2 -2
  42. package/deployments/{arbitrum-sandbox-local → bera-testnet}/DVN.json +76 -43
  43. package/deployments/{bsc-sandbox-local → bera-testnet}/DVNFeeLib.json +13 -13
  44. package/deployments/{arbitrum-sandbox-local → bera-testnet}/EndpointV2.json +114 -60
  45. package/deployments/{tron-sandbox-local → bera-testnet}/Executor.json +88 -105
  46. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorFeeLib.json +13 -13
  47. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorProxyAdmin.json +20 -20
  48. package/deployments/{bsc-sandbox-local → bera-testnet}/Executor_Implementation.json +7 -7
  49. package/deployments/{tron-sandbox-local → bera-testnet}/Executor_Proxy.json +79 -94
  50. package/deployments/bera-testnet/LzExecutor.json +332 -0
  51. package/deployments/bera-testnet/PriceFeed.json +35 -35
  52. package/deployments/bera-testnet/PriceFeedProxyAdmin.json +17 -17
  53. package/deployments/bera-testnet/PriceFeed_Implementation.json +6 -6
  54. package/deployments/bera-testnet/PriceFeed_Proxy.json +34 -34
  55. package/deployments/{bsc-sandbox-local → bera-testnet}/ReceiveUln301.json +15 -15
  56. package/deployments/{avalanche-sandbox-local → bera-testnet}/ReceiveUln302.json +18 -18
  57. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln301.json +17 -17
  58. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln302.json +14 -14
  59. package/deployments/{bsc-sandbox-local → bera-testnet}/Treasury.json +13 -13
  60. package/deployments/{avalanche-sandbox-local → bera-testnet}/TreasuryFeeHandler.json +8 -8
  61. package/deployments/ethereum-sandbox-local/BlockedMessageLib.json +90 -0
  62. package/deployments/ethereum-sandbox-local/DVN.json +5 -5
  63. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +2 -2
  64. package/deployments/ethereum-sandbox-local/Endpoint.json +2355 -0
  65. package/deployments/ethereum-sandbox-local/EndpointV2.json +4 -4
  66. package/deployments/ethereum-sandbox-local/Executor.json +14 -14
  67. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +2 -2
  68. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +3 -3
  69. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +1 -1
  70. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +14 -14
  71. package/deployments/ethereum-sandbox-local/MultiSigOracle.json +1448 -0
  72. package/deployments/ethereum-sandbox-local/NonceContract.json +158 -0
  73. package/deployments/ethereum-sandbox-local/NonceContractMock.json +1 -1
  74. package/deployments/ethereum-sandbox-local/OmniCounter.json +1133 -0
  75. package/deployments/ethereum-sandbox-local/OmniCounterPreCrime.json +493 -0
  76. package/deployments/ethereum-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  77. package/deployments/ethereum-sandbox-local/OmniCounterViewer.json +214 -0
  78. package/deployments/ethereum-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  79. package/deployments/{arbitrum-sandbox-local/Executor.json → ethereum-sandbox-local/Oracle.json} +400 -658
  80. package/deployments/ethereum-sandbox-local/OracleFeeLib.json +166 -0
  81. package/deployments/ethereum-sandbox-local/OracleProxyAdmin.json +272 -0
  82. package/deployments/ethereum-sandbox-local/Oracle_Implementation.json +1326 -0
  83. package/deployments/{bsc-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Oracle_Proxy.json} +96 -35
  84. package/deployments/ethereum-sandbox-local/PriceFeed.json +5 -5
  85. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  86. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +1 -1
  87. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  88. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +2 -2
  89. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +2 -2
  90. package/deployments/{tron-sandbox-local/PriceFeed.json → ethereum-sandbox-local/Relayer.json} +445 -339
  91. package/deployments/ethereum-sandbox-local/RelayerFeeLib.json +130 -0
  92. package/deployments/ethereum-sandbox-local/RelayerProxyAdmin.json +272 -0
  93. package/deployments/ethereum-sandbox-local/Relayer_Implementation.json +1014 -0
  94. package/deployments/{tron-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Relayer_Proxy.json} +64 -33
  95. package/deployments/ethereum-sandbox-local/SendUln301.json +2 -2
  96. package/deployments/ethereum-sandbox-local/SendUln302.json +2 -2
  97. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +2 -2
  98. package/deployments/ethereum-sandbox-local/Treasury.json +2 -2
  99. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +1 -1
  100. package/deployments/ethereum-sandbox-local/UlnConfig301.json +1003 -0
  101. package/deployments/ethereum-sandbox-local/UlnConfig302.json +1003 -0
  102. package/deployments/ethereum-sandbox-local/UltraLightNodeE302.json +1696 -0
  103. package/deployments/{bsc-sandbox-local → etherlink-testnet}/PriceFeed.json +34 -34
  104. package/deployments/{arbitrum-sandbox-local/ExecutorProxyAdmin.json → etherlink-testnet/PriceFeedProxyAdmin.json} +22 -22
  105. package/deployments/{arbitrum-sandbox-local → etherlink-testnet}/PriceFeed_Implementation.json +9 -9
  106. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/PriceFeed_Proxy.json +32 -32
  107. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/Treasury.json +15 -15
  108. package/deployments/polygon-sandbox-local/BlockedMessageLib.json +90 -0
  109. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  110. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  111. package/deployments/polygon-sandbox-local/Endpoint.json +2355 -0
  112. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  113. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  114. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  115. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  116. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  117. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  118. package/deployments/polygon-sandbox-local/MultiSigOracle.json +1448 -0
  119. package/deployments/polygon-sandbox-local/NonceContract.json +158 -0
  120. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  121. package/deployments/polygon-sandbox-local/OmniCounter.json +1133 -0
  122. package/deployments/polygon-sandbox-local/OmniCounterPreCrime.json +493 -0
  123. package/deployments/polygon-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  124. package/deployments/polygon-sandbox-local/OmniCounterViewer.json +214 -0
  125. package/deployments/polygon-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  126. package/deployments/{bsc-sandbox-local/Executor.json → polygon-sandbox-local/Oracle.json} +400 -658
  127. package/deployments/polygon-sandbox-local/OracleFeeLib.json +166 -0
  128. package/deployments/polygon-sandbox-local/OracleProxyAdmin.json +272 -0
  129. package/deployments/polygon-sandbox-local/Oracle_Implementation.json +1326 -0
  130. package/deployments/polygon-sandbox-local/Oracle_Proxy.json +305 -0
  131. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  132. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  133. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  134. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  135. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  136. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  137. package/deployments/{arbitrum-sandbox-local/PriceFeed.json → polygon-sandbox-local/Relayer.json} +445 -339
  138. package/deployments/polygon-sandbox-local/RelayerFeeLib.json +130 -0
  139. package/deployments/polygon-sandbox-local/RelayerProxyAdmin.json +272 -0
  140. package/deployments/polygon-sandbox-local/Relayer_Implementation.json +1014 -0
  141. package/deployments/{arbitrum-sandbox-local/PriceFeed_Proxy.json → polygon-sandbox-local/Relayer_Proxy.json} +64 -33
  142. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  143. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  144. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  145. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  146. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  147. package/deployments/polygon-sandbox-local/UlnConfig301.json +1003 -0
  148. package/deployments/polygon-sandbox-local/UlnConfig302.json +1003 -0
  149. package/deployments/polygon-sandbox-local/UltraLightNodeE302.json +1696 -0
  150. package/dist/{index-cijKSBLK.d.cts → index-pO8kCANF.d.mts} +41 -41
  151. package/dist/{index-cijKSBLK.d.ts → index-pO8kCANF.d.ts} +41 -41
  152. package/dist/index.browser.cjs +34 -34
  153. package/dist/index.browser.cjs.map +1 -1
  154. package/dist/{index.browser.d.cts → index.browser.d.mts} +1 -1
  155. package/dist/index.browser.d.ts +1 -1
  156. package/dist/index.browser.mjs +34 -34
  157. package/dist/index.browser.mjs.map +1 -1
  158. package/dist/index.cjs +34 -34
  159. package/dist/index.cjs.map +1 -1
  160. package/dist/{index.d.cts → index.d.mts} +1 -1
  161. package/dist/index.d.ts +1 -1
  162. package/dist/index.mjs +34 -34
  163. package/dist/index.mjs.map +1 -1
  164. package/package.json +15 -14
  165. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +0 -387
  166. package/deployments/arbitrum-sandbox-local/ExecutorFeeLib.json +0 -407
  167. package/deployments/arbitrum-sandbox-local/Executor_Implementation.json +0 -1591
  168. package/deployments/arbitrum-sandbox-local/Executor_Proxy.json +0 -380
  169. package/deployments/arbitrum-sandbox-local/NonceContractMock.json +0 -163
  170. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  171. package/deployments/arbitrum-sandbox-local/ReceiveUln301.json +0 -1264
  172. package/deployments/arbitrum-sandbox-local/ReceiveUln302.json +0 -954
  173. package/deployments/arbitrum-sandbox-local/SimpleMessageLib.json +0 -708
  174. package/deployments/arbitrum-sandbox-local/Treasury.json +0 -412
  175. package/deployments/arbitrum-sandbox-local/TreasuryFeeHandler.json +0 -125
  176. package/deployments/avalanche-sandbox-local/DVN.json +0 -1896
  177. package/deployments/avalanche-sandbox-local/DVNFeeLib.json +0 -387
  178. package/deployments/avalanche-sandbox-local/EndpointV2.json +0 -2955
  179. package/deployments/avalanche-sandbox-local/Executor.json +0 -1549
  180. package/deployments/avalanche-sandbox-local/ExecutorFeeLib.json +0 -407
  181. package/deployments/avalanche-sandbox-local/ExecutorProxyAdmin.json +0 -283
  182. package/deployments/avalanche-sandbox-local/Executor_Implementation.json +0 -1591
  183. package/deployments/avalanche-sandbox-local/Executor_Proxy.json +0 -380
  184. package/deployments/avalanche-sandbox-local/NonceContractMock.json +0 -163
  185. package/deployments/avalanche-sandbox-local/PriceFeed.json +0 -890
  186. package/deployments/avalanche-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  187. package/deployments/avalanche-sandbox-local/PriceFeed_Implementation.json +0 -912
  188. package/deployments/avalanche-sandbox-local/ReceiveUln301.json +0 -1264
  189. package/deployments/avalanche-sandbox-local/SendUln301.json +0 -1569
  190. package/deployments/avalanche-sandbox-local/SendUln302.json +0 -1527
  191. package/deployments/avalanche-sandbox-local/SimpleMessageLib.json +0 -708
  192. package/deployments/bsc-sandbox-local/DVN.json +0 -1896
  193. package/deployments/bsc-sandbox-local/EndpointV2.json +0 -2955
  194. package/deployments/bsc-sandbox-local/Executor_Proxy.json +0 -380
  195. package/deployments/bsc-sandbox-local/NonceContractMock.json +0 -163
  196. package/deployments/bsc-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  197. package/deployments/bsc-sandbox-local/PriceFeed_Implementation.json +0 -912
  198. package/deployments/bsc-sandbox-local/ReceiveUln302.json +0 -954
  199. package/deployments/bsc-sandbox-local/SendUln301.json +0 -1569
  200. package/deployments/bsc-sandbox-local/SendUln302.json +0 -1527
  201. package/deployments/bsc-sandbox-local/SimpleMessageLib.json +0 -708
  202. package/deployments/bsc-sandbox-local/TreasuryFeeHandler.json +0 -125
  203. package/deployments/tron-sandbox-local/DVN.json +0 -1896
  204. package/deployments/tron-sandbox-local/DVNFeeLib.json +0 -387
  205. package/deployments/tron-sandbox-local/EndpointV2.json +0 -2955
  206. package/deployments/tron-sandbox-local/ExecutorFeeLib.json +0 -407
  207. package/deployments/tron-sandbox-local/ExecutorProxyAdmin.json +0 -283
  208. package/deployments/tron-sandbox-local/Executor_Implementation.json +0 -1591
  209. package/deployments/tron-sandbox-local/NonceContractMock.json +0 -163
  210. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  211. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +0 -912
  212. package/deployments/tron-sandbox-local/ReceiveUln301.json +0 -1264
  213. package/deployments/tron-sandbox-local/ReceiveUln302.json +0 -954
  214. package/deployments/tron-sandbox-local/SendUln301.json +0 -1569
  215. package/deployments/tron-sandbox-local/SendUln302.json +0 -1527
  216. package/deployments/tron-sandbox-local/SimpleMessageLib.json +0 -708
  217. package/deployments/tron-sandbox-local/Treasury.json +0 -412
  218. package/deployments/tron-sandbox-local/TreasuryFeeHandler.json +0 -125
@@ -0,0 +1,1646 @@
1
+ {
2
+ "address": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "address",
8
+ "name": "_endpoint",
9
+ "type": "address"
10
+ }
11
+ ],
12
+ "stateMutability": "nonpayable",
13
+ "type": "constructor"
14
+ },
15
+ {
16
+ "inputs": [
17
+ {
18
+ "internalType": "uint16",
19
+ "name": "code",
20
+ "type": "uint16"
21
+ },
22
+ {
23
+ "internalType": "bytes",
24
+ "name": "message",
25
+ "type": "bytes"
26
+ }
27
+ ],
28
+ "name": "SimulateRevert",
29
+ "type": "error"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "previousOwner",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address",
43
+ "name": "newOwner",
44
+ "type": "address"
45
+ }
46
+ ],
47
+ "name": "OwnershipTransferred",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "anonymous": false,
52
+ "inputs": [
53
+ {
54
+ "indexed": false,
55
+ "internalType": "uint32",
56
+ "name": "eid",
57
+ "type": "uint32"
58
+ },
59
+ {
60
+ "indexed": false,
61
+ "internalType": "bytes32",
62
+ "name": "peer",
63
+ "type": "bytes32"
64
+ },
65
+ {
66
+ "indexed": false,
67
+ "internalType": "bool",
68
+ "name": "active",
69
+ "type": "bool"
70
+ }
71
+ ],
72
+ "name": "SetPeer",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "stateMutability": "payable",
77
+ "type": "fallback"
78
+ },
79
+ {
80
+ "inputs": [],
81
+ "name": "CODE_MISS_SIMULATE_RESULT",
82
+ "outputs": [
83
+ {
84
+ "internalType": "uint16",
85
+ "name": "",
86
+ "type": "uint16"
87
+ }
88
+ ],
89
+ "stateMutability": "view",
90
+ "type": "function"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "CODE_PACKETS_OVERSIZE",
95
+ "outputs": [
96
+ {
97
+ "internalType": "uint16",
98
+ "name": "",
99
+ "type": "uint16"
100
+ }
101
+ ],
102
+ "stateMutability": "view",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [],
107
+ "name": "CODE_PACKETS_UNSORTED",
108
+ "outputs": [
109
+ {
110
+ "internalType": "uint16",
111
+ "name": "",
112
+ "type": "uint16"
113
+ }
114
+ ],
115
+ "stateMutability": "view",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "CODE_PRECRIME_FAILURE",
121
+ "outputs": [
122
+ {
123
+ "internalType": "uint16",
124
+ "name": "",
125
+ "type": "uint16"
126
+ }
127
+ ],
128
+ "stateMutability": "view",
129
+ "type": "function"
130
+ },
131
+ {
132
+ "inputs": [],
133
+ "name": "CODE_SUCCESS",
134
+ "outputs": [
135
+ {
136
+ "internalType": "uint16",
137
+ "name": "",
138
+ "type": "uint16"
139
+ }
140
+ ],
141
+ "stateMutability": "view",
142
+ "type": "function"
143
+ },
144
+ {
145
+ "inputs": [],
146
+ "name": "CONFIG_VERSION",
147
+ "outputs": [
148
+ {
149
+ "internalType": "uint16",
150
+ "name": "",
151
+ "type": "uint16"
152
+ }
153
+ ],
154
+ "stateMutability": "view",
155
+ "type": "function"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "PRECRIME_VERSION",
160
+ "outputs": [
161
+ {
162
+ "internalType": "uint16",
163
+ "name": "",
164
+ "type": "uint16"
165
+ }
166
+ ],
167
+ "stateMutability": "view",
168
+ "type": "function"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "components": [
174
+ {
175
+ "components": [
176
+ {
177
+ "internalType": "uint32",
178
+ "name": "srcEid",
179
+ "type": "uint32"
180
+ },
181
+ {
182
+ "internalType": "bytes32",
183
+ "name": "sender",
184
+ "type": "bytes32"
185
+ },
186
+ {
187
+ "internalType": "bytes",
188
+ "name": "message",
189
+ "type": "bytes"
190
+ },
191
+ {
192
+ "internalType": "uint64",
193
+ "name": "nonce",
194
+ "type": "uint64"
195
+ }
196
+ ],
197
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
198
+ "name": "context",
199
+ "type": "tuple"
200
+ },
201
+ {
202
+ "internalType": "bytes32",
203
+ "name": "guid",
204
+ "type": "bytes32"
205
+ },
206
+ {
207
+ "internalType": "bytes",
208
+ "name": "callParams",
209
+ "type": "bytes"
210
+ }
211
+ ],
212
+ "internalType": "struct IPreCrime.Packet[]",
213
+ "name": "_packets",
214
+ "type": "tuple[]"
215
+ }
216
+ ],
217
+ "name": "_simulateAndRevert",
218
+ "outputs": [],
219
+ "stateMutability": "payable",
220
+ "type": "function"
221
+ },
222
+ {
223
+ "inputs": [],
224
+ "name": "admin",
225
+ "outputs": [
226
+ {
227
+ "internalType": "address",
228
+ "name": "",
229
+ "type": "address"
230
+ }
231
+ ],
232
+ "stateMutability": "view",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [
237
+ {
238
+ "internalType": "uint32",
239
+ "name": "_eid",
240
+ "type": "uint32"
241
+ },
242
+ {
243
+ "internalType": "bytes32",
244
+ "name": "_peer",
245
+ "type": "bytes32"
246
+ }
247
+ ],
248
+ "name": "assertPeer",
249
+ "outputs": [],
250
+ "stateMutability": "view",
251
+ "type": "function"
252
+ },
253
+ {
254
+ "inputs": [
255
+ {
256
+ "internalType": "uint32[]",
257
+ "name": "_eids",
258
+ "type": "uint32[]"
259
+ },
260
+ {
261
+ "internalType": "uint8[]",
262
+ "name": "_types",
263
+ "type": "uint8[]"
264
+ },
265
+ {
266
+ "internalType": "bytes[]",
267
+ "name": "_options",
268
+ "type": "bytes[]"
269
+ }
270
+ ],
271
+ "name": "batchIncrement",
272
+ "outputs": [],
273
+ "stateMutability": "payable",
274
+ "type": "function"
275
+ },
276
+ {
277
+ "inputs": [
278
+ {
279
+ "internalType": "uint32",
280
+ "name": "_eid",
281
+ "type": "uint32"
282
+ },
283
+ {
284
+ "internalType": "uint8",
285
+ "name": "_type",
286
+ "type": "uint8"
287
+ },
288
+ {
289
+ "internalType": "bytes",
290
+ "name": "_options",
291
+ "type": "bytes"
292
+ }
293
+ ],
294
+ "name": "brokenIncrement",
295
+ "outputs": [],
296
+ "stateMutability": "payable",
297
+ "type": "function"
298
+ },
299
+ {
300
+ "inputs": [
301
+ {
302
+ "internalType": "uint32",
303
+ "name": "_srcEid",
304
+ "type": "uint32"
305
+ },
306
+ {
307
+ "internalType": "bytes32",
308
+ "name": "_sender",
309
+ "type": "bytes32"
310
+ },
311
+ {
312
+ "internalType": "uint64",
313
+ "name": "_nonce",
314
+ "type": "uint64"
315
+ },
316
+ {
317
+ "internalType": "bytes32",
318
+ "name": "_guid",
319
+ "type": "bytes32"
320
+ },
321
+ {
322
+ "internalType": "bytes",
323
+ "name": "_message",
324
+ "type": "bytes"
325
+ }
326
+ ],
327
+ "name": "burn",
328
+ "outputs": [],
329
+ "stateMutability": "nonpayable",
330
+ "type": "function"
331
+ },
332
+ {
333
+ "inputs": [],
334
+ "name": "composedCount",
335
+ "outputs": [
336
+ {
337
+ "internalType": "uint256",
338
+ "name": "",
339
+ "type": "uint256"
340
+ }
341
+ ],
342
+ "stateMutability": "view",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [],
347
+ "name": "count",
348
+ "outputs": [
349
+ {
350
+ "internalType": "uint256",
351
+ "name": "",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "stateMutability": "view",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "eid",
361
+ "outputs": [
362
+ {
363
+ "internalType": "uint32",
364
+ "name": "",
365
+ "type": "uint32"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "endpoint",
374
+ "outputs": [
375
+ {
376
+ "internalType": "contract ILayerZeroEndpoint",
377
+ "name": "",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "components": [
388
+ {
389
+ "components": [
390
+ {
391
+ "internalType": "uint32",
392
+ "name": "srcEid",
393
+ "type": "uint32"
394
+ },
395
+ {
396
+ "internalType": "bytes32",
397
+ "name": "sender",
398
+ "type": "bytes32"
399
+ },
400
+ {
401
+ "internalType": "bytes",
402
+ "name": "message",
403
+ "type": "bytes"
404
+ },
405
+ {
406
+ "internalType": "uint64",
407
+ "name": "nonce",
408
+ "type": "uint64"
409
+ }
410
+ ],
411
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
412
+ "name": "context",
413
+ "type": "tuple"
414
+ },
415
+ {
416
+ "internalType": "bytes32",
417
+ "name": "guid",
418
+ "type": "bytes32"
419
+ },
420
+ {
421
+ "internalType": "bytes",
422
+ "name": "callParams",
423
+ "type": "bytes"
424
+ }
425
+ ],
426
+ "internalType": "struct IPreCrime.Packet[]",
427
+ "name": "_packets",
428
+ "type": "tuple[]"
429
+ }
430
+ ],
431
+ "name": "getPrecrimeConfig",
432
+ "outputs": [
433
+ {
434
+ "internalType": "bytes",
435
+ "name": "",
436
+ "type": "bytes"
437
+ }
438
+ ],
439
+ "stateMutability": "view",
440
+ "type": "function"
441
+ },
442
+ {
443
+ "inputs": [
444
+ {
445
+ "internalType": "uint32",
446
+ "name": "",
447
+ "type": "uint32"
448
+ }
449
+ ],
450
+ "name": "inboundCount",
451
+ "outputs": [
452
+ {
453
+ "internalType": "uint256",
454
+ "name": "",
455
+ "type": "uint256"
456
+ }
457
+ ],
458
+ "stateMutability": "view",
459
+ "type": "function"
460
+ },
461
+ {
462
+ "inputs": [
463
+ {
464
+ "internalType": "uint32",
465
+ "name": "_eid",
466
+ "type": "uint32"
467
+ },
468
+ {
469
+ "internalType": "uint8",
470
+ "name": "_type",
471
+ "type": "uint8"
472
+ },
473
+ {
474
+ "internalType": "bytes",
475
+ "name": "_options",
476
+ "type": "bytes"
477
+ }
478
+ ],
479
+ "name": "increment",
480
+ "outputs": [],
481
+ "stateMutability": "payable",
482
+ "type": "function"
483
+ },
484
+ {
485
+ "inputs": [
486
+ {
487
+ "internalType": "uint32",
488
+ "name": "_eid",
489
+ "type": "uint32"
490
+ },
491
+ {
492
+ "internalType": "bytes32",
493
+ "name": "_peer",
494
+ "type": "bytes32"
495
+ }
496
+ ],
497
+ "name": "isPeer",
498
+ "outputs": [
499
+ {
500
+ "internalType": "bool",
501
+ "name": "",
502
+ "type": "bool"
503
+ }
504
+ ],
505
+ "stateMutability": "view",
506
+ "type": "function"
507
+ },
508
+ {
509
+ "inputs": [],
510
+ "name": "localEid",
511
+ "outputs": [
512
+ {
513
+ "internalType": "uint32",
514
+ "name": "",
515
+ "type": "uint32"
516
+ }
517
+ ],
518
+ "stateMutability": "view",
519
+ "type": "function"
520
+ },
521
+ {
522
+ "inputs": [
523
+ {
524
+ "internalType": "address",
525
+ "name": "",
526
+ "type": "address"
527
+ },
528
+ {
529
+ "internalType": "bytes32",
530
+ "name": "",
531
+ "type": "bytes32"
532
+ },
533
+ {
534
+ "internalType": "bytes",
535
+ "name": "_message",
536
+ "type": "bytes"
537
+ },
538
+ {
539
+ "internalType": "address",
540
+ "name": "",
541
+ "type": "address"
542
+ },
543
+ {
544
+ "internalType": "bytes",
545
+ "name": "",
546
+ "type": "bytes"
547
+ }
548
+ ],
549
+ "name": "lzCompose",
550
+ "outputs": [],
551
+ "stateMutability": "payable",
552
+ "type": "function"
553
+ },
554
+ {
555
+ "inputs": [],
556
+ "name": "lzEndpoint",
557
+ "outputs": [
558
+ {
559
+ "internalType": "contract ILayerZeroEndpoint",
560
+ "name": "",
561
+ "type": "address"
562
+ }
563
+ ],
564
+ "stateMutability": "view",
565
+ "type": "function"
566
+ },
567
+ {
568
+ "inputs": [
569
+ {
570
+ "components": [
571
+ {
572
+ "internalType": "uint32",
573
+ "name": "srcEid",
574
+ "type": "uint32"
575
+ },
576
+ {
577
+ "internalType": "bytes32",
578
+ "name": "sender",
579
+ "type": "bytes32"
580
+ },
581
+ {
582
+ "internalType": "bytes",
583
+ "name": "message",
584
+ "type": "bytes"
585
+ },
586
+ {
587
+ "internalType": "uint64",
588
+ "name": "nonce",
589
+ "type": "uint64"
590
+ }
591
+ ],
592
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
593
+ "name": "_context",
594
+ "type": "tuple"
595
+ },
596
+ {
597
+ "internalType": "bytes32",
598
+ "name": "_guid",
599
+ "type": "bytes32"
600
+ },
601
+ {
602
+ "internalType": "address",
603
+ "name": "_executor",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "internalType": "bytes",
608
+ "name": "_callerParams",
609
+ "type": "bytes"
610
+ }
611
+ ],
612
+ "name": "lzReceive",
613
+ "outputs": [],
614
+ "stateMutability": "payable",
615
+ "type": "function"
616
+ },
617
+ {
618
+ "inputs": [
619
+ {
620
+ "internalType": "uint32",
621
+ "name": "",
622
+ "type": "uint32"
623
+ },
624
+ {
625
+ "internalType": "bytes32",
626
+ "name": "",
627
+ "type": "bytes32"
628
+ }
629
+ ],
630
+ "name": "maxNonceByPath",
631
+ "outputs": [
632
+ {
633
+ "internalType": "uint64",
634
+ "name": "",
635
+ "type": "uint64"
636
+ }
637
+ ],
638
+ "stateMutability": "view",
639
+ "type": "function"
640
+ },
641
+ {
642
+ "inputs": [
643
+ {
644
+ "internalType": "uint32",
645
+ "name": "_srcEid",
646
+ "type": "uint32"
647
+ },
648
+ {
649
+ "internalType": "bytes32",
650
+ "name": "_sender",
651
+ "type": "bytes32"
652
+ }
653
+ ],
654
+ "name": "nextNonce",
655
+ "outputs": [
656
+ {
657
+ "internalType": "uint64",
658
+ "name": "",
659
+ "type": "uint64"
660
+ }
661
+ ],
662
+ "stateMutability": "view",
663
+ "type": "function"
664
+ },
665
+ {
666
+ "inputs": [],
667
+ "name": "orderedNonce",
668
+ "outputs": [
669
+ {
670
+ "internalType": "bool",
671
+ "name": "",
672
+ "type": "bool"
673
+ }
674
+ ],
675
+ "stateMutability": "view",
676
+ "type": "function"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "internalType": "uint32",
682
+ "name": "",
683
+ "type": "uint32"
684
+ }
685
+ ],
686
+ "name": "outboundCount",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "view",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [],
699
+ "name": "owner",
700
+ "outputs": [
701
+ {
702
+ "internalType": "address",
703
+ "name": "",
704
+ "type": "address"
705
+ }
706
+ ],
707
+ "stateMutability": "view",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [],
712
+ "name": "pAdmin",
713
+ "outputs": [
714
+ {
715
+ "internalType": "address",
716
+ "name": "",
717
+ "type": "address"
718
+ }
719
+ ],
720
+ "stateMutability": "view",
721
+ "type": "function"
722
+ },
723
+ {
724
+ "inputs": [],
725
+ "name": "pMaxBatchSize",
726
+ "outputs": [
727
+ {
728
+ "internalType": "uint64",
729
+ "name": "",
730
+ "type": "uint64"
731
+ }
732
+ ],
733
+ "stateMutability": "view",
734
+ "type": "function"
735
+ },
736
+ {
737
+ "inputs": [
738
+ {
739
+ "internalType": "uint32",
740
+ "name": "",
741
+ "type": "uint32"
742
+ }
743
+ ],
744
+ "name": "peers",
745
+ "outputs": [
746
+ {
747
+ "internalType": "bytes32",
748
+ "name": "",
749
+ "type": "bytes32"
750
+ }
751
+ ],
752
+ "stateMutability": "view",
753
+ "type": "function"
754
+ },
755
+ {
756
+ "inputs": [
757
+ {
758
+ "components": [
759
+ {
760
+ "components": [
761
+ {
762
+ "internalType": "uint32",
763
+ "name": "srcEid",
764
+ "type": "uint32"
765
+ },
766
+ {
767
+ "internalType": "bytes32",
768
+ "name": "sender",
769
+ "type": "bytes32"
770
+ },
771
+ {
772
+ "internalType": "bytes",
773
+ "name": "message",
774
+ "type": "bytes"
775
+ },
776
+ {
777
+ "internalType": "uint64",
778
+ "name": "nonce",
779
+ "type": "uint64"
780
+ }
781
+ ],
782
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
783
+ "name": "context",
784
+ "type": "tuple"
785
+ },
786
+ {
787
+ "internalType": "bytes32",
788
+ "name": "guid",
789
+ "type": "bytes32"
790
+ },
791
+ {
792
+ "internalType": "bytes",
793
+ "name": "callParams",
794
+ "type": "bytes"
795
+ }
796
+ ],
797
+ "internalType": "struct IPreCrime.Packet[]",
798
+ "name": "_packets",
799
+ "type": "tuple[]"
800
+ },
801
+ {
802
+ "internalType": "bytes[]",
803
+ "name": "_simulation",
804
+ "type": "bytes[]"
805
+ }
806
+ ],
807
+ "name": "precrime",
808
+ "outputs": [
809
+ {
810
+ "internalType": "uint16",
811
+ "name": "code",
812
+ "type": "uint16"
813
+ },
814
+ {
815
+ "internalType": "bytes",
816
+ "name": "reason",
817
+ "type": "bytes"
818
+ }
819
+ ],
820
+ "stateMutability": "view",
821
+ "type": "function"
822
+ },
823
+ {
824
+ "inputs": [
825
+ {
826
+ "internalType": "uint32",
827
+ "name": "",
828
+ "type": "uint32"
829
+ }
830
+ ],
831
+ "name": "precrimeEidToPeer",
832
+ "outputs": [
833
+ {
834
+ "internalType": "bytes32",
835
+ "name": "",
836
+ "type": "bytes32"
837
+ }
838
+ ],
839
+ "stateMutability": "view",
840
+ "type": "function"
841
+ },
842
+ {
843
+ "inputs": [
844
+ {
845
+ "internalType": "uint256",
846
+ "name": "",
847
+ "type": "uint256"
848
+ }
849
+ ],
850
+ "name": "precrimeEids",
851
+ "outputs": [
852
+ {
853
+ "internalType": "uint32",
854
+ "name": "",
855
+ "type": "uint32"
856
+ }
857
+ ],
858
+ "stateMutability": "view",
859
+ "type": "function"
860
+ },
861
+ {
862
+ "inputs": [
863
+ {
864
+ "internalType": "uint256",
865
+ "name": "",
866
+ "type": "uint256"
867
+ }
868
+ ],
869
+ "name": "precrimePeers",
870
+ "outputs": [
871
+ {
872
+ "internalType": "bytes32",
873
+ "name": "",
874
+ "type": "bytes32"
875
+ }
876
+ ],
877
+ "stateMutability": "view",
878
+ "type": "function"
879
+ },
880
+ {
881
+ "inputs": [],
882
+ "name": "precrimeVersion",
883
+ "outputs": [
884
+ {
885
+ "internalType": "uint16",
886
+ "name": "",
887
+ "type": "uint16"
888
+ }
889
+ ],
890
+ "stateMutability": "pure",
891
+ "type": "function"
892
+ },
893
+ {
894
+ "inputs": [
895
+ {
896
+ "internalType": "uint32",
897
+ "name": "_eid",
898
+ "type": "uint32"
899
+ },
900
+ {
901
+ "internalType": "uint8",
902
+ "name": "_type",
903
+ "type": "uint8"
904
+ },
905
+ {
906
+ "internalType": "bytes",
907
+ "name": "_options",
908
+ "type": "bytes"
909
+ }
910
+ ],
911
+ "name": "quote",
912
+ "outputs": [
913
+ {
914
+ "internalType": "uint256",
915
+ "name": "nativeFee",
916
+ "type": "uint256"
917
+ },
918
+ {
919
+ "internalType": "uint256",
920
+ "name": "zroFee",
921
+ "type": "uint256"
922
+ }
923
+ ],
924
+ "stateMutability": "view",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [],
929
+ "name": "renounceOwnership",
930
+ "outputs": [],
931
+ "stateMutability": "nonpayable",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [
936
+ {
937
+ "internalType": "address",
938
+ "name": "_messageLib",
939
+ "type": "address"
940
+ },
941
+ {
942
+ "internalType": "uint32[]",
943
+ "name": "_eids",
944
+ "type": "uint32[]"
945
+ }
946
+ ],
947
+ "name": "resetConfig",
948
+ "outputs": [],
949
+ "stateMutability": "nonpayable",
950
+ "type": "function"
951
+ },
952
+ {
953
+ "inputs": [
954
+ {
955
+ "internalType": "uint32",
956
+ "name": "_eid",
957
+ "type": "uint32"
958
+ }
959
+ ],
960
+ "name": "safeGetPeer",
961
+ "outputs": [
962
+ {
963
+ "internalType": "bytes32",
964
+ "name": "peer",
965
+ "type": "bytes32"
966
+ }
967
+ ],
968
+ "stateMutability": "view",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [
973
+ {
974
+ "internalType": "address",
975
+ "name": "_admin",
976
+ "type": "address"
977
+ }
978
+ ],
979
+ "name": "setAdmin",
980
+ "outputs": [],
981
+ "stateMutability": "nonpayable",
982
+ "type": "function"
983
+ },
984
+ {
985
+ "inputs": [
986
+ {
987
+ "internalType": "address",
988
+ "name": "_messageLib",
989
+ "type": "address"
990
+ },
991
+ {
992
+ "internalType": "uint32",
993
+ "name": "_eid",
994
+ "type": "uint32"
995
+ },
996
+ {
997
+ "internalType": "uint32",
998
+ "name": "_configType",
999
+ "type": "uint32"
1000
+ },
1001
+ {
1002
+ "internalType": "bytes",
1003
+ "name": "_config",
1004
+ "type": "bytes"
1005
+ }
1006
+ ],
1007
+ "name": "setConfig",
1008
+ "outputs": [],
1009
+ "stateMutability": "nonpayable",
1010
+ "type": "function"
1011
+ },
1012
+ {
1013
+ "inputs": [
1014
+ {
1015
+ "internalType": "bool",
1016
+ "name": "_orderedNonce",
1017
+ "type": "bool"
1018
+ }
1019
+ ],
1020
+ "name": "setOrderedNonce",
1021
+ "outputs": [],
1022
+ "stateMutability": "nonpayable",
1023
+ "type": "function"
1024
+ },
1025
+ {
1026
+ "inputs": [
1027
+ {
1028
+ "internalType": "uint32",
1029
+ "name": "_eid",
1030
+ "type": "uint32"
1031
+ },
1032
+ {
1033
+ "internalType": "bytes32",
1034
+ "name": "_peer",
1035
+ "type": "bytes32"
1036
+ },
1037
+ {
1038
+ "internalType": "bool",
1039
+ "name": "_active",
1040
+ "type": "bool"
1041
+ }
1042
+ ],
1043
+ "name": "setPeer",
1044
+ "outputs": [],
1045
+ "stateMutability": "nonpayable",
1046
+ "type": "function"
1047
+ },
1048
+ {
1049
+ "inputs": [
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "_admin",
1053
+ "type": "address"
1054
+ }
1055
+ ],
1056
+ "name": "setPrecrimeAdmin",
1057
+ "outputs": [],
1058
+ "stateMutability": "nonpayable",
1059
+ "type": "function"
1060
+ },
1061
+ {
1062
+ "inputs": [
1063
+ {
1064
+ "internalType": "uint64",
1065
+ "name": "_maxBatchSize",
1066
+ "type": "uint64"
1067
+ }
1068
+ ],
1069
+ "name": "setPrecrimeMaxBatchSize",
1070
+ "outputs": [],
1071
+ "stateMutability": "nonpayable",
1072
+ "type": "function"
1073
+ },
1074
+ {
1075
+ "inputs": [
1076
+ {
1077
+ "internalType": "uint32[]",
1078
+ "name": "_eids",
1079
+ "type": "uint32[]"
1080
+ },
1081
+ {
1082
+ "internalType": "bytes32[]",
1083
+ "name": "_peers",
1084
+ "type": "bytes32[]"
1085
+ }
1086
+ ],
1087
+ "name": "setPrecrimePeers",
1088
+ "outputs": [],
1089
+ "stateMutability": "nonpayable",
1090
+ "type": "function"
1091
+ },
1092
+ {
1093
+ "inputs": [
1094
+ {
1095
+ "internalType": "uint32",
1096
+ "name": "_eid",
1097
+ "type": "uint32"
1098
+ },
1099
+ {
1100
+ "internalType": "address",
1101
+ "name": "_newLib",
1102
+ "type": "address"
1103
+ },
1104
+ {
1105
+ "internalType": "uint256",
1106
+ "name": "_gracePeriod",
1107
+ "type": "uint256"
1108
+ }
1109
+ ],
1110
+ "name": "setReceiveMessageLib",
1111
+ "outputs": [],
1112
+ "stateMutability": "nonpayable",
1113
+ "type": "function"
1114
+ },
1115
+ {
1116
+ "inputs": [
1117
+ {
1118
+ "internalType": "uint32",
1119
+ "name": "_eid",
1120
+ "type": "uint32"
1121
+ },
1122
+ {
1123
+ "internalType": "address",
1124
+ "name": "_lib",
1125
+ "type": "address"
1126
+ },
1127
+ {
1128
+ "internalType": "uint256",
1129
+ "name": "_timeout",
1130
+ "type": "uint256"
1131
+ }
1132
+ ],
1133
+ "name": "setReceiveMessageLibTimeout",
1134
+ "outputs": [],
1135
+ "stateMutability": "nonpayable",
1136
+ "type": "function"
1137
+ },
1138
+ {
1139
+ "inputs": [
1140
+ {
1141
+ "internalType": "uint32",
1142
+ "name": "_eid",
1143
+ "type": "uint32"
1144
+ },
1145
+ {
1146
+ "internalType": "address",
1147
+ "name": "_newLib",
1148
+ "type": "address"
1149
+ }
1150
+ ],
1151
+ "name": "setSendMessageLib",
1152
+ "outputs": [],
1153
+ "stateMutability": "nonpayable",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "components": [
1160
+ {
1161
+ "components": [
1162
+ {
1163
+ "internalType": "uint32",
1164
+ "name": "srcEid",
1165
+ "type": "uint32"
1166
+ },
1167
+ {
1168
+ "internalType": "bytes32",
1169
+ "name": "sender",
1170
+ "type": "bytes32"
1171
+ },
1172
+ {
1173
+ "internalType": "bytes",
1174
+ "name": "message",
1175
+ "type": "bytes"
1176
+ },
1177
+ {
1178
+ "internalType": "uint64",
1179
+ "name": "nonce",
1180
+ "type": "uint64"
1181
+ }
1182
+ ],
1183
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
1184
+ "name": "context",
1185
+ "type": "tuple"
1186
+ },
1187
+ {
1188
+ "internalType": "bytes32",
1189
+ "name": "guid",
1190
+ "type": "bytes32"
1191
+ },
1192
+ {
1193
+ "internalType": "bytes",
1194
+ "name": "callParams",
1195
+ "type": "bytes"
1196
+ }
1197
+ ],
1198
+ "internalType": "struct IPreCrime.Packet[]",
1199
+ "name": "_packets",
1200
+ "type": "tuple[]"
1201
+ }
1202
+ ],
1203
+ "name": "simulate",
1204
+ "outputs": [
1205
+ {
1206
+ "internalType": "uint16",
1207
+ "name": "code",
1208
+ "type": "uint16"
1209
+ },
1210
+ {
1211
+ "internalType": "bytes",
1212
+ "name": "data",
1213
+ "type": "bytes"
1214
+ }
1215
+ ],
1216
+ "stateMutability": "payable",
1217
+ "type": "function"
1218
+ },
1219
+ {
1220
+ "inputs": [
1221
+ {
1222
+ "components": [
1223
+ {
1224
+ "components": [
1225
+ {
1226
+ "internalType": "uint32",
1227
+ "name": "srcEid",
1228
+ "type": "uint32"
1229
+ },
1230
+ {
1231
+ "internalType": "bytes32",
1232
+ "name": "sender",
1233
+ "type": "bytes32"
1234
+ },
1235
+ {
1236
+ "internalType": "bytes",
1237
+ "name": "message",
1238
+ "type": "bytes"
1239
+ },
1240
+ {
1241
+ "internalType": "uint64",
1242
+ "name": "nonce",
1243
+ "type": "uint64"
1244
+ }
1245
+ ],
1246
+ "internalType": "struct ILayerZeroReceiver.MessagingContext",
1247
+ "name": "context",
1248
+ "type": "tuple"
1249
+ },
1250
+ {
1251
+ "internalType": "bytes32",
1252
+ "name": "guid",
1253
+ "type": "bytes32"
1254
+ },
1255
+ {
1256
+ "internalType": "bytes",
1257
+ "name": "callParams",
1258
+ "type": "bytes"
1259
+ }
1260
+ ],
1261
+ "internalType": "struct IPreCrime.Packet[]",
1262
+ "name": "",
1263
+ "type": "tuple[]"
1264
+ }
1265
+ ],
1266
+ "name": "simulateView",
1267
+ "outputs": [
1268
+ {
1269
+ "internalType": "uint16",
1270
+ "name": "",
1271
+ "type": "uint16"
1272
+ },
1273
+ {
1274
+ "internalType": "bytes",
1275
+ "name": "",
1276
+ "type": "bytes"
1277
+ }
1278
+ ],
1279
+ "stateMutability": "pure",
1280
+ "type": "function"
1281
+ },
1282
+ {
1283
+ "inputs": [
1284
+ {
1285
+ "internalType": "uint32",
1286
+ "name": "_srcEid",
1287
+ "type": "uint32"
1288
+ },
1289
+ {
1290
+ "internalType": "bytes32",
1291
+ "name": "_sender",
1292
+ "type": "bytes32"
1293
+ },
1294
+ {
1295
+ "internalType": "uint64",
1296
+ "name": "_nonce",
1297
+ "type": "uint64"
1298
+ }
1299
+ ],
1300
+ "name": "skipInboundNonce",
1301
+ "outputs": [],
1302
+ "stateMutability": "nonpayable",
1303
+ "type": "function"
1304
+ },
1305
+ {
1306
+ "inputs": [
1307
+ {
1308
+ "internalType": "address",
1309
+ "name": "_messageLib",
1310
+ "type": "address"
1311
+ },
1312
+ {
1313
+ "internalType": "uint32[]",
1314
+ "name": "_eids",
1315
+ "type": "uint32[]"
1316
+ }
1317
+ ],
1318
+ "name": "snapshotConfig",
1319
+ "outputs": [],
1320
+ "stateMutability": "nonpayable",
1321
+ "type": "function"
1322
+ },
1323
+ {
1324
+ "inputs": [
1325
+ {
1326
+ "internalType": "address",
1327
+ "name": "newOwner",
1328
+ "type": "address"
1329
+ }
1330
+ ],
1331
+ "name": "transferOwnership",
1332
+ "outputs": [],
1333
+ "stateMutability": "nonpayable",
1334
+ "type": "function"
1335
+ },
1336
+ {
1337
+ "inputs": [],
1338
+ "name": "version",
1339
+ "outputs": [
1340
+ {
1341
+ "internalType": "uint256",
1342
+ "name": "",
1343
+ "type": "uint256"
1344
+ }
1345
+ ],
1346
+ "stateMutability": "view",
1347
+ "type": "function"
1348
+ },
1349
+ {
1350
+ "inputs": [
1351
+ {
1352
+ "internalType": "address payable",
1353
+ "name": "_to",
1354
+ "type": "address"
1355
+ },
1356
+ {
1357
+ "internalType": "uint256",
1358
+ "name": "_amount",
1359
+ "type": "uint256"
1360
+ }
1361
+ ],
1362
+ "name": "withdraw",
1363
+ "outputs": [],
1364
+ "stateMutability": "nonpayable",
1365
+ "type": "function"
1366
+ },
1367
+ {
1368
+ "stateMutability": "payable",
1369
+ "type": "receive"
1370
+ }
1371
+ ],
1372
+ "transactionHash": "0xc6a5bbad07c8fe2a705a0f3b110852b8c3bcbe22ca66e666ef848be64cdab62e",
1373
+ "receipt": {
1374
+ "to": null,
1375
+ "from": "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955",
1376
+ "contractAddress": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
1377
+ "transactionIndex": 0,
1378
+ "gasUsed": "5341982",
1379
+ "logsBloom": "0x20000000000000000002000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000400000000000000000000000000020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000080000000000000000000000000000000000000000000000000000000040000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000",
1380
+ "blockHash": "0x45752cb38adbeabae9303081c3fefba482c0964417e7bcbe054b19733acdc500",
1381
+ "transactionHash": "0xc6a5bbad07c8fe2a705a0f3b110852b8c3bcbe22ca66e666ef848be64cdab62e",
1382
+ "logs": [
1383
+ {
1384
+ "transactionIndex": 0,
1385
+ "blockNumber": 141,
1386
+ "transactionHash": "0xc6a5bbad07c8fe2a705a0f3b110852b8c3bcbe22ca66e666ef848be64cdab62e",
1387
+ "address": "0xef11D1c2aA48826D4c41e54ab82D1Ff5Ad8A64Ca",
1388
+ "topics": [
1389
+ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
1390
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
1391
+ "0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"
1392
+ ],
1393
+ "data": "0x",
1394
+ "logIndex": 0,
1395
+ "blockHash": "0x45752cb38adbeabae9303081c3fefba482c0964417e7bcbe054b19733acdc500"
1396
+ }
1397
+ ],
1398
+ "blockNumber": 141,
1399
+ "cumulativeGasUsed": "5341982",
1400
+ "status": 1,
1401
+ "byzantium": true
1402
+ },
1403
+ "args": [
1404
+ "0x71C95911E9a5D330f4D621842EC243EE1343292e"
1405
+ ],
1406
+ "numDeployments": 1,
1407
+ "solcInputHash": "c8b47804361e5cf76333cc7a8dd4cabc",
1408
+ "bytecode": "0x60c060405260016002553480156200001657600080fd5b50604051620060a4380380620060a48339810160408190526200003991620001e5565b8080808080620000493362000195565b6001600160a01b03166080819052600580546001600160a01b031916331790556040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa158015620000a5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000cb919062000217565b6005805463ffffffff92909216600160a01b0263ffffffff60a01b19909216919091179055506001600160a01b03811660a08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000217565b600a805463ffffffff929092166001600160c01b0319909216919091173364010000000002179055506200023f92505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215620001f857600080fd5b81516001600160a01b03811681146200021057600080fd5b9392505050565b6000602082840312156200022a57600080fd5b815163ffffffff811681146200021057600080fd5b60805160a051615ddd620002c76000396000818161086b01526120d701526000818161064901528181610aab01528181610b400152818161130f01528181611482015281816116dd015281816117c00152818161190d0152818161197901528181611a7e01528181611c8301528181611ef5015281816128770152612c2e0152615ddd6000f3fe6080604052600436106102f85760003560e01c80636ece7d3611610190578063baa460fd116100dc578063e2a0844e1161008d578063e2a0844e14610998578063e51ac4b0146109b8578063e76d614f146109df578063e9b1796c14610a0c578063f2fde38b14610a2c578063f3fef3a314610a4c578063f851a44014610a6c578063f95d1404146104dd57005b8063baa460fd146108ba578063bb0b6a53146108da578063bc4374f914610907578063c6be4b9b14610927578063c95c55be1461093d578063d0a1026014610950578063d22446ce1461096357005b80638da5cb5b116101415780638da5cb5b146107d557806392d99a7f146107f357806398166ccc146108135780639e7fffcc14610826578063ae14023b14610846578063b353aaa714610859578063b7abbb5d1461088d578063b7bc8acd146108a057005b80636ece7d3614610703578063704b6c02146107235780637112f86f14610743578063715018a61461076357806372607537146107785780637624f505146107955780637d25a05e146107b557005b806335d671de1161024f5780635a0dfe4d116102005780635a0dfe4d146105c75780635b849af6146105f75780635bf88a00146106175780635e280f11146106375780636052d3c714610683578063622f17f6146106965780636a0494af146106c35780636d41812d146106e357005b806335d671de146104f2578063416ecebf14610520578063472641c1146104dd578063542e7b561461054457806354b3ab691461055757806354fd4d501461058457806356a472891461059a57005b80631f2fac53116102a95780631f2fac53146103de578063257f4e051461043757806326b27f841461044d57806329c246281461046d5780632c79305d146104a257806330515e56146104b657806334e30097146104dd57005b806303e83c13146103015780630638fb641461032157806306661abd1461034f5780630678327f146103735780630e735a631461039357806312fb9ea5146103a957806317c9efb0146103c957005b366102ff57005b005b34801561030d57600080fd5b506102ff61031c366004614762565b610a8c565b34801561032d57600080fd5b5061033761019081565b60405161ffff90911681526020015b60405180910390f35b34801561035b57600080fd5b5061036560035481565b604051908152602001610346565b34801561037f57600080fd5b506102ff61038e366004614821565b610b21565b34801561039f57600080fd5b5061033761019181565b3480156103b557600080fd5b506103656103c4366004614875565b610bb0565b3480156103d557600080fd5b50610337600081565b3480156103ea57600080fd5b5061041f6103f936600461488e565b60066020908152600092835260408084209091529082529020546001600160401b031681565b6040516001600160401b039091168152602001610346565b34801561044357600080fd5b5061036560045481565b34801561045957600080fd5b506103656104683660046148ba565b610bd1565b34801561047957600080fd5b5061048d610488366004614875565b610c35565b60405163ffffffff9091168152602001610346565b3480156104ae57600080fd5b506001610337565b3480156104c257600080fd5b50600a5461041f90600160c01b90046001600160401b031681565b3480156104e957600080fd5b50610337600181565b3480156104fe57600080fd5b5061051261050d3660046148d7565b610c6f565b604051610346929190614968565b34801561052c57600080fd5b5060055461048d90600160a01b900463ffffffff1681565b6102ff610552366004614985565b610caf565b34801561056357600080fd5b506103656105723660046148ba565b600d6020526000908152604090205481565b34801561059057600080fd5b5061036560025481565b3480156105a657600080fd5b506103656105b53660046148ba565b60086020526000908152604090205481565b3480156105d357600080fd5b506105e76105e236600461488e565b610e75565b6040519015158152602001610346565b34801561060357600080fd5b506102ff610612366004614a2e565b610e94565b34801561062357600080fd5b506102ff610632366004614b89565b610eaf565b34801561064357600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610346565b6105126106913660046148d7565b610f82565b3480156106a257600080fd5b506103656106b13660046148ba565b60096020526000908152604090205481565b3480156106cf57600080fd5b506105126106de366004614c4a565b611178565b3480156106ef57600080fd5b506102ff6106fe366004614cca565b6112f0565b34801561070f57600080fd5b506102ff61071e366004614d33565b6113a4565b34801561072f57600080fd5b506102ff61073e366004614d50565b6113fd565b34801561074f57600080fd5b506102ff61075e366004614d6d565b611449565b34801561076f57600080fd5b506102ff611552565b34801561078457600080fd5b50600a5461048d9063ffffffff1681565b3480156107a157600080fd5b506102ff6107b0366004614daf565b611566565b3480156107c157600080fd5b5061041f6107d036600461488e565b61162b565b3480156107e157600080fd5b506000546001600160a01b031661066b565b3480156107ff57600080fd5b506102ff61080e366004614d50565b61167d565b6102ff610821366004614ded565b6116db565b34801561083257600080fd5b506102ff610841366004614821565b6117a1565b6102ff6108543660046148d7565b6117f9565b34801561086557600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff61089b366004614e7d565b61186c565b3480156108ac57600080fd5b506007546105e79060ff1681565b3480156108c657600080fd5b506102ff6108d5366004614ed3565b6118ee565b3480156108e657600080fd5b506103656108f53660046148ba565b60016020526000908152604090205481565b34801561091357600080fd5b506102ff610922366004614f14565b611946565b34801561093357600080fd5b5061033761019281565b6102ff61094b366004614e7d565b6119d1565b6102ff61095e366004614f4d565b611a73565b34801561096f57600080fd5b5061098361097e366004614e7d565b611bf6565b60408051928352602083019190915201610346565b3480156109a457600080fd5b506102ff6109b3366004614ed3565b611c64565b3480156109c457600080fd5b50600a5461066b90600160201b90046001600160a01b031681565b3480156109eb57600080fd5b506109ff6109fa3660046148d7565b611cbc565b6040516103469190614fed565b348015610a1857600080fd5b506102ff610a2736600461488e565b611d18565b348015610a3857600080fd5b506102ff610a47366004614d50565b611d67565b348015610a5857600080fd5b506102ff610a67366004615000565b611de0565b348015610a7857600080fd5b5060055461066b906001600160a01b031681565b610a94611e40565b6040516303e83c1360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303e83c1390610ae89088908890889088908890600401615047565b600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050505050505050565b610b29611e40565b604051630678327f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630678327f90610b799086908690869060040161508b565b600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b50505050505050565b600c8181548110610bc057600080fd5b600091825260209091200154905081565b63ffffffff811660009081526001602052604090205480610c305760405162461bcd60e51b81526020600482015260146024820152731419595c8e881c19595c881b9bdd08199bdd5b9960621b60448201526064015b60405180910390fd5b919050565b600b8181548110610c4557600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152600090606090606401610c27565b8481148015610cbd57508483145b610d095760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610c27565b610d116145b8565b3460005b87811015610b16576000610d2a60018a6150ff565b8214610d365730610d38565b335b90506000610d7b898985818110610d5157610d51615112565b9050602002016020810190610d669190615128565b600554600160a01b900463ffffffff16611e9a565b9050610e1d8b8b85818110610d9257610d92615112565b9050602002016020810190610da791906148ba565b82898987818110610dba57610dba615112565b9050602002810190610dcc9190615143565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528c815260208101919091529250889150611edc9050565b9450610e4e8b8b85818110610e3457610e34615112565b9050602002016020810190610e4991906148ba565b611fc1565b604085015151610e5e90856150ff565b935050508080610e6d90615189565b915050610d15565b63ffffffff821660009081526001602052604090205481145b92915050565b610e9c611e40565b6007805460ff1916911515919091179055565b600a54600160201b90046001600160a01b03163314610ee05760405162461bcd60e51b8152600401610c27906151a2565b8151610ef390600b9060208501906145ff565b508051610f0790600c9060208401906146aa565b5060005b8251811015610f7d57818181518110610f2657610f26615112565b6020026020010151600d6000858481518110610f4457610f44615112565b602002602001015163ffffffff1663ffffffff168152602001908152602001600020819055508080610f7590615189565b915050610f0b565b505050565b60006060323314610fd55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920454f412063616e2063616c6c2073696d756c6174650000000000006044820152606401610c27565b610fdf8484611fea565b909250905061ffff821661117157600080306001600160a01b03163463ae14023b60e01b888860405160240161101692919061520b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611054919061531f565b60006040518083038185875af1925050503d8060008114611091576040519150601f19603f3d011682016040523d82523d6000602084013e611096565b606091505b50909250905034156110d05760405133903480156108fc02916000818181858888f193505050501580156110ce573d6000803e3d6000fd5b505b811561112a5760405162461bcd60e51b8152602060048201526024808201527f73696d756c6174652073686f756c64206e657665722072657475726e207375636044820152636365737360e01b6064820152608401610c27565b6111338161227d565b909450925061ffff841661116e57600a5460405161115c9163ffffffff1690859060200161533b565b60405160208183030381529060405292505b50505b9250929050565b6000606081836001600160401b0381111561119557611195614a49565b6040519080825280602002602001820160405280156111c857816020015b60608152602001906001900390816111b35790505b5090506000846001600160401b038111156111e5576111e5614a49565b60405190808252806020026020018201604052801561120e578160200160208202803683370190505b50905060005b858110156112b45760008088888481811061123157611231615112565b90506020028101906112439190615143565b81019061125091906153d2565b915091508184848151811061126757611267615112565b602002602001019063ffffffff16908163ffffffff16815250508085848151811061129457611294615112565b6020026020010181905250505080806112ac90615189565b915050611214565b506112c08888836122cc565b909450925061ffff8416156112d65750506112e7565b6112df8261247d565b909450925050505b94509492505050565b6112f8611e40565b604051635a898aef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b51315de9061134e90899089908990899089908990600401615417565b6020604051808303816000875af115801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190615452565b5061139c8686611d18565b505050505050565b600a54600160201b90046001600160a01b031633146113d55760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160401b03909216600160c01b026001600160c01b03909216919091179055565b6005546001600160a01b031633146114275760405162461bcd60e51b8152600401610c27906151a2565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611451611e40565b60405163eaeacd6360e01b815263ffffffff84166004820152602481018390526001600160401b03821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eaeacd6390606401600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505060075460ff16159150610f7d90505763ffffffff83166000908152600660209081526040808320858452909152812080546001600160401b0316916115288361546b565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050505050565b61155a611e40565b6115646000612694565b565b61156e611e40565b63ffffffff8316600090815260016020526040902054151581151581036115cd5760405162461bcd60e51b8152602060048201526013602482015272506565723a20696e76616c696420737461746560681b6044820152606401610c27565b63ffffffff84166000818152600160209081526040918290208690558151928352820185905283151582820152517fc55181d68816686be8ec55890d24aefed84c9a6a875145822aad2b2c950f027f9181900360600190a150505050565b60075460009060ff16156116755763ffffffff8316600090815260066020908152604080832085845290915290205461166e906001600160401b03166001615491565b9050610e8e565b506000610e8e565b600a54600160201b90046001600160a01b031633146116ae5760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160a01b03909216600160201b02640100000000600160c01b0319909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117495760405162461bcd60e51b81526020600482015260136024820152724f4170703a20656e64706f696e74206f6e6c7960681b6044820152606401610c27565b61176361175960208701876148ba565b8660200135611d18565b61178d61177360208701876148ba565b60208701356117886080890160608a01614d33565b6126e4565b61179a85858585856127d8565b5050505050565b6117a9611e40565b60405163279ffff360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639e7fffcc90610b799086908690869060040161508b565b33301461183e5760405162461bcd60e51b8152602060048201526013602482015272283932b1b934b6b29d1037b7363c9039b2b63360691b6044820152606401610c27565b60008061184b848461298b565b915091508181604051631f78298160e11b8152600401610c27929190614968565b600061188a84600560149054906101000a900463ffffffff16611e9a565b90506118e4858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b5061179a85611fc1565b6118f6611e40565b60405163b8849ac960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b8849ac990610b79908690869086906004016154b8565b61194e611e40565b60405163e16f964d60e01b815263ffffffff831660048201526001600160a01b0382811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e16f964d90604401600060405180830381600087803b1580156119bd57600080fd5b505af115801561139c573d6000803e3d6000fd5b6005546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610c27906151a2565b6000611a1984600560149054906101000a900463ffffffff16611e9a565b905061139c858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ad75760405162461bcd60e51b815260206004820152600960248201526808595b991c1bda5b9d60ba1b6044820152606401610c27565b6000611ae38686612b6e565b905060011960ff821601611b0f57600160046000828254611b0491906154df565b90915550611bec9050565b60031960ff821601611bad57600160046000828254611b2e91906154df565b9091555060009050611b408787612b90565b9050611b4b81611fc1565b6000611b6562030d406000611b5e612bb2565b9190612c02565b9050611ba582611b886001600560149054906101000a900463ffffffff16611e9a565b836040518060400160405280348152602001600081525030611edc565b505050611bec565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d657373616765207479706560601b6044820152606401610c27565b5050505050505050565b600080611c5786611c1987600560149054906101000a900463ffffffff16611e9a565b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c2792505050565b9150915094509492505050565b611c6c611e40565b60405163335fa1eb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366bf43d690610b79908690869086906004016154b8565b6060600080611ccb8585612cd6565b915091506001600a60189054906101000a90046001600160401b031683518484604051602001611cff9594939291906154f2565b6040516020818303038152906040529250505092915050565b611d228282610e75565b611d635760405162461bcd60e51b81526020600482015260126024820152712832b2b91d1034b73b30b634b2103832b2b960711b6044820152606401610c27565b5050565b611d6f611e40565b6001600160a01b038116611dd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c27565b611ddd81612694565b50565b6005546001600160a01b03163314611e0a5760405162461bcd60e51b8152600401610c27906151a2565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b6000546001600160a01b031633146115645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c27565b6040805160f89390931b6001600160f81b031916602084015260e09190911b6001600160e01b0319166021830152805160058184030181526025909201905290565b611ee46145b8565b6000611eef87610bd1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aca1b45a866000015160405180608001604052808c63ffffffff1681526020018681526020018b81526020018a8152508860200151886040518563ffffffff1660e01b8152600401611f7293929190615585565b60806040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb5919061562a565b98975050505050505050565b63ffffffff81166000908152600960205260408120805491611fe283615189565b919050555050565b600a54600090606090600160c01b90046001600160401b031683111561205257600a546101909061202a90600160c01b90046001600160401b0316612dd4565b60405160200161203a9190615674565b60405160208183030381529060405291509150611171565b82156122635760008080805b8681101561225e57600088888381811061207a5761207a615112565b905060200281019061208c91906156b9565b612095906156cf565b80515190915063ffffffff86811691161415806120b757508051602001518414155b156121e657805180516020820151606090920151909650909450925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344760576306040516001600160e01b031960e084901b1681526001600160a01b03909116600482015263ffffffff8916602482015260448101889052606401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906157a9565b61218b906001615491565b9050806001600160401b0316846001600160401b0316146121e0576101916121b284612dd4565b6040516020016121c291906157c6565b60405160208183030381529060405297509750505050505050611171565b5061224b565b6121ef8361546b565b9250826001600160401b03168160000151606001516001600160401b03161461224b5761019161221e83612dd4565b60405160200161222e9190615818565b604051602081830303815290604052965096505050505050611171565b508061225681615189565b91505061205e565b505050505b505060408051602081019091526000808252909250929050565b60006060631f78298160e11b6122928461585d565b6001600160e01b031916146122a957825160208401fd5b600483019250828060200190518101906122c39190615894565b91509150915091565b6000606083156123bf5760006122e28686612cd6565b50905060005b81518110156123bc576000805b865181101561235e5783838151811061231057612310615112565b602002602001015163ffffffff1687828151811061233057612330615112565b602002602001015163ffffffff160361234c576001915061235e565b8061235681615189565b9150506122f5565b50806123a9576101926040518060400160405280601e81526020017f6d697373696e6720706565722073696d756c6174696f6e20726573756c74000081525094509450505050612475565b50806123b481615189565b9150506122e8565b50505b6000805b845181101561241a57600a54855163ffffffff909116908690839081106123ec576123ec615112565b602002602001015163ffffffff1603612408576001915061241a565b8061241281615189565b9150506123c3565b508061246057505060408051808201909152601f81527f6d697373696e67206c6f63616c2073696d756c6174696f6e20726573756c740060208201526101929150612475565b50506040805160208101909152600080825291505b935093915050565b600060606124a46040518060400160405280600063ffffffff168152602001606081525090565b600084516001600160401b038111156124bf576124bf614a49565b60405190808252806020026020018201604052801561250557816020015b6040805180820190915260008152606060208201528152602001906001900390816124dd5790505b50905060005b85518110156125c45785818151811061252657612526615112565b60200260200101518060200190518101906125419190615927565b82828151811061255357612553615112565b6020908102919091010152600a54825163ffffffff9091169083908390811061257e5761257e615112565b60200260200101516000015163ffffffff16036125b2578181815181106125a7576125a7615112565b602002602001015192505b806125bc81615189565b91505061250b565b5060005b81518110156126765760006125fa848484815181106125e9576125e9615112565b602002602001015160000151612e66565b509050600061262d84848151811061261457612614615112565b6020908102919091010151600a5463ffffffff16612e66565b91505080821115612661576001604051806060016040528060318152602001615d7760319139965096505050505050915091565b5050808061266e90615189565b9150506125c8565b50600060405180602001604052806000815250935093505050915091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff831660009081526006602090815260408083208584529091529020546007546001600160401b039091169060ff161561277d57612727816001615491565b6001600160401b0316826001600160401b03161461277d5760405162461bcd60e51b81526020600482015260136024820152724f4170703a20696e76616c6964206e6f6e636560681b6044820152606401610c27565b806001600160401b0316826001600160401b031611156127d25763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff19166001600160401b0384161790555b50505050565b60006127ef6127ea6040880188615143565b612b6e565b905060001960ff82160161282d576003805490600061280d83615189565b90915550612828905061282360208801886148ba565b612f1a565b61139c565b60ff811660021480612842575060ff81166004145b15612901576003805490600061285783615189565b9091555061286d905061282360208801886148ba565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663754d3b9c30876128ab60408b018b615143565b6040518563ffffffff1660e01b81526004016128ca9493929190615a35565b600060405180830381600087803b1580156128e457600080fd5b505af11580156128f8573d6000803e3d6000fd5b5050505061139c565b60021960ff821601611bad576003805490600061291d83615189565b90915550612933905061282360208801886148ba565b612943610e4960208801886148ba565b600061295662030d406000611b5e612bb2565b905061298461296860208901896148ba565b600554611b8890600190600160a01b900463ffffffff16611e9a565b505061139c565b6000606060005b838110156129d8576129c68585838181106129af576129af615112565b90506020028101906129c191906156b9565b612f3b565b806129d081615189565b915050612992565b50600b546000906001600160401b038111156129f6576129f6614a49565b604051908082528060200260200182016040528015612a5157816020015b612a3e6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b815260200190600190039081612a145790505b50905060005b600b54811015612b26576000600b8281548110612a7657612a76615112565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060405180606001604052808263ffffffff168152602001612ad18363ffffffff1660009081526008602052604090205490565b8152602001612af28363ffffffff1660009081526009602052604090205490565b815250838381518110612b0757612b07615112565b6020026020010181905250508080612b1e90615189565b915050612a57565b50604080518082018252600a5463ffffffff16815260208082018490529151600092612b53929101615a67565b60405160208183030381529060405292509250509250929050565b6000612b7d6001828486615ae2565b612b8691615b0c565b60f81c9392505050565b6000612b9f8260018186615ae2565b612ba891615b3c565b60e01c9392505050565b60408051600080825260208201909252606091612bfd9190612bf7565b604080518082019091526000815260606020820152815260200190600190039081612bcf5790505b50612fb0565b905090565b60606000612c1084846130eb565b9050612c1e85600183613190565b95945050505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166383c4755930898989896040518663ffffffff1660e01b8152600401612c80959493929190615b6a565b6040805180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615bb4565b8051602090910151909890975095505050505050565b6060806000839003612dbf57600b600c81805480602002602001604051908101604052809291908181526020018280548015612d5d57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411612d205790505b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b5050505050905091509150611171565b612dc984846132b9565b915091509250929050565b60606000612de1836134e1565b60010190506000816001600160401b03811115612e0057612e00614a49565b6040519080825280601f01601f191660200182016040528015612e2a576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612e3457509392505050565b60008060005b846020015151811015612f0d578363ffffffff1685602001518281518110612e9657612e96615112565b60200260200101516000015163ffffffff1603612efb5784602001518181518110612ec357612ec3615112565b60200260200101516020015185602001518281518110612ee557612ee5615112565b6020026020010151604001519250925050611171565b80612f0581615189565b915050612e6c565b5060009485945092505050565b63ffffffff81166000908152600860205260408120805491611fe283615189565b6000612f478280615bd0565b6020013560016000612f598580615bd0565b612f679060208101906148ba565b63ffffffff1663ffffffff168152602001908152602001600020541490508015611d6357611d63612f988380615bd0565b602084013533612fab6040870187615143565b6127d8565b60606000612fbe83516135b9565b60408051600360f01b60208201526001600160f01b031960f084901b1660228201528151600481830301815260249091019091529091506000805b8361ffff168110156130e157600086828151811061301957613019615112565b6020026020010151600001519050816000148061303d57508261ffff168161ffff16115b6130595760405162461bcd60e51b8152600401610c2790615be6565b600061308288848151811061307057613070615112565b602002602001015160200151516135b9565b90508482828a868151811061309957613099615112565b6020026020010151602001516040516020016130b89493929190615c07565b6040516020818303038152906040529450819350505080806130d990615189565b915050612ff9565b5090949350505050565b60408051808201909152600081526060602082015260006001600160801b0383161561314857604080516001600160801b0319608087811b8216602084015286901b16603082015201604051602081830303815290604052613172565b6040516001600160801b0319608086901b1660208201526030016040516020818303038152906040525b60408051808201909152600181526020810191909152949350505050565b60608360036131a08260006135e1565b61ffff16146131fd5760405162461bcd60e51b8152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e73206044820152637479706560e01b6064820152608401610c27565b60006132088661363e565b905060008060006132198489613850565b925092509250821561326e576000613230826138eb565b905061323c8189613a57565b905061324781613cd8565b85848151811061325957613259615112565b602002602001015160200181905250506132a3565b600061327988613e33565b6040805180820190915261ffff8b1681526020810182905290915061329e8682613ea7565b955050505b6132ac84612fb0565b9998505050505050505050565b6060806000805b84811015613349576000600d818888858181106132df576132df615112565b90506020028101906132f191906156b9565b6132fb9080615bd0565b6133099060208101906148ba565b63ffffffff1663ffffffff1681526020019081526020016000205414613337578161333381615c59565b9250505b8061334181615189565b9150506132c0565b508061ffff166001600160401b0381111561336657613366614a49565b60405190808252806020026020018201604052801561338f578160200160208202803683370190505b5092508061ffff166001600160401b038111156133ae576133ae614a49565b6040519080825280602002602001820160405280156133d7578160200160208202803683370190505b50915060005b8481101561116e576000600d60008888858181106133fd576133fd615112565b905060200281019061340f91906156b9565b6134199080615bd0565b6134279060208101906148ba565b63ffffffff168152602081019190915260400160002054905080156134ce5786868381811061345857613458615112565b905060200281019061346a91906156b9565b6134749080615bd0565b6134829060208101906148ba565b85838151811061349457613494615112565b602002602001019063ffffffff16908163ffffffff1681525050808483815181106134c1576134c1615112565b6020026020010181815250505b50806134d981615189565b9150506133dd565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106135205772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061354c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061356a57662386f26fc10000830492506010015b6305f5e1008310613582576305f5e100830492506008015b612710831061359657612710830492506004015b606483106135a8576064830492506002015b600a8310610e8e5760010192915050565b600061ffff8211156135dd5760405162461bcd60e51b8152600401610c2790615c70565b5090565b60006135ee8260026154df565b835110156136355760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610c27565b50016002015190565b6060600061364c83826135e1565b905061ffff811660011480613665575061ffff81166002145b1561368257600061367a8261ffff1685614106565b949350505050565b8061ffff1660030361381e57600061369b8460026135e1565b905060008161ffff166001600160401b038111156136bb576136bb614a49565b60405190808252806020026020018201604052801561370157816020015b6040805180820190915260008152606060208201528152602001906001900390816136d95790505b50905060046000805b8461ffff168110156137f257600061372289856135e1565b905061372f6002856154df565b935081158061374557508261ffff168161ffff16115b6137615760405162461bcd60e51b8152600401610c2790615be6565b91508160006137708a866135e1565b905061377d6002866154df565b945060405180604001604052808361ffff1681526020016137ad878461ffff168e6143d09092919063ffffffff16565b8152508684815181106137c2576137c2615112565b60209081029190910101526137db61ffff8216866154df565b9450505080806137ea90615189565b91505061370a565b50865182146138135760405162461bcd60e51b8152600401610c2790615c70565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201526604c5a43303030360cc1b6044820152606401610c27565b600080606060005b85518110156138cc578461ffff1686828151811061387857613878615112565b60200260200101516000015161ffff16036138ba576001818783815181106138a2576138a2615112565b602002602001015160200151935093509350506138e4565b806138c481615189565b915050613858565b50506040805160208101909152600080825292508291505b9250925092565b60606000806138fa84826135e1565b90506139076002836154df565b915060008161ffff166001600160401b0381111561392757613927614a49565b60405190808252806020026020018201604052801561396d57816020015b6040805180820190915260008152606060208201528152602001906001900390816139455790505b5090506000805b8361ffff168161ffff16101561381357600061399088876135e1565b905061399d6002876154df565b95508261ffff168161ffff16116139c65760405162461bcd60e51b8152600401610c2790615be6565b91508160006139d589886135e1565b90506139e26002886154df565b965060006139f58a8961ffff85166143d0565b9050613a0561ffff8316896154df565b975060405180604001604052808461ffff16815260200182815250868561ffff1681518110613a3657613a36615112565b60200260200101819052505050508080613a4f90615c59565b915050613974565b6060600083516001613a6991906154df565b6001600160401b03811115613a8057613a80614a49565b604051908082528060200260200182016040528015613ac657816020015b604080518082019091526000815260606020820152815260200190600190039081613a9e5790505b5090508051600103613af8578281600081518110613ae657613ae6615112565b60209081029190910101529050610e8e565b60005b8451811015613cd057836000015161ffff16858281518110613b1f57613b1f615112565b60200260200101516000015161ffff1603613b8f5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e734275696c6465723a206f7074696f6e207479706520616c72656044820152696164792065786973747360b01b6064820152608401610c27565b836000015161ffff16858281518110613baa57613baa615112565b60200260200101516000015161ffff161015613bfc57848181518110613bd257613bd2615112565b6020026020010151828281518110613bec57613bec615112565b6020026020010181905250613c81565b83828281518110613c0f57613c0f615112565b6020908102919091010152805b8551811015613c7b57858181518110613c3757613c37615112565b602002602001015183826001613c4d91906154df565b81518110613c5d57613c5d615112565b60200260200101819052508080613c7390615189565b915050613c1c565b50613cd0565b60018551613c8f91906150ff565b8103613cbe578382613ca28360016154df565b81518110613cb257613cb2615112565b60200260200101819052505b80613cc881615189565b915050613afb565b509392505050565b60606000825111613cfb5760405162461bcd60e51b8152600401610c2790615c70565b6000613d0783516135b9565b9050600081604051602001613d1c9190615c91565b60408051601f1981840301815291905290506000805b8361ffff168110156130e1576000868281518110613d5257613d52615112565b60200260200101516000015190508160001480613d7657508261ffff168161ffff16115b613d925760405162461bcd60e51b8152600401610c2790615be6565b8092506000613dac88848151811061307057613070615112565b90506000888481518110613dc257613dc2615112565b602002602001015160000151828a8681518110613de157613de1615112565b602002602001015160200151604051602001613dff93929190615ca9565b60408051601f198184030181529190529050613e1b86826144dd565b95505050508080613e2b90615189565b915050613d32565b60408051600180825281830190925260609160009190816020015b604080518082019091526000815260606020820152815260200190600190039081613e4e5790505090508281600081518110613e8c57613e8c615112565b6020026020010181905250613ea081613cd8565b9392505050565b6060600083516001613eb991906154df565b6001600160401b03811115613ed057613ed0614a49565b604051908082528060200260200182016040528015613f1657816020015b604080518082019091526000815260606020820152815260200190600190039081613eee5790505b5090508051600103613f36578281600081518110613ae657613ae6615112565b60005b8451811015613cd057836000015161ffff16858281518110613f5d57613f5d615112565b60200260200101516000015161ffff1603613fcb5760405162461bcd60e51b815260206004820152602860248201527f4f7074696f6e734275696c6465723a20776f726b657220696420616c72656164604482015267792065786973747360c01b6064820152608401610c27565b836000015161ffff16858281518110613fe657613fe6615112565b60200260200101516000015161ffff1610156140385784818151811061400e5761400e615112565b602002602001015182828151811061402857614028615112565b60200260200101819052506140b7565b8382828151811061404b5761404b615112565b6020908102919091010152805b8551811015613c7b5785818151811061407357614073615112565b60200260200101518382600161408991906154df565b8151811061409957614099615112565b602002602001018190525080806140af90615189565b915050614058565b600185516140c591906150ff565b81036140f45783826140d88360016154df565b815181106140e8576140e8615112565b60200260200101819052505b806140fe81615189565b915050613f39565b604080516001808252818301909252606091816020015b60408051808201909152600081526060602082015281526020019060019003908161411d579050509050606060001984016141fc5782516022146141735760405162461bcd60e51b8152600401610c2790615c70565b600061418084600261455a565b90506001600160801b038111156141a95760405162461bcd60e51b8152600401610c2790615c70565b60016040516020016141bb9190615c91565b60405160208183030381529060405291508160016010836040516020016141e59493929190615ce7565b604051602081830303815290604052915050614391565b600119840161381e576042835111801561421857506062835111155b6142345760405162461bcd60e51b8152600401610c2790615c70565b600061424184600261455a565b90506001600160801b0381111561426a5760405162461bcd60e51b8152600401610c2790615c70565b600061427785602261455a565b90506001600160801b038111156142a05760405162461bcd60e51b8152600401610c2790615c70565b6000604286516142b091906150ff565b905060006142c0876042846143d0565b6142c990615d38565b90506142d68260206150ff565b6142e1906008615d5f565b60408051608086901b6001600160801b03191660208201529290911c603080840182905282518085039091018152605084019092529161432690600290607001615c91565b60405160208183030381529060405295508560016010876040516020016143509493929190615ce7565b604051602081830303815290604052955085600282518360405160200161437a9493929190615c07565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff16815260200182815250826000815181106143be576143be615112565b60200260200101819052505092915050565b6060816143de81601f6154df565b101561441d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610c27565b61442782846154df565b8451101561446b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610c27565b60608215801561448a57604051915060008252602082016040526144d4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144c35780518352602092830192016144ab565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b8183101561450e5780518352602092830192016144f6565b50855184518101855292509050808201602086015b8183101561453b578051835260209283019201614523565b508651929092011591909101601f01601f191660405250905092915050565b60006145678260206154df565b835110156145af5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610c27565b50016020015190565b60405180606001604052806000801916815260200160006001600160401b031681526020016145fa604051806040016040528060008152602001600081525090565b905290565b8280548282559060005260206000209060070160089004810192821561469e5791602002820160005b8382111561466c57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302614628565b801561469c5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261466c565b505b506135dd9291506146e5565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469e5782518255916020019190600101906146ca565b5b808211156135dd57600081556001016146e6565b6001600160a01b0381168114611ddd57600080fd5b63ffffffff81168114611ddd57600080fd5b60008083601f84011261473357600080fd5b5081356001600160401b0381111561474a57600080fd5b60208301915083602082850101111561117157600080fd5b60008060008060006080868803121561477a57600080fd5b8535614785816146fa565b945060208601356147958161470f565b935060408601356147a58161470f565b925060608601356001600160401b038111156147c057600080fd5b6147cc88828901614721565b969995985093965092949392505050565b60008083601f8401126147ef57600080fd5b5081356001600160401b0381111561480657600080fd5b6020830191508360208260051b850101111561117157600080fd5b60008060006040848603121561483657600080fd5b8335614841816146fa565b925060208401356001600160401b0381111561485c57600080fd5b614868868287016147dd565b9497909650939450505050565b60006020828403121561488757600080fd5b5035919050565b600080604083850312156148a157600080fd5b82356148ac8161470f565b946020939093013593505050565b6000602082840312156148cc57600080fd5b8135613ea08161470f565b600080602083850312156148ea57600080fd5b82356001600160401b0381111561490057600080fd5b61490c858286016147dd565b90969095509350505050565b60005b8381101561493357818101518382015260200161491b565b50506000910152565b60008151808452614954816020860160208601614918565b601f01601f19169290920160200192915050565b61ffff8316815260406020820152600061367a604083018461493c565b6000806000806000806060878903121561499e57600080fd5b86356001600160401b03808211156149b557600080fd5b6149c18a838b016147dd565b909850965060208901359150808211156149da57600080fd5b6149e68a838b016147dd565b909650945060408901359150808211156149ff57600080fd5b50614a0c89828a016147dd565b979a9699509497509295939492505050565b80358015158114610c3057600080fd5b600060208284031215614a4057600080fd5b613ea082614a1e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614a8157614a81614a49565b60405290565b604051606081016001600160401b0381118282101715614a8157614a81614a49565b604051608081016001600160401b0381118282101715614a8157614a81614a49565b604051601f8201601f191681016001600160401b0381118282101715614af357614af3614a49565b604052919050565b60006001600160401b03821115614b1457614b14614a49565b5060051b60200190565b600082601f830112614b2f57600080fd5b81356020614b44614b3f83614afb565b614acb565b82815260059290921b84018101918181019086841115614b6357600080fd5b8286015b84811015614b7e5780358352918301918301614b67565b509695505050505050565b60008060408385031215614b9c57600080fd5b82356001600160401b0380821115614bb357600080fd5b818501915085601f830112614bc757600080fd5b81356020614bd7614b3f83614afb565b82815260059290921b84018101918181019089841115614bf657600080fd5b948201945b83861015614c1d578535614c0e8161470f565b82529482019490820190614bfb565b96505086013592505080821115614c3357600080fd5b50614c4085828601614b1e565b9150509250929050565b60008060008060408587031215614c6057600080fd5b84356001600160401b0380821115614c7757600080fd5b614c83888389016147dd565b90965094506020870135915080821115614c9c57600080fd5b50614ca9878288016147dd565b95989497509550505050565b6001600160401b0381168114611ddd57600080fd5b60008060008060008060a08789031215614ce357600080fd5b8635614cee8161470f565b9550602087013594506040870135614d0581614cb5565b93506060870135925060808701356001600160401b03811115614d2757600080fd5b614a0c89828a01614721565b600060208284031215614d4557600080fd5b8135613ea081614cb5565b600060208284031215614d6257600080fd5b8135613ea0816146fa565b600080600060608486031215614d8257600080fd5b8335614d8d8161470f565b9250602084013591506040840135614da481614cb5565b809150509250925092565b600080600060608486031215614dc457600080fd5b8335614dcf8161470f565b925060208401359150614de460408501614a1e565b90509250925092565b600080600080600060808688031215614e0557600080fd5b85356001600160401b0380821115614e1c57600080fd5b908701906080828a031215614e3057600080fd5b90955060208701359450604087013590614e49826146fa565b90935060608701359080821115614e5f57600080fd5b506147cc88828901614721565b803560ff81168114610c3057600080fd5b60008060008060608587031215614e9357600080fd5b8435614e9e8161470f565b9350614eac60208601614e6c565b925060408501356001600160401b03811115614ec757600080fd5b614ca987828801614721565b600080600060608486031215614ee857600080fd5b8335614ef38161470f565b92506020840135614f03816146fa565b929592945050506040919091013590565b60008060408385031215614f2757600080fd5b8235614f328161470f565b91506020830135614f42816146fa565b809150509250929050565b600080600080600080600060a0888a031215614f6857600080fd5b8735614f73816146fa565b96506020880135955060408801356001600160401b0380821115614f9657600080fd5b614fa28b838c01614721565b909750955060608a01359150614fb7826146fa565b90935060808901359080821115614fcd57600080fd5b50614fda8a828b01614721565b989b979a50959850939692959293505050565b602081526000613ea0602083018461493c565b6000806040838503121561501357600080fd5b82356148ac816146fa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815263ffffffff858116602083015284166040820152608060608201819052600090615080908301848661501e565b979650505050505050565b6001600160a01b038416815260406020808301829052908201839052600090849060608401835b868110156150dd5783356150c58161470f565b63ffffffff16825292820192908201906001016150b2565b50979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e8e57610e8e6150e9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561513a57600080fd5b613ea082614e6c565b6000808335601e1984360301811261515a57600080fd5b8301803591506001600160401b0382111561517457600080fd5b60200191503681900382131561117157600080fd5b60006001820161519b5761519b6150e9565b5060010190565b6020808252600a908201526937b7363c9030b236b4b760b11b604082015260600190565b6000808335601e198436030181126151dd57600080fd5b83016020810192503590506001600160401b038111156151fc57600080fd5b80360382131561117157600080fd5b60208082528181018390526000906040808401600586901b8501820187855b8881101561531157878303603f190184528135368b9003605e1901811261525057600080fd5b8a016060813536839003607e1901811261526957600080fd5b818652820180356152798161470f565b63ffffffff811683880152506080898201358188015261529b898301836151c6565b8260a08a01526152af60e08a01828461501e565b925050508282013592506152c283614cb5565b6001600160401b03831660c0880152898401358a8801526152e5898501856151c6565b94509250868103898801526152fb81858561501e565b978a01979650505092870192505060010161522a565b509098975050505050505050565b60008251615331818460208701614918565b9190910192915050565b63ffffffff8316815260406020820152600061367a604083018461493c565b60006001600160401b0382111561537357615373614a49565b50601f01601f191660200190565b600082601f83011261539257600080fd5b81356153a0614b3f8261535a565b8181528460208386010111156153b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156153e557600080fd5b82356153f08161470f565b915060208301356001600160401b0381111561540b57600080fd5b614c4085828601615381565b63ffffffff871681528560208201526001600160401b038516604082015283606082015260a060808201526000611fb560a08301848661501e565b60006020828403121561546457600080fd5b5051919050565b60006001600160401b03808316818103615487576154876150e9565b6001019392505050565b6001600160401b038181168382160190808211156154b1576154b16150e9565b5092915050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b80820180821115610e8e57610e8e6150e9565b61ffff60f01b8660f01b1681526001600160401b0360c01b8560c01b16600282015283600a8201526000602a82018451602080870160005b8381101561554c57815163ffffffff168552938201939082019060010161552a565b5050855181870193925060005b8181101561557557845184529382019392820192600101615559565b50919a9950505050505050505050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a08401526155bb60e084018261493c565b90506060860151605f198483030160c08501526155d8828261493c565b60208501969096525050506001600160a01b0391909116604090910152919050565b60006040828403121561560c57600080fd5b615614614a5f565b9050815181526020820151602082015292915050565b60006080828403121561563c57600080fd5b615644614a87565b82518152602083015161565681614cb5565b602082015261566884604085016155fa565b60408201529392505050565b7f7061636b6574732073697a6520657863656564206c696d6974656420000000008152600082516156ac81601c850160208701614918565b91909101601c0192915050565b60008235605e1983360301811261533157600080fd5b6000606082360312156156e157600080fd5b6156e9614a87565b82356001600160401b038082111561570057600080fd5b81850191506080823603121561571557600080fd5b61571d614aa9565b82356157288161470f565b81526020838101359082015260408301358281111561574657600080fd5b61575236828601615381565b6040830152506060830135925061576883614cb5565b8260608201528084525060208501356020840152604085013591508082111561579057600080fd5b5061579d36828601615381565b60408301525092915050565b6000602082840312156157bb57600080fd5b8151613ea081614cb5565b7f736b697070656420696e626f756e644e6f6e63652c207061636b657420696e64815263032bc1d160e51b60208201526000825161580b816024850160208701614918565b9190910160240192915050565b7f756e736f72746564207061636b6574732c207061636b657420696e6465783a20815260008251615850816020850160208701614918565b9190910160200192915050565b805160208201516001600160e01b0319808216929190600483101561588c5780818460040360031b1b83161693505b505050919050565b600080604083850312156158a757600080fd5b825161ffff811681146158b957600080fd5b60208401519092506001600160401b038111156158d557600080fd5b8301601f810185136158e657600080fd5b80516158f4614b3f8261535a565b81815286602083850101111561590957600080fd5b61591a826020830160208601614918565b8093505050509250929050565b6000602080838503121561593a57600080fd5b82516001600160401b038082111561595157600080fd5b8185019150604080838803121561596757600080fd5b61596f614a5f565b835161597a8161470f565b8152838501518381111561598d57600080fd5b80850194505087601f8501126159a257600080fd5b835192506159b2614b3f84614afb565b8381526060938402850186019386820191908a8611156159d157600080fd5b958701955b85871015615a225780878c0312156159ee5760008081fd5b6159f6614a87565b8751615a018161470f565b815287890151898201528588015186820152835295860195918701916159d6565b5095820195909552979650505050505050565b60018060a01b0385168152836020820152606060408201526000615a5d60608301848661501e565b9695505050505050565b60006020808352606080840163ffffffff8087511684870152838701516040808189015283825180865260808a0191508784019550600093505b80841015615ad4578551805186168352888101518984015283015183830152948701946001939093019290860190615aa1565b509998505050505050505050565b60008085851115615af257600080fd5b83861115615aff57600080fd5b5050820193919092039150565b6001600160f81b03198135818116916001851015615b345780818660010360031b1b83161692505b505092915050565b6001600160e01b03198135818116916004851015615b345760049490940360031b84901b1690921692915050565b6001600160a01b038616815263ffffffff8516602082015260a060408201819052600090615b9a9083018661493c565b84151560608401528281036080840152611fb5818561493c565b600060408284031215615bc657600080fd5b613ea083836155fa565b60008235607e1983360301811261533157600080fd5b602080825260079082015266262d189818181b60c91b604082015260600190565b60008551615c19818460208a01614918565b6001600160f01b031960f087811b821692850192835286901b1660028201528351615c4b816004840160208801614918565b016004019695505050505050565b600061ffff808316818103615487576154876150e9565b6020808252600790820152664c5a313030303960c81b604082015260600190565b60f09190911b6001600160f01b031916815260020190565b600061ffff60f01b808660f01b168352808560f01b166002840152508251615cd8816004850160208701614918565b91909101600401949350505050565b60008551615cf9818460208a01614918565b60f095861b6001600160f01b0319908116939091019283529390941b909216600283015260801b6001600160801b031916600482015260140192915050565b80516020808301519190811015615d59576000198160200360031b1b821691505b50919050565b8082028115828204841417610e8e57610e8e6150e956fe4f6d6e69436f756e7465725072656372696d653a20696e626f756e64436f756e74203e206f7574626f756e64436f756e74a2646970667358221220760495f15abced4faae6a26e6c5237f0afd9f2f03b567368227818c581856a3764736f6c63430008110033",
1409
+ "deployedBytecode": "0x6080604052600436106102f85760003560e01c80636ece7d3611610190578063baa460fd116100dc578063e2a0844e1161008d578063e2a0844e14610998578063e51ac4b0146109b8578063e76d614f146109df578063e9b1796c14610a0c578063f2fde38b14610a2c578063f3fef3a314610a4c578063f851a44014610a6c578063f95d1404146104dd57005b8063baa460fd146108ba578063bb0b6a53146108da578063bc4374f914610907578063c6be4b9b14610927578063c95c55be1461093d578063d0a1026014610950578063d22446ce1461096357005b80638da5cb5b116101415780638da5cb5b146107d557806392d99a7f146107f357806398166ccc146108135780639e7fffcc14610826578063ae14023b14610846578063b353aaa714610859578063b7abbb5d1461088d578063b7bc8acd146108a057005b80636ece7d3614610703578063704b6c02146107235780637112f86f14610743578063715018a61461076357806372607537146107785780637624f505146107955780637d25a05e146107b557005b806335d671de1161024f5780635a0dfe4d116102005780635a0dfe4d146105c75780635b849af6146105f75780635bf88a00146106175780635e280f11146106375780636052d3c714610683578063622f17f6146106965780636a0494af146106c35780636d41812d146106e357005b806335d671de146104f2578063416ecebf14610520578063472641c1146104dd578063542e7b561461054457806354b3ab691461055757806354fd4d501461058457806356a472891461059a57005b80631f2fac53116102a95780631f2fac53146103de578063257f4e051461043757806326b27f841461044d57806329c246281461046d5780632c79305d146104a257806330515e56146104b657806334e30097146104dd57005b806303e83c13146103015780630638fb641461032157806306661abd1461034f5780630678327f146103735780630e735a631461039357806312fb9ea5146103a957806317c9efb0146103c957005b366102ff57005b005b34801561030d57600080fd5b506102ff61031c366004614762565b610a8c565b34801561032d57600080fd5b5061033761019081565b60405161ffff90911681526020015b60405180910390f35b34801561035b57600080fd5b5061036560035481565b604051908152602001610346565b34801561037f57600080fd5b506102ff61038e366004614821565b610b21565b34801561039f57600080fd5b5061033761019181565b3480156103b557600080fd5b506103656103c4366004614875565b610bb0565b3480156103d557600080fd5b50610337600081565b3480156103ea57600080fd5b5061041f6103f936600461488e565b60066020908152600092835260408084209091529082529020546001600160401b031681565b6040516001600160401b039091168152602001610346565b34801561044357600080fd5b5061036560045481565b34801561045957600080fd5b506103656104683660046148ba565b610bd1565b34801561047957600080fd5b5061048d610488366004614875565b610c35565b60405163ffffffff9091168152602001610346565b3480156104ae57600080fd5b506001610337565b3480156104c257600080fd5b50600a5461041f90600160c01b90046001600160401b031681565b3480156104e957600080fd5b50610337600181565b3480156104fe57600080fd5b5061051261050d3660046148d7565b610c6f565b604051610346929190614968565b34801561052c57600080fd5b5060055461048d90600160a01b900463ffffffff1681565b6102ff610552366004614985565b610caf565b34801561056357600080fd5b506103656105723660046148ba565b600d6020526000908152604090205481565b34801561059057600080fd5b5061036560025481565b3480156105a657600080fd5b506103656105b53660046148ba565b60086020526000908152604090205481565b3480156105d357600080fd5b506105e76105e236600461488e565b610e75565b6040519015158152602001610346565b34801561060357600080fd5b506102ff610612366004614a2e565b610e94565b34801561062357600080fd5b506102ff610632366004614b89565b610eaf565b34801561064357600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610346565b6105126106913660046148d7565b610f82565b3480156106a257600080fd5b506103656106b13660046148ba565b60096020526000908152604090205481565b3480156106cf57600080fd5b506105126106de366004614c4a565b611178565b3480156106ef57600080fd5b506102ff6106fe366004614cca565b6112f0565b34801561070f57600080fd5b506102ff61071e366004614d33565b6113a4565b34801561072f57600080fd5b506102ff61073e366004614d50565b6113fd565b34801561074f57600080fd5b506102ff61075e366004614d6d565b611449565b34801561076f57600080fd5b506102ff611552565b34801561078457600080fd5b50600a5461048d9063ffffffff1681565b3480156107a157600080fd5b506102ff6107b0366004614daf565b611566565b3480156107c157600080fd5b5061041f6107d036600461488e565b61162b565b3480156107e157600080fd5b506000546001600160a01b031661066b565b3480156107ff57600080fd5b506102ff61080e366004614d50565b61167d565b6102ff610821366004614ded565b6116db565b34801561083257600080fd5b506102ff610841366004614821565b6117a1565b6102ff6108543660046148d7565b6117f9565b34801561086557600080fd5b5061066b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff61089b366004614e7d565b61186c565b3480156108ac57600080fd5b506007546105e79060ff1681565b3480156108c657600080fd5b506102ff6108d5366004614ed3565b6118ee565b3480156108e657600080fd5b506103656108f53660046148ba565b60016020526000908152604090205481565b34801561091357600080fd5b506102ff610922366004614f14565b611946565b34801561093357600080fd5b5061033761019281565b6102ff61094b366004614e7d565b6119d1565b6102ff61095e366004614f4d565b611a73565b34801561096f57600080fd5b5061098361097e366004614e7d565b611bf6565b60408051928352602083019190915201610346565b3480156109a457600080fd5b506102ff6109b3366004614ed3565b611c64565b3480156109c457600080fd5b50600a5461066b90600160201b90046001600160a01b031681565b3480156109eb57600080fd5b506109ff6109fa3660046148d7565b611cbc565b6040516103469190614fed565b348015610a1857600080fd5b506102ff610a2736600461488e565b611d18565b348015610a3857600080fd5b506102ff610a47366004614d50565b611d67565b348015610a5857600080fd5b506102ff610a67366004615000565b611de0565b348015610a7857600080fd5b5060055461066b906001600160a01b031681565b610a94611e40565b6040516303e83c1360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906303e83c1390610ae89088908890889088908890600401615047565b600060405180830381600087803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050505050505050565b610b29611e40565b604051630678327f60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630678327f90610b799086908690869060040161508b565b600060405180830381600087803b158015610b9357600080fd5b505af1158015610ba7573d6000803e3d6000fd5b50505050505050565b600c8181548110610bc057600080fd5b600091825260209091200154905081565b63ffffffff811660009081526001602052604090205480610c305760405162461bcd60e51b81526020600482015260146024820152731419595c8e881c19595c881b9bdd08199bdd5b9960621b60448201526064015b60405180910390fd5b919050565b600b8181548110610c4557600080fd5b9060005260206000209060089182820401919006600402915054906101000a900463ffffffff1681565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152600090606090606401610c27565b8481148015610cbd57508483145b610d095760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d61746368000000006044820152606401610c27565b610d116145b8565b3460005b87811015610b16576000610d2a60018a6150ff565b8214610d365730610d38565b335b90506000610d7b898985818110610d5157610d51615112565b9050602002016020810190610d669190615128565b600554600160a01b900463ffffffff16611e9a565b9050610e1d8b8b85818110610d9257610d92615112565b9050602002016020810190610da791906148ba565b82898987818110610dba57610dba615112565b9050602002810190610dcc9190615143565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250604080518082019091528c815260208101919091529250889150611edc9050565b9450610e4e8b8b85818110610e3457610e34615112565b9050602002016020810190610e4991906148ba565b611fc1565b604085015151610e5e90856150ff565b935050508080610e6d90615189565b915050610d15565b63ffffffff821660009081526001602052604090205481145b92915050565b610e9c611e40565b6007805460ff1916911515919091179055565b600a54600160201b90046001600160a01b03163314610ee05760405162461bcd60e51b8152600401610c27906151a2565b8151610ef390600b9060208501906145ff565b508051610f0790600c9060208401906146aa565b5060005b8251811015610f7d57818181518110610f2657610f26615112565b6020026020010151600d6000858481518110610f4457610f44615112565b602002602001015163ffffffff1663ffffffff168152602001908152602001600020819055508080610f7590615189565b915050610f0b565b505050565b60006060323314610fd55760405162461bcd60e51b815260206004820152601a60248201527f6f6e6c7920454f412063616e2063616c6c2073696d756c6174650000000000006044820152606401610c27565b610fdf8484611fea565b909250905061ffff821661117157600080306001600160a01b03163463ae14023b60e01b888860405160240161101692919061520b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611054919061531f565b60006040518083038185875af1925050503d8060008114611091576040519150601f19603f3d011682016040523d82523d6000602084013e611096565b606091505b50909250905034156110d05760405133903480156108fc02916000818181858888f193505050501580156110ce573d6000803e3d6000fd5b505b811561112a5760405162461bcd60e51b8152602060048201526024808201527f73696d756c6174652073686f756c64206e657665722072657475726e207375636044820152636365737360e01b6064820152608401610c27565b6111338161227d565b909450925061ffff841661116e57600a5460405161115c9163ffffffff1690859060200161533b565b60405160208183030381529060405292505b50505b9250929050565b6000606081836001600160401b0381111561119557611195614a49565b6040519080825280602002602001820160405280156111c857816020015b60608152602001906001900390816111b35790505b5090506000846001600160401b038111156111e5576111e5614a49565b60405190808252806020026020018201604052801561120e578160200160208202803683370190505b50905060005b858110156112b45760008088888481811061123157611231615112565b90506020028101906112439190615143565b81019061125091906153d2565b915091508184848151811061126757611267615112565b602002602001019063ffffffff16908163ffffffff16815250508085848151811061129457611294615112565b6020026020010181905250505080806112ac90615189565b915050611214565b506112c08888836122cc565b909450925061ffff8416156112d65750506112e7565b6112df8261247d565b909450925050505b94509492505050565b6112f8611e40565b604051635a898aef60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b51315de9061134e90899089908990899089908990600401615417565b6020604051808303816000875af115801561136d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113919190615452565b5061139c8686611d18565b505050505050565b600a54600160201b90046001600160a01b031633146113d55760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160401b03909216600160c01b026001600160c01b03909216919091179055565b6005546001600160a01b031633146114275760405162461bcd60e51b8152600401610c27906151a2565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b611451611e40565b60405163eaeacd6360e01b815263ffffffff84166004820152602481018390526001600160401b03821660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063eaeacd6390606401600060405180830381600087803b1580156114ce57600080fd5b505af11580156114e2573d6000803e3d6000fd5b505060075460ff16159150610f7d90505763ffffffff83166000908152600660209081526040808320858452909152812080546001600160401b0316916115288361546b565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050505050565b61155a611e40565b6115646000612694565b565b61156e611e40565b63ffffffff8316600090815260016020526040902054151581151581036115cd5760405162461bcd60e51b8152602060048201526013602482015272506565723a20696e76616c696420737461746560681b6044820152606401610c27565b63ffffffff84166000818152600160209081526040918290208690558151928352820185905283151582820152517fc55181d68816686be8ec55890d24aefed84c9a6a875145822aad2b2c950f027f9181900360600190a150505050565b60075460009060ff16156116755763ffffffff8316600090815260066020908152604080832085845290915290205461166e906001600160401b03166001615491565b9050610e8e565b506000610e8e565b600a54600160201b90046001600160a01b031633146116ae5760405162461bcd60e51b8152600401610c27906151a2565b600a80546001600160a01b03909216600160201b02640100000000600160c01b0319909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117495760405162461bcd60e51b81526020600482015260136024820152724f4170703a20656e64706f696e74206f6e6c7960681b6044820152606401610c27565b61176361175960208701876148ba565b8660200135611d18565b61178d61177360208701876148ba565b60208701356117886080890160608a01614d33565b6126e4565b61179a85858585856127d8565b5050505050565b6117a9611e40565b60405163279ffff360e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639e7fffcc90610b799086908690869060040161508b565b33301461183e5760405162461bcd60e51b8152602060048201526013602482015272283932b1b934b6b29d1037b7363c9039b2b63360691b6044820152606401610c27565b60008061184b848461298b565b915091508181604051631f78298160e11b8152600401610c27929190614968565b600061188a84600560149054906101000a900463ffffffff16611e9a565b90506118e4858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b5061179a85611fc1565b6118f6611e40565b60405163b8849ac960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b8849ac990610b79908690869086906004016154b8565b61194e611e40565b60405163e16f964d60e01b815263ffffffff831660048201526001600160a01b0382811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063e16f964d90604401600060405180830381600087803b1580156119bd57600080fd5b505af115801561139c573d6000803e3d6000fd5b6005546001600160a01b031633146119fb5760405162461bcd60e51b8152600401610c27906151a2565b6000611a1984600560149054906101000a900463ffffffff16611e9a565b905061139c858285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611edc9050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ad75760405162461bcd60e51b815260206004820152600960248201526808595b991c1bda5b9d60ba1b6044820152606401610c27565b6000611ae38686612b6e565b905060011960ff821601611b0f57600160046000828254611b0491906154df565b90915550611bec9050565b60031960ff821601611bad57600160046000828254611b2e91906154df565b9091555060009050611b408787612b90565b9050611b4b81611fc1565b6000611b6562030d406000611b5e612bb2565b9190612c02565b9050611ba582611b886001600560149054906101000a900463ffffffff16611e9a565b836040518060400160405280348152602001600081525030611edc565b505050611bec565b60405162461bcd60e51b8152602060048201526014602482015273696e76616c6964206d657373616765207479706560601b6044820152606401610c27565b5050505050505050565b600080611c5786611c1987600560149054906101000a900463ffffffff16611e9a565b600087878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c2792505050565b9150915094509492505050565b611c6c611e40565b60405163335fa1eb60e11b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366bf43d690610b79908690869086906004016154b8565b6060600080611ccb8585612cd6565b915091506001600a60189054906101000a90046001600160401b031683518484604051602001611cff9594939291906154f2565b6040516020818303038152906040529250505092915050565b611d228282610e75565b611d635760405162461bcd60e51b81526020600482015260126024820152712832b2b91d1034b73b30b634b2103832b2b960711b6044820152606401610c27565b5050565b611d6f611e40565b6001600160a01b038116611dd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c27565b611ddd81612694565b50565b6005546001600160a01b03163314611e0a5760405162461bcd60e51b8152600401610c27906151a2565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610f7d573d6000803e3d6000fd5b6000546001600160a01b031633146115645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c27565b6040805160f89390931b6001600160f81b031916602084015260e09190911b6001600160e01b0319166021830152805160058184030181526025909201905290565b611ee46145b8565b6000611eef87610bd1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aca1b45a866000015160405180608001604052808c63ffffffff1681526020018681526020018b81526020018a8152508860200151886040518563ffffffff1660e01b8152600401611f7293929190615585565b60806040518083038185885af1158015611f90573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611fb5919061562a565b98975050505050505050565b63ffffffff81166000908152600960205260408120805491611fe283615189565b919050555050565b600a54600090606090600160c01b90046001600160401b031683111561205257600a546101909061202a90600160c01b90046001600160401b0316612dd4565b60405160200161203a9190615674565b60405160208183030381529060405291509150611171565b82156122635760008080805b8681101561225e57600088888381811061207a5761207a615112565b905060200281019061208c91906156b9565b612095906156cf565b80515190915063ffffffff86811691161415806120b757508051602001518414155b156121e657805180516020820151606090920151909650909450925060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344760576306040516001600160e01b031960e084901b1681526001600160a01b03909116600482015263ffffffff8916602482015260448101889052606401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906157a9565b61218b906001615491565b9050806001600160401b0316846001600160401b0316146121e0576101916121b284612dd4565b6040516020016121c291906157c6565b60405160208183030381529060405297509750505050505050611171565b5061224b565b6121ef8361546b565b9250826001600160401b03168160000151606001516001600160401b03161461224b5761019161221e83612dd4565b60405160200161222e9190615818565b604051602081830303815290604052965096505050505050611171565b508061225681615189565b91505061205e565b505050505b505060408051602081019091526000808252909250929050565b60006060631f78298160e11b6122928461585d565b6001600160e01b031916146122a957825160208401fd5b600483019250828060200190518101906122c39190615894565b91509150915091565b6000606083156123bf5760006122e28686612cd6565b50905060005b81518110156123bc576000805b865181101561235e5783838151811061231057612310615112565b602002602001015163ffffffff1687828151811061233057612330615112565b602002602001015163ffffffff160361234c576001915061235e565b8061235681615189565b9150506122f5565b50806123a9576101926040518060400160405280601e81526020017f6d697373696e6720706565722073696d756c6174696f6e20726573756c74000081525094509450505050612475565b50806123b481615189565b9150506122e8565b50505b6000805b845181101561241a57600a54855163ffffffff909116908690839081106123ec576123ec615112565b602002602001015163ffffffff1603612408576001915061241a565b8061241281615189565b9150506123c3565b508061246057505060408051808201909152601f81527f6d697373696e67206c6f63616c2073696d756c6174696f6e20726573756c740060208201526101929150612475565b50506040805160208101909152600080825291505b935093915050565b600060606124a46040518060400160405280600063ffffffff168152602001606081525090565b600084516001600160401b038111156124bf576124bf614a49565b60405190808252806020026020018201604052801561250557816020015b6040805180820190915260008152606060208201528152602001906001900390816124dd5790505b50905060005b85518110156125c45785818151811061252657612526615112565b60200260200101518060200190518101906125419190615927565b82828151811061255357612553615112565b6020908102919091010152600a54825163ffffffff9091169083908390811061257e5761257e615112565b60200260200101516000015163ffffffff16036125b2578181815181106125a7576125a7615112565b602002602001015192505b806125bc81615189565b91505061250b565b5060005b81518110156126765760006125fa848484815181106125e9576125e9615112565b602002602001015160000151612e66565b509050600061262d84848151811061261457612614615112565b6020908102919091010151600a5463ffffffff16612e66565b91505080821115612661576001604051806060016040528060318152602001615d7760319139965096505050505050915091565b5050808061266e90615189565b9150506125c8565b50600060405180602001604052806000815250935093505050915091565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b63ffffffff831660009081526006602090815260408083208584529091529020546007546001600160401b039091169060ff161561277d57612727816001615491565b6001600160401b0316826001600160401b03161461277d5760405162461bcd60e51b81526020600482015260136024820152724f4170703a20696e76616c6964206e6f6e636560681b6044820152606401610c27565b806001600160401b0316826001600160401b031611156127d25763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff19166001600160401b0384161790555b50505050565b60006127ef6127ea6040880188615143565b612b6e565b905060001960ff82160161282d576003805490600061280d83615189565b90915550612828905061282360208801886148ba565b612f1a565b61139c565b60ff811660021480612842575060ff81166004145b15612901576003805490600061285783615189565b9091555061286d905061282360208801886148ba565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663754d3b9c30876128ab60408b018b615143565b6040518563ffffffff1660e01b81526004016128ca9493929190615a35565b600060405180830381600087803b1580156128e457600080fd5b505af11580156128f8573d6000803e3d6000fd5b5050505061139c565b60021960ff821601611bad576003805490600061291d83615189565b90915550612933905061282360208801886148ba565b612943610e4960208801886148ba565b600061295662030d406000611b5e612bb2565b905061298461296860208901896148ba565b600554611b8890600190600160a01b900463ffffffff16611e9a565b505061139c565b6000606060005b838110156129d8576129c68585838181106129af576129af615112565b90506020028101906129c191906156b9565b612f3b565b806129d081615189565b915050612992565b50600b546000906001600160401b038111156129f6576129f6614a49565b604051908082528060200260200182016040528015612a5157816020015b612a3e6040518060600160405280600063ffffffff16815260200160008152602001600081525090565b815260200190600190039081612a145790505b50905060005b600b54811015612b26576000600b8281548110612a7657612a76615112565b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060405180606001604052808263ffffffff168152602001612ad18363ffffffff1660009081526008602052604090205490565b8152602001612af28363ffffffff1660009081526009602052604090205490565b815250838381518110612b0757612b07615112565b6020026020010181905250508080612b1e90615189565b915050612a57565b50604080518082018252600a5463ffffffff16815260208082018490529151600092612b53929101615a67565b60405160208183030381529060405292509250509250929050565b6000612b7d6001828486615ae2565b612b8691615b0c565b60f81c9392505050565b6000612b9f8260018186615ae2565b612ba891615b3c565b60e01c9392505050565b60408051600080825260208201909252606091612bfd9190612bf7565b604080518082019091526000815260606020820152815260200190600190039081612bcf5790505b50612fb0565b905090565b60606000612c1084846130eb565b9050612c1e85600183613190565b95945050505050565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166383c4755930898989896040518663ffffffff1660e01b8152600401612c80959493929190615b6a565b6040805180830381865afa158015612c9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cc09190615bb4565b8051602090910151909890975095505050505050565b6060806000839003612dbf57600b600c81805480602002602001604051908101604052809291908181526020018280548015612d5d57602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411612d205790505b5050505050915080805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b5050505050905091509150611171565b612dc984846132b9565b915091509250929050565b60606000612de1836134e1565b60010190506000816001600160401b03811115612e0057612e00614a49565b6040519080825280601f01601f191660200182016040528015612e2a576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084612e3457509392505050565b60008060005b846020015151811015612f0d578363ffffffff1685602001518281518110612e9657612e96615112565b60200260200101516000015163ffffffff1603612efb5784602001518181518110612ec357612ec3615112565b60200260200101516020015185602001518281518110612ee557612ee5615112565b6020026020010151604001519250925050611171565b80612f0581615189565b915050612e6c565b5060009485945092505050565b63ffffffff81166000908152600860205260408120805491611fe283615189565b6000612f478280615bd0565b6020013560016000612f598580615bd0565b612f679060208101906148ba565b63ffffffff1663ffffffff168152602001908152602001600020541490508015611d6357611d63612f988380615bd0565b602084013533612fab6040870187615143565b6127d8565b60606000612fbe83516135b9565b60408051600360f01b60208201526001600160f01b031960f084901b1660228201528151600481830301815260249091019091529091506000805b8361ffff168110156130e157600086828151811061301957613019615112565b6020026020010151600001519050816000148061303d57508261ffff168161ffff16115b6130595760405162461bcd60e51b8152600401610c2790615be6565b600061308288848151811061307057613070615112565b602002602001015160200151516135b9565b90508482828a868151811061309957613099615112565b6020026020010151602001516040516020016130b89493929190615c07565b6040516020818303038152906040529450819350505080806130d990615189565b915050612ff9565b5090949350505050565b60408051808201909152600081526060602082015260006001600160801b0383161561314857604080516001600160801b0319608087811b8216602084015286901b16603082015201604051602081830303815290604052613172565b6040516001600160801b0319608086901b1660208201526030016040516020818303038152906040525b60408051808201909152600181526020810191909152949350505050565b60608360036131a08260006135e1565b61ffff16146131fd5760405162461bcd60e51b8152602060048201526024808201527f4f7074696f6e734275696c6465723a20696e76616c6964206f7074696f6e73206044820152637479706560e01b6064820152608401610c27565b60006132088661363e565b905060008060006132198489613850565b925092509250821561326e576000613230826138eb565b905061323c8189613a57565b905061324781613cd8565b85848151811061325957613259615112565b602002602001015160200181905250506132a3565b600061327988613e33565b6040805180820190915261ffff8b1681526020810182905290915061329e8682613ea7565b955050505b6132ac84612fb0565b9998505050505050505050565b6060806000805b84811015613349576000600d818888858181106132df576132df615112565b90506020028101906132f191906156b9565b6132fb9080615bd0565b6133099060208101906148ba565b63ffffffff1663ffffffff1681526020019081526020016000205414613337578161333381615c59565b9250505b8061334181615189565b9150506132c0565b508061ffff166001600160401b0381111561336657613366614a49565b60405190808252806020026020018201604052801561338f578160200160208202803683370190505b5092508061ffff166001600160401b038111156133ae576133ae614a49565b6040519080825280602002602001820160405280156133d7578160200160208202803683370190505b50915060005b8481101561116e576000600d60008888858181106133fd576133fd615112565b905060200281019061340f91906156b9565b6134199080615bd0565b6134279060208101906148ba565b63ffffffff168152602081019190915260400160002054905080156134ce5786868381811061345857613458615112565b905060200281019061346a91906156b9565b6134749080615bd0565b6134829060208101906148ba565b85838151811061349457613494615112565b602002602001019063ffffffff16908163ffffffff1681525050808483815181106134c1576134c1615112565b6020026020010181815250505b50806134d981615189565b9150506133dd565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106135205772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef8100000000831061354c576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061356a57662386f26fc10000830492506010015b6305f5e1008310613582576305f5e100830492506008015b612710831061359657612710830492506004015b606483106135a8576064830492506002015b600a8310610e8e5760010192915050565b600061ffff8211156135dd5760405162461bcd60e51b8152600401610c2790615c70565b5090565b60006135ee8260026154df565b835110156136355760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610c27565b50016002015190565b6060600061364c83826135e1565b905061ffff811660011480613665575061ffff81166002145b1561368257600061367a8261ffff1685614106565b949350505050565b8061ffff1660030361381e57600061369b8460026135e1565b905060008161ffff166001600160401b038111156136bb576136bb614a49565b60405190808252806020026020018201604052801561370157816020015b6040805180820190915260008152606060208201528152602001906001900390816136d95790505b50905060046000805b8461ffff168110156137f257600061372289856135e1565b905061372f6002856154df565b935081158061374557508261ffff168161ffff16115b6137615760405162461bcd60e51b8152600401610c2790615be6565b91508160006137708a866135e1565b905061377d6002866154df565b945060405180604001604052808361ffff1681526020016137ad878461ffff168e6143d09092919063ffffffff16565b8152508684815181106137c2576137c2615112565b60209081029190910101526137db61ffff8216866154df565b9450505080806137ea90615189565b91505061370a565b50865182146138135760405162461bcd60e51b8152600401610c2790615c70565b509095945050505050565b60405162461bcd60e51b815260206004820152600760248201526604c5a43303030360cc1b6044820152606401610c27565b600080606060005b85518110156138cc578461ffff1686828151811061387857613878615112565b60200260200101516000015161ffff16036138ba576001818783815181106138a2576138a2615112565b602002602001015160200151935093509350506138e4565b806138c481615189565b915050613858565b50506040805160208101909152600080825292508291505b9250925092565b60606000806138fa84826135e1565b90506139076002836154df565b915060008161ffff166001600160401b0381111561392757613927614a49565b60405190808252806020026020018201604052801561396d57816020015b6040805180820190915260008152606060208201528152602001906001900390816139455790505b5090506000805b8361ffff168161ffff16101561381357600061399088876135e1565b905061399d6002876154df565b95508261ffff168161ffff16116139c65760405162461bcd60e51b8152600401610c2790615be6565b91508160006139d589886135e1565b90506139e26002886154df565b965060006139f58a8961ffff85166143d0565b9050613a0561ffff8316896154df565b975060405180604001604052808461ffff16815260200182815250868561ffff1681518110613a3657613a36615112565b60200260200101819052505050508080613a4f90615c59565b915050613974565b6060600083516001613a6991906154df565b6001600160401b03811115613a8057613a80614a49565b604051908082528060200260200182016040528015613ac657816020015b604080518082019091526000815260606020820152815260200190600190039081613a9e5790505b5090508051600103613af8578281600081518110613ae657613ae6615112565b60209081029190910101529050610e8e565b60005b8451811015613cd057836000015161ffff16858281518110613b1f57613b1f615112565b60200260200101516000015161ffff1603613b8f5760405162461bcd60e51b815260206004820152602a60248201527f4f7074696f6e734275696c6465723a206f7074696f6e207479706520616c72656044820152696164792065786973747360b01b6064820152608401610c27565b836000015161ffff16858281518110613baa57613baa615112565b60200260200101516000015161ffff161015613bfc57848181518110613bd257613bd2615112565b6020026020010151828281518110613bec57613bec615112565b6020026020010181905250613c81565b83828281518110613c0f57613c0f615112565b6020908102919091010152805b8551811015613c7b57858181518110613c3757613c37615112565b602002602001015183826001613c4d91906154df565b81518110613c5d57613c5d615112565b60200260200101819052508080613c7390615189565b915050613c1c565b50613cd0565b60018551613c8f91906150ff565b8103613cbe578382613ca28360016154df565b81518110613cb257613cb2615112565b60200260200101819052505b80613cc881615189565b915050613afb565b509392505050565b60606000825111613cfb5760405162461bcd60e51b8152600401610c2790615c70565b6000613d0783516135b9565b9050600081604051602001613d1c9190615c91565b60408051601f1981840301815291905290506000805b8361ffff168110156130e1576000868281518110613d5257613d52615112565b60200260200101516000015190508160001480613d7657508261ffff168161ffff16115b613d925760405162461bcd60e51b8152600401610c2790615be6565b8092506000613dac88848151811061307057613070615112565b90506000888481518110613dc257613dc2615112565b602002602001015160000151828a8681518110613de157613de1615112565b602002602001015160200151604051602001613dff93929190615ca9565b60408051601f198184030181529190529050613e1b86826144dd565b95505050508080613e2b90615189565b915050613d32565b60408051600180825281830190925260609160009190816020015b604080518082019091526000815260606020820152815260200190600190039081613e4e5790505090508281600081518110613e8c57613e8c615112565b6020026020010181905250613ea081613cd8565b9392505050565b6060600083516001613eb991906154df565b6001600160401b03811115613ed057613ed0614a49565b604051908082528060200260200182016040528015613f1657816020015b604080518082019091526000815260606020820152815260200190600190039081613eee5790505b5090508051600103613f36578281600081518110613ae657613ae6615112565b60005b8451811015613cd057836000015161ffff16858281518110613f5d57613f5d615112565b60200260200101516000015161ffff1603613fcb5760405162461bcd60e51b815260206004820152602860248201527f4f7074696f6e734275696c6465723a20776f726b657220696420616c72656164604482015267792065786973747360c01b6064820152608401610c27565b836000015161ffff16858281518110613fe657613fe6615112565b60200260200101516000015161ffff1610156140385784818151811061400e5761400e615112565b602002602001015182828151811061402857614028615112565b60200260200101819052506140b7565b8382828151811061404b5761404b615112565b6020908102919091010152805b8551811015613c7b5785818151811061407357614073615112565b60200260200101518382600161408991906154df565b8151811061409957614099615112565b602002602001018190525080806140af90615189565b915050614058565b600185516140c591906150ff565b81036140f45783826140d88360016154df565b815181106140e8576140e8615112565b60200260200101819052505b806140fe81615189565b915050613f39565b604080516001808252818301909252606091816020015b60408051808201909152600081526060602082015281526020019060019003908161411d579050509050606060001984016141fc5782516022146141735760405162461bcd60e51b8152600401610c2790615c70565b600061418084600261455a565b90506001600160801b038111156141a95760405162461bcd60e51b8152600401610c2790615c70565b60016040516020016141bb9190615c91565b60405160208183030381529060405291508160016010836040516020016141e59493929190615ce7565b604051602081830303815290604052915050614391565b600119840161381e576042835111801561421857506062835111155b6142345760405162461bcd60e51b8152600401610c2790615c70565b600061424184600261455a565b90506001600160801b0381111561426a5760405162461bcd60e51b8152600401610c2790615c70565b600061427785602261455a565b90506001600160801b038111156142a05760405162461bcd60e51b8152600401610c2790615c70565b6000604286516142b091906150ff565b905060006142c0876042846143d0565b6142c990615d38565b90506142d68260206150ff565b6142e1906008615d5f565b60408051608086901b6001600160801b03191660208201529290911c603080840182905282518085039091018152605084019092529161432690600290607001615c91565b60405160208183030381529060405295508560016010876040516020016143509493929190615ce7565b604051602081830303815290604052955085600282518360405160200161437a9493929190615c07565b604051602081830303815290604052955050505050505b6040518060400160405280600161ffff16815260200182815250826000815181106143be576143be615112565b60200260200101819052505092915050565b6060816143de81601f6154df565b101561441d5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610c27565b61442782846154df565b8451101561446b5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610c27565b60608215801561448a57604051915060008252602082016040526144d4565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144c35780518352602092830192016144ab565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b8183101561450e5780518352602092830192016144f6565b50855184518101855292509050808201602086015b8183101561453b578051835260209283019201614523565b508651929092011591909101601f01601f191660405250905092915050565b60006145678260206154df565b835110156145af5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743235365f6f75744f66426f756e647360581b6044820152606401610c27565b50016020015190565b60405180606001604052806000801916815260200160006001600160401b031681526020016145fa604051806040016040528060008152602001600081525090565b905290565b8280548282559060005260206000209060070160089004810192821561469e5791602002820160005b8382111561466c57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302614628565b801561469c5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261466c565b505b506135dd9291506146e5565b82805482825590600052602060002090810192821561469e579160200282015b8281111561469e5782518255916020019190600101906146ca565b5b808211156135dd57600081556001016146e6565b6001600160a01b0381168114611ddd57600080fd5b63ffffffff81168114611ddd57600080fd5b60008083601f84011261473357600080fd5b5081356001600160401b0381111561474a57600080fd5b60208301915083602082850101111561117157600080fd5b60008060008060006080868803121561477a57600080fd5b8535614785816146fa565b945060208601356147958161470f565b935060408601356147a58161470f565b925060608601356001600160401b038111156147c057600080fd5b6147cc88828901614721565b969995985093965092949392505050565b60008083601f8401126147ef57600080fd5b5081356001600160401b0381111561480657600080fd5b6020830191508360208260051b850101111561117157600080fd5b60008060006040848603121561483657600080fd5b8335614841816146fa565b925060208401356001600160401b0381111561485c57600080fd5b614868868287016147dd565b9497909650939450505050565b60006020828403121561488757600080fd5b5035919050565b600080604083850312156148a157600080fd5b82356148ac8161470f565b946020939093013593505050565b6000602082840312156148cc57600080fd5b8135613ea08161470f565b600080602083850312156148ea57600080fd5b82356001600160401b0381111561490057600080fd5b61490c858286016147dd565b90969095509350505050565b60005b8381101561493357818101518382015260200161491b565b50506000910152565b60008151808452614954816020860160208601614918565b601f01601f19169290920160200192915050565b61ffff8316815260406020820152600061367a604083018461493c565b6000806000806000806060878903121561499e57600080fd5b86356001600160401b03808211156149b557600080fd5b6149c18a838b016147dd565b909850965060208901359150808211156149da57600080fd5b6149e68a838b016147dd565b909650945060408901359150808211156149ff57600080fd5b50614a0c89828a016147dd565b979a9699509497509295939492505050565b80358015158114610c3057600080fd5b600060208284031215614a4057600080fd5b613ea082614a1e565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614a8157614a81614a49565b60405290565b604051606081016001600160401b0381118282101715614a8157614a81614a49565b604051608081016001600160401b0381118282101715614a8157614a81614a49565b604051601f8201601f191681016001600160401b0381118282101715614af357614af3614a49565b604052919050565b60006001600160401b03821115614b1457614b14614a49565b5060051b60200190565b600082601f830112614b2f57600080fd5b81356020614b44614b3f83614afb565b614acb565b82815260059290921b84018101918181019086841115614b6357600080fd5b8286015b84811015614b7e5780358352918301918301614b67565b509695505050505050565b60008060408385031215614b9c57600080fd5b82356001600160401b0380821115614bb357600080fd5b818501915085601f830112614bc757600080fd5b81356020614bd7614b3f83614afb565b82815260059290921b84018101918181019089841115614bf657600080fd5b948201945b83861015614c1d578535614c0e8161470f565b82529482019490820190614bfb565b96505086013592505080821115614c3357600080fd5b50614c4085828601614b1e565b9150509250929050565b60008060008060408587031215614c6057600080fd5b84356001600160401b0380821115614c7757600080fd5b614c83888389016147dd565b90965094506020870135915080821115614c9c57600080fd5b50614ca9878288016147dd565b95989497509550505050565b6001600160401b0381168114611ddd57600080fd5b60008060008060008060a08789031215614ce357600080fd5b8635614cee8161470f565b9550602087013594506040870135614d0581614cb5565b93506060870135925060808701356001600160401b03811115614d2757600080fd5b614a0c89828a01614721565b600060208284031215614d4557600080fd5b8135613ea081614cb5565b600060208284031215614d6257600080fd5b8135613ea0816146fa565b600080600060608486031215614d8257600080fd5b8335614d8d8161470f565b9250602084013591506040840135614da481614cb5565b809150509250925092565b600080600060608486031215614dc457600080fd5b8335614dcf8161470f565b925060208401359150614de460408501614a1e565b90509250925092565b600080600080600060808688031215614e0557600080fd5b85356001600160401b0380821115614e1c57600080fd5b908701906080828a031215614e3057600080fd5b90955060208701359450604087013590614e49826146fa565b90935060608701359080821115614e5f57600080fd5b506147cc88828901614721565b803560ff81168114610c3057600080fd5b60008060008060608587031215614e9357600080fd5b8435614e9e8161470f565b9350614eac60208601614e6c565b925060408501356001600160401b03811115614ec757600080fd5b614ca987828801614721565b600080600060608486031215614ee857600080fd5b8335614ef38161470f565b92506020840135614f03816146fa565b929592945050506040919091013590565b60008060408385031215614f2757600080fd5b8235614f328161470f565b91506020830135614f42816146fa565b809150509250929050565b600080600080600080600060a0888a031215614f6857600080fd5b8735614f73816146fa565b96506020880135955060408801356001600160401b0380821115614f9657600080fd5b614fa28b838c01614721565b909750955060608a01359150614fb7826146fa565b90935060808901359080821115614fcd57600080fd5b50614fda8a828b01614721565b989b979a50959850939692959293505050565b602081526000613ea0602083018461493c565b6000806040838503121561501357600080fd5b82356148ac816146fa565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815263ffffffff858116602083015284166040820152608060608201819052600090615080908301848661501e565b979650505050505050565b6001600160a01b038416815260406020808301829052908201839052600090849060608401835b868110156150dd5783356150c58161470f565b63ffffffff16825292820192908201906001016150b2565b50979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610e8e57610e8e6150e9565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561513a57600080fd5b613ea082614e6c565b6000808335601e1984360301811261515a57600080fd5b8301803591506001600160401b0382111561517457600080fd5b60200191503681900382131561117157600080fd5b60006001820161519b5761519b6150e9565b5060010190565b6020808252600a908201526937b7363c9030b236b4b760b11b604082015260600190565b6000808335601e198436030181126151dd57600080fd5b83016020810192503590506001600160401b038111156151fc57600080fd5b80360382131561117157600080fd5b60208082528181018390526000906040808401600586901b8501820187855b8881101561531157878303603f190184528135368b9003605e1901811261525057600080fd5b8a016060813536839003607e1901811261526957600080fd5b818652820180356152798161470f565b63ffffffff811683880152506080898201358188015261529b898301836151c6565b8260a08a01526152af60e08a01828461501e565b925050508282013592506152c283614cb5565b6001600160401b03831660c0880152898401358a8801526152e5898501856151c6565b94509250868103898801526152fb81858561501e565b978a01979650505092870192505060010161522a565b509098975050505050505050565b60008251615331818460208701614918565b9190910192915050565b63ffffffff8316815260406020820152600061367a604083018461493c565b60006001600160401b0382111561537357615373614a49565b50601f01601f191660200190565b600082601f83011261539257600080fd5b81356153a0614b3f8261535a565b8181528460208386010111156153b557600080fd5b816020850160208301376000918101602001919091529392505050565b600080604083850312156153e557600080fd5b82356153f08161470f565b915060208301356001600160401b0381111561540b57600080fd5b614c4085828601615381565b63ffffffff871681528560208201526001600160401b038516604082015283606082015260a060808201526000611fb560a08301848661501e565b60006020828403121561546457600080fd5b5051919050565b60006001600160401b03808316818103615487576154876150e9565b6001019392505050565b6001600160401b038181168382160190808211156154b1576154b16150e9565b5092915050565b63ffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b80820180821115610e8e57610e8e6150e9565b61ffff60f01b8660f01b1681526001600160401b0360c01b8560c01b16600282015283600a8201526000602a82018451602080870160005b8381101561554c57815163ffffffff168552938201939082019060010161552a565b5050855181870193925060005b8181101561557557845184529382019392820192600101615559565b50919a9950505050505050505050565b6060815263ffffffff84511660608201526020840151608082015260006040850151608060a08401526155bb60e084018261493c565b90506060860151605f198483030160c08501526155d8828261493c565b60208501969096525050506001600160a01b0391909116604090910152919050565b60006040828403121561560c57600080fd5b615614614a5f565b9050815181526020820151602082015292915050565b60006080828403121561563c57600080fd5b615644614a87565b82518152602083015161565681614cb5565b602082015261566884604085016155fa565b60408201529392505050565b7f7061636b6574732073697a6520657863656564206c696d6974656420000000008152600082516156ac81601c850160208701614918565b91909101601c0192915050565b60008235605e1983360301811261533157600080fd5b6000606082360312156156e157600080fd5b6156e9614a87565b82356001600160401b038082111561570057600080fd5b81850191506080823603121561571557600080fd5b61571d614aa9565b82356157288161470f565b81526020838101359082015260408301358281111561574657600080fd5b61575236828601615381565b6040830152506060830135925061576883614cb5565b8260608201528084525060208501356020840152604085013591508082111561579057600080fd5b5061579d36828601615381565b60408301525092915050565b6000602082840312156157bb57600080fd5b8151613ea081614cb5565b7f736b697070656420696e626f756e644e6f6e63652c207061636b657420696e64815263032bc1d160e51b60208201526000825161580b816024850160208701614918565b9190910160240192915050565b7f756e736f72746564207061636b6574732c207061636b657420696e6465783a20815260008251615850816020850160208701614918565b9190910160200192915050565b805160208201516001600160e01b0319808216929190600483101561588c5780818460040360031b1b83161693505b505050919050565b600080604083850312156158a757600080fd5b825161ffff811681146158b957600080fd5b60208401519092506001600160401b038111156158d557600080fd5b8301601f810185136158e657600080fd5b80516158f4614b3f8261535a565b81815286602083850101111561590957600080fd5b61591a826020830160208601614918565b8093505050509250929050565b6000602080838503121561593a57600080fd5b82516001600160401b038082111561595157600080fd5b8185019150604080838803121561596757600080fd5b61596f614a5f565b835161597a8161470f565b8152838501518381111561598d57600080fd5b80850194505087601f8501126159a257600080fd5b835192506159b2614b3f84614afb565b8381526060938402850186019386820191908a8611156159d157600080fd5b958701955b85871015615a225780878c0312156159ee5760008081fd5b6159f6614a87565b8751615a018161470f565b815287890151898201528588015186820152835295860195918701916159d6565b5095820195909552979650505050505050565b60018060a01b0385168152836020820152606060408201526000615a5d60608301848661501e565b9695505050505050565b60006020808352606080840163ffffffff8087511684870152838701516040808189015283825180865260808a0191508784019550600093505b80841015615ad4578551805186168352888101518984015283015183830152948701946001939093019290860190615aa1565b509998505050505050505050565b60008085851115615af257600080fd5b83861115615aff57600080fd5b5050820193919092039150565b6001600160f81b03198135818116916001851015615b345780818660010360031b1b83161692505b505092915050565b6001600160e01b03198135818116916004851015615b345760049490940360031b84901b1690921692915050565b6001600160a01b038616815263ffffffff8516602082015260a060408201819052600090615b9a9083018661493c565b84151560608401528281036080840152611fb5818561493c565b600060408284031215615bc657600080fd5b613ea083836155fa565b60008235607e1983360301811261533157600080fd5b602080825260079082015266262d189818181b60c91b604082015260600190565b60008551615c19818460208a01614918565b6001600160f01b031960f087811b821692850192835286901b1660028201528351615c4b816004840160208801614918565b016004019695505050505050565b600061ffff808316818103615487576154876150e9565b6020808252600790820152664c5a313030303960c81b604082015260600190565b60f09190911b6001600160f01b031916815260020190565b600061ffff60f01b808660f01b168352808560f01b166002840152508251615cd8816004850160208701614918565b91909101600401949350505050565b60008551615cf9818460208a01614918565b60f095861b6001600160f01b0319908116939091019283529390941b909216600283015260801b6001600160801b031916600482015260140192915050565b80516020808301519190811015615d59576000198160200360031b1b821691505b50919050565b8082028115828204841417610e8e57610e8e6150e956fe4f6d6e69436f756e7465725072656372696d653a20696e626f756e64436f756e74203e206f7574626f756e64436f756e74a2646970667358221220760495f15abced4faae6a26e6c5237f0afd9f2f03b567368227818c581856a3764736f6c63430008110033",
1410
+ "devdoc": {
1411
+ "kind": "dev",
1412
+ "methods": {
1413
+ "owner()": {
1414
+ "details": "Returns the address of the current owner."
1415
+ },
1416
+ "renounceOwnership()": {
1417
+ "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
1418
+ },
1419
+ "transferOwnership(address)": {
1420
+ "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1421
+ }
1422
+ },
1423
+ "version": 1
1424
+ },
1425
+ "userdoc": {
1426
+ "kind": "user",
1427
+ "methods": {
1428
+ "setConfig(address,uint32,uint32,bytes)": {
1429
+ "notice": "----------------------------- UA Config Functions -----------------------------"
1430
+ }
1431
+ },
1432
+ "version": 1
1433
+ },
1434
+ "storageLayout": {
1435
+ "storage": [
1436
+ {
1437
+ "astId": 1857,
1438
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1439
+ "label": "_owner",
1440
+ "offset": 0,
1441
+ "slot": "0",
1442
+ "type": "t_address"
1443
+ },
1444
+ {
1445
+ "astId": 3566,
1446
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1447
+ "label": "peers",
1448
+ "offset": 0,
1449
+ "slot": "1",
1450
+ "type": "t_mapping(t_uint32,t_bytes32)"
1451
+ },
1452
+ {
1453
+ "astId": 3197,
1454
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1455
+ "label": "version",
1456
+ "offset": 0,
1457
+ "slot": "2",
1458
+ "type": "t_uint256"
1459
+ },
1460
+ {
1461
+ "astId": 4798,
1462
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1463
+ "label": "count",
1464
+ "offset": 0,
1465
+ "slot": "3",
1466
+ "type": "t_uint256"
1467
+ },
1468
+ {
1469
+ "astId": 4800,
1470
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1471
+ "label": "composedCount",
1472
+ "offset": 0,
1473
+ "slot": "4",
1474
+ "type": "t_uint256"
1475
+ },
1476
+ {
1477
+ "astId": 4802,
1478
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1479
+ "label": "admin",
1480
+ "offset": 0,
1481
+ "slot": "5",
1482
+ "type": "t_address"
1483
+ },
1484
+ {
1485
+ "astId": 4804,
1486
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1487
+ "label": "eid",
1488
+ "offset": 20,
1489
+ "slot": "5",
1490
+ "type": "t_uint32"
1491
+ },
1492
+ {
1493
+ "astId": 4810,
1494
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1495
+ "label": "maxNonceByPath",
1496
+ "offset": 0,
1497
+ "slot": "6",
1498
+ "type": "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))"
1499
+ },
1500
+ {
1501
+ "astId": 4812,
1502
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1503
+ "label": "orderedNonce",
1504
+ "offset": 0,
1505
+ "slot": "7",
1506
+ "type": "t_bool"
1507
+ },
1508
+ {
1509
+ "astId": 4816,
1510
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1511
+ "label": "inboundCount",
1512
+ "offset": 0,
1513
+ "slot": "8",
1514
+ "type": "t_mapping(t_uint32,t_uint256)"
1515
+ },
1516
+ {
1517
+ "astId": 4820,
1518
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1519
+ "label": "outboundCount",
1520
+ "offset": 0,
1521
+ "slot": "9",
1522
+ "type": "t_mapping(t_uint32,t_uint256)"
1523
+ },
1524
+ {
1525
+ "astId": 3921,
1526
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1527
+ "label": "localEid",
1528
+ "offset": 0,
1529
+ "slot": "10",
1530
+ "type": "t_uint32"
1531
+ },
1532
+ {
1533
+ "astId": 3923,
1534
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1535
+ "label": "pAdmin",
1536
+ "offset": 4,
1537
+ "slot": "10",
1538
+ "type": "t_address"
1539
+ },
1540
+ {
1541
+ "astId": 3925,
1542
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1543
+ "label": "pMaxBatchSize",
1544
+ "offset": 24,
1545
+ "slot": "10",
1546
+ "type": "t_uint64"
1547
+ },
1548
+ {
1549
+ "astId": 3928,
1550
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1551
+ "label": "precrimeEids",
1552
+ "offset": 0,
1553
+ "slot": "11",
1554
+ "type": "t_array(t_uint32)dyn_storage"
1555
+ },
1556
+ {
1557
+ "astId": 3931,
1558
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1559
+ "label": "precrimePeers",
1560
+ "offset": 0,
1561
+ "slot": "12",
1562
+ "type": "t_array(t_bytes32)dyn_storage"
1563
+ },
1564
+ {
1565
+ "astId": 3935,
1566
+ "contract": "contracts/examples/OmniCounterWithPrecrime.sol:OmniCounterWithPrecrime",
1567
+ "label": "precrimeEidToPeer",
1568
+ "offset": 0,
1569
+ "slot": "13",
1570
+ "type": "t_mapping(t_uint32,t_bytes32)"
1571
+ }
1572
+ ],
1573
+ "types": {
1574
+ "t_address": {
1575
+ "encoding": "inplace",
1576
+ "label": "address",
1577
+ "numberOfBytes": "20"
1578
+ },
1579
+ "t_array(t_bytes32)dyn_storage": {
1580
+ "base": "t_bytes32",
1581
+ "encoding": "dynamic_array",
1582
+ "label": "bytes32[]",
1583
+ "numberOfBytes": "32"
1584
+ },
1585
+ "t_array(t_uint32)dyn_storage": {
1586
+ "base": "t_uint32",
1587
+ "encoding": "dynamic_array",
1588
+ "label": "uint32[]",
1589
+ "numberOfBytes": "32"
1590
+ },
1591
+ "t_bool": {
1592
+ "encoding": "inplace",
1593
+ "label": "bool",
1594
+ "numberOfBytes": "1"
1595
+ },
1596
+ "t_bytes32": {
1597
+ "encoding": "inplace",
1598
+ "label": "bytes32",
1599
+ "numberOfBytes": "32"
1600
+ },
1601
+ "t_mapping(t_bytes32,t_uint64)": {
1602
+ "encoding": "mapping",
1603
+ "key": "t_bytes32",
1604
+ "label": "mapping(bytes32 => uint64)",
1605
+ "numberOfBytes": "32",
1606
+ "value": "t_uint64"
1607
+ },
1608
+ "t_mapping(t_uint32,t_bytes32)": {
1609
+ "encoding": "mapping",
1610
+ "key": "t_uint32",
1611
+ "label": "mapping(uint32 => bytes32)",
1612
+ "numberOfBytes": "32",
1613
+ "value": "t_bytes32"
1614
+ },
1615
+ "t_mapping(t_uint32,t_mapping(t_bytes32,t_uint64))": {
1616
+ "encoding": "mapping",
1617
+ "key": "t_uint32",
1618
+ "label": "mapping(uint32 => mapping(bytes32 => uint64))",
1619
+ "numberOfBytes": "32",
1620
+ "value": "t_mapping(t_bytes32,t_uint64)"
1621
+ },
1622
+ "t_mapping(t_uint32,t_uint256)": {
1623
+ "encoding": "mapping",
1624
+ "key": "t_uint32",
1625
+ "label": "mapping(uint32 => uint256)",
1626
+ "numberOfBytes": "32",
1627
+ "value": "t_uint256"
1628
+ },
1629
+ "t_uint256": {
1630
+ "encoding": "inplace",
1631
+ "label": "uint256",
1632
+ "numberOfBytes": "32"
1633
+ },
1634
+ "t_uint32": {
1635
+ "encoding": "inplace",
1636
+ "label": "uint32",
1637
+ "numberOfBytes": "4"
1638
+ },
1639
+ "t_uint64": {
1640
+ "encoding": "inplace",
1641
+ "label": "uint64",
1642
+ "numberOfBytes": "8"
1643
+ }
1644
+ }
1645
+ }
1646
+ }