@layerzerolabs/lz-evm-sdk-v1 2.3.9 → 2.3.11

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 (166) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/artifacts-tron/contracts/Endpoint.sol/Endpoint.json +958 -0
  3. package/artifacts-tron/contracts/NonceContract.sol/NonceContract.json +88 -0
  4. package/artifacts-tron/contracts/PriceFeed.sol/PriceFeed.json +531 -0
  5. package/artifacts-tron/contracts/RelayerV2.sol/RelayerV2.json +1170 -0
  6. package/artifacts-tron/contracts/UltraLightNode.sol/UltraLightNode.json +1475 -0
  7. package/artifacts-tron/contracts/UltraLightNodeV2.sol/UltraLightNodeV2.json +1423 -0
  8. package/artifacts-tron/contracts/interfaces/IContractOne.sol/IContractOne.json +24 -0
  9. package/artifacts-tron/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +447 -0
  10. package/artifacts-tron/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +160 -0
  11. package/artifacts-tron/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +184 -0
  12. package/artifacts-tron/contracts/interfaces/ILayerZeroOracle.sol/ILayerZeroOracle.json +77 -0
  13. package/artifacts-tron/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +97 -0
  14. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +107 -0
  15. package/artifacts-tron/contracts/interfaces/ILayerZeroPriceFeedV2.sol/ILayerZeroPriceFeedV2.json +104 -0
  16. package/artifacts-tron/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  17. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayer.sol/ILayerZeroRelayer.json +92 -0
  18. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +107 -0
  19. package/artifacts-tron/contracts/interfaces/ILayerZeroRelayerV2PriceData.sol/ILayerZeroRelayerV2PriceData.json +83 -0
  20. package/artifacts-tron/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +40 -0
  21. package/artifacts-tron/contracts/interfaces/ILayerZeroUltraLightNodeV1.sol/ILayerZeroUltraLightNodeV1.json +156 -0
  22. package/artifacts-tron/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +582 -0
  23. package/artifacts-tron/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +83 -0
  24. package/artifacts-tron/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +77 -0
  25. package/artifacts-tron/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +146 -0
  26. package/artifacts-tron/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +154 -0
  27. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +353 -0
  28. package/artifacts-tron/contracts/precrime/PreCrimeBase.sol/PreCrimeBase.json +259 -0
  29. package/artifacts-tron/contracts/precrime/PreCrimeView.sol/PreCrimeView.json +318 -0
  30. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +162 -0
  31. package/artifacts-tron/contracts/precrime/interfaces/IPreCrimeBase.sol/IPreCrimeBase.json +116 -0
  32. package/artifacts-tron/contracts/precrime/interfaces/IPreCrimeView.sol/IPreCrimeView.json +162 -0
  33. package/artifacts-tron/contracts/proof/FPValidator.sol/FPValidator.json +326 -0
  34. package/artifacts-tron/contracts/proof/FPValidator.sol/IStargate.json +10 -0
  35. package/artifacts-tron/contracts/proof/MPTValidator.sol/MPTValidator.json +146 -0
  36. package/artifacts-tron/contracts/proof/MPTValidator01.sol/IStargate.json +10 -0
  37. package/artifacts-tron/contracts/proof/MPTValidator01.sol/MPTValidator01.json +339 -0
  38. package/artifacts-tron/contracts/proof/MPTValidatorStgV3.sol/MPTValidatorStgV3.json +310 -0
  39. package/artifacts-tron/contracts/proof/MPTValidatorV2.sol/MPTValidatorV2.json +212 -0
  40. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/IStargate.json +10 -0
  41. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/IUltraLightNode.json +108 -0
  42. package/artifacts-tron/contracts/proof/MPTValidatorV4.sol/MPTValidatorV4.json +414 -0
  43. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/IStargate.json +10 -0
  44. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/IUltraLightNode.json +108 -0
  45. package/artifacts-tron/contracts/proof/MPTValidatorV5.sol/MPTValidatorV5.json +432 -0
  46. package/artifacts-tron/contracts/proof/utility/Buffer.sol/Buffer.json +10 -0
  47. package/artifacts-tron/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +10 -0
  48. package/artifacts-tron/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +10 -0
  49. package/artifacts-tron/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +10 -0
  50. package/artifacts-zk/contracts/Endpoint.sol/Endpoint.json +959 -0
  51. package/artifacts-zk/contracts/NonceContract.sol/NonceContract.json +89 -0
  52. package/artifacts-zk/contracts/PriceFeed.sol/PriceFeed.json +545 -0
  53. package/artifacts-zk/contracts/RelayerV2.sol/RelayerV2.json +1020 -0
  54. package/artifacts-zk/contracts/TreasuryV2.sol/TreasuryV2.json +309 -0
  55. package/artifacts-zk/contracts/UltraLightNodeV2.sol/UltraLightNodeV2.json +1424 -0
  56. package/artifacts-zk/contracts/interfaces/IContractOne.sol/IContractOne.json +25 -0
  57. package/artifacts-zk/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +448 -0
  58. package/artifacts-zk/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +161 -0
  59. package/artifacts-zk/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +185 -0
  60. package/artifacts-zk/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +98 -0
  61. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +108 -0
  62. package/artifacts-zk/contracts/interfaces/ILayerZeroPriceFeedV2.sol/ILayerZeroPriceFeedV2.json +105 -0
  63. package/artifacts-zk/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +40 -0
  64. package/artifacts-zk/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +108 -0
  65. package/artifacts-zk/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +41 -0
  66. package/artifacts-zk/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +583 -0
  67. package/artifacts-zk/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +84 -0
  68. package/artifacts-zk/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +78 -0
  69. package/artifacts-zk/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +147 -0
  70. package/artifacts-zk/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +155 -0
  71. package/artifacts-zk/contracts/oracle/OracleV2.sol/OracleV2.json +1527 -0
  72. package/artifacts-zk/contracts/precrime/PreCrime.sol/PreCrime.json +354 -0
  73. package/artifacts-zk/contracts/precrime/PreCrimeBase.sol/PreCrimeBase.json +260 -0
  74. package/artifacts-zk/contracts/precrime/PreCrimeView.sol/PreCrimeView.json +319 -0
  75. package/artifacts-zk/contracts/precrime/example/inherit/CounterI.sol/CounterI.json +624 -0
  76. package/artifacts-zk/contracts/precrime/example/inherit/CounterPrecrime.sol/CounterPrecrime.json +458 -0
  77. package/artifacts-zk/contracts/precrime/example/view/CounterPrecrimeView.sol/CounterPrecrimeView.json +417 -0
  78. package/artifacts-zk/contracts/precrime/example/view/CounterV.sol/CounterV.json +178 -0
  79. package/artifacts-zk/contracts/precrime/example/view/CounterView.sol/CounterView.json +166 -0
  80. package/artifacts-zk/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +163 -0
  81. package/artifacts-zk/contracts/precrime/interfaces/IPreCrimeBase.sol/IPreCrimeBase.json +117 -0
  82. package/artifacts-zk/contracts/precrime/interfaces/IPreCrimeView.sol/IPreCrimeView.json +163 -0
  83. package/artifacts-zk/contracts/proof/FPValidator.sol/FPValidator.json +327 -0
  84. package/artifacts-zk/contracts/proof/FPValidator.sol/IStargate.json +11 -0
  85. package/artifacts-zk/contracts/proof/utility/Buffer.sol/Buffer.json +11 -0
  86. package/artifacts-zk/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +11 -0
  87. package/artifacts-zk/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +11 -0
  88. package/artifacts-zk/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +11 -0
  89. package/artifacts-zk/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json +172 -0
  90. package/artifacts-zk/contracts/proxy/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +156 -0
  91. package/deployments/arbitrum-sandbox-local/DefaultProxyAdmin.json +10 -10
  92. package/deployments/arbitrum-sandbox-local/Endpoint.json +7 -7
  93. package/deployments/arbitrum-sandbox-local/FPValidator.json +4 -4
  94. package/deployments/arbitrum-sandbox-local/MPTValidator01.json +4 -4
  95. package/deployments/arbitrum-sandbox-local/NonceContract.json +4 -4
  96. package/deployments/arbitrum-sandbox-local/RelayerV2.json +16 -16
  97. package/deployments/arbitrum-sandbox-local/RelayerV2_Implementation.json +4 -4
  98. package/deployments/arbitrum-sandbox-local/RelayerV2_Proxy.json +16 -16
  99. package/deployments/arbitrum-sandbox-local/TreasuryV2.json +7 -7
  100. package/deployments/arbitrum-sandbox-local/UltraLightNode.json +7 -7
  101. package/deployments/arbitrum-sandbox-local/UltraLightNodeV2.json +7 -7
  102. package/deployments/bsc-sandbox-local/DefaultProxyAdmin.json +10 -10
  103. package/deployments/bsc-sandbox-local/Endpoint.json +7 -7
  104. package/deployments/bsc-sandbox-local/FPValidator.json +4 -4
  105. package/deployments/bsc-sandbox-local/MPTValidator01.json +4 -4
  106. package/deployments/bsc-sandbox-local/NonceContract.json +4 -4
  107. package/deployments/bsc-sandbox-local/RelayerV2.json +16 -16
  108. package/deployments/bsc-sandbox-local/RelayerV2_Implementation.json +4 -4
  109. package/deployments/bsc-sandbox-local/RelayerV2_Proxy.json +16 -16
  110. package/deployments/bsc-sandbox-local/TreasuryV2.json +7 -7
  111. package/deployments/bsc-sandbox-local/UltraLightNode.json +7 -7
  112. package/deployments/bsc-sandbox-local/UltraLightNodeV2.json +7 -7
  113. package/deployments/cyber-mainnet/DefaultProxyAdmin.json +273 -0
  114. package/deployments/cyber-mainnet/Endpoint.json +1282 -0
  115. package/deployments/cyber-mainnet/FPValidator.json +382 -0
  116. package/deployments/cyber-mainnet/MPTValidator01.json +395 -0
  117. package/deployments/cyber-mainnet/NonceContract.json +159 -0
  118. package/deployments/cyber-mainnet/RelayerV2.json +1415 -0
  119. package/deployments/cyber-mainnet/RelayerV2_Implementation.json +1612 -0
  120. package/deployments/cyber-mainnet/RelayerV2_Proxy.json +245 -0
  121. package/deployments/cyber-mainnet/TreasuryV2.json +458 -0
  122. package/deployments/cyber-mainnet/UltraLightNodeV2.json +1816 -0
  123. package/deployments/ethereum-sandbox-local/DefaultProxyAdmin.json +10 -10
  124. package/deployments/ethereum-sandbox-local/Endpoint.json +7 -7
  125. package/deployments/ethereum-sandbox-local/FPValidator.json +4 -4
  126. package/deployments/ethereum-sandbox-local/MPTValidator01.json +4 -4
  127. package/deployments/ethereum-sandbox-local/NonceContract.json +4 -4
  128. package/deployments/ethereum-sandbox-local/RelayerV2.json +16 -16
  129. package/deployments/ethereum-sandbox-local/RelayerV2_Implementation.json +4 -4
  130. package/deployments/ethereum-sandbox-local/RelayerV2_Proxy.json +16 -16
  131. package/deployments/ethereum-sandbox-local/TreasuryV2.json +7 -7
  132. package/deployments/ethereum-sandbox-local/UltraLightNode.json +7 -7
  133. package/deployments/ethereum-sandbox-local/UltraLightNodeV2.json +7 -7
  134. package/deployments/iota-mainnet/DefaultProxyAdmin.json +273 -0
  135. package/deployments/iota-mainnet/Endpoint.json +1282 -0
  136. package/deployments/iota-mainnet/FPValidator.json +382 -0
  137. package/deployments/iota-mainnet/MPTValidator01.json +395 -0
  138. package/deployments/iota-mainnet/NonceContract.json +159 -0
  139. package/deployments/iota-mainnet/RelayerV2.json +1415 -0
  140. package/deployments/iota-mainnet/RelayerV2_Implementation.json +1612 -0
  141. package/deployments/iota-mainnet/RelayerV2_Proxy.json +245 -0
  142. package/deployments/iota-mainnet/TreasuryV2.json +458 -0
  143. package/deployments/iota-mainnet/UltraLightNodeV2.json +1816 -0
  144. package/deployments/polygon-sandbox-local/DefaultProxyAdmin.json +3 -3
  145. package/deployments/polygon-sandbox-local/Endpoint.json +2 -2
  146. package/deployments/polygon-sandbox-local/FPValidator.json +1 -1
  147. package/deployments/polygon-sandbox-local/MPTValidator01.json +1 -1
  148. package/deployments/polygon-sandbox-local/NonceContract.json +1 -1
  149. package/deployments/polygon-sandbox-local/RelayerV2.json +5 -5
  150. package/deployments/polygon-sandbox-local/RelayerV2_Implementation.json +1 -1
  151. package/deployments/polygon-sandbox-local/RelayerV2_Proxy.json +5 -5
  152. package/deployments/polygon-sandbox-local/TreasuryV2.json +2 -2
  153. package/deployments/polygon-sandbox-local/UltraLightNode.json +2 -2
  154. package/deployments/polygon-sandbox-local/UltraLightNodeV2.json +2 -2
  155. package/deployments/tron-sandbox-local/DefaultProxyAdmin.json +14 -14
  156. package/deployments/tron-sandbox-local/Endpoint.json +10 -10
  157. package/deployments/tron-sandbox-local/FPValidator.json +6 -6
  158. package/deployments/tron-sandbox-local/MPTValidator01.json +6 -6
  159. package/deployments/tron-sandbox-local/NonceContract.json +7 -7
  160. package/deployments/tron-sandbox-local/RelayerV2.json +31 -31
  161. package/deployments/tron-sandbox-local/RelayerV2_Implementation.json +6 -6
  162. package/deployments/tron-sandbox-local/RelayerV2_Proxy.json +28 -28
  163. package/deployments/tron-sandbox-local/TreasuryV2.json +11 -11
  164. package/deployments/tron-sandbox-local/UltraLightNode.json +11 -11
  165. package/deployments/tron-sandbox-local/UltraLightNodeV2.json +12 -12
  166. package/package.json +23 -7
