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