@@ -0,0 +1,1475 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "UltraLightNode",
4
+ "sourceName": "contracts/UltraLightNode.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ {
21
+ "indexed": false,
22
+ "internalType": "uint16",
23
+ "name": "chainId",
24
+ "type": "uint16"
25
+ },
26
+ {
27
+ "indexed": false,
28
+ "internalType": "address",
29
+ "name": "lib",
30
+ "type": "address"
31
+ }
32
+ ],
33
+ "name": "AddInboundProofLibraryForChain",
34
+ "type": "event"
35
+ },
36
+ {
37
+ "anonymous": false,
38
+ "inputs": [
39
+ {
40
+ "indexed": false,
41
+ "internalType": "address",
42
+ "name": "userApplication",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "indexed": false,
47
+ "internalType": "uint256",
48
+ "name": "configType",
49
+ "type": "uint256"
50
+ },
51
+ {
52
+ "indexed": false,
53
+ "internalType": "bytes",
54
+ "name": "newConfig",
55
+ "type": "bytes"
56
+ }
57
+ ],
58
+ "name": "AppConfigUpdated",
59
+ "type": "event"
60
+ },
61
+ {
62
+ "anonymous": false,
63
+ "inputs": [
64
+ {
65
+ "indexed": false,
66
+ "internalType": "uint16",
67
+ "name": "chainId",
68
+ "type": "uint16"
69
+ },
70
+ {
71
+ "indexed": false,
72
+ "internalType": "uint16",
73
+ "name": "proofType",
74
+ "type": "uint16"
75
+ }
76
+ ],
77
+ "name": "EnableSupportedOutboundProof",
78
+ "type": "event"
79
+ },
80
+ {
81
+ "anonymous": false,
82
+ "inputs": [
83
+ {
84
+ "indexed": false,
85
+ "internalType": "uint16",
86
+ "name": "srcChainId",
87
+ "type": "uint16"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "address",
92
+ "name": "oracle",
93
+ "type": "address"
94
+ },
95
+ {
96
+ "indexed": false,
97
+ "internalType": "uint256",
98
+ "name": "confirmations",
99
+ "type": "uint256"
100
+ },
101
+ {
102
+ "indexed": false,
103
+ "internalType": "bytes32",
104
+ "name": "blockhash",
105
+ "type": "bytes32"
106
+ }
107
+ ],
108
+ "name": "HashReceived",
109
+ "type": "event"
110
+ },
111
+ {
112
+ "anonymous": false,
113
+ "inputs": [
114
+ {
115
+ "indexed": true,
116
+ "internalType": "address",
117
+ "name": "previousOwner",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "indexed": true,
122
+ "internalType": "address",
123
+ "name": "newOwner",
124
+ "type": "address"
125
+ }
126
+ ],
127
+ "name": "OwnershipTransferred",
128
+ "type": "event"
129
+ },
130
+ {
131
+ "anonymous": false,
132
+ "inputs": [
133
+ {
134
+ "indexed": false,
135
+ "internalType": "uint16",
136
+ "name": "chainId",
137
+ "type": "uint16"
138
+ },
139
+ {
140
+ "indexed": false,
141
+ "internalType": "bytes",
142
+ "name": "payload",
143
+ "type": "bytes"
144
+ }
145
+ ],
146
+ "name": "Packet",
147
+ "type": "event"
148
+ },
149
+ {
150
+ "anonymous": false,
151
+ "inputs": [
152
+ {
153
+ "indexed": false,
154
+ "internalType": "uint16",
155
+ "name": "chainId",
156
+ "type": "uint16"
157
+ },
158
+ {
159
+ "indexed": false,
160
+ "internalType": "uint64",
161
+ "name": "nonce",
162
+ "type": "uint64"
163
+ },
164
+ {
165
+ "indexed": false,
166
+ "internalType": "uint16",
167
+ "name": "outboundProofType",
168
+ "type": "uint16"
169
+ },
170
+ {
171
+ "indexed": false,
172
+ "internalType": "bytes",
173
+ "name": "adapterParams",
174
+ "type": "bytes"
175
+ }
176
+ ],
177
+ "name": "RelayerParams",
178
+ "type": "event"
179
+ },
180
+ {
181
+ "anonymous": false,
182
+ "inputs": [
183
+ {
184
+ "indexed": false,
185
+ "internalType": "uint16",
186
+ "name": "chainId",
187
+ "type": "uint16"
188
+ },
189
+ {
190
+ "indexed": false,
191
+ "internalType": "uint256",
192
+ "name": "size",
193
+ "type": "uint256"
194
+ }
195
+ ],
196
+ "name": "SetChainAddressSize",
197
+ "type": "event"
198
+ },
199
+ {
200
+ "anonymous": false,
201
+ "inputs": [
202
+ {
203
+ "indexed": false,
204
+ "internalType": "uint16",
205
+ "name": "chainId",
206
+ "type": "uint16"
207
+ },
208
+ {
209
+ "indexed": false,
210
+ "internalType": "uint16",
211
+ "name": "proofType",
212
+ "type": "uint16"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "bytes",
217
+ "name": "adapterParams",
218
+ "type": "bytes"
219
+ }
220
+ ],
221
+ "name": "SetDefaultAdapterParamsForChainId",
222
+ "type": "event"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": false,
229
+ "internalType": "uint16",
230
+ "name": "chainId",
231
+ "type": "uint16"
232
+ },
233
+ {
234
+ "indexed": false,
235
+ "internalType": "uint16",
236
+ "name": "inboundProofLib",
237
+ "type": "uint16"
238
+ },
239
+ {
240
+ "indexed": false,
241
+ "internalType": "uint64",
242
+ "name": "inboundBlockConfirm",
243
+ "type": "uint64"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "address",
248
+ "name": "relayer",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint16",
254
+ "name": "outboundProofType",
255
+ "type": "uint16"
256
+ },
257
+ {
258
+ "indexed": false,
259
+ "internalType": "uint16",
260
+ "name": "outboundBlockConfirm",
261
+ "type": "uint16"
262
+ },
263
+ {
264
+ "indexed": false,
265
+ "internalType": "address",
266
+ "name": "oracle",
267
+ "type": "address"
268
+ }
269
+ ],
270
+ "name": "SetDefaultConfigForChainId",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": false,
278
+ "internalType": "address",
279
+ "name": "tokenAddress",
280
+ "type": "address"
281
+ }
282
+ ],
283
+ "name": "SetLayerZeroToken",
284
+ "type": "event"
285
+ },
286
+ {
287
+ "anonymous": false,
288
+ "inputs": [
289
+ {
290
+ "indexed": false,
291
+ "internalType": "address",
292
+ "name": "relayerFeeContract",
293
+ "type": "address"
294
+ }
295
+ ],
296
+ "name": "SetRelayerFeeContract",
297
+ "type": "event"
298
+ },
299
+ {
300
+ "anonymous": false,
301
+ "inputs": [
302
+ {
303
+ "indexed": false,
304
+ "internalType": "uint16",
305
+ "name": "chainId",
306
+ "type": "uint16"
307
+ },
308
+ {
309
+ "indexed": false,
310
+ "internalType": "bytes32",
311
+ "name": "uln",
312
+ "type": "bytes32"
313
+ }
314
+ ],
315
+ "name": "SetRemoteUln",
316
+ "type": "event"
317
+ },
318
+ {
319
+ "anonymous": false,
320
+ "inputs": [
321
+ {
322
+ "indexed": false,
323
+ "internalType": "address",
324
+ "name": "treasuryAddress",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "name": "SetTreasury",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "indexed": false,
336
+ "internalType": "uint8",
337
+ "name": "_type",
338
+ "type": "uint8"
339
+ },
340
+ {
341
+ "indexed": false,
342
+ "internalType": "address",
343
+ "name": "_owner",
344
+ "type": "address"
345
+ },
346
+ {
347
+ "indexed": false,
348
+ "internalType": "address",
349
+ "name": "_msgSender",
350
+ "type": "address"
351
+ },
352
+ {
353
+ "indexed": false,
354
+ "internalType": "address",
355
+ "name": "_to",
356
+ "type": "address"
357
+ },
358
+ {
359
+ "indexed": false,
360
+ "internalType": "uint256",
361
+ "name": "_amount",
362
+ "type": "uint256"
363
+ }
364
+ ],
365
+ "name": "WithdrawNative",
366
+ "type": "event"
367
+ },
368
+ {
369
+ "anonymous": false,
370
+ "inputs": [
371
+ {
372
+ "indexed": false,
373
+ "internalType": "address",
374
+ "name": "_msgSender",
375
+ "type": "address"
376
+ },
377
+ {
378
+ "indexed": false,
379
+ "internalType": "address",
380
+ "name": "_to",
381
+ "type": "address"
382
+ },
383
+ {
384
+ "indexed": false,
385
+ "internalType": "uint256",
386
+ "name": "_amount",
387
+ "type": "uint256"
388
+ }
389
+ ],
390
+ "name": "WithdrawZRO",
391
+ "type": "event"
392
+ },
393
+ {
394
+ "inputs": [],
395
+ "name": "BP_DENOMINATOR",
396
+ "outputs": [
397
+ {
398
+ "internalType": "uint256",
399
+ "name": "",
400
+ "type": "uint256"
401
+ }
402
+ ],
403
+ "stateMutability": "view",
404
+ "type": "function"
405
+ },
406
+ {
407
+ "inputs": [],
408
+ "name": "CONFIG_TYPE_INBOUND_BLOCK_CONFIRMATIONS",
409
+ "outputs": [
410
+ {
411
+ "internalType": "uint256",
412
+ "name": "",
413
+ "type": "uint256"
414
+ }
415
+ ],
416
+ "stateMutability": "view",
417
+ "type": "function"
418
+ },
419
+ {
420
+ "inputs": [],
421
+ "name": "CONFIG_TYPE_INBOUND_PROOF_LIBRARY_VERSION",
422
+ "outputs": [
423
+ {
424
+ "internalType": "uint256",
425
+ "name": "",
426
+ "type": "uint256"
427
+ }
428
+ ],
429
+ "stateMutability": "view",
430
+ "type": "function"
431
+ },
432
+ {
433
+ "inputs": [],
434
+ "name": "CONFIG_TYPE_ORACLE",
435
+ "outputs": [
436
+ {
437
+ "internalType": "uint256",
438
+ "name": "",
439
+ "type": "uint256"
440
+ }
441
+ ],
442
+ "stateMutability": "view",
443
+ "type": "function"
444
+ },
445
+ {
446
+ "inputs": [],
447
+ "name": "CONFIG_TYPE_OUTBOUND_BLOCK_CONFIRMATIONS",
448
+ "outputs": [
449
+ {
450
+ "internalType": "uint256",
451
+ "name": "",
452
+ "type": "uint256"
453
+ }
454
+ ],
455
+ "stateMutability": "view",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [],
460
+ "name": "CONFIG_TYPE_OUTBOUND_PROOF_TYPE",
461
+ "outputs": [
462
+ {
463
+ "internalType": "uint256",
464
+ "name": "",
465
+ "type": "uint256"
466
+ }
467
+ ],
468
+ "stateMutability": "view",
469
+ "type": "function"
470
+ },
471
+ {
472
+ "inputs": [],
473
+ "name": "CONFIG_TYPE_RELAYER",
474
+ "outputs": [
475
+ {
476
+ "internalType": "uint256",
477
+ "name": "",
478
+ "type": "uint256"
479
+ }
480
+ ],
481
+ "stateMutability": "view",
482
+ "type": "function"
483
+ },
484
+ {
485
+ "inputs": [],
486
+ "name": "WITHDRAW_TYPE_ORACLE_QUOTED_FEES",
487
+ "outputs": [
488
+ {
489
+ "internalType": "uint8",
490
+ "name": "",
491
+ "type": "uint8"
492
+ }
493
+ ],
494
+ "stateMutability": "view",
495
+ "type": "function"
496
+ },
497
+ {
498
+ "inputs": [],
499
+ "name": "WITHDRAW_TYPE_RELAYER_QUOTED_FEES",
500
+ "outputs": [
501
+ {
502
+ "internalType": "uint8",
503
+ "name": "",
504
+ "type": "uint8"
505
+ }
506
+ ],
507
+ "stateMutability": "view",
508
+ "type": "function"
509
+ },
510
+ {
511
+ "inputs": [],
512
+ "name": "WITHDRAW_TYPE_TREASURY_PROTOCOL_FEES",
513
+ "outputs": [
514
+ {
515
+ "internalType": "uint8",
516
+ "name": "",
517
+ "type": "uint8"
518
+ }
519
+ ],
520
+ "stateMutability": "view",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "uint16",
527
+ "name": "_chainId",
528
+ "type": "uint16"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "_library",
533
+ "type": "address"
534
+ }
535
+ ],
536
+ "name": "addInboundProofLibraryForChain",
537
+ "outputs": [],
538
+ "stateMutability": "nonpayable",
539
+ "type": "function"
540
+ },
541
+ {
542
+ "inputs": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "",
546
+ "type": "address"
547
+ },
548
+ {
549
+ "internalType": "uint16",
550
+ "name": "",
551
+ "type": "uint16"
552
+ }
553
+ ],
554
+ "name": "appConfig",
555
+ "outputs": [
556
+ {
557
+ "internalType": "uint16",
558
+ "name": "inboundProofLibraryVersion",
559
+ "type": "uint16"
560
+ },
561
+ {
562
+ "internalType": "uint64",
563
+ "name": "inboundBlockConfirmations",
564
+ "type": "uint64"
565
+ },
566
+ {
567
+ "internalType": "address",
568
+ "name": "relayer",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "internalType": "uint16",
573
+ "name": "outboundProofType",
574
+ "type": "uint16"
575
+ },
576
+ {
577
+ "internalType": "uint64",
578
+ "name": "outboundBlockConfirmations",
579
+ "type": "uint64"
580
+ },
581
+ {
582
+ "internalType": "address",
583
+ "name": "oracle",
584
+ "type": "address"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [
592
+ {
593
+ "internalType": "uint16",
594
+ "name": "",
595
+ "type": "uint16"
596
+ }
597
+ ],
598
+ "name": "chainAddressSizeMap",
599
+ "outputs": [
600
+ {
601
+ "internalType": "uint256",
602
+ "name": "",
603
+ "type": "uint256"
604
+ }
605
+ ],
606
+ "stateMutability": "view",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [
611
+ {
612
+ "internalType": "uint16",
613
+ "name": "",
614
+ "type": "uint16"
615
+ },
616
+ {
617
+ "internalType": "uint16",
618
+ "name": "",
619
+ "type": "uint16"
620
+ }
621
+ ],
622
+ "name": "defaultAdapterParams",
623
+ "outputs": [
624
+ {
625
+ "internalType": "bytes",
626
+ "name": "",
627
+ "type": "bytes"
628
+ }
629
+ ],
630
+ "stateMutability": "view",
631
+ "type": "function"
632
+ },
633
+ {
634
+ "inputs": [
635
+ {
636
+ "internalType": "uint16",
637
+ "name": "",
638
+ "type": "uint16"
639
+ }
640
+ ],
641
+ "name": "defaultAppConfig",
642
+ "outputs": [
643
+ {
644
+ "internalType": "uint16",
645
+ "name": "inboundProofLibraryVersion",
646
+ "type": "uint16"
647
+ },
648
+ {
649
+ "internalType": "uint64",
650
+ "name": "inboundBlockConfirmations",
651
+ "type": "uint64"
652
+ },
653
+ {
654
+ "internalType": "address",
655
+ "name": "relayer",
656
+ "type": "address"
657
+ },
658
+ {
659
+ "internalType": "uint16",
660
+ "name": "outboundProofType",
661
+ "type": "uint16"
662
+ },
663
+ {
664
+ "internalType": "uint64",
665
+ "name": "outboundBlockConfirmations",
666
+ "type": "uint64"
667
+ },
668
+ {
669
+ "internalType": "address",
670
+ "name": "oracle",
671
+ "type": "address"
672
+ }
673
+ ],
674
+ "stateMutability": "view",
675
+ "type": "function"
676
+ },
677
+ {
678
+ "inputs": [
679
+ {
680
+ "internalType": "uint16",
681
+ "name": "_chainId",
682
+ "type": "uint16"
683
+ },
684
+ {
685
+ "internalType": "uint16",
686
+ "name": "_proofType",
687
+ "type": "uint16"
688
+ }
689
+ ],
690
+ "name": "enableSupportedOutboundProof",
691
+ "outputs": [],
692
+ "stateMutability": "nonpayable",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [],
697
+ "name": "endpoint",
698
+ "outputs": [
699
+ {
700
+ "internalType": "contract ILayerZeroEndpoint",
701
+ "name": "",
702
+ "type": "address"
703
+ }
704
+ ],
705
+ "stateMutability": "view",
706
+ "type": "function"
707
+ },
708
+ {
709
+ "inputs": [
710
+ {
711
+ "internalType": "uint16",
712
+ "name": "_chainId",
713
+ "type": "uint16"
714
+ },
715
+ {
716
+ "internalType": "address",
717
+ "name": "_ua",
718
+ "type": "address"
719
+ },
720
+ {
721
+ "internalType": "bytes",
722
+ "name": "_payload",
723
+ "type": "bytes"
724
+ },
725
+ {
726
+ "internalType": "bool",
727
+ "name": "_payInZRO",
728
+ "type": "bool"
729
+ },
730
+ {
731
+ "internalType": "bytes",
732
+ "name": "_adapterParams",
733
+ "type": "bytes"
734
+ }
735
+ ],
736
+ "name": "estimateFees",
737
+ "outputs": [
738
+ {
739
+ "internalType": "uint256",
740
+ "name": "nativeFee",
741
+ "type": "uint256"
742
+ },
743
+ {
744
+ "internalType": "uint256",
745
+ "name": "zroFee",
746
+ "type": "uint256"
747
+ }
748
+ ],
749
+ "stateMutability": "view",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [
754
+ {
755
+ "internalType": "uint16",
756
+ "name": "_chainId",
757
+ "type": "uint16"
758
+ },
759
+ {
760
+ "internalType": "address",
761
+ "name": "userApplicationAddress",
762
+ "type": "address"
763
+ }
764
+ ],
765
+ "name": "getAppConfig",
766
+ "outputs": [
767
+ {
768
+ "components": [
769
+ {
770
+ "internalType": "uint16",
771
+ "name": "inboundProofLibraryVersion",
772
+ "type": "uint16"
773
+ },
774
+ {
775
+ "internalType": "uint64",
776
+ "name": "inboundBlockConfirmations",
777
+ "type": "uint64"
778
+ },
779
+ {
780
+ "internalType": "address",
781
+ "name": "relayer",
782
+ "type": "address"
783
+ },
784
+ {
785
+ "internalType": "uint16",
786
+ "name": "outboundProofType",
787
+ "type": "uint16"
788
+ },
789
+ {
790
+ "internalType": "uint64",
791
+ "name": "outboundBlockConfirmations",
792
+ "type": "uint64"
793
+ },
794
+ {
795
+ "internalType": "address",
796
+ "name": "oracle",
797
+ "type": "address"
798
+ }
799
+ ],
800
+ "internalType": "struct UltraLightNode.ApplicationConfiguration",
801
+ "name": "",
802
+ "type": "tuple"
803
+ }
804
+ ],
805
+ "stateMutability": "view",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "address",
812
+ "name": "_oracle",
813
+ "type": "address"
814
+ },
815
+ {
816
+ "internalType": "uint16",
817
+ "name": "_remoteChainId",
818
+ "type": "uint16"
819
+ },
820
+ {
821
+ "internalType": "bytes32",
822
+ "name": "_lookupHash",
823
+ "type": "bytes32"
824
+ }
825
+ ],
826
+ "name": "getBlockHeaderData",
827
+ "outputs": [
828
+ {
829
+ "components": [
830
+ {
831
+ "internalType": "uint256",
832
+ "name": "confirmations",
833
+ "type": "uint256"
834
+ },
835
+ {
836
+ "internalType": "bytes32",
837
+ "name": "data",
838
+ "type": "bytes32"
839
+ }
840
+ ],
841
+ "internalType": "struct UltraLightNode.BlockData",
842
+ "name": "blockData",
843
+ "type": "tuple"
844
+ }
845
+ ],
846
+ "stateMutability": "view",
847
+ "type": "function"
848
+ },
849
+ {
850
+ "inputs": [
851
+ {
852
+ "internalType": "uint16",
853
+ "name": "_chainId",
854
+ "type": "uint16"
855
+ },
856
+ {
857
+ "internalType": "address",
858
+ "name": "userApplicationAddress",
859
+ "type": "address"
860
+ },
861
+ {
862
+ "internalType": "uint256",
863
+ "name": "_configType",
864
+ "type": "uint256"
865
+ }
866
+ ],
867
+ "name": "getConfig",
868
+ "outputs": [
869
+ {
870
+ "internalType": "bytes",
871
+ "name": "",
872
+ "type": "bytes"
873
+ }
874
+ ],
875
+ "stateMutability": "view",
876
+ "type": "function"
877
+ },
878
+ {
879
+ "inputs": [
880
+ {
881
+ "internalType": "address",
882
+ "name": "",
883
+ "type": "address"
884
+ },
885
+ {
886
+ "internalType": "uint16",
887
+ "name": "",
888
+ "type": "uint16"
889
+ },
890
+ {
891
+ "internalType": "bytes32",
892
+ "name": "",
893
+ "type": "bytes32"
894
+ }
895
+ ],
896
+ "name": "hashLookup",
897
+ "outputs": [
898
+ {
899
+ "internalType": "uint256",
900
+ "name": "confirmations",
901
+ "type": "uint256"
902
+ },
903
+ {
904
+ "internalType": "bytes32",
905
+ "name": "data",
906
+ "type": "bytes32"
907
+ }
908
+ ],
909
+ "stateMutability": "view",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "inputs": [
914
+ {
915
+ "internalType": "uint16",
916
+ "name": "",
917
+ "type": "uint16"
918
+ },
919
+ {
920
+ "internalType": "uint16",
921
+ "name": "",
922
+ "type": "uint16"
923
+ }
924
+ ],
925
+ "name": "inboundProofLibrary",
926
+ "outputs": [
927
+ {
928
+ "internalType": "address",
929
+ "name": "",
930
+ "type": "address"
931
+ }
932
+ ],
933
+ "stateMutability": "view",
934
+ "type": "function"
935
+ },
936
+ {
937
+ "inputs": [],
938
+ "name": "layerZeroToken",
939
+ "outputs": [
940
+ {
941
+ "internalType": "contract IERC20",
942
+ "name": "",
943
+ "type": "address"
944
+ }
945
+ ],
946
+ "stateMutability": "view",
947
+ "type": "function"
948
+ },
949
+ {
950
+ "inputs": [
951
+ {
952
+ "internalType": "uint16",
953
+ "name": "",
954
+ "type": "uint16"
955
+ }
956
+ ],
957
+ "name": "maxInboundProofLibrary",
958
+ "outputs": [
959
+ {
960
+ "internalType": "uint16",
961
+ "name": "",
962
+ "type": "uint16"
963
+ }
964
+ ],
965
+ "stateMutability": "view",
966
+ "type": "function"
967
+ },
968
+ {
969
+ "inputs": [
970
+ {
971
+ "internalType": "address",
972
+ "name": "_oracle",
973
+ "type": "address"
974
+ }
975
+ ],
976
+ "name": "oracleQuotedAmount",
977
+ "outputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "",
981
+ "type": "uint256"
982
+ }
983
+ ],
984
+ "stateMutability": "view",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [
989
+ {
990
+ "internalType": "address",
991
+ "name": "",
992
+ "type": "address"
993
+ }
994
+ ],
995
+ "name": "oracleQuotedFees",
996
+ "outputs": [
997
+ {
998
+ "internalType": "uint256",
999
+ "name": "",
1000
+ "type": "uint256"
1001
+ }
1002
+ ],
1003
+ "stateMutability": "view",
1004
+ "type": "function"
1005
+ },
1006
+ {
1007
+ "inputs": [],
1008
+ "name": "owner",
1009
+ "outputs": [
1010
+ {
1011
+ "internalType": "address",
1012
+ "name": "",
1013
+ "type": "address"
1014
+ }
1015
+ ],
1016
+ "stateMutability": "view",
1017
+ "type": "function"
1018
+ },
1019
+ {
1020
+ "inputs": [
1021
+ {
1022
+ "internalType": "address",
1023
+ "name": "_relayer",
1024
+ "type": "address"
1025
+ }
1026
+ ],
1027
+ "name": "relayerQuotedAmount",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "uint256",
1031
+ "name": "",
1032
+ "type": "uint256"
1033
+ }
1034
+ ],
1035
+ "stateMutability": "view",
1036
+ "type": "function"
1037
+ },
1038
+ {
1039
+ "inputs": [
1040
+ {
1041
+ "internalType": "address",
1042
+ "name": "",
1043
+ "type": "address"
1044
+ }
1045
+ ],
1046
+ "name": "relayerQuotedFees",
1047
+ "outputs": [
1048
+ {
1049
+ "internalType": "uint256",
1050
+ "name": "",
1051
+ "type": "uint256"
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [],
1059
+ "name": "renounceOwnership",
1060
+ "outputs": [],
1061
+ "stateMutability": "nonpayable",
1062
+ "type": "function"
1063
+ },
1064
+ {
1065
+ "inputs": [
1066
+ {
1067
+ "internalType": "address",
1068
+ "name": "_ua",
1069
+ "type": "address"
1070
+ },
1071
+ {
1072
+ "internalType": "uint64",
1073
+ "name": "_nonce",
1074
+ "type": "uint64"
1075
+ },
1076
+ {
1077
+ "internalType": "uint16",
1078
+ "name": "_chainId",
1079
+ "type": "uint16"
1080
+ },
1081
+ {
1082
+ "internalType": "bytes",
1083
+ "name": "_destination",
1084
+ "type": "bytes"
1085
+ },
1086
+ {
1087
+ "internalType": "bytes",
1088
+ "name": "_payload",
1089
+ "type": "bytes"
1090
+ },
1091
+ {
1092
+ "internalType": "address payable",
1093
+ "name": "_refundAddress",
1094
+ "type": "address"
1095
+ },
1096
+ {
1097
+ "internalType": "address",
1098
+ "name": "_zroPaymentAddress",
1099
+ "type": "address"
1100
+ },
1101
+ {
1102
+ "internalType": "bytes",
1103
+ "name": "_adapterParams",
1104
+ "type": "bytes"
1105
+ }
1106
+ ],
1107
+ "name": "send",
1108
+ "outputs": [],
1109
+ "stateMutability": "payable",
1110
+ "type": "function"
1111
+ },
1112
+ {
1113
+ "inputs": [
1114
+ {
1115
+ "internalType": "uint16",
1116
+ "name": "_chainId",
1117
+ "type": "uint16"
1118
+ },
1119
+ {
1120
+ "internalType": "uint256",
1121
+ "name": "_size",
1122
+ "type": "uint256"
1123
+ }
1124
+ ],
1125
+ "name": "setChainAddressSize",
1126
+ "outputs": [],
1127
+ "stateMutability": "nonpayable",
1128
+ "type": "function"
1129
+ },
1130
+ {
1131
+ "inputs": [
1132
+ {
1133
+ "internalType": "uint16",
1134
+ "name": "chainId",
1135
+ "type": "uint16"
1136
+ },
1137
+ {
1138
+ "internalType": "address",
1139
+ "name": "_ua",
1140
+ "type": "address"
1141
+ },
1142
+ {
1143
+ "internalType": "uint256",
1144
+ "name": "_configType",
1145
+ "type": "uint256"
1146
+ },
1147
+ {
1148
+ "internalType": "bytes",
1149
+ "name": "_config",
1150
+ "type": "bytes"
1151
+ }
1152
+ ],
1153
+ "name": "setConfig",
1154
+ "outputs": [],
1155
+ "stateMutability": "nonpayable",
1156
+ "type": "function"
1157
+ },
1158
+ {
1159
+ "inputs": [
1160
+ {
1161
+ "internalType": "uint16",
1162
+ "name": "_chainId",
1163
+ "type": "uint16"
1164
+ },
1165
+ {
1166
+ "internalType": "uint16",
1167
+ "name": "_proofType",
1168
+ "type": "uint16"
1169
+ },
1170
+ {
1171
+ "internalType": "bytes",
1172
+ "name": "_adapterParams",
1173
+ "type": "bytes"
1174
+ }
1175
+ ],
1176
+ "name": "setDefaultAdapterParamsForChainId",
1177
+ "outputs": [],
1178
+ "stateMutability": "nonpayable",
1179
+ "type": "function"
1180
+ },
1181
+ {
1182
+ "inputs": [
1183
+ {
1184
+ "internalType": "uint16",
1185
+ "name": "_chainId",
1186
+ "type": "uint16"
1187
+ },
1188
+ {
1189
+ "internalType": "uint16",
1190
+ "name": "_inboundProofLibraryVersion",
1191
+ "type": "uint16"
1192
+ },
1193
+ {
1194
+ "internalType": "uint64",
1195
+ "name": "_inboundBlockConfirmations",
1196
+ "type": "uint64"
1197
+ },
1198
+ {
1199
+ "internalType": "address",
1200
+ "name": "_relayer",
1201
+ "type": "address"
1202
+ },
1203
+ {
1204
+ "internalType": "uint16",
1205
+ "name": "_outboundProofType",
1206
+ "type": "uint16"
1207
+ },
1208
+ {
1209
+ "internalType": "uint16",
1210
+ "name": "_outboundBlockConfirmations",
1211
+ "type": "uint16"
1212
+ },
1213
+ {
1214
+ "internalType": "address",
1215
+ "name": "_oracle",
1216
+ "type": "address"
1217
+ }
1218
+ ],
1219
+ "name": "setDefaultConfigForChainId",
1220
+ "outputs": [],
1221
+ "stateMutability": "nonpayable",
1222
+ "type": "function"
1223
+ },
1224
+ {
1225
+ "inputs": [
1226
+ {
1227
+ "internalType": "address",
1228
+ "name": "_layerZeroToken",
1229
+ "type": "address"
1230
+ }
1231
+ ],
1232
+ "name": "setLayerZeroToken",
1233
+ "outputs": [],
1234
+ "stateMutability": "nonpayable",
1235
+ "type": "function"
1236
+ },
1237
+ {
1238
+ "inputs": [
1239
+ {
1240
+ "internalType": "uint16",
1241
+ "name": "_remoteChainId",
1242
+ "type": "uint16"
1243
+ },
1244
+ {
1245
+ "internalType": "bytes32",
1246
+ "name": "_remoteUln",
1247
+ "type": "bytes32"
1248
+ }
1249
+ ],
1250
+ "name": "setRemoteUln",
1251
+ "outputs": [],
1252
+ "stateMutability": "nonpayable",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [
1257
+ {
1258
+ "internalType": "address",
1259
+ "name": "_treasury",
1260
+ "type": "address"
1261
+ }
1262
+ ],
1263
+ "name": "setTreasury",
1264
+ "outputs": [],
1265
+ "stateMutability": "nonpayable",
1266
+ "type": "function"
1267
+ },
1268
+ {
1269
+ "inputs": [
1270
+ {
1271
+ "internalType": "uint16",
1272
+ "name": "",
1273
+ "type": "uint16"
1274
+ },
1275
+ {
1276
+ "internalType": "uint16",
1277
+ "name": "",
1278
+ "type": "uint16"
1279
+ }
1280
+ ],
1281
+ "name": "supportedOutboundProof",
1282
+ "outputs": [
1283
+ {
1284
+ "internalType": "bool",
1285
+ "name": "",
1286
+ "type": "bool"
1287
+ }
1288
+ ],
1289
+ "stateMutability": "view",
1290
+ "type": "function"
1291
+ },
1292
+ {
1293
+ "inputs": [
1294
+ {
1295
+ "internalType": "address",
1296
+ "name": "newOwner",
1297
+ "type": "address"
1298
+ }
1299
+ ],
1300
+ "name": "transferOwnership",
1301
+ "outputs": [],
1302
+ "stateMutability": "nonpayable",
1303
+ "type": "function"
1304
+ },
1305
+ {
1306
+ "inputs": [],
1307
+ "name": "treasuryContract",
1308
+ "outputs": [
1309
+ {
1310
+ "internalType": "contract ILayerZeroTreasury",
1311
+ "name": "",
1312
+ "type": "address"
1313
+ }
1314
+ ],
1315
+ "stateMutability": "view",
1316
+ "type": "function"
1317
+ },
1318
+ {
1319
+ "inputs": [],
1320
+ "name": "treasuryNativeFees",
1321
+ "outputs": [
1322
+ {
1323
+ "internalType": "uint256",
1324
+ "name": "",
1325
+ "type": "uint256"
1326
+ }
1327
+ ],
1328
+ "stateMutability": "view",
1329
+ "type": "function"
1330
+ },
1331
+ {
1332
+ "inputs": [],
1333
+ "name": "treasuryZROFees",
1334
+ "outputs": [
1335
+ {
1336
+ "internalType": "uint256",
1337
+ "name": "",
1338
+ "type": "uint256"
1339
+ }
1340
+ ],
1341
+ "stateMutability": "view",
1342
+ "type": "function"
1343
+ },
1344
+ {
1345
+ "inputs": [
1346
+ {
1347
+ "internalType": "uint16",
1348
+ "name": "",
1349
+ "type": "uint16"
1350
+ }
1351
+ ],
1352
+ "name": "ulnLookup",
1353
+ "outputs": [
1354
+ {
1355
+ "internalType": "bytes32",
1356
+ "name": "",
1357
+ "type": "bytes32"
1358
+ }
1359
+ ],
1360
+ "stateMutability": "view",
1361
+ "type": "function"
1362
+ },
1363
+ {
1364
+ "inputs": [
1365
+ {
1366
+ "internalType": "uint16",
1367
+ "name": "_srcChainId",
1368
+ "type": "uint16"
1369
+ },
1370
+ {
1371
+ "internalType": "bytes32",
1372
+ "name": "_lookupHash",
1373
+ "type": "bytes32"
1374
+ },
1375
+ {
1376
+ "internalType": "uint256",
1377
+ "name": "_confirmations",
1378
+ "type": "uint256"
1379
+ },
1380
+ {
1381
+ "internalType": "bytes32",
1382
+ "name": "_data",
1383
+ "type": "bytes32"
1384
+ }
1385
+ ],
1386
+ "name": "updateHash",
1387
+ "outputs": [],
1388
+ "stateMutability": "nonpayable",
1389
+ "type": "function"
1390
+ },
1391
+ {
1392
+ "inputs": [
1393
+ {
1394
+ "internalType": "uint16",
1395
+ "name": "_srcChainId",
1396
+ "type": "uint16"
1397
+ },
1398
+ {
1399
+ "internalType": "address",
1400
+ "name": "_dstAddress",
1401
+ "type": "address"
1402
+ },
1403
+ {
1404
+ "internalType": "uint256",
1405
+ "name": "_gasLimit",
1406
+ "type": "uint256"
1407
+ },
1408
+ {
1409
+ "internalType": "bytes32",
1410
+ "name": "_lookupHash",
1411
+ "type": "bytes32"
1412
+ },
1413
+ {
1414
+ "internalType": "bytes",
1415
+ "name": "_transactionProof",
1416
+ "type": "bytes"
1417
+ }
1418
+ ],
1419
+ "name": "validateTransactionProof",
1420
+ "outputs": [],
1421
+ "stateMutability": "nonpayable",
1422
+ "type": "function"
1423
+ },
1424
+ {
1425
+ "inputs": [
1426
+ {
1427
+ "internalType": "uint8",
1428
+ "name": "_type",
1429
+ "type": "uint8"
1430
+ },
1431
+ {
1432
+ "internalType": "address",
1433
+ "name": "_owner",
1434
+ "type": "address"
1435
+ },
1436
+ {
1437
+ "internalType": "address payable",
1438
+ "name": "_to",
1439
+ "type": "address"
1440
+ },
1441
+ {
1442
+ "internalType": "uint256",
1443
+ "name": "_amount",
1444
+ "type": "uint256"
1445
+ }
1446
+ ],
1447
+ "name": "withdrawNative",
1448
+ "outputs": [],
1449
+ "stateMutability": "nonpayable",
1450
+ "type": "function"
1451
+ },
1452
+ {
1453
+ "inputs": [
1454
+ {
1455
+ "internalType": "address",
1456
+ "name": "_to",
1457
+ "type": "address"
1458
+ },
1459
+ {
1460
+ "internalType": "uint256",
1461
+ "name": "_amount",
1462
+ "type": "uint256"
1463
+ }
1464
+ ],
1465
+ "name": "withdrawZRO",
1466
+ "outputs": [],
1467
+ "stateMutability": "nonpayable",
1468
+ "type": "function"
1469
+ }
1470
+ ],
1471
+ "bytecode": "0x60a06040523480156200001157600080fd5b50d380156200001f57600080fd5b50d280156200002d57600080fd5b50604051620058e0380380620058e08339810160408190526200005091620000fb565b6001600090815562000061620000f7565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038116620000e15760405162461bcd60e51b8152600401620000d89062000134565b60405180910390fd5b60601b6001600160601b0319166080526200017e565b3390565b6000602082840312156200010d578081fd5b81516001600160a81b038116811462000124578182fd5b6001600160a01b03169392505050565b6020808252602a908201527f4c617965725a65726f3a20656e64706f696e742063616e6e6f74206265207a65604082015269726f206164647265737360b01b606082015260800190565b60805160601c615735620001ab600039806118a85280612799528061281352806135ce52506157356000f3fe60806040526004361061031e5760003560e01c80638317814a116101a5578063d56bc64b116100ec578063ebfa08e911610095578063f2fde38b1161006f578063f2fde38b14610d1c578063f47a5feb14610d56578063f8e1734c14610d85578063f9dd8e0f14610dbf5761031e565b8063ebfa08e914610c61578063ed28580a14610ca8578063f0f4426014610ce25761031e565b8063e6108a82116100c6578063e6108a8214610bb3578063ea216c2114610bed578063eb0d4c3114610c275761031e565b8063d56bc64b14610b05578063db00719b14610b3f578063ddfdef5a14610b795761031e565b8063a183608c1161014e578063b77d22ad11610128578063b77d22ad14610a48578063b8e7e3e014610a77578063d543c77414610abe5761031e565b8063a183608c14610998578063a4662222146109d2578063abe685cd14610a195761031e565b80638da5cb5b1161017f5780638da5cb5b14610900578063904d3b8d1461092f578063959f59431461095e5761031e565b80638317814a146108525780638525b7111461088c57806387078f9f146108c65761031e565b80634d0ca1b4116102695780635e280f1111610212578063715018a6116101ec578063715018a6146107ba5780638140666e146107e95780638207f79d146108185761031e565b80635e280f111461071757806361aa19da14610746578063704316e5146107805761031e565b806352d3b5001161024357806352d3b500146106745780635b5a2678146106ae5780635c011531146106dd5761031e565b80634d0ca1b4146105f85780634d3a0f7c1461062757806352d2871f1461063a5761031e565b80632cfacb06116102cb57806331bd2430116102a557806331bd24301461055257806340a7bb101461058157806349148c37146105c95761031e565b80632cfacb061461049b5780632e9959ec146104ca5780632f813464146105065761031e565b806318da0011116102fc57806318da0011146103eb57806322c107761461041a5780632a819bbf146104545761031e565b806302e72c631461032357806307b9ca7c14610373578063096607f8146103af575b600080fd5b34801561032f57600080fd5b50d3801561033c57600080fd5b50d2801561034957600080fd5b5061035d610358366004614044565b610dee565b60405161036a9190614927565b60405180910390f35b34801561037f57600080fd5b50d3801561038c57600080fd5b50d2801561039957600080fd5b506103a2610e00565b60405161036a9190614899565b3480156103bb57600080fd5b50d380156103c857600080fd5b50d280156103d557600080fd5b506103e96103e4366004614647565b610e0f565b005b3480156103f757600080fd5b50d3801561040457600080fd5b50d2801561041157600080fd5b506103a2611175565b34801561042657600080fd5b50d3801561043357600080fd5b50d2801561044057600080fd5b506103e961044f366004614723565b611184565b34801561046057600080fd5b50d3801561046d57600080fd5b50d2801561047a57600080fd5b5061048e6104893660046145b7565b61137d565b60405161036a919061495b565b3480156104a757600080fd5b50d380156104b457600080fd5b50d280156104c157600080fd5b5061035d61143f565b3480156104d657600080fd5b50d380156104e357600080fd5b50d280156104f057600080fd5b506104f9611444565b60405161036a91906155ac565b34801561051257600080fd5b50d3801561051f57600080fd5b50d2801561052c57600080fd5b5061054061053b3660046142fa565b611449565b60405161036a96959493929190615508565b34801561055e57600080fd5b50d3801561056b57600080fd5b50d2801561057857600080fd5b5061035d6114cd565b34801561058d57600080fd5b50d3801561059a57600080fd5b50d280156105a757600080fd5b506105bb6105b6366004614357565b6114d2565b60405161036a929190615589565b3480156105d557600080fd5b50d380156105e257600080fd5b50d280156105ef57600080fd5b5061035d61189c565b34801561060457600080fd5b50d3801561061157600080fd5b50d2801561061e57600080fd5b506104f96118a1565b6103e961063536600461412e565b6118a6565b34801561064657600080fd5b50d3801561065357600080fd5b50d2801561066057600080fd5b5061048e61066f36600461440b565b6120c7565b34801561068057600080fd5b50d3801561068d57600080fd5b50d2801561069a57600080fd5b506103e96106a9366004614044565b61242f565b3480156106ba57600080fd5b50d380156106c757600080fd5b50d280156106d457600080fd5b5061035d612537565b3480156106e957600080fd5b50d380156106f657600080fd5b50d2801561070357600080fd5b506103e9610712366004614455565b61253d565b34801561072357600080fd5b50d3801561073057600080fd5b50d2801561073d57600080fd5b506103a2612811565b34801561075257600080fd5b50d3801561075f57600080fd5b50d2801561076c57600080fd5b5061035d61077b366004614044565b612835565b34801561078c57600080fd5b50d3801561079957600080fd5b50d280156107a657600080fd5b506103e96107b536600461457d565b612854565b3480156107c657600080fd5b50d380156107d357600080fd5b50d280156107e057600080fd5b506103e96128e9565b3480156107f557600080fd5b50d3801561080257600080fd5b50d2801561080f57600080fd5b5061035d6129bf565b34801561082457600080fd5b50d3801561083157600080fd5b50d2801561083e57600080fd5b506103e961084d366004614316565b6129c4565b34801561085e57600080fd5b50d3801561086b57600080fd5b50d2801561087857600080fd5b506103e96108873660046145e4565b612b5c565b34801561089857600080fd5b50d380156108a557600080fd5b50d280156108b257600080fd5b506103e96108c13660046140fa565b612c3f565b3480156108d257600080fd5b50d380156108df57600080fd5b50d280156108ec57600080fd5b506103e96108fb366004614552565b612d31565b34801561090c57600080fd5b50d3801561091957600080fd5b50d2801561092657600080fd5b506103a2612e1e565b34801561093b57600080fd5b50d3801561094857600080fd5b50d2801561095557600080fd5b5061035d612e2d565b34801561096a57600080fd5b50d3801561097757600080fd5b50d2801561098457600080fd5b5061035d6109933660046142fa565b612e32565b3480156109a457600080fd5b50d380156109b157600080fd5b50d280156109be57600080fd5b5061035d6109cd366004614044565b612e44565b3480156109de57600080fd5b50d380156109eb57600080fd5b50d280156109f857600080fd5b50610a0c610a07366004614316565b612e56565b60405161036a9190615233565b348015610a2557600080fd5b50d38015610a3257600080fd5b50d28015610a3f57600080fd5b5061035d613024565b348015610a5457600080fd5b50d38015610a6157600080fd5b50d28015610a6e57600080fd5b5061035d611444565b348015610a8357600080fd5b50d38015610a9057600080fd5b50d28015610a9d57600080fd5b50610ab1610aac3660046142fa565b61302a565b60405161036a91906152b6565b348015610aca57600080fd5b50d38015610ad757600080fd5b50d28015610ae457600080fd5b50610af8610af33660046145b7565b613040565b60405161036a9190614904565b348015610b1157600080fd5b50d38015610b1e57600080fd5b50d28015610b2b57600080fd5b506105bb610b3a3660046140b1565b613060565b348015610b4b57600080fd5b50d38015610b5857600080fd5b50d28015610b6557600080fd5b506103a2610b743660046145b7565b61308a565b348015610b8557600080fd5b50d38015610b9257600080fd5b50d28015610b9f57600080fd5b50610540610bae366004614070565b6130b0565b348015610bbf57600080fd5b50d38015610bcc57600080fd5b50d28015610bd957600080fd5b5061035d610be8366004614044565b61313f565b348015610bf957600080fd5b50d38015610c0657600080fd5b50d28015610c1357600080fd5b5061035d610c223660046142fa565b61315a565b348015610c3357600080fd5b50d38015610c4057600080fd5b50d28015610c4d57600080fd5b506103e9610c5c3660046145b7565b61316c565b348015610c6d57600080fd5b50d38015610c7a57600080fd5b50d28015610c8757600080fd5b50610c9b610c963660046140b1565b61325b565b60405161036a919061529f565b348015610cb457600080fd5b50d38015610cc157600080fd5b50d28015610cce57600080fd5b506103e9610cdd366004614552565b6132af565b348015610cee57600080fd5b50d38015610cfb57600080fd5b50d28015610d0857600080fd5b506103e9610d17366004614044565b61339c565b348015610d2857600080fd5b50d38015610d3557600080fd5b50d28015610d4257600080fd5b506103e9610d51366004614044565b613499565b348015610d6257600080fd5b50d38015610d6f57600080fd5b50d28015610d7c57600080fd5b5061035d6135c6565b348015610d9157600080fd5b50d38015610d9e57600080fd5b50d28015610dab57600080fd5b506103e9610dba3660046144d8565b6135cc565b348015610dcb57600080fd5b50d38015610dd857600080fd5b50d28015610de557600080fd5b506104f961189c565b60056020526000908152604090205481565b6002546001600160a01b031681565b610e1761392c565b6001600160a01b0316610e28612e1e565b6001600160a01b031614610e83576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8088166000908152600c6020526040902054811690871611801590610eaf575060008661ffff16115b610ed45760405162461bcd60e51b8152600401610ecb90614e5a565b60405180910390fd5b60008567ffffffffffffffff1611610efe5760405162461bcd60e51b8152600401610ecb90615179565b6001600160a01b038416610f245760405162461bcd60e51b8152600401610ecb90614b2a565b61ffff8088166000908152600d602090815260408083209387168352929052205460ff16610f645760405162461bcd60e51b8152600401610ecb9061496e565b60008261ffff1611610f885760405162461bcd60e51b8152600401610ecb90615005565b6001600160a01b038116610fae5760405162461bcd60e51b8152600401610ecb90614c78565b6040518060c001604052808761ffff1681526020018667ffffffffffffffff168152602001856001600160a01b031681526020018461ffff1681526020018361ffff1667ffffffffffffffff168152602001826001600160a01b0316815250600960008961ffff1661ffff16815260200190815260200160002060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550604082015181600001600a6101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600001601e6101000a81548161ffff021916908361ffff16021790555060808201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a08201518160010160086101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507f45bb8a2b6b05457ff80b84be5bf06f2d05069fa8099fcb9d8e34149654b4d5c28787878787878760405161116497969594939291906154b8565b60405180910390a150505050505050565b6003546001600160a01b031681565b600260005414156111dc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260005560ff8416611228576003546001600160a01b031633146112135760405162461bcd60e51b8152600401610ecb90614e23565b6006546112209082613930565b6006556112b6565b60ff841660011415611263573360009081526004602052604090205461124e9082613930565b336000908152600460205260409020556112b6565b60ff84166002141561129e57336000908152600560205260409020546112899082613930565b336000908152600560205260409020556112b6565b60405162461bcd60e51b8152600401610ecb90615062565b6000826001600160a01b0316826040516112cf90614818565b60006040518083038185875af1925050503d806000811461130c576040519150601f19603f3d011682016040523d82523d6000602084013e611311565b606091505b50509050806113325760405162461bcd60e51b8152600401610ecb90614a39565b7f163adce0473e267e1db8ecb524c0fcdceda62c3e6f231966bbb252e01043253785853386866040516113699594939291906155ba565b60405180910390a150506001600055505050565b600a6020908152600092835260408084208252918352918190208054825160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f8101859004850282018501909352828152929091908301828280156114375780601f1061140c57610100808354040283529160200191611437565b820191906000526020600020905b81548152906001019060200180831161141a57829003601f168201915b505050505081565b600381565b600181565b6009602052600090815260409020805460019091015461ffff8083169267ffffffffffffffff6201000082048116936001600160a01b036a010000000000000000000084048116947e010000000000000000000000000000000000000000000000000000000000009094049093169291811691680100000000000000009091041686565b600681565b604080516020601f840181900481028201810190925282815260009182918a918a918991859190899089908190840183828082843760009201829052509394506115229250879150869050612e56565b905060008251600014156116925761ffff8681166000908152600a60209081526040808320606087015190941683529281528282208054845160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f8101849004840282018401909552848152929390918301828280156115f75780601f106115cc576101008083540402835291602001916115f7565b820191906000526020600020905b8154815290600101906020018083116115da57829003601f168201915b5050505050905082604001516001600160a01b031663e54a22158885606001518989866040518663ffffffff1660e01b815260040161163a9594939291906153fc565b60206040518083038186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a91906146ef565b915050611721565b81604001516001600160a01b031663e54a22158784606001518888886040518663ffffffff1660e01b81526004016116ce9594939291906153fc565b60206040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e91906146ef565b90505b60a082015160608301516040517f0b4d51070000000000000000000000000000000000000000000000000000000081526000926001600160a01b031691630b4d510791611772918b9160040161539e565b60206040518083038186803b15801561178a57600080fd5b505afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c291906146ef565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316635cbbbd758e85856040518463ffffffff1660e01b815260040161180b9392919061490f565b60206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b91906146ef565b90508c61186b5780995089611870565b809850885b506118879050816118818b8561398d565b9061398d565b98505050505050505097509795505050505050565b600281565b600081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118ee5760405162461bcd60e51b8152600401610ecb90614fce565b60006118fa8a8d612e56565b61ffff8b166000908152601060205260409020549091508c908c908c906119335760405162461bcd60e51b8152600401610ecb90614c1b565b6000808560a001516001600160a01b0316630b4d51078488606001516040518363ffffffff1660e01b815260040161196c92919061539e565b60206040518083038186803b15801561198457600080fd5b505afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc91906146ef565b60a08701516001600160a01b03166000908152600460205260409020549091506119e6908261398d565b60a08701516001600160a01b031660009081526004602052604090819020919091558601518b9088611c095761ffff8581166000908152600a6020908152604080832060608d015190941683529281528282208054845160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f810184900484028201840190955284815292939091830182828015611ad95780601f10611aae57610100808354040283529160200191611ad9565b820191906000526020600020905b815481529060010190602001808311611abc57829003601f168201915b5050505060608b01516040517fe54a22150000000000000000000000000000000000000000000000000000000081529293506001600160a01b0385169263e54a22159250611b31918a918d90899088906004016153fc565b60206040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8191906146ef565b60608a01516040517f3a5fb82a0000000000000000000000000000000000000000000000000000000081529196506001600160a01b03841691633a5fb82a91611bd1918a91908690600401615460565b600060405180830381600087803b158015611beb57600080fd5b505af1158015611bff573d6000803e3d6000fd5b5050505050611d18565b806001600160a01b031663e54a2215868a606001518a868f8f6040518763ffffffff1660e01b8152600401611c43969594939291906153b3565b60206040518083038186803b158015611c5b57600080fd5b505afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9391906146ef565b60608901516040517f3a5fb82a0000000000000000000000000000000000000000000000000000000081529195506001600160a01b03831691633a5fb82a91611ce5918991908f908f90600401615438565b600060405180830381600087803b158015611cff57600080fd5b505af1158015611d13573d6000803e3d6000fd5b505050505b6040808901516001600160a01b0316600090815260056020522054611d3d908561398d565b6040808a01516001600160a01b03166000908152600560205281902091909155606089015190517fb8a7262132db1f61626604a31c3de81dc1a5bb0f1511dfa70d626ab1b88b52c291611d979188918a918f908f90615551565b60405180910390a150600090506001600160a01b038a161580611dc357506002546001600160a01b0316155b6003546040517f5cbbbd750000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b0390911690635cbbbd7590611e17908515908890889060040161490f565b60206040518083038186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6791906146ef565b90508015611f03578115611e9657600654611e82908261398d565b600655611e8f848261398d565b9350611f03565b866001600160a01b03168b6001600160a01b03161480611ebe57506001600160a01b038b1632145b611eda5760405162461bcd60e51b8152600401610ecb90614bbe565b600254611ef2906001600160a01b03168c30846139e7565b600754611eff908261398d565b6007555b50611f109050828261398d565b915050600083858f8f8f8f604051602001611f309695949392919061481b565b60405160208183030381529060405290507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f68382604051611f72929190615320565b60405180910390a160a0860151606087015160808801516040517f665305790000000000000000000000000000000000000000000000000000000081526001600160a01b0390931692636653057992611fcf928892600401615490565b600060405180830381600087803b158015611fe957600080fd5b505af1158015611ffd573d6000803e3d6000fd5b5050505050348111156120225760405162461bcd60e51b8152600401610ecb90614a70565b600061202e3483613930565b905080156120b45760008a6001600160a01b03168260405161204f90614818565b60006040518083038185875af1925050503d806000811461208c576040519150601f19603f3d011682016040523d82523d6000602084013e612091565b606091505b50509050806120b25760405162461bcd60e51b8152600401610ecb90614b87565b505b5050505050505050505050505050505050565b6001600160a01b038216600090815260086020908152604080832061ffff871684529091529020606090600183141561215b57805461ffff166121455761ffff80861660009081526009602090815260409182902054915161212e939290921691016152b6565b604051602081830303815290604052915050612428565b805460405161212e9161ffff16906020016152b6565b60028314156121d157805462010000900467ffffffffffffffff166121af5761ffff851660009081526009602090815260409182902054915161212e9262010000900467ffffffffffffffff169101615597565b805460405161212e9162010000900467ffffffffffffffff1690602001615597565b600383141561225c5780546a010000000000000000000090046001600160a01b03166122335761ffff851660009081526009602090815260409182902054915161212e926a010000000000000000000090046001600160a01b03169101614899565b805460405161212e916a010000000000000000000090046001600160a01b031690602001614899565b60048314156123155780547e01000000000000000000000000000000000000000000000000000000000000900461ffff166122dd5761ffff80861660009081526009602090815260409182902054915161212e937e0100000000000000000000000000000000000000000000000000000000000090930490921691016152b6565b805460405161212e917e01000000000000000000000000000000000000000000000000000000000000900461ffff16906020016152b6565b600583141561238257600181015467ffffffffffffffff166123635761ffff851660009081526009602090815260409182902060010154915161212e9267ffffffffffffffff169101615597565b600181015460405161212e9167ffffffffffffffff1690602001615597565b60068314156124105760018101546801000000000000000090046001600160a01b03166123e65761ffff851660009081526009602090815260409182902060010154915161212e926801000000000000000090046001600160a01b03169101614899565b600181015460405161212e916801000000000000000090046001600160a01b031690602001614899565b60405162461bcd60e51b8152600401610ecb90614a02565b9392505050565b61243761392c565b6001600160a01b0316612448612e1e565b6001600160a01b0316146124a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166124c95760405162461bcd60e51b8152600401610ecb90614acd565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f33d644987381deff4408951d55afa136f124e22a7810b163b2aaa3ebef770f649061252c908390614899565b60405180910390a150565b60065481565b60006125498787612e56565b60408101519091506001600160a01b031633146125785760405162461bcd60e51b8152600401610ecb90614d0c565b612580613de5565b61ffff8089166000818152600b60209081526040808320875190951683529381528382205460a08701516001600160a01b039081168452600f83528584209484529382528483208a84528252939091209085015181549290931692909167ffffffffffffffff90911611156126075760405162461bcd60e51b8152600401610ecb906151d6565b61ffff8a166000908152600e60205260409081902054600183015491517fb71e0f7100000000000000000000000000000000000000000000000000000000815290916001600160a01b0385169163b71e0f719161266c918b908b908790600401614930565b600060405180830381600087803b15801561268657600080fd5b505af115801561269a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526126e0919081019061421e565b60a081015161ffff8d1660009081526010602052604090205491955014925061271e9150505760405162461bcd60e51b8152600401610ecb906150bf565b866001600160a01b031681606001516001600160a01b0316146127535760405162461bcd60e51b8152600401610ecb90614cd5565b80516080820151606083015160408085015160c086015191517fc2fa48130000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169563c2fa4813956127d5959194909391928e919060040161533d565b600060405180830381600087803b1580156127ef57600080fd5b505af1158015612803573d6000803e3d6000fd5b505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260409020545b919050565b336000908152600f6020908152604080832061ffff88168452825280832086845290915290208054831161289a5760405162461bcd60e51b8152600401610ecb90614da0565b828155600181018290556040517fc5e97f049604c4d8626704341240f021a22cee0d8b66ec306a45344be67733a0906128da9087903390879089906152e2565b60405180910390a15050505050565b6128f161392c565b6001600160a01b0316612902612e1e565b6001600160a01b03161461295d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600481565b6129cc61392c565b6001600160a01b03166129dd612e1e565b6001600160a01b031614612a38576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116612a5e5760405162461bcd60e51b8152600401610ecb90614d43565b61ffff8281166000908152600c6020526040902054811610612a925760405162461bcd60e51b8152600401610ecb90614f71565b61ffff8083166000908152600c60209081526040808320805480861660010186167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009091161790819055600b83528184209416835292905281902080546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055517f802d55279d51813cb7a9a98e8fd2d7bec5346cb830901c11b85d1650cb857e9a90612b5090849084906152c5565b60405180910390a15050565b612b6461392c565b6001600160a01b0316612b75612e1e565b6001600160a01b031614612bd0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8085166000908152600a60209081526040808320938716835292905220612bfb908383613e23565b507f4a5695eee2a74d548d5f5c485a3de99ace99e3b664c8e30a90f49be6ebb5493284848484604051612c319493929190615438565b60405180910390a150505050565b60026000541415612c97576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000556003546001600160a01b03163314612cc65760405162461bcd60e51b8152600401610ecb906149cb565b600754612cd39082613930565b600755600254612ced906001600160a01b03168383613a75565b7f3a20c8c3cd1848485ae8261a52398bb9b26f195b717306b3cf7f058e62c095d5338383604051612d20939291906148ad565b60405180910390a150506001600055565b612d3961392c565b6001600160a01b0316612d4a612e1e565b6001600160a01b031614612da5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff82166000908152600e602052604090205415612dd65760405162461bcd60e51b8152600401610ecb9061511c565b61ffff82166000908152600e602052604090819020829055517f0611bb2107e385b79ec826fff8ecc1c1248a7aae3c875c96668f8cfbf173422090612b50908490849061530c565b6001546001600160a01b031690565b600581565b600e6020526000908152604090205481565b60046020526000908152604090205481565b612e5e613ecd565b6001600160a01b03808316600090815260086020908152604080832061ffff808916808652918452828520835160c0810185528154808416825267ffffffffffffffff6201000082048116838901526a010000000000000000000082048a16838801527e010000000000000000000000000000000000000000000000000000000000009091048416606083015260019092015491821660808201526801000000000000000090910490961660a087015290845260099092529091208251909116612f2b57805461ffff1682525b602082015167ffffffffffffffff16612f5657805462010000900467ffffffffffffffff1660208301525b60408201516001600160a01b0316612f875780546a010000000000000000000090046001600160a01b031660408301525b606082015161ffff16612fc25780547e01000000000000000000000000000000000000000000000000000000000000900461ffff1660608301525b608082015167ffffffffffffffff16612fea57600181015467ffffffffffffffff1660808301525b60a08201516001600160a01b031661301c5760018101546801000000000000000090046001600160a01b031660a08301525b509392505050565b61271081565b600c6020526000908152604090205461ffff1681565b600d60209081526000928352604080842090915290825290205460ff1681565b600f6020908152600093845260408085208252928452828420905282529020805460019091015482565b600b6020908152600092835260408084209091529082529020546001600160a01b031681565b60086020908152600092835260408084209091529082529020805460019091015461ffff8083169267ffffffffffffffff6201000082048116936001600160a01b036a010000000000000000000084048116947e010000000000000000000000000000000000000000000000000000000000009094049093169291811691680100000000000000009091041686565b6001600160a01b031660009081526005602052604090205490565b60106020526000908152604090205481565b61317461392c565b6001600160a01b0316613185612e1e565b6001600160a01b0316146131e0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8083166000908152600d60209081526040808320938516835292905281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fec23bee6f88cfecebb09d6aaaed66f0ce110debc1f61117c8270a7116597df9a90612b50908490849061539e565b613263613f02565b506001600160a01b0383166000908152600f6020908152604080832061ffff86168452825280832084845282529182902082518084019093528054835260010154908201529392505050565b6132b761392c565b6001600160a01b03166132c8612e1e565b6001600160a01b031614613323576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8216600090815260106020526040902054156133545760405162461bcd60e51b8152600401610ecb90614f14565b61ffff821660009081526010602052604090819020829055517f0dad975e1d2fbe771c95cdcc7be9a1e61181de7173abe0a32b8f8f83140873e590612b50908490849061530c565b6133a461392c565b6001600160a01b03166133b5612e1e565b6001600160a01b031614613410576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166134365760405162461bcd60e51b8152600401610ecb90614eb7565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef39061252c908390614899565b6134a161392c565b6001600160a01b03166134b2612e1e565b6001600160a01b03161461350d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166135525760405162461bcd60e51b815260040180806020018281038252602681526020018061568a6026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60075481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146136145760405162461bcd60e51b8152600401610ecb90614fce565b6001600160a01b038416600090815260086020908152604080832061ffff89168452909152902060018414156136c1576000613652838501856142fa565b61ffff8089166000908152600c6020526040902054919250908116908216111561368e5760405162461bcd60e51b8152600401610ecb90614e5a565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff919091161781556138e7565b60028414156137185760006136d883850185614707565b825467ffffffffffffffff90911662010000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff909116178255506138e7565b600384141561377657600061372f83850185614044565b82546001600160a01b039091166a0100000000000000000000027fffff0000000000000000000000000000000000000000ffffffffffffffffffff909116178255506138e7565b600484141561383057600061378d838501856142fa565b61ffff8089166000908152600d602090815260408083209385168352929052205490915060ff16806137c1575061ffff8116155b6137dd5760405162461bcd60e51b8152600401610ecb9061496e565b815461ffff9091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556138e7565b600584141561388857600061384783850185614707565b6001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055506138e7565b600684141561241057600061389f83850185614044565b6001830180546001600160a01b0390921668010000000000000000027fffffffff0000000000000000000000000000000000000000ffffffffffffffff909216919091179055505b7ffc01bf86212a14151d51d1be5c2ac64d67d5ec823dfc6f53298d7ce3f3d3d2528585858560405161391c94939291906148d1565b60405180910390a1505050505050565b3390565b600082821115613987576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015612428576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052613a6f908590613afa565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052613af5908490613afa565b505050565b6000613b4f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613bab9092919063ffffffff16565b805190915015613af557808060200190516020811015613b6e57600080fd5b5051613af55760405162461bcd60e51b815260040180806020018281038252602a8152602001806156d6602a913960400191505060405180910390fd5b6060613bba8484600085613bc2565b949350505050565b606082471015613c035760405162461bcd60e51b81526004018080602001828103825260268152602001806156b06026913960400191505060405180910390fd5b613c0c85613d3b565b613c5d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310613cb957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613d1b576040519150601f19603f3d011682016040523d82523d6000602084013e613d20565b606091505b5091509150613d30828286613d41565b979650505050505050565b3b151590565b60608315613d50575081612428565b825115613d605782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613daa578181015183820152602001613d92565b50505050905090810190601f168015613dd75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613e595760008555613ebd565b82601f10613e90578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613ebd565b82800160010185558215613ebd579182015b82811115613ebd578235825591602001919060010190613ea2565b50613ec9929150613f19565b5090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b604080518082019091526000808252602082015290565b5b80821115613ec95760008155600101613f1a565b60008135613f3b8161563d565b6001600160a01b031692915050565b60008151613f3b8161563d565b60008083601f840112613f68578182fd5b50813567ffffffffffffffff811115613f7f578182fd5b602083019150836020828501011115613f9757600080fd5b9250929050565b600082601f830112613fae578081fd5b815167ffffffffffffffff811115613fc257fe5b613ff360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016155ed565b818152846020838601011115614007578283fd5b613bba826020830160208701615611565b803561284f81615663565b805161284f81615663565b803561284f81615673565b805161284f81615673565b600060208284031215614055578081fd5b81356140608161563d565b6001600160a01b03169392505050565b60008060408385031215614082578081fd5b823561408d8161563d565b6001600160a01b0316915060208301356140a681615663565b809150509250929050565b6000806000606084860312156140c5578081fd5b83356140d08161563d565b6001600160a01b0316925060208401356140e981615663565b929592945050506040919091013590565b6000806040838503121561410c578182fd5b82356141178161563d565b6001600160a01b0316946020939093013593505050565b60008060008060008060008060008060006101008c8e03121561414f578687fd5b6141588c613f2e565b9a5061416660208d0161402e565b995061417460408d01614018565b985067ffffffffffffffff8060608e0135111561418f578788fd5b61419f8e60608f01358f01613f57565b909950975060808d01358110156141b4578687fd5b6141c48e60808f01358f01613f57565b90975095506141d560a08e01613f2e565b94506141e360c08e01613f2e565b93508060e08e013511156141f5578283fd5b506142068d60e08e01358e01613f57565b81935080925050509295989b509295989b9093969950565b60006020828403121561422f578081fd5b815167ffffffffffffffff80821115614246578283fd5b9083019060e08286031215614259578283fd5b61426360e06155ed565b61426c83614023565b815261427a60208401614023565b602082015261428b60408401614039565b604082015261429c60608401613f4a565b60608201526080830151828111156142b2578485fd5b6142be87828601613f9e565b60808301525060a083015160a082015260c0830151828111156142df578485fd5b6142eb87828601613f9e565b60c08301525095945050505050565b60006020828403121561430b578081fd5b813561242881615663565b60008060408385031215614328578182fd5b823561433381615663565b915060208301356143438161563d565b6001600160a01b0381169150509250929050565b600080600080600080600060a0888a031215614371578081fd5b873561437c81615663565b9650602088013561438c8161563d565b6001600160a01b03169550604088013567ffffffffffffffff808211156143b1578283fd5b6143bd8b838c01613f57565b909750955060608a0135915081151582146143d6578283fd5b909350608089013590808211156143eb578283fd5b506143f88a828b01613f57565b989b979a50959850939692959293505050565b60008060006060848603121561441f578081fd5b833561442a81615663565b9250602084013561443a8161563d565b6001600160a01b038116925050604084013590509250925092565b60008060008060008060a0878903121561446d578384fd5b863561447881615663565b955060208701356144888161563d565b6001600160a01b031694506040870135935060608701359250608087013567ffffffffffffffff8111156144ba578283fd5b6144c689828a01613f57565b979a9699509497509295939492505050565b6000806000806000608086880312156144ef578283fd5b85356144fa81615663565b9450602086013561450a8161563d565b6001600160a01b0316935060408601359250606086013567ffffffffffffffff811115614535578182fd5b61454188828901613f57565b969995985093965092949392505050565b60008060408385031215614564578182fd5b823561456f81615663565b946020939093013593505050565b60008060008060808587031215614592578182fd5b843561459d81615663565b966020860135965060408601359560600135945092505050565b600080604083850312156145c9578182fd5b82356145d481615663565b915060208301356140a681615663565b600080600080606085870312156145f9578182fd5b843561460481615663565b9350602085013561461481615663565b9250604085013567ffffffffffffffff81111561462f578283fd5b61463b87828801613f57565b95989497509550505050565b600080600080600080600060e0888a031215614661578081fd5b873561466c81615663565b9650602088013561467c81615663565b9550604088013561468c81615673565b9450606088013561469c8161563d565b6001600160a01b0390811694506080890135906146b882615663565b90935060a0890135906146ca82615663565b90925060c0890135906146dc8261563d565b8082169250505092959891949750929550565b600060208284031215614700578081fd5b5051919050565b600060208284031215614718578081fd5b813561242881615673565b60008060008060808587031215614738578182fd5b843560ff81168114614748578283fd5b935060208501356147588161563d565b6001600160a01b0390811693506040860135906147748261563d565b94979396509093169360600135925050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b600081518084526147e6816020860160208601615611565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b90565b60007fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b1682527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008760601b1660088301528486601c840137848201601c81018281528486823750909201601c019182525095945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006001600160a01b0386168252846020830152606060408301526148fa606083018486614786565b9695505050505050565b901515815260200190565b92151583526020830191909152604082015260600190565b90815260200190565b60008582526060602083015261494a606083018587614786565b905082604083015295945050505050565b60006020825261242860208301846147ce565b60208082526026908201527f4c617965725a65726f3a20696e76616c6964206f7574626f756e642070726f6f60408201527f6620747970650000000000000000000000000000000000000000000000000000606082015260800190565b60208082526018908201527f4c617965725a65726f3a206f6e6c792074726561737572790000000000000000604082015260600190565b6020808252601e908201527f4c617965725a65726f3a20496e76616c696420636f6e66696720747970650000604082015260600190565b6020808252601a908201527f4c617965725a65726f3a207769746864726177206661696c6564000000000000604082015260600190565b60208082526025908201527f4c617965725a65726f3a206e6f7420656e6f756768206e617469766520666f7260408201527f2066656573000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526031908201527f4c617965725a65726f3a205f6c617965725a65726f546f6b656e2063616e6e6f60408201527f74206265207a65726f2061646472657373000000000000000000000000000000606082015260800190565b60208082526022908201527f4c617965725a65726f3a20696e76616c69642072656c6179657220616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f4c617965725a65726f3a206661696c656420746f20726566756e640000000000604082015260600190565b6020808252602b908201527f4c617965725a65726f3a206d75737420626520706169642062792073656e646560408201527f72206f72206f726967696e000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a20636861696e496420646f6573206e6f74206578697360408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a20696e76616c6964206f7261636c652061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f4c617965725a65726f3a20696e76616c69642064737420616464726573730000604082015260600190565b6020808252601a908201527f4c617965725a65726f3a20696e76616c69642072656c61796572000000000000604082015260600190565b60208082526029908201527f4c617965725a65726f3a206c6962726172792063616e6e6f74206265207a657260408201527f6f20616464726573730000000000000000000000000000000000000000000000606082015260800190565b60208082526043908201527f4c617965725a65726f3a206f7261636c6520646174612063616e206f6e6c792060408201527f75706461746520696620697420686173206d6f726520636f6e6669726d61746960608201527f6f6e730000000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526017908201527f4c617965725a65726f3a6f6e6c79207472656173757279000000000000000000604082015260600190565b60208082526030908201527f4c617965725a65726f3a20696e76616c696420696e626f756e642070726f6f6660408201527f206c6962726172792076657273696f6e00000000000000000000000000000000606082015260800190565b6020808252602a908201527f4c617965725a65726f3a2074726561737572792063616e6e6f74206265207a6560408201527f726f206164647265737300000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a2072656d6f746520756c6e20616c726561647920736560408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f4c617965725a65726f3a2063616e206e6f7420616464206e6577206c6962726160408201527f7279000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526018908201527f4c617965725a65726f3a206f6e6c7920656e64706f696e740000000000000000604082015260600190565b6020808252602e908201527f4c617965725a65726f3a20696e76616c6964206f7574626f756e6420626c6f6360408201527f6b20636f6e6669726d6174696f6e000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4c617965725a65726f3a20756e737570706f727465642077697468647261772060408201527f7479706500000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f4c617965725a65726f3a205f7061636b65742e756c6e4164647265737320697360408201527f20696e76616c6964000000000000000000000000000000000000000000000000606082015260800190565b60208082526030908201527f4c617965725a65726f3a2072656d6f746520636861696e20616464726573732060408201527f73697a6520616c72656164792073657400000000000000000000000000000000606082015260800190565b6020808252602d908201527f4c617965725a65726f3a20696e76616c696420696e626f756e6420626c6f636b60408201527f20636f6e6669726d6174696f6e00000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4c617965725a65726f3a206e6f7420656e6f75676820626c6f636b20636f6e6660408201527f69726d6174696f6e730000000000000000000000000000000000000000000000606082015260800190565b600060c08201905061ffff808451168352602084015167ffffffffffffffff8082166020860152604086015191506001600160a01b0380831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b815181526020918201519181019190915260400190565b61ffff91909116815260200190565b61ffff9290921682526001600160a01b0316602082015260400190565b61ffff9490941684526001600160a01b039290921660208401526040830152606082015260800190565b61ffff929092168252602082015260400190565b600061ffff8416825260406020830152613bba60408301846147ce565b600061ffff8816825260c0602083015261535a60c08301886147ce565b6001600160a01b038716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261539181856147ce565b9998505050505050505050565b61ffff92831681529116602082015260400190565b600061ffff80891683528088166020840152506001600160a01b038616604083015284606083015260a060808301526153f060a083018486614786565b98975050505050505050565b600061ffff80881683528087166020840152506001600160a01b038516604083015283606083015260a06080830152613d3060a08301846147ce565b600061ffff8087168352808616602084015250606060408301526148fa606083018486614786565b600061ffff80861683528085166020840152506060604083015261548760608301846147ce565b95945050505050565b61ffff938416815291909216602082015267ffffffffffffffff909116604082015260600190565b61ffff9788168152958716602087015267ffffffffffffffff9490941660408601526001600160a01b039283166060860152908516608085015290931660a083015290911660c082015260e00190565b61ffff968716815267ffffffffffffffff95861660208201526001600160a01b03948516604082015292909516606083015290921660808301529190911660a082015260c00190565b600061ffff808816835267ffffffffffffffff8716602084015280861660408401525060806060830152613d30608083018486614786565b918252602082015260400190565b67ffffffffffffffff91909116815260200190565b60ff91909116815260200190565b60ff9590951685526001600160a01b03938416602086015291831660408501529091166060830152608082015260a00190565b60405181810167ffffffffffffffff8111828210171561560957fe5b604052919050565b60005b8381101561562c578181015183820152602001615614565b83811115613a6f5750506000910152565b74ffffffffffffffffffffffffffffffffffffffffff8116811461566057600080fd5b50565b61ffff8116811461566057600080fd5b67ffffffffffffffff8116811461566057600080fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212207d21b80caaafb404a85f37203bf2affa26f549a98a557b0a0d19d029f0bd45eb64736f6c63430007060033",
1472
+ "deployedBytecode": "0x60806040526004361061031e5760003560e01c80638317814a116101a5578063d56bc64b116100ec578063ebfa08e911610095578063f2fde38b1161006f578063f2fde38b14610d1c578063f47a5feb14610d56578063f8e1734c14610d85578063f9dd8e0f14610dbf5761031e565b8063ebfa08e914610c61578063ed28580a14610ca8578063f0f4426014610ce25761031e565b8063e6108a82116100c6578063e6108a8214610bb3578063ea216c2114610bed578063eb0d4c3114610c275761031e565b8063d56bc64b14610b05578063db00719b14610b3f578063ddfdef5a14610b795761031e565b8063a183608c1161014e578063b77d22ad11610128578063b77d22ad14610a48578063b8e7e3e014610a77578063d543c77414610abe5761031e565b8063a183608c14610998578063a4662222146109d2578063abe685cd14610a195761031e565b80638da5cb5b1161017f5780638da5cb5b14610900578063904d3b8d1461092f578063959f59431461095e5761031e565b80638317814a146108525780638525b7111461088c57806387078f9f146108c65761031e565b80634d0ca1b4116102695780635e280f1111610212578063715018a6116101ec578063715018a6146107ba5780638140666e146107e95780638207f79d146108185761031e565b80635e280f111461071757806361aa19da14610746578063704316e5146107805761031e565b806352d3b5001161024357806352d3b500146106745780635b5a2678146106ae5780635c011531146106dd5761031e565b80634d0ca1b4146105f85780634d3a0f7c1461062757806352d2871f1461063a5761031e565b80632cfacb06116102cb57806331bd2430116102a557806331bd24301461055257806340a7bb101461058157806349148c37146105c95761031e565b80632cfacb061461049b5780632e9959ec146104ca5780632f813464146105065761031e565b806318da0011116102fc57806318da0011146103eb57806322c107761461041a5780632a819bbf146104545761031e565b806302e72c631461032357806307b9ca7c14610373578063096607f8146103af575b600080fd5b34801561032f57600080fd5b50d3801561033c57600080fd5b50d2801561034957600080fd5b5061035d610358366004614044565b610dee565b60405161036a9190614927565b60405180910390f35b34801561037f57600080fd5b50d3801561038c57600080fd5b50d2801561039957600080fd5b506103a2610e00565b60405161036a9190614899565b3480156103bb57600080fd5b50d380156103c857600080fd5b50d280156103d557600080fd5b506103e96103e4366004614647565b610e0f565b005b3480156103f757600080fd5b50d3801561040457600080fd5b50d2801561041157600080fd5b506103a2611175565b34801561042657600080fd5b50d3801561043357600080fd5b50d2801561044057600080fd5b506103e961044f366004614723565b611184565b34801561046057600080fd5b50d3801561046d57600080fd5b50d2801561047a57600080fd5b5061048e6104893660046145b7565b61137d565b60405161036a919061495b565b3480156104a757600080fd5b50d380156104b457600080fd5b50d280156104c157600080fd5b5061035d61143f565b3480156104d657600080fd5b50d380156104e357600080fd5b50d280156104f057600080fd5b506104f9611444565b60405161036a91906155ac565b34801561051257600080fd5b50d3801561051f57600080fd5b50d2801561052c57600080fd5b5061054061053b3660046142fa565b611449565b60405161036a96959493929190615508565b34801561055e57600080fd5b50d3801561056b57600080fd5b50d2801561057857600080fd5b5061035d6114cd565b34801561058d57600080fd5b50d3801561059a57600080fd5b50d280156105a757600080fd5b506105bb6105b6366004614357565b6114d2565b60405161036a929190615589565b3480156105d557600080fd5b50d380156105e257600080fd5b50d280156105ef57600080fd5b5061035d61189c565b34801561060457600080fd5b50d3801561061157600080fd5b50d2801561061e57600080fd5b506104f96118a1565b6103e961063536600461412e565b6118a6565b34801561064657600080fd5b50d3801561065357600080fd5b50d2801561066057600080fd5b5061048e61066f36600461440b565b6120c7565b34801561068057600080fd5b50d3801561068d57600080fd5b50d2801561069a57600080fd5b506103e96106a9366004614044565b61242f565b3480156106ba57600080fd5b50d380156106c757600080fd5b50d280156106d457600080fd5b5061035d612537565b3480156106e957600080fd5b50d380156106f657600080fd5b50d2801561070357600080fd5b506103e9610712366004614455565b61253d565b34801561072357600080fd5b50d3801561073057600080fd5b50d2801561073d57600080fd5b506103a2612811565b34801561075257600080fd5b50d3801561075f57600080fd5b50d2801561076c57600080fd5b5061035d61077b366004614044565b612835565b34801561078c57600080fd5b50d3801561079957600080fd5b50d280156107a657600080fd5b506103e96107b536600461457d565b612854565b3480156107c657600080fd5b50d380156107d357600080fd5b50d280156107e057600080fd5b506103e96128e9565b3480156107f557600080fd5b50d3801561080257600080fd5b50d2801561080f57600080fd5b5061035d6129bf565b34801561082457600080fd5b50d3801561083157600080fd5b50d2801561083e57600080fd5b506103e961084d366004614316565b6129c4565b34801561085e57600080fd5b50d3801561086b57600080fd5b50d2801561087857600080fd5b506103e96108873660046145e4565b612b5c565b34801561089857600080fd5b50d380156108a557600080fd5b50d280156108b257600080fd5b506103e96108c13660046140fa565b612c3f565b3480156108d257600080fd5b50d380156108df57600080fd5b50d280156108ec57600080fd5b506103e96108fb366004614552565b612d31565b34801561090c57600080fd5b50d3801561091957600080fd5b50d2801561092657600080fd5b506103a2612e1e565b34801561093b57600080fd5b50d3801561094857600080fd5b50d2801561095557600080fd5b5061035d612e2d565b34801561096a57600080fd5b50d3801561097757600080fd5b50d2801561098457600080fd5b5061035d6109933660046142fa565b612e32565b3480156109a457600080fd5b50d380156109b157600080fd5b50d280156109be57600080fd5b5061035d6109cd366004614044565b612e44565b3480156109de57600080fd5b50d380156109eb57600080fd5b50d280156109f857600080fd5b50610a0c610a07366004614316565b612e56565b60405161036a9190615233565b348015610a2557600080fd5b50d38015610a3257600080fd5b50d28015610a3f57600080fd5b5061035d613024565b348015610a5457600080fd5b50d38015610a6157600080fd5b50d28015610a6e57600080fd5b5061035d611444565b348015610a8357600080fd5b50d38015610a9057600080fd5b50d28015610a9d57600080fd5b50610ab1610aac3660046142fa565b61302a565b60405161036a91906152b6565b348015610aca57600080fd5b50d38015610ad757600080fd5b50d28015610ae457600080fd5b50610af8610af33660046145b7565b613040565b60405161036a9190614904565b348015610b1157600080fd5b50d38015610b1e57600080fd5b50d28015610b2b57600080fd5b506105bb610b3a3660046140b1565b613060565b348015610b4b57600080fd5b50d38015610b5857600080fd5b50d28015610b6557600080fd5b506103a2610b743660046145b7565b61308a565b348015610b8557600080fd5b50d38015610b9257600080fd5b50d28015610b9f57600080fd5b50610540610bae366004614070565b6130b0565b348015610bbf57600080fd5b50d38015610bcc57600080fd5b50d28015610bd957600080fd5b5061035d610be8366004614044565b61313f565b348015610bf957600080fd5b50d38015610c0657600080fd5b50d28015610c1357600080fd5b5061035d610c223660046142fa565b61315a565b348015610c3357600080fd5b50d38015610c4057600080fd5b50d28015610c4d57600080fd5b506103e9610c5c3660046145b7565b61316c565b348015610c6d57600080fd5b50d38015610c7a57600080fd5b50d28015610c8757600080fd5b50610c9b610c963660046140b1565b61325b565b60405161036a919061529f565b348015610cb457600080fd5b50d38015610cc157600080fd5b50d28015610cce57600080fd5b506103e9610cdd366004614552565b6132af565b348015610cee57600080fd5b50d38015610cfb57600080fd5b50d28015610d0857600080fd5b506103e9610d17366004614044565b61339c565b348015610d2857600080fd5b50d38015610d3557600080fd5b50d28015610d4257600080fd5b506103e9610d51366004614044565b613499565b348015610d6257600080fd5b50d38015610d6f57600080fd5b50d28015610d7c57600080fd5b5061035d6135c6565b348015610d9157600080fd5b50d38015610d9e57600080fd5b50d28015610dab57600080fd5b506103e9610dba3660046144d8565b6135cc565b348015610dcb57600080fd5b50d38015610dd857600080fd5b50d28015610de557600080fd5b506104f961189c565b60056020526000908152604090205481565b6002546001600160a01b031681565b610e1761392c565b6001600160a01b0316610e28612e1e565b6001600160a01b031614610e83576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8088166000908152600c6020526040902054811690871611801590610eaf575060008661ffff16115b610ed45760405162461bcd60e51b8152600401610ecb90614e5a565b60405180910390fd5b60008567ffffffffffffffff1611610efe5760405162461bcd60e51b8152600401610ecb90615179565b6001600160a01b038416610f245760405162461bcd60e51b8152600401610ecb90614b2a565b61ffff8088166000908152600d602090815260408083209387168352929052205460ff16610f645760405162461bcd60e51b8152600401610ecb9061496e565b60008261ffff1611610f885760405162461bcd60e51b8152600401610ecb90615005565b6001600160a01b038116610fae5760405162461bcd60e51b8152600401610ecb90614c78565b6040518060c001604052808761ffff1681526020018667ffffffffffffffff168152602001856001600160a01b031681526020018461ffff1681526020018361ffff1667ffffffffffffffff168152602001826001600160a01b0316815250600960008961ffff1661ffff16815260200190815260200160002060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550604082015181600001600a6101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600001601e6101000a81548161ffff021916908361ffff16021790555060808201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060a08201518160010160086101000a8154816001600160a01b0302191690836001600160a01b031602179055509050507f45bb8a2b6b05457ff80b84be5bf06f2d05069fa8099fcb9d8e34149654b4d5c28787878787878760405161116497969594939291906154b8565b60405180910390a150505050505050565b6003546001600160a01b031681565b600260005414156111dc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260005560ff8416611228576003546001600160a01b031633146112135760405162461bcd60e51b8152600401610ecb90614e23565b6006546112209082613930565b6006556112b6565b60ff841660011415611263573360009081526004602052604090205461124e9082613930565b336000908152600460205260409020556112b6565b60ff84166002141561129e57336000908152600560205260409020546112899082613930565b336000908152600560205260409020556112b6565b60405162461bcd60e51b8152600401610ecb90615062565b6000826001600160a01b0316826040516112cf90614818565b60006040518083038185875af1925050503d806000811461130c576040519150601f19603f3d011682016040523d82523d6000602084013e611311565b606091505b50509050806113325760405162461bcd60e51b8152600401610ecb90614a39565b7f163adce0473e267e1db8ecb524c0fcdceda62c3e6f231966bbb252e01043253785853386866040516113699594939291906155ba565b60405180910390a150506001600055505050565b600a6020908152600092835260408084208252918352918190208054825160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f8101859004850282018501909352828152929091908301828280156114375780601f1061140c57610100808354040283529160200191611437565b820191906000526020600020905b81548152906001019060200180831161141a57829003601f168201915b505050505081565b600381565b600181565b6009602052600090815260409020805460019091015461ffff8083169267ffffffffffffffff6201000082048116936001600160a01b036a010000000000000000000084048116947e010000000000000000000000000000000000000000000000000000000000009094049093169291811691680100000000000000009091041686565b600681565b604080516020601f840181900481028201810190925282815260009182918a918a918991859190899089908190840183828082843760009201829052509394506115229250879150869050612e56565b905060008251600014156116925761ffff8681166000908152600a60209081526040808320606087015190941683529281528282208054845160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f8101849004840282018401909552848152929390918301828280156115f75780601f106115cc576101008083540402835291602001916115f7565b820191906000526020600020905b8154815290600101906020018083116115da57829003601f168201915b5050505050905082604001516001600160a01b031663e54a22158885606001518989866040518663ffffffff1660e01b815260040161163a9594939291906153fc565b60206040518083038186803b15801561165257600080fd5b505afa158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a91906146ef565b915050611721565b81604001516001600160a01b031663e54a22158784606001518888886040518663ffffffff1660e01b81526004016116ce9594939291906153fc565b60206040518083038186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e91906146ef565b90505b60a082015160608301516040517f0b4d51070000000000000000000000000000000000000000000000000000000081526000926001600160a01b031691630b4d510791611772918b9160040161539e565b60206040518083038186803b15801561178a57600080fd5b505afa15801561179e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c291906146ef565b90506000600360009054906101000a90046001600160a01b03166001600160a01b0316635cbbbd758e85856040518463ffffffff1660e01b815260040161180b9392919061490f565b60206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b91906146ef565b90508c61186b5780995089611870565b809850885b506118879050816118818b8561398d565b9061398d565b98505050505050505097509795505050505050565b600281565b600081565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146118ee5760405162461bcd60e51b8152600401610ecb90614fce565b60006118fa8a8d612e56565b61ffff8b166000908152601060205260409020549091508c908c908c906119335760405162461bcd60e51b8152600401610ecb90614c1b565b6000808560a001516001600160a01b0316630b4d51078488606001516040518363ffffffff1660e01b815260040161196c92919061539e565b60206040518083038186803b15801561198457600080fd5b505afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc91906146ef565b60a08701516001600160a01b03166000908152600460205260409020549091506119e6908261398d565b60a08701516001600160a01b031660009081526004602052604090819020919091558601518b9088611c095761ffff8581166000908152600a6020908152604080832060608d015190941683529281528282208054845160026001831615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190921691909104601f810184900484028201840190955284815292939091830182828015611ad95780601f10611aae57610100808354040283529160200191611ad9565b820191906000526020600020905b815481529060010190602001808311611abc57829003601f168201915b5050505060608b01516040517fe54a22150000000000000000000000000000000000000000000000000000000081529293506001600160a01b0385169263e54a22159250611b31918a918d90899088906004016153fc565b60206040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8191906146ef565b60608a01516040517f3a5fb82a0000000000000000000000000000000000000000000000000000000081529196506001600160a01b03841691633a5fb82a91611bd1918a91908690600401615460565b600060405180830381600087803b158015611beb57600080fd5b505af1158015611bff573d6000803e3d6000fd5b5050505050611d18565b806001600160a01b031663e54a2215868a606001518a868f8f6040518763ffffffff1660e01b8152600401611c43969594939291906153b3565b60206040518083038186803b158015611c5b57600080fd5b505afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c9391906146ef565b60608901516040517f3a5fb82a0000000000000000000000000000000000000000000000000000000081529195506001600160a01b03831691633a5fb82a91611ce5918991908f908f90600401615438565b600060405180830381600087803b158015611cff57600080fd5b505af1158015611d13573d6000803e3d6000fd5b505050505b6040808901516001600160a01b0316600090815260056020522054611d3d908561398d565b6040808a01516001600160a01b03166000908152600560205281902091909155606089015190517fb8a7262132db1f61626604a31c3de81dc1a5bb0f1511dfa70d626ab1b88b52c291611d979188918a918f908f90615551565b60405180910390a150600090506001600160a01b038a161580611dc357506002546001600160a01b0316155b6003546040517f5cbbbd750000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b0390911690635cbbbd7590611e17908515908890889060040161490f565b60206040518083038186803b158015611e2f57600080fd5b505afa158015611e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6791906146ef565b90508015611f03578115611e9657600654611e82908261398d565b600655611e8f848261398d565b9350611f03565b866001600160a01b03168b6001600160a01b03161480611ebe57506001600160a01b038b1632145b611eda5760405162461bcd60e51b8152600401610ecb90614bbe565b600254611ef2906001600160a01b03168c30846139e7565b600754611eff908261398d565b6007555b50611f109050828261398d565b915050600083858f8f8f8f604051602001611f309695949392919061481b565b60405160208183030381529060405290507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f68382604051611f72929190615320565b60405180910390a160a0860151606087015160808801516040517f665305790000000000000000000000000000000000000000000000000000000081526001600160a01b0390931692636653057992611fcf928892600401615490565b600060405180830381600087803b158015611fe957600080fd5b505af1158015611ffd573d6000803e3d6000fd5b5050505050348111156120225760405162461bcd60e51b8152600401610ecb90614a70565b600061202e3483613930565b905080156120b45760008a6001600160a01b03168260405161204f90614818565b60006040518083038185875af1925050503d806000811461208c576040519150601f19603f3d011682016040523d82523d6000602084013e612091565b606091505b50509050806120b25760405162461bcd60e51b8152600401610ecb90614b87565b505b5050505050505050505050505050505050565b6001600160a01b038216600090815260086020908152604080832061ffff871684529091529020606090600183141561215b57805461ffff166121455761ffff80861660009081526009602090815260409182902054915161212e939290921691016152b6565b604051602081830303815290604052915050612428565b805460405161212e9161ffff16906020016152b6565b60028314156121d157805462010000900467ffffffffffffffff166121af5761ffff851660009081526009602090815260409182902054915161212e9262010000900467ffffffffffffffff169101615597565b805460405161212e9162010000900467ffffffffffffffff1690602001615597565b600383141561225c5780546a010000000000000000000090046001600160a01b03166122335761ffff851660009081526009602090815260409182902054915161212e926a010000000000000000000090046001600160a01b03169101614899565b805460405161212e916a010000000000000000000090046001600160a01b031690602001614899565b60048314156123155780547e01000000000000000000000000000000000000000000000000000000000000900461ffff166122dd5761ffff80861660009081526009602090815260409182902054915161212e937e0100000000000000000000000000000000000000000000000000000000000090930490921691016152b6565b805460405161212e917e01000000000000000000000000000000000000000000000000000000000000900461ffff16906020016152b6565b600583141561238257600181015467ffffffffffffffff166123635761ffff851660009081526009602090815260409182902060010154915161212e9267ffffffffffffffff169101615597565b600181015460405161212e9167ffffffffffffffff1690602001615597565b60068314156124105760018101546801000000000000000090046001600160a01b03166123e65761ffff851660009081526009602090815260409182902060010154915161212e926801000000000000000090046001600160a01b03169101614899565b600181015460405161212e916801000000000000000090046001600160a01b031690602001614899565b60405162461bcd60e51b8152600401610ecb90614a02565b9392505050565b61243761392c565b6001600160a01b0316612448612e1e565b6001600160a01b0316146124a3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166124c95760405162461bcd60e51b8152600401610ecb90614acd565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517f33d644987381deff4408951d55afa136f124e22a7810b163b2aaa3ebef770f649061252c908390614899565b60405180910390a150565b60065481565b60006125498787612e56565b60408101519091506001600160a01b031633146125785760405162461bcd60e51b8152600401610ecb90614d0c565b612580613de5565b61ffff8089166000818152600b60209081526040808320875190951683529381528382205460a08701516001600160a01b039081168452600f83528584209484529382528483208a84528252939091209085015181549290931692909167ffffffffffffffff90911611156126075760405162461bcd60e51b8152600401610ecb906151d6565b61ffff8a166000908152600e60205260409081902054600183015491517fb71e0f7100000000000000000000000000000000000000000000000000000000815290916001600160a01b0385169163b71e0f719161266c918b908b908790600401614930565b600060405180830381600087803b15801561268657600080fd5b505af115801561269a573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526126e0919081019061421e565b60a081015161ffff8d1660009081526010602052604090205491955014925061271e9150505760405162461bcd60e51b8152600401610ecb906150bf565b866001600160a01b031681606001516001600160a01b0316146127535760405162461bcd60e51b8152600401610ecb90614cd5565b80516080820151606083015160408085015160c086015191517fc2fa48130000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169563c2fa4813956127d5959194909391928e919060040161533d565b600060405180830381600087803b1580156127ef57600080fd5b505af1158015612803573d6000803e3d6000fd5b505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6001600160a01b0381166000908152600460205260409020545b919050565b336000908152600f6020908152604080832061ffff88168452825280832086845290915290208054831161289a5760405162461bcd60e51b8152600401610ecb90614da0565b828155600181018290556040517fc5e97f049604c4d8626704341240f021a22cee0d8b66ec306a45344be67733a0906128da9087903390879089906152e2565b60405180910390a15050505050565b6128f161392c565b6001600160a01b0316612902612e1e565b6001600160a01b03161461295d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b600481565b6129cc61392c565b6001600160a01b03166129dd612e1e565b6001600160a01b031614612a38576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116612a5e5760405162461bcd60e51b8152600401610ecb90614d43565b61ffff8281166000908152600c6020526040902054811610612a925760405162461bcd60e51b8152600401610ecb90614f71565b61ffff8083166000908152600c60209081526040808320805480861660010186167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009091161790819055600b83528184209416835292905281902080546001600160a01b0384167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116179055517f802d55279d51813cb7a9a98e8fd2d7bec5346cb830901c11b85d1650cb857e9a90612b5090849084906152c5565b60405180910390a15050565b612b6461392c565b6001600160a01b0316612b75612e1e565b6001600160a01b031614612bd0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8085166000908152600a60209081526040808320938716835292905220612bfb908383613e23565b507f4a5695eee2a74d548d5f5c485a3de99ace99e3b664c8e30a90f49be6ebb5493284848484604051612c319493929190615438565b60405180910390a150505050565b60026000541415612c97576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000556003546001600160a01b03163314612cc65760405162461bcd60e51b8152600401610ecb906149cb565b600754612cd39082613930565b600755600254612ced906001600160a01b03168383613a75565b7f3a20c8c3cd1848485ae8261a52398bb9b26f195b717306b3cf7f058e62c095d5338383604051612d20939291906148ad565b60405180910390a150506001600055565b612d3961392c565b6001600160a01b0316612d4a612e1e565b6001600160a01b031614612da5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff82166000908152600e602052604090205415612dd65760405162461bcd60e51b8152600401610ecb9061511c565b61ffff82166000908152600e602052604090819020829055517f0611bb2107e385b79ec826fff8ecc1c1248a7aae3c875c96668f8cfbf173422090612b50908490849061530c565b6001546001600160a01b031690565b600581565b600e6020526000908152604090205481565b60046020526000908152604090205481565b612e5e613ecd565b6001600160a01b03808316600090815260086020908152604080832061ffff808916808652918452828520835160c0810185528154808416825267ffffffffffffffff6201000082048116838901526a010000000000000000000082048a16838801527e010000000000000000000000000000000000000000000000000000000000009091048416606083015260019092015491821660808201526801000000000000000090910490961660a087015290845260099092529091208251909116612f2b57805461ffff1682525b602082015167ffffffffffffffff16612f5657805462010000900467ffffffffffffffff1660208301525b60408201516001600160a01b0316612f875780546a010000000000000000000090046001600160a01b031660408301525b606082015161ffff16612fc25780547e01000000000000000000000000000000000000000000000000000000000000900461ffff1660608301525b608082015167ffffffffffffffff16612fea57600181015467ffffffffffffffff1660808301525b60a08201516001600160a01b031661301c5760018101546801000000000000000090046001600160a01b031660a08301525b509392505050565b61271081565b600c6020526000908152604090205461ffff1681565b600d60209081526000928352604080842090915290825290205460ff1681565b600f6020908152600093845260408085208252928452828420905282529020805460019091015482565b600b6020908152600092835260408084209091529082529020546001600160a01b031681565b60086020908152600092835260408084209091529082529020805460019091015461ffff8083169267ffffffffffffffff6201000082048116936001600160a01b036a010000000000000000000084048116947e010000000000000000000000000000000000000000000000000000000000009094049093169291811691680100000000000000009091041686565b6001600160a01b031660009081526005602052604090205490565b60106020526000908152604090205481565b61317461392c565b6001600160a01b0316613185612e1e565b6001600160a01b0316146131e0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8083166000908152600d60209081526040808320938516835292905281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517fec23bee6f88cfecebb09d6aaaed66f0ce110debc1f61117c8270a7116597df9a90612b50908490849061539e565b613263613f02565b506001600160a01b0383166000908152600f6020908152604080832061ffff86168452825280832084845282529182902082518084019093528054835260010154908201529392505050565b6132b761392c565b6001600160a01b03166132c8612e1e565b6001600160a01b031614613323576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61ffff8216600090815260106020526040902054156133545760405162461bcd60e51b8152600401610ecb90614f14565b61ffff821660009081526010602052604090819020829055517f0dad975e1d2fbe771c95cdcc7be9a1e61181de7173abe0a32b8f8f83140873e590612b50908490849061530c565b6133a461392c565b6001600160a01b03166133b5612e1e565b6001600160a01b031614613410576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166134365760405162461bcd60e51b8152600401610ecb90614eb7565b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef39061252c908390614899565b6134a161392c565b6001600160a01b03166134b2612e1e565b6001600160a01b03161461350d576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166135525760405162461bcd60e51b815260040180806020018281038252602681526020018061568a6026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60075481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146136145760405162461bcd60e51b8152600401610ecb90614fce565b6001600160a01b038416600090815260086020908152604080832061ffff89168452909152902060018414156136c1576000613652838501856142fa565b61ffff8089166000908152600c6020526040902054919250908116908216111561368e5760405162461bcd60e51b8152600401610ecb90614e5a565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff919091161781556138e7565b60028414156137185760006136d883850185614707565b825467ffffffffffffffff90911662010000027fffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffff909116178255506138e7565b600384141561377657600061372f83850185614044565b82546001600160a01b039091166a0100000000000000000000027fffff0000000000000000000000000000000000000000ffffffffffffffffffff909116178255506138e7565b600484141561383057600061378d838501856142fa565b61ffff8089166000908152600d602090815260408083209385168352929052205490915060ff16806137c1575061ffff8116155b6137dd5760405162461bcd60e51b8152600401610ecb9061496e565b815461ffff9091167e01000000000000000000000000000000000000000000000000000000000000027dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091161781556138e7565b600584141561388857600061384783850185614707565b6001830180547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055506138e7565b600684141561241057600061389f83850185614044565b6001830180546001600160a01b0390921668010000000000000000027fffffffff0000000000000000000000000000000000000000ffffffffffffffff909216919091179055505b7ffc01bf86212a14151d51d1be5c2ac64d67d5ec823dfc6f53298d7ce3f3d3d2528585858560405161391c94939291906148d1565b60405180910390a1505050505050565b3390565b600082821115613987576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015612428576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052613a6f908590613afa565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052613af5908490613afa565b505050565b6000613b4f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613bab9092919063ffffffff16565b805190915015613af557808060200190516020811015613b6e57600080fd5b5051613af55760405162461bcd60e51b815260040180806020018281038252602a8152602001806156d6602a913960400191505060405180910390fd5b6060613bba8484600085613bc2565b949350505050565b606082471015613c035760405162461bcd60e51b81526004018080602001828103825260268152602001806156b06026913960400191505060405180910390fd5b613c0c85613d3b565b613c5d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b60208310613cb957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613c7c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613d1b576040519150601f19603f3d011682016040523d82523d6000602084013e613d20565b606091505b5091509150613d30828286613d41565b979650505050505050565b3b151590565b60608315613d50575081612428565b825115613d605782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613daa578181015183820152602001613d92565b50505050905090810190601f168015613dd75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613e595760008555613ebd565b82601f10613e90578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555613ebd565b82800160010185558215613ebd579182015b82811115613ebd578235825591602001919060010190613ea2565b50613ec9929150613f19565b5090565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b604080518082019091526000808252602082015290565b5b80821115613ec95760008155600101613f1a565b60008135613f3b8161563d565b6001600160a01b031692915050565b60008151613f3b8161563d565b60008083601f840112613f68578182fd5b50813567ffffffffffffffff811115613f7f578182fd5b602083019150836020828501011115613f9757600080fd5b9250929050565b600082601f830112613fae578081fd5b815167ffffffffffffffff811115613fc257fe5b613ff360207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016155ed565b818152846020838601011115614007578283fd5b613bba826020830160208701615611565b803561284f81615663565b805161284f81615663565b803561284f81615673565b805161284f81615673565b600060208284031215614055578081fd5b81356140608161563d565b6001600160a01b03169392505050565b60008060408385031215614082578081fd5b823561408d8161563d565b6001600160a01b0316915060208301356140a681615663565b809150509250929050565b6000806000606084860312156140c5578081fd5b83356140d08161563d565b6001600160a01b0316925060208401356140e981615663565b929592945050506040919091013590565b6000806040838503121561410c578182fd5b82356141178161563d565b6001600160a01b0316946020939093013593505050565b60008060008060008060008060008060006101008c8e03121561414f578687fd5b6141588c613f2e565b9a5061416660208d0161402e565b995061417460408d01614018565b985067ffffffffffffffff8060608e0135111561418f578788fd5b61419f8e60608f01358f01613f57565b909950975060808d01358110156141b4578687fd5b6141c48e60808f01358f01613f57565b90975095506141d560a08e01613f2e565b94506141e360c08e01613f2e565b93508060e08e013511156141f5578283fd5b506142068d60e08e01358e01613f57565b81935080925050509295989b509295989b9093969950565b60006020828403121561422f578081fd5b815167ffffffffffffffff80821115614246578283fd5b9083019060e08286031215614259578283fd5b61426360e06155ed565b61426c83614023565b815261427a60208401614023565b602082015261428b60408401614039565b604082015261429c60608401613f4a565b60608201526080830151828111156142b2578485fd5b6142be87828601613f9e565b60808301525060a083015160a082015260c0830151828111156142df578485fd5b6142eb87828601613f9e565b60c08301525095945050505050565b60006020828403121561430b578081fd5b813561242881615663565b60008060408385031215614328578182fd5b823561433381615663565b915060208301356143438161563d565b6001600160a01b0381169150509250929050565b600080600080600080600060a0888a031215614371578081fd5b873561437c81615663565b9650602088013561438c8161563d565b6001600160a01b03169550604088013567ffffffffffffffff808211156143b1578283fd5b6143bd8b838c01613f57565b909750955060608a0135915081151582146143d6578283fd5b909350608089013590808211156143eb578283fd5b506143f88a828b01613f57565b989b979a50959850939692959293505050565b60008060006060848603121561441f578081fd5b833561442a81615663565b9250602084013561443a8161563d565b6001600160a01b038116925050604084013590509250925092565b60008060008060008060a0878903121561446d578384fd5b863561447881615663565b955060208701356144888161563d565b6001600160a01b031694506040870135935060608701359250608087013567ffffffffffffffff8111156144ba578283fd5b6144c689828a01613f57565b979a9699509497509295939492505050565b6000806000806000608086880312156144ef578283fd5b85356144fa81615663565b9450602086013561450a8161563d565b6001600160a01b0316935060408601359250606086013567ffffffffffffffff811115614535578182fd5b61454188828901613f57565b969995985093965092949392505050565b60008060408385031215614564578182fd5b823561456f81615663565b946020939093013593505050565b60008060008060808587031215614592578182fd5b843561459d81615663565b966020860135965060408601359560600135945092505050565b600080604083850312156145c9578182fd5b82356145d481615663565b915060208301356140a681615663565b600080600080606085870312156145f9578182fd5b843561460481615663565b9350602085013561461481615663565b9250604085013567ffffffffffffffff81111561462f578283fd5b61463b87828801613f57565b95989497509550505050565b600080600080600080600060e0888a031215614661578081fd5b873561466c81615663565b9650602088013561467c81615663565b9550604088013561468c81615673565b9450606088013561469c8161563d565b6001600160a01b0390811694506080890135906146b882615663565b90935060a0890135906146ca82615663565b90925060c0890135906146dc8261563d565b8082169250505092959891949750929550565b600060208284031215614700578081fd5b5051919050565b600060208284031215614718578081fd5b813561242881615673565b60008060008060808587031215614738578182fd5b843560ff81168114614748578283fd5b935060208501356147588161563d565b6001600160a01b0390811693506040860135906147748261563d565b94979396509093169360600135925050565b600082845282826020860137806020848601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011685010190509392505050565b600081518084526147e6816020860160208601615611565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b90565b60007fffffffffffffffff0000000000000000000000000000000000000000000000008860c01b1682527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008760601b1660088301528486601c840137848201601c81018281528486823750909201601c019182525095945050505050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60006001600160a01b0386168252846020830152606060408301526148fa606083018486614786565b9695505050505050565b901515815260200190565b92151583526020830191909152604082015260600190565b90815260200190565b60008582526060602083015261494a606083018587614786565b905082604083015295945050505050565b60006020825261242860208301846147ce565b60208082526026908201527f4c617965725a65726f3a20696e76616c6964206f7574626f756e642070726f6f60408201527f6620747970650000000000000000000000000000000000000000000000000000606082015260800190565b60208082526018908201527f4c617965725a65726f3a206f6e6c792074726561737572790000000000000000604082015260600190565b6020808252601e908201527f4c617965725a65726f3a20496e76616c696420636f6e66696720747970650000604082015260600190565b6020808252601a908201527f4c617965725a65726f3a207769746864726177206661696c6564000000000000604082015260600190565b60208082526025908201527f4c617965725a65726f3a206e6f7420656e6f756768206e617469766520666f7260408201527f2066656573000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526031908201527f4c617965725a65726f3a205f6c617965725a65726f546f6b656e2063616e6e6f60408201527f74206265207a65726f2061646472657373000000000000000000000000000000606082015260800190565b60208082526022908201527f4c617965725a65726f3a20696e76616c69642072656c6179657220616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601b908201527f4c617965725a65726f3a206661696c656420746f20726566756e640000000000604082015260600190565b6020808252602b908201527f4c617965725a65726f3a206d75737420626520706169642062792073656e646560408201527f72206f72206f726967696e000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a20636861696e496420646f6573206e6f74206578697360408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a20696e76616c6964206f7261636c652061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f4c617965725a65726f3a20696e76616c69642064737420616464726573730000604082015260600190565b6020808252601a908201527f4c617965725a65726f3a20696e76616c69642072656c61796572000000000000604082015260600190565b60208082526029908201527f4c617965725a65726f3a206c6962726172792063616e6e6f74206265207a657260408201527f6f20616464726573730000000000000000000000000000000000000000000000606082015260800190565b60208082526043908201527f4c617965725a65726f3a206f7261636c6520646174612063616e206f6e6c792060408201527f75706461746520696620697420686173206d6f726520636f6e6669726d61746960608201527f6f6e730000000000000000000000000000000000000000000000000000000000608082015260a00190565b60208082526017908201527f4c617965725a65726f3a6f6e6c79207472656173757279000000000000000000604082015260600190565b60208082526030908201527f4c617965725a65726f3a20696e76616c696420696e626f756e642070726f6f6660408201527f206c6962726172792076657273696f6e00000000000000000000000000000000606082015260800190565b6020808252602a908201527f4c617965725a65726f3a2074726561737572792063616e6e6f74206265207a6560408201527f726f206164647265737300000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f4c617965725a65726f3a2072656d6f746520756c6e20616c726561647920736560408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526022908201527f4c617965725a65726f3a2063616e206e6f7420616464206e6577206c6962726160408201527f7279000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526018908201527f4c617965725a65726f3a206f6e6c7920656e64706f696e740000000000000000604082015260600190565b6020808252602e908201527f4c617965725a65726f3a20696e76616c6964206f7574626f756e6420626c6f6360408201527f6b20636f6e6669726d6174696f6e000000000000000000000000000000000000606082015260800190565b60208082526024908201527f4c617965725a65726f3a20756e737570706f727465642077697468647261772060408201527f7479706500000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f4c617965725a65726f3a205f7061636b65742e756c6e4164647265737320697360408201527f20696e76616c6964000000000000000000000000000000000000000000000000606082015260800190565b60208082526030908201527f4c617965725a65726f3a2072656d6f746520636861696e20616464726573732060408201527f73697a6520616c72656164792073657400000000000000000000000000000000606082015260800190565b6020808252602d908201527f4c617965725a65726f3a20696e76616c696420696e626f756e6420626c6f636b60408201527f20636f6e6669726d6174696f6e00000000000000000000000000000000000000606082015260800190565b60208082526029908201527f4c617965725a65726f3a206e6f7420656e6f75676820626c6f636b20636f6e6660408201527f69726d6174696f6e730000000000000000000000000000000000000000000000606082015260800190565b600060c08201905061ffff808451168352602084015167ffffffffffffffff8082166020860152604086015191506001600160a01b0380831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b815181526020918201519181019190915260400190565b61ffff91909116815260200190565b61ffff9290921682526001600160a01b0316602082015260400190565b61ffff9490941684526001600160a01b039290921660208401526040830152606082015260800190565b61ffff929092168252602082015260400190565b600061ffff8416825260406020830152613bba60408301846147ce565b600061ffff8816825260c0602083015261535a60c08301886147ce565b6001600160a01b038716604084015267ffffffffffffffff8616606084015284608084015282810360a084015261539181856147ce565b9998505050505050505050565b61ffff92831681529116602082015260400190565b600061ffff80891683528088166020840152506001600160a01b038616604083015284606083015260a060808301526153f060a083018486614786565b98975050505050505050565b600061ffff80881683528087166020840152506001600160a01b038516604083015283606083015260a06080830152613d3060a08301846147ce565b600061ffff8087168352808616602084015250606060408301526148fa606083018486614786565b600061ffff80861683528085166020840152506060604083015261548760608301846147ce565b95945050505050565b61ffff938416815291909216602082015267ffffffffffffffff909116604082015260600190565b61ffff9788168152958716602087015267ffffffffffffffff9490941660408601526001600160a01b039283166060860152908516608085015290931660a083015290911660c082015260e00190565b61ffff968716815267ffffffffffffffff95861660208201526001600160a01b03948516604082015292909516606083015290921660808301529190911660a082015260c00190565b600061ffff808816835267ffffffffffffffff8716602084015280861660408401525060806060830152613d30608083018486614786565b918252602082015260400190565b67ffffffffffffffff91909116815260200190565b60ff91909116815260200190565b60ff9590951685526001600160a01b03938416602086015291831660408501529091166060830152608082015260a00190565b60405181810167ffffffffffffffff8111828210171561560957fe5b604052919050565b60005b8381101561562c578181015183820152602001615614565b83811115613a6f5750506000910152565b74ffffffffffffffffffffffffffffffffffffffffff8116811461566057600080fd5b50565b61ffff8116811461566057600080fd5b67ffffffffffffffff8116811461566057600080fdfe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212207d21b80caaafb404a85f37203bf2affa26f549a98a557b0a0d19d029f0bd45eb64736f6c63430007060033",
1473
+ "linkReferences": {},
1474
+ "deployedLinkReferences": {}
1475
+ }