@layerzerolabs/protocol-v2-oapp-evm-contracts 1.2.96 → 1.2.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/oapp/OApp.sol/OApp.json +383 -0
  3. package/artifacts/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  4. package/artifacts/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  5. package/artifacts/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  6. package/artifacts/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  7. package/artifacts/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  8. package/artifacts/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  9. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  10. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  11. package/artifacts/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  12. package/artifacts/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  13. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  14. package/artifacts/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  15. package/artifacts/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  16. package/artifacts/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  17. package/artifacts/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  18. package/artifacts/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  19. package/artifacts/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  20. package/artifacts/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  21. package/artifacts/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  22. package/artifacts/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  23. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  24. package/artifacts/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  25. package/artifacts/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  26. package/artifacts/contracts/oft/OFT.sol/OFT.json +1514 -0
  27. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  28. package/artifacts/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  29. package/artifacts/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  30. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  31. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  32. package/artifacts/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  33. package/artifacts/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  34. package/artifacts/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  35. package/artifacts/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  36. package/artifacts/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  37. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  38. package/artifacts-tron/contracts/oapp/OApp.sol/OApp.json +383 -0
  39. package/artifacts-tron/contracts/oapp/OAppCore.sol/OAppCore.json +200 -0
  40. package/artifacts-tron/contracts/oapp/OAppRead.sol/OAppRead.json +401 -0
  41. package/artifacts-tron/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +367 -0
  42. package/artifacts-tron/contracts/oapp/OAppSender.sol/OAppSender.json +216 -0
  43. package/artifacts-tron/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +278 -0
  44. package/artifacts-tron/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +843 -0
  45. package/artifacts-tron/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +925 -0
  46. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +10 -0
  47. package/artifacts-tron/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +909 -0
  48. package/artifacts-tron/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +948 -0
  49. package/artifacts-tron/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +368 -0
  50. package/artifacts-tron/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +44 -0
  51. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +59 -0
  52. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +35 -0
  53. package/artifacts-tron/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +35 -0
  54. package/artifacts-tron/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +148 -0
  55. package/artifacts-tron/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +51 -0
  56. package/artifacts-tron/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +111 -0
  57. package/artifacts-tron/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +167 -0
  58. package/artifacts-tron/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +187 -0
  59. package/artifacts-tron/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +38 -0
  60. package/artifacts-tron/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +21 -0
  61. package/artifacts-tron/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +104 -0
  62. package/artifacts-tron/contracts/oft/OFT.sol/OFT.json +1514 -0
  63. package/artifacts-tron/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1244 -0
  64. package/artifacts-tron/contracts/oft/OFTCore.sol/OFTCore.json +1244 -0
  65. package/artifacts-tron/contracts/oft/interfaces/IOFT.sol/IOFT.json +456 -0
  66. package/artifacts-tron/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +10 -0
  67. package/artifacts-tron/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +10 -0
  68. package/artifacts-tron/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +277 -0
  69. package/artifacts-tron/contracts/precrime/PreCrime.sol/PreCrime.json +352 -0
  70. package/artifacts-tron/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +352 -0
  71. package/artifacts-tron/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +175 -0
  72. package/artifacts-tron/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +188 -0
  73. package/artifacts-tron/contracts/precrime/libs/Packet.sol/PacketDecoder.json +10 -0
  74. package/artifacts-zk/contracts/oapp/OApp.sol/OApp.json +384 -0
  75. package/artifacts-zk/contracts/oapp/OAppCore.sol/OAppCore.json +201 -0
  76. package/artifacts-zk/contracts/oapp/OAppRead.sol/OAppRead.json +402 -0
  77. package/artifacts-zk/contracts/oapp/OAppReceiver.sol/OAppReceiver.json +368 -0
  78. package/artifacts-zk/contracts/oapp/OAppSender.sol/OAppSender.json +217 -0
  79. package/artifacts-zk/contracts/oapp/examples/CmdCodecV1Mock.sol/CmdCodecV1Mock.json +279 -0
  80. package/artifacts-zk/contracts/oapp/examples/LzReadCounter.sol/LzReadCounter.json +844 -0
  81. package/artifacts-zk/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +926 -0
  82. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/MsgCodec.json +11 -0
  83. package/artifacts-zk/contracts/oapp/examples/OmniCounterAbstract.sol/OmniCounterAbstract.json +910 -0
  84. package/artifacts-zk/contracts/oapp/examples/OmniCounterAlt.sol/OmniCounterAlt.json +949 -0
  85. package/artifacts-zk/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +369 -0
  86. package/artifacts-zk/contracts/oapp/interfaces/IOAppComposer.sol/IOAppComposer.json +45 -0
  87. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputer.sol/IOAppComputer.json +60 -0
  88. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerMap.sol/IOAppComputerMap.json +36 -0
  89. package/artifacts-zk/contracts/oapp/interfaces/IOAppComputerReduce.sol/IOAppComputerReduce.json +36 -0
  90. package/artifacts-zk/contracts/oapp/interfaces/IOAppCore.sol/IOAppCore.json +149 -0
  91. package/artifacts-zk/contracts/oapp/interfaces/IOAppMsgInspector.sol/IOAppMsgInspector.json +52 -0
  92. package/artifacts-zk/contracts/oapp/interfaces/IOAppOptionsType3.sol/IOAppOptionsType3.json +112 -0
  93. package/artifacts-zk/contracts/oapp/interfaces/IOAppReceiver.sol/IOAppReceiver.json +168 -0
  94. package/artifacts-zk/contracts/oapp/libs/OAppOptionsType3.sol/OAppOptionsType3.json +188 -0
  95. package/artifacts-zk/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +39 -0
  96. package/artifacts-zk/contracts/oapp/libs/ReadCmdCodecV1.sol/ReadCmdCodecV1.json +22 -0
  97. package/artifacts-zk/contracts/oapp/utils/RateLimiter.sol/RateLimiter.json +105 -0
  98. package/artifacts-zk/contracts/oft/OFT.sol/OFT.json +1515 -0
  99. package/artifacts-zk/contracts/oft/OFTAdapter.sol/OFTAdapter.json +1245 -0
  100. package/artifacts-zk/contracts/oft/OFTCore.sol/OFTCore.json +1245 -0
  101. package/artifacts-zk/contracts/oft/interfaces/IOFT.sol/IOFT.json +457 -0
  102. package/artifacts-zk/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +11 -0
  103. package/artifacts-zk/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +11 -0
  104. package/artifacts-zk/contracts/precrime/OAppPreCrimeSimulator.sol/OAppPreCrimeSimulator.json +278 -0
  105. package/artifacts-zk/contracts/precrime/PreCrime.sol/PreCrime.json +353 -0
  106. package/artifacts-zk/contracts/precrime/extensions/PreCrimeE1.sol/PreCrimeE1.json +353 -0
  107. package/artifacts-zk/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol/IOAppPreCrimeSimulator.json +176 -0
  108. package/artifacts-zk/contracts/precrime/interfaces/IPreCrime.sol/IPreCrime.json +189 -0
  109. package/artifacts-zk/contracts/precrime/libs/Packet.sol/PacketDecoder.json +11 -0
  110. package/package.json +7 -7
@@ -0,0 +1,948 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OmniCounterAlt",
4
+ "sourceName": "contracts/oapp/examples/OmniCounterAlt.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_delegate",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "InvalidDelegate",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidEndpointCall",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint16",
36
+ "name": "optionType",
37
+ "type": "uint16"
38
+ }
39
+ ],
40
+ "name": "InvalidOptionType",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [],
45
+ "name": "LzTokenUnavailable",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "inputs": [
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "eid",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "NoPeer",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "msgValue",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "NotEnoughNative",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [],
72
+ "name": "OmniCounterAlt_NotAnAltEndpoint",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [],
77
+ "name": "OmniCounterAlt_OnlyAltToken",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "address",
84
+ "name": "addr",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "OnlyEndpoint",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [
93
+ {
94
+ "internalType": "uint32",
95
+ "name": "eid",
96
+ "type": "uint32"
97
+ },
98
+ {
99
+ "internalType": "bytes32",
100
+ "name": "sender",
101
+ "type": "bytes32"
102
+ }
103
+ ],
104
+ "name": "OnlyPeer",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "OnlySelf",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [
114
+ {
115
+ "internalType": "bytes",
116
+ "name": "result",
117
+ "type": "bytes"
118
+ }
119
+ ],
120
+ "name": "SimulationResult",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "anonymous": false,
125
+ "inputs": [
126
+ {
127
+ "indexed": true,
128
+ "internalType": "address",
129
+ "name": "previousOwner",
130
+ "type": "address"
131
+ },
132
+ {
133
+ "indexed": true,
134
+ "internalType": "address",
135
+ "name": "newOwner",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "name": "OwnershipTransferred",
140
+ "type": "event"
141
+ },
142
+ {
143
+ "anonymous": false,
144
+ "inputs": [
145
+ {
146
+ "indexed": false,
147
+ "internalType": "uint32",
148
+ "name": "eid",
149
+ "type": "uint32"
150
+ },
151
+ {
152
+ "indexed": false,
153
+ "internalType": "bytes32",
154
+ "name": "peer",
155
+ "type": "bytes32"
156
+ }
157
+ ],
158
+ "name": "PeerSet",
159
+ "type": "event"
160
+ },
161
+ {
162
+ "anonymous": false,
163
+ "inputs": [
164
+ {
165
+ "indexed": false,
166
+ "internalType": "address",
167
+ "name": "preCrimeAddress",
168
+ "type": "address"
169
+ }
170
+ ],
171
+ "name": "PreCrimeSet",
172
+ "type": "event"
173
+ },
174
+ {
175
+ "stateMutability": "payable",
176
+ "type": "fallback"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "admin",
181
+ "outputs": [
182
+ {
183
+ "internalType": "address",
184
+ "name": "",
185
+ "type": "address"
186
+ }
187
+ ],
188
+ "stateMutability": "view",
189
+ "type": "function"
190
+ },
191
+ {
192
+ "inputs": [
193
+ {
194
+ "components": [
195
+ {
196
+ "internalType": "uint32",
197
+ "name": "srcEid",
198
+ "type": "uint32"
199
+ },
200
+ {
201
+ "internalType": "bytes32",
202
+ "name": "sender",
203
+ "type": "bytes32"
204
+ },
205
+ {
206
+ "internalType": "uint64",
207
+ "name": "nonce",
208
+ "type": "uint64"
209
+ }
210
+ ],
211
+ "internalType": "struct Origin",
212
+ "name": "origin",
213
+ "type": "tuple"
214
+ }
215
+ ],
216
+ "name": "allowInitializePath",
217
+ "outputs": [
218
+ {
219
+ "internalType": "bool",
220
+ "name": "",
221
+ "type": "bool"
222
+ }
223
+ ],
224
+ "stateMutability": "view",
225
+ "type": "function"
226
+ },
227
+ {
228
+ "inputs": [
229
+ {
230
+ "internalType": "uint32[]",
231
+ "name": "_eids",
232
+ "type": "uint32[]"
233
+ },
234
+ {
235
+ "internalType": "uint8[]",
236
+ "name": "_types",
237
+ "type": "uint8[]"
238
+ },
239
+ {
240
+ "internalType": "bytes[]",
241
+ "name": "_options",
242
+ "type": "bytes[]"
243
+ }
244
+ ],
245
+ "name": "batchIncrement",
246
+ "outputs": [],
247
+ "stateMutability": "payable",
248
+ "type": "function"
249
+ },
250
+ {
251
+ "inputs": [
252
+ {
253
+ "internalType": "uint32",
254
+ "name": "_eid",
255
+ "type": "uint32"
256
+ },
257
+ {
258
+ "internalType": "uint8",
259
+ "name": "_type",
260
+ "type": "uint8"
261
+ },
262
+ {
263
+ "internalType": "bytes",
264
+ "name": "_options",
265
+ "type": "bytes"
266
+ }
267
+ ],
268
+ "name": "brokenIncrement",
269
+ "outputs": [],
270
+ "stateMutability": "payable",
271
+ "type": "function"
272
+ },
273
+ {
274
+ "inputs": [],
275
+ "name": "composedCount",
276
+ "outputs": [
277
+ {
278
+ "internalType": "uint256",
279
+ "name": "",
280
+ "type": "uint256"
281
+ }
282
+ ],
283
+ "stateMutability": "view",
284
+ "type": "function"
285
+ },
286
+ {
287
+ "inputs": [],
288
+ "name": "count",
289
+ "outputs": [
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "stateMutability": "view",
297
+ "type": "function"
298
+ },
299
+ {
300
+ "inputs": [],
301
+ "name": "eid",
302
+ "outputs": [
303
+ {
304
+ "internalType": "uint32",
305
+ "name": "",
306
+ "type": "uint32"
307
+ }
308
+ ],
309
+ "stateMutability": "view",
310
+ "type": "function"
311
+ },
312
+ {
313
+ "inputs": [],
314
+ "name": "endpoint",
315
+ "outputs": [
316
+ {
317
+ "internalType": "contract ILayerZeroEndpointV2",
318
+ "name": "",
319
+ "type": "address"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [],
327
+ "name": "feeToken",
328
+ "outputs": [
329
+ {
330
+ "internalType": "address",
331
+ "name": "",
332
+ "type": "address"
333
+ }
334
+ ],
335
+ "stateMutability": "view",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [
340
+ {
341
+ "internalType": "uint32",
342
+ "name": "srcEid",
343
+ "type": "uint32"
344
+ }
345
+ ],
346
+ "name": "inboundCount",
347
+ "outputs": [
348
+ {
349
+ "internalType": "uint256",
350
+ "name": "count",
351
+ "type": "uint256"
352
+ }
353
+ ],
354
+ "stateMutability": "view",
355
+ "type": "function"
356
+ },
357
+ {
358
+ "inputs": [
359
+ {
360
+ "internalType": "uint32",
361
+ "name": "_eid",
362
+ "type": "uint32"
363
+ },
364
+ {
365
+ "internalType": "uint8",
366
+ "name": "_type",
367
+ "type": "uint8"
368
+ },
369
+ {
370
+ "internalType": "bytes",
371
+ "name": "_options",
372
+ "type": "bytes"
373
+ }
374
+ ],
375
+ "name": "increment",
376
+ "outputs": [],
377
+ "stateMutability": "payable",
378
+ "type": "function"
379
+ },
380
+ {
381
+ "inputs": [
382
+ {
383
+ "components": [
384
+ {
385
+ "internalType": "uint32",
386
+ "name": "srcEid",
387
+ "type": "uint32"
388
+ },
389
+ {
390
+ "internalType": "bytes32",
391
+ "name": "sender",
392
+ "type": "bytes32"
393
+ },
394
+ {
395
+ "internalType": "uint64",
396
+ "name": "nonce",
397
+ "type": "uint64"
398
+ }
399
+ ],
400
+ "internalType": "struct Origin",
401
+ "name": "",
402
+ "type": "tuple"
403
+ },
404
+ {
405
+ "internalType": "bytes",
406
+ "name": "",
407
+ "type": "bytes"
408
+ },
409
+ {
410
+ "internalType": "address",
411
+ "name": "_sender",
412
+ "type": "address"
413
+ }
414
+ ],
415
+ "name": "isComposeMsgSender",
416
+ "outputs": [
417
+ {
418
+ "internalType": "bool",
419
+ "name": "",
420
+ "type": "bool"
421
+ }
422
+ ],
423
+ "stateMutability": "view",
424
+ "type": "function"
425
+ },
426
+ {
427
+ "inputs": [
428
+ {
429
+ "internalType": "uint32",
430
+ "name": "_eid",
431
+ "type": "uint32"
432
+ },
433
+ {
434
+ "internalType": "bytes32",
435
+ "name": "_peer",
436
+ "type": "bytes32"
437
+ }
438
+ ],
439
+ "name": "isPeer",
440
+ "outputs": [
441
+ {
442
+ "internalType": "bool",
443
+ "name": "",
444
+ "type": "bool"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [
452
+ {
453
+ "internalType": "address",
454
+ "name": "_oApp",
455
+ "type": "address"
456
+ },
457
+ {
458
+ "internalType": "bytes32",
459
+ "name": "",
460
+ "type": "bytes32"
461
+ },
462
+ {
463
+ "internalType": "bytes",
464
+ "name": "_message",
465
+ "type": "bytes"
466
+ },
467
+ {
468
+ "internalType": "address",
469
+ "name": "",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "internalType": "bytes",
474
+ "name": "",
475
+ "type": "bytes"
476
+ }
477
+ ],
478
+ "name": "lzCompose",
479
+ "outputs": [],
480
+ "stateMutability": "payable",
481
+ "type": "function"
482
+ },
483
+ {
484
+ "inputs": [
485
+ {
486
+ "components": [
487
+ {
488
+ "internalType": "uint32",
489
+ "name": "srcEid",
490
+ "type": "uint32"
491
+ },
492
+ {
493
+ "internalType": "bytes32",
494
+ "name": "sender",
495
+ "type": "bytes32"
496
+ },
497
+ {
498
+ "internalType": "uint64",
499
+ "name": "nonce",
500
+ "type": "uint64"
501
+ }
502
+ ],
503
+ "internalType": "struct Origin",
504
+ "name": "_origin",
505
+ "type": "tuple"
506
+ },
507
+ {
508
+ "internalType": "bytes32",
509
+ "name": "_guid",
510
+ "type": "bytes32"
511
+ },
512
+ {
513
+ "internalType": "bytes",
514
+ "name": "_message",
515
+ "type": "bytes"
516
+ },
517
+ {
518
+ "internalType": "address",
519
+ "name": "_executor",
520
+ "type": "address"
521
+ },
522
+ {
523
+ "internalType": "bytes",
524
+ "name": "_extraData",
525
+ "type": "bytes"
526
+ }
527
+ ],
528
+ "name": "lzReceive",
529
+ "outputs": [],
530
+ "stateMutability": "payable",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [
535
+ {
536
+ "components": [
537
+ {
538
+ "components": [
539
+ {
540
+ "internalType": "uint32",
541
+ "name": "srcEid",
542
+ "type": "uint32"
543
+ },
544
+ {
545
+ "internalType": "bytes32",
546
+ "name": "sender",
547
+ "type": "bytes32"
548
+ },
549
+ {
550
+ "internalType": "uint64",
551
+ "name": "nonce",
552
+ "type": "uint64"
553
+ }
554
+ ],
555
+ "internalType": "struct Origin",
556
+ "name": "origin",
557
+ "type": "tuple"
558
+ },
559
+ {
560
+ "internalType": "uint32",
561
+ "name": "dstEid",
562
+ "type": "uint32"
563
+ },
564
+ {
565
+ "internalType": "address",
566
+ "name": "receiver",
567
+ "type": "address"
568
+ },
569
+ {
570
+ "internalType": "bytes32",
571
+ "name": "guid",
572
+ "type": "bytes32"
573
+ },
574
+ {
575
+ "internalType": "uint256",
576
+ "name": "value",
577
+ "type": "uint256"
578
+ },
579
+ {
580
+ "internalType": "address",
581
+ "name": "executor",
582
+ "type": "address"
583
+ },
584
+ {
585
+ "internalType": "bytes",
586
+ "name": "message",
587
+ "type": "bytes"
588
+ },
589
+ {
590
+ "internalType": "bytes",
591
+ "name": "extraData",
592
+ "type": "bytes"
593
+ }
594
+ ],
595
+ "internalType": "struct InboundPacket[]",
596
+ "name": "_packets",
597
+ "type": "tuple[]"
598
+ }
599
+ ],
600
+ "name": "lzReceiveAndRevert",
601
+ "outputs": [],
602
+ "stateMutability": "payable",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "components": [
609
+ {
610
+ "internalType": "uint32",
611
+ "name": "srcEid",
612
+ "type": "uint32"
613
+ },
614
+ {
615
+ "internalType": "bytes32",
616
+ "name": "sender",
617
+ "type": "bytes32"
618
+ },
619
+ {
620
+ "internalType": "uint64",
621
+ "name": "nonce",
622
+ "type": "uint64"
623
+ }
624
+ ],
625
+ "internalType": "struct Origin",
626
+ "name": "_origin",
627
+ "type": "tuple"
628
+ },
629
+ {
630
+ "internalType": "bytes32",
631
+ "name": "_guid",
632
+ "type": "bytes32"
633
+ },
634
+ {
635
+ "internalType": "bytes",
636
+ "name": "_message",
637
+ "type": "bytes"
638
+ },
639
+ {
640
+ "internalType": "address",
641
+ "name": "_executor",
642
+ "type": "address"
643
+ },
644
+ {
645
+ "internalType": "bytes",
646
+ "name": "_extraData",
647
+ "type": "bytes"
648
+ }
649
+ ],
650
+ "name": "lzReceiveSimulate",
651
+ "outputs": [],
652
+ "stateMutability": "payable",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [
657
+ {
658
+ "internalType": "uint32",
659
+ "name": "_srcEid",
660
+ "type": "uint32"
661
+ },
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "_sender",
665
+ "type": "bytes32"
666
+ }
667
+ ],
668
+ "name": "nextNonce",
669
+ "outputs": [
670
+ {
671
+ "internalType": "uint64",
672
+ "name": "",
673
+ "type": "uint64"
674
+ }
675
+ ],
676
+ "stateMutability": "view",
677
+ "type": "function"
678
+ },
679
+ {
680
+ "inputs": [],
681
+ "name": "oApp",
682
+ "outputs": [
683
+ {
684
+ "internalType": "address",
685
+ "name": "",
686
+ "type": "address"
687
+ }
688
+ ],
689
+ "stateMutability": "view",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [],
694
+ "name": "oAppVersion",
695
+ "outputs": [
696
+ {
697
+ "internalType": "uint64",
698
+ "name": "senderVersion",
699
+ "type": "uint64"
700
+ },
701
+ {
702
+ "internalType": "uint64",
703
+ "name": "receiverVersion",
704
+ "type": "uint64"
705
+ }
706
+ ],
707
+ "stateMutability": "pure",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "uint32",
714
+ "name": "dstEid",
715
+ "type": "uint32"
716
+ }
717
+ ],
718
+ "name": "outboundCount",
719
+ "outputs": [
720
+ {
721
+ "internalType": "uint256",
722
+ "name": "count",
723
+ "type": "uint256"
724
+ }
725
+ ],
726
+ "stateMutability": "view",
727
+ "type": "function"
728
+ },
729
+ {
730
+ "inputs": [],
731
+ "name": "owner",
732
+ "outputs": [
733
+ {
734
+ "internalType": "address",
735
+ "name": "",
736
+ "type": "address"
737
+ }
738
+ ],
739
+ "stateMutability": "view",
740
+ "type": "function"
741
+ },
742
+ {
743
+ "inputs": [
744
+ {
745
+ "internalType": "uint32",
746
+ "name": "eid",
747
+ "type": "uint32"
748
+ }
749
+ ],
750
+ "name": "peers",
751
+ "outputs": [
752
+ {
753
+ "internalType": "bytes32",
754
+ "name": "peer",
755
+ "type": "bytes32"
756
+ }
757
+ ],
758
+ "stateMutability": "view",
759
+ "type": "function"
760
+ },
761
+ {
762
+ "inputs": [],
763
+ "name": "preCrime",
764
+ "outputs": [
765
+ {
766
+ "internalType": "address",
767
+ "name": "",
768
+ "type": "address"
769
+ }
770
+ ],
771
+ "stateMutability": "view",
772
+ "type": "function"
773
+ },
774
+ {
775
+ "inputs": [
776
+ {
777
+ "internalType": "uint32",
778
+ "name": "_eid",
779
+ "type": "uint32"
780
+ },
781
+ {
782
+ "internalType": "uint8",
783
+ "name": "_type",
784
+ "type": "uint8"
785
+ },
786
+ {
787
+ "internalType": "bytes",
788
+ "name": "_options",
789
+ "type": "bytes"
790
+ }
791
+ ],
792
+ "name": "quote",
793
+ "outputs": [
794
+ {
795
+ "internalType": "uint256",
796
+ "name": "nativeFee",
797
+ "type": "uint256"
798
+ },
799
+ {
800
+ "internalType": "uint256",
801
+ "name": "lzTokenFee",
802
+ "type": "uint256"
803
+ }
804
+ ],
805
+ "stateMutability": "view",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [],
810
+ "name": "renounceOwnership",
811
+ "outputs": [],
812
+ "stateMutability": "nonpayable",
813
+ "type": "function"
814
+ },
815
+ {
816
+ "inputs": [
817
+ {
818
+ "internalType": "address",
819
+ "name": "_admin",
820
+ "type": "address"
821
+ }
822
+ ],
823
+ "name": "setAdmin",
824
+ "outputs": [],
825
+ "stateMutability": "nonpayable",
826
+ "type": "function"
827
+ },
828
+ {
829
+ "inputs": [
830
+ {
831
+ "internalType": "address",
832
+ "name": "_delegate",
833
+ "type": "address"
834
+ }
835
+ ],
836
+ "name": "setDelegate",
837
+ "outputs": [],
838
+ "stateMutability": "nonpayable",
839
+ "type": "function"
840
+ },
841
+ {
842
+ "inputs": [
843
+ {
844
+ "internalType": "bool",
845
+ "name": "_orderedNonce",
846
+ "type": "bool"
847
+ }
848
+ ],
849
+ "name": "setOrderedNonce",
850
+ "outputs": [],
851
+ "stateMutability": "nonpayable",
852
+ "type": "function"
853
+ },
854
+ {
855
+ "inputs": [
856
+ {
857
+ "internalType": "uint32",
858
+ "name": "_eid",
859
+ "type": "uint32"
860
+ },
861
+ {
862
+ "internalType": "bytes32",
863
+ "name": "_peer",
864
+ "type": "bytes32"
865
+ }
866
+ ],
867
+ "name": "setPeer",
868
+ "outputs": [],
869
+ "stateMutability": "nonpayable",
870
+ "type": "function"
871
+ },
872
+ {
873
+ "inputs": [
874
+ {
875
+ "internalType": "address",
876
+ "name": "_preCrime",
877
+ "type": "address"
878
+ }
879
+ ],
880
+ "name": "setPreCrime",
881
+ "outputs": [],
882
+ "stateMutability": "nonpayable",
883
+ "type": "function"
884
+ },
885
+ {
886
+ "inputs": [
887
+ {
888
+ "internalType": "uint32",
889
+ "name": "_srcEid",
890
+ "type": "uint32"
891
+ },
892
+ {
893
+ "internalType": "bytes32",
894
+ "name": "_sender",
895
+ "type": "bytes32"
896
+ },
897
+ {
898
+ "internalType": "uint64",
899
+ "name": "_nonce",
900
+ "type": "uint64"
901
+ }
902
+ ],
903
+ "name": "skipInboundNonce",
904
+ "outputs": [],
905
+ "stateMutability": "nonpayable",
906
+ "type": "function"
907
+ },
908
+ {
909
+ "inputs": [
910
+ {
911
+ "internalType": "address",
912
+ "name": "newOwner",
913
+ "type": "address"
914
+ }
915
+ ],
916
+ "name": "transferOwnership",
917
+ "outputs": [],
918
+ "stateMutability": "nonpayable",
919
+ "type": "function"
920
+ },
921
+ {
922
+ "inputs": [
923
+ {
924
+ "internalType": "address payable",
925
+ "name": "_to",
926
+ "type": "address"
927
+ },
928
+ {
929
+ "internalType": "uint256",
930
+ "name": "_amount",
931
+ "type": "uint256"
932
+ }
933
+ ],
934
+ "name": "withdraw",
935
+ "outputs": [],
936
+ "stateMutability": "nonpayable",
937
+ "type": "function"
938
+ },
939
+ {
940
+ "stateMutability": "payable",
941
+ "type": "receive"
942
+ }
943
+ ],
944
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200395b3803806200395b83398101604081905262000034916200027e565b818181818181620000453362000211565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050600580546001600160a01b0319163317905550506040805163416ecebf60e01b815290516001600160a01b038816955063416ecebf9450600480830194506020935090918290030181865afa15801562000130573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001569190620002b6565b600560146101000a81548163ffffffff021916908363ffffffff1602179055505050816001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd9190620002e5565b6001600160a01b031660a0819052620002095760405163ccbcb5cd60e01b815260040160405180910390fd5b505062000303565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200027957600080fd5b919050565b600080604083850312156200029257600080fd5b6200029d8362000261565b9150620002ad6020840162000261565b90509250929050565b600060208284031215620002c957600080fd5b815163ffffffff81168114620002de57600080fd5b9392505050565b600060208284031215620002f857600080fd5b620002de8262000261565b60805160a0516135c9620003926000396000818161049d0152818161161a015281816121e3015261224901526000818161043c0152818161075501528181610bc20152818161105b015281816111920152818161184d01528181611b8201528181611c8d015281816121a3015281816122050152818161226c0152818161229d015261239601526135c96000f3fe60806040526004361061021d5760003560e01c80637d25a05e1161011d578063ca5eb5e1116100b0578063d42438851161007f578063f3fef3a311610064578063f3fef3a3146106e6578063f851a44014610706578063ff7bd03d1461073357610254565b8063d4243885146106a6578063f2fde38b146106c657610254565b8063ca5eb5e11461062b578063d045a0dc1461064b578063d0a102601461065e578063d22446ce1461067157610254565b8063b7abbb5d116100ec578063b7abbb5d146105c5578063bb0b6a53146105d8578063bd815db014610605578063c95c55be1461061857610254565b80637d25a05e1461051457806382413eac1461054d5780638da5cb5b1461056d578063b731ea0a1461059857610254565b806356a47289116101b0578063622f17f61161017f578063704b6c0211610164578063704b6c02146104bf5780637112f86f146104df578063715018a6146104ff57610254565b8063622f17f61461045e578063647846a51461048b57610254565b806356a47289146103ad5780635a0dfe4d146103da5780635b849af61461040a5780635e280f111461042a57610254565b80633400288b116101ec5780633400288b146102fc578063416ecebf1461031c57806352ae287914610366578063542e7b561461039a57610254565b806306661abd1461028657806313137d65146102af57806317442b70146102c4578063257f4e05146102e657610254565b36610254576040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561029257600080fd5b5061029c60035481565b6040519081526020015b60405180910390f35b6102c26102bd366004612977565b610753565b005b3480156102d057600080fd5b50604080516001815260026020820152016102a6565b3480156102f257600080fd5b5061029c60045481565b34801561030857600080fd5b506102c2610317366004612a30565b610852565b34801561032857600080fd5b506005546103519074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102a6565b34801561037257600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b6102c26103a8366004612a9f565b610868565b3480156103b957600080fd5b5061029c6103c8366004612b39565b60086020526000908152604090205481565b3480156103e657600080fd5b506103fa6103f5366004612a30565b610a49565b60405190151581526020016102a6565b34801561041657600080fd5b506102c2610425366004612b62565b610a68565b34801561043657600080fd5b506103757f000000000000000000000000000000000000000000000000000000000000000081565b34801561046a57600080fd5b5061029c610479366004612b39565b60096020526000908152604090205481565b34801561049757600080fd5b506103757f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cb57600080fd5b506102c26104da366004612b7f565b610aa1565b3480156104eb57600080fd5b506102c26104fa366004612bb2565b610b69565b34801561050b57600080fd5b506102c2610ca3565b34801561052057600080fd5b5061053461052f366004612a30565b610cb7565b60405167ffffffffffffffff90911681526020016102a6565b34801561055957600080fd5b506103fa610568366004612bf2565b610d0a565b34801561057957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610375565b3480156105a457600080fd5b506002546103759073ffffffffffffffffffffffffffffffffffffffff1681565b6102c26105d3366004612c6a565b610d2c565b3480156105e457600080fd5b5061029c6105f3366004612b39565b60016020526000908152604090205481565b6102c2610613366004612ccb565b610daf565b6102c2610626366004612c6a565b610f66565b34801561063757600080fd5b506102c2610646366004612b7f565b61100e565b6102c2610659366004612977565b6110b3565b6102c261066c366004612d0d565b6110fb565b34801561067d57600080fd5b5061069161068c366004612c6a565b6113d0565b604080519283526020830191909152016102a6565b3480156106b257600080fd5b506102c26106c1366004612b7f565b611447565b3480156106d257600080fd5b506102c26106e1366004612b7f565b6114c8565b3480156106f257600080fd5b506102c2610701366004612d8e565b61157f565b34801561071257600080fd5b506005546103759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561073f57600080fd5b506103fa61074e366004612dac565b611641565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146107c9576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906107e3906107de908a612b39565b611677565b1461083a576107f56020880188612b39565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107c0565b610849878787878787876116cc565b50505050505050565b61085a611a1d565b6108648282611a9e565b5050565b848114801561087657508483145b6108dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d617463680000000060448201526064016107c0565b60005b858110156108495760008787838181106108fb576108fb612dc8565b90506020020160208101906109109190612b39565b9050600061096487878581811061092957610929612dc8565b905060200201602081019061093e9190612df7565b60055474010000000000000000000000000000000000000000900463ffffffff16611af3565b905060006109cb838388888881811061097f5761097f612dc8565b90506020028101906109919190612e12565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b6c915050565b9050610a3483838888888181106109e4576109e4612dc8565b90506020028101906109f69190612e12565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250339150611c5a9050565b50610a3e83611d72565b5050506001016108df565b63ffffffff821660009081526001602052604090205481145b92915050565b610a70611a1d565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610b71611a1d565b6040517fd70b890200000000000000000000000000000000000000000000000000000000815230600482015263ffffffff841660248201526044810183905267ffffffffffffffff821660648201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d70b890290608401600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060075460ff16159150610c9e90505763ffffffff831660009081526006602090815260408083208584529091528120805467ffffffffffffffff1691610c7683612ea6565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610cab611a1d565b610cb56000611d9b565b565b60075460009060ff1615610d025763ffffffff83166000908152600660209081526040808320858452909152902054610cfb9067ffffffffffffffff166001612ecd565b9050610a62565b506000610a62565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b610d9f84610d4c85600560149054906101000a900463ffffffff16611af3565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611e109050565b50610da984611d72565b50505050565b60005b81811015610ea15736838383818110610dcd57610dcd612dc8565b9050602002810190610ddf9190612ef5565b9050610dfb610df16020830183612b39565b6020830135610a49565b610e055750610e99565b3063d045a0dc60c08301358360a0810135610e24610100830183612e12565b610e35610100890160e08a01612b7f565b610e436101208a018a612e12565b6040518963ffffffff1660e01b8152600401610e659796959493929190612f7c565b6000604051808303818588803b158015610e7e57600080fd5b505af1158015610e92573d6000803e3d6000fd5b5050505050505b600101610db2565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f339190810190613063565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107c0919061316d565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b61100784610d4c85600560149054906101000a900463ffffffff16611af3565b5050505050565b611016611a1d565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561109f57600080fd5b505af1158015611007573d6000803e3d6000fd5b3330146110ec576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108498787878787878761083a565b73ffffffffffffffffffffffffffffffffffffffff8716301461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f216f41707000000000000000000000000000000000000000000000000000000060448201526064016107c0565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e74000000000000000000000000000000000000000000000060448201526064016107c0565b60006112258686611e3c565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff82160161126f576001600460008282546112649190613180565b909155506113c69050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff821601611364576001600460008282546112ac9190613180565b90915550600090506112be8787611e5e565b90506112c981611d72565b600061131c62030d406000611315604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9190611e81565b905061135c8261133f6001600560149054906101000a900463ffffffff16611af3565b836040518060400160405280348152602001600081525030611e10565b5050506113c6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d657373616765207479706500000000000000000000000060448201526064016107c0565b5050505050505050565b6000806000611431876113f588600560149054906101000a900463ffffffff16611af3565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b6c915050565b8051602090910151909890975095505050505050565b61144f611a1d565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6114d0611a1d565b73ffffffffffffffffffffffffffffffffffffffff8116611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c0565b61157c81611d9b565b50565b60055473ffffffffffffffffffffffffffffffffffffffff163314611600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b61086473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611f02565b60006020820180359060019083906116599086612b39565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610a62576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107c0565b6116f66116dc6020890189612b39565b60208901356116f160608b0160408c01613193565b611fd6565b60006117028686611e3c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff8216016117d0576003805490600061173e836131b0565b919050555061174d868661210c565b3410156117b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6d6e69436f756e7465723a20696e73756666696369656e742076616c75650060448201526064016107c0565b6117cb6117c660208a018a612b39565b61212b565b6113c6565b60ff8116600214806117e5575060ff81166004145b156118c257600380549060006117fa836131b0565b9091555061181090506117c660208a018a612b39565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061188b9030908b906000908c908c906004016131e8565b600060405180830381600087803b1580156118a557600080fd5b505af11580156118b9573d6000803e3d6000fd5b505050506113c6565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff82160161136457600380549060006118fc836131b0565b9091555061191290506117c660208a018a612b39565b61192761192260208a018a612b39565b611d72565b600061197362030d40600a611315604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9050611a1661198560208b018b612b39565b600554604080517f010000000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090920460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166021830152600a602580840191909152815180840390910181526045909201905261133f565b50506113c6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c0565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611bdc89611677565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611c11929190613228565b6040805180830381865afa158015611c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c51919061331b565b95945050505050565b611c626128ac565b6000611c71846000015161214c565b602085015190915015611c8b57611c8b8460200151612299565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001611ce88c611677565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611d24929190613228565b60806040518083038185885af1158015611d42573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d679190613337565b979650505050505050565b63ffffffff81166000908152600960205260408120805491611d93836131b0565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611e186128ac565b6000611e2d8787876000886020015111611b6c565b9050611d678787878487611c5a565b6000611e4b600182848661339f565b611e54916133c9565b60f81c9392505050565b6000611e6e60056001848661339f565b611e7791613411565b60e01c9392505050565b6060836003611e918260006123bb565b61ffff1614611ede57611ea58160006123bb565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff90911660048201526024016107c0565b6000611eea858561243b565b9050611ef8866001836124db565b9695505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610c9e9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612546565b63ffffffff8316600090815260066020908152604080832085845290915290205460075467ffffffffffffffff9091169060ff16156120965761201a816001612ecd565b67ffffffffffffffff168267ffffffffffffffff1614612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e63650000000000000000000000000060448201526064016107c0565b8067ffffffffffffffff168267ffffffffffffffff161115610da95763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff84167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905550505050565b600061211b826005818661339f565b61212491613457565b9392505050565b63ffffffff81166000908152600860205260408120805491611d93836131b0565b60003415612186576040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156122915773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361222f5761222a73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084611f02565b612291565b61229173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085612655565b506000919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613493565b905073ffffffffffffffffffffffffffffffffffffffff8116612379576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61086473ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085612655565b60006123c8826002613180565b83511015612432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016107c0565b50016002015190565b60606fffffffffffffffffffffffffffffffff8216156124a457604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052612124565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611b55565b60608360036124eb8260006123bb565b61ffff16146124ff57611ea58160006123bb565b84600161250c85516126b3565b6125179060016134b0565b868660405160200161252d9594939291906134cb565b6040516020818303038152906040529150509392505050565b60006125a8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661274b9092919063ffffffff16565b90508051600014806125c95750808060200190518101906125c99190613564565b610c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107c0565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052610da99085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611f54565b600061ffff821115612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016107c0565b5090565b6060610d248484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161277f9190613581565b60006040518083038185875af1925050503d80600081146127bc576040519150601f19603f3d011682016040523d82523d6000602084013e6127c1565b606091505b5091509150611d67878383876060831561286357825160000361285c5773ffffffffffffffffffffffffffffffffffffffff85163b61285c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107c0565b5081610d24565b610d2483838151156128785781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c0919061316d565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016128ef604051806040016040528060008152602001600081525090565b905290565b60006060828403121561290657600080fd5b50919050565b60008083601f84011261291e57600080fd5b50813567ffffffffffffffff81111561293657600080fd5b60208301915083602082850101111561294e57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461157c57600080fd5b600080600080600080600060e0888a03121561299257600080fd5b61299c89896128f4565b965060608801359550608088013567ffffffffffffffff808211156129c057600080fd5b6129cc8b838c0161290c565b909750955060a08a013591506129e182612955565b90935060c089013590808211156129f757600080fd5b50612a048a828b0161290c565b989b979a50959850939692959293505050565b803563ffffffff81168114612a2b57600080fd5b919050565b60008060408385031215612a4357600080fd5b612a4c83612a17565b946020939093013593505050565b60008083601f840112612a6c57600080fd5b50813567ffffffffffffffff811115612a8457600080fd5b6020830191508360208260051b850101111561294e57600080fd5b60008060008060008060608789031215612ab857600080fd5b863567ffffffffffffffff80821115612ad057600080fd5b612adc8a838b01612a5a565b90985096506020890135915080821115612af557600080fd5b612b018a838b01612a5a565b90965094506040890135915080821115612b1a57600080fd5b50612b2789828a01612a5a565b979a9699509497509295939492505050565b600060208284031215612b4b57600080fd5b61212482612a17565b801515811461157c57600080fd5b600060208284031215612b7457600080fd5b813561212481612b54565b600060208284031215612b9157600080fd5b813561212481612955565b67ffffffffffffffff8116811461157c57600080fd5b600080600060608486031215612bc757600080fd5b612bd084612a17565b9250602084013591506040840135612be781612b9c565b809150509250925092565b60008060008060a08587031215612c0857600080fd5b612c1286866128f4565b9350606085013567ffffffffffffffff811115612c2e57600080fd5b612c3a8782880161290c565b9094509250506080850135612c4e81612955565b939692955090935050565b803560ff81168114612a2b57600080fd5b60008060008060608587031215612c8057600080fd5b612c8985612a17565b9350612c9760208601612c59565b9250604085013567ffffffffffffffff811115612cb357600080fd5b612cbf8782880161290c565b95989497509550505050565b60008060208385031215612cde57600080fd5b823567ffffffffffffffff811115612cf557600080fd5b612d0185828601612a5a565b90969095509350505050565b600080600080600080600060a0888a031215612d2857600080fd5b8735612d3381612955565b965060208801359550604088013567ffffffffffffffff80821115612d5757600080fd5b612d638b838c0161290c565b909750955060608a01359150612d7882612955565b909350608089013590808211156129f757600080fd5b60008060408385031215612da157600080fd5b8235612a4c81612955565b600060608284031215612dbe57600080fd5b61212483836128f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612e0957600080fd5b61212482612c59565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e4757600080fd5b83018035915067ffffffffffffffff821115612e6257600080fd5b60200191503681900382131561294e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818103612ec357612ec3612e77565b6001019392505050565b67ffffffffffffffff818116838216019080821115612eee57612eee612e77565b5092915050565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612f2957600080fd5b9190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff612f8a89612a17565b1681526020880135602082015260006040890135612fa781612b9c565b67ffffffffffffffff811660408401525087606083015260e06080830152612fd360e083018789612f33565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c0840152613002818587612f33565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b8381101561305a578181015183820152602001613042565b50506000910152565b60006020828403121561307557600080fd5b815167ffffffffffffffff8082111561308d57600080fd5b818401915084601f8301126130a157600080fd5b8151818111156130b3576130b3613010565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156130f9576130f9613010565b8160405282815287602084870101111561311257600080fd5b611d6783602083016020880161303f565b6000815180845261313b81602086016020860161303f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006121246020830184613123565b80820180821115610a6257610a62612e77565b6000602082840312156131a557600080fd5b813561212481612b9c565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131e1576131e1612e77565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015261ffff84166040820152608060608201526000611d67608083018486612f33565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325e60e0840182613123565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526132998282613123565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b6000604082840312156132de57600080fd5b6040516040810181811067ffffffffffffffff8211171561330157613301613010565b604052825181526020928301519281019290925250919050565b60006040828403121561332d57600080fd5b61212483836132cc565b60006080828403121561334957600080fd5b6040516060810181811067ffffffffffffffff8211171561336c5761336c613010565b60405282518152602083015161338181612b9c565b602082015261339384604085016132cc565b60408201529392505050565b600080858511156133af57600080fd5b838611156133bc57600080fd5b5050820193919092039150565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156134095780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156134095760049490940360031b84901b1690921692915050565b80356020831015610a62577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000602082840312156134a557600080fd5b815161212481612955565b61ffff818116838216019080821115612eee57612eee612e77565b600086516134dd818460208b0161303f565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b16600383015250835161355581600484016020880161303f565b01600401979650505050505050565b60006020828403121561357657600080fd5b815161212481612b54565b60008251612f2981846020870161303f56fea26469706673582212207811b79ad8f5e3cfd266965517d3585eabd48263c4d6f581ac2c1561d97fe28864736f6c63430008160033",
945
+ "deployedBytecode": "0x60806040526004361061021d5760003560e01c80637d25a05e1161011d578063ca5eb5e1116100b0578063d42438851161007f578063f3fef3a311610064578063f3fef3a3146106e6578063f851a44014610706578063ff7bd03d1461073357610254565b8063d4243885146106a6578063f2fde38b146106c657610254565b8063ca5eb5e11461062b578063d045a0dc1461064b578063d0a102601461065e578063d22446ce1461067157610254565b8063b7abbb5d116100ec578063b7abbb5d146105c5578063bb0b6a53146105d8578063bd815db014610605578063c95c55be1461061857610254565b80637d25a05e1461051457806382413eac1461054d5780638da5cb5b1461056d578063b731ea0a1461059857610254565b806356a47289116101b0578063622f17f61161017f578063704b6c0211610164578063704b6c02146104bf5780637112f86f146104df578063715018a6146104ff57610254565b8063622f17f61461045e578063647846a51461048b57610254565b806356a47289146103ad5780635a0dfe4d146103da5780635b849af61461040a5780635e280f111461042a57610254565b80633400288b116101ec5780633400288b146102fc578063416ecebf1461031c57806352ae287914610366578063542e7b561461039a57610254565b806306661abd1461028657806313137d65146102af57806317442b70146102c4578063257f4e05146102e657610254565b36610254576040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34801561029257600080fd5b5061029c60035481565b6040519081526020015b60405180910390f35b6102c26102bd366004612977565b610753565b005b3480156102d057600080fd5b50604080516001815260026020820152016102a6565b3480156102f257600080fd5b5061029c60045481565b34801561030857600080fd5b506102c2610317366004612a30565b610852565b34801561032857600080fd5b506005546103519074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff90911681526020016102a6565b34801561037257600080fd5b50305b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102a6565b6102c26103a8366004612a9f565b610868565b3480156103b957600080fd5b5061029c6103c8366004612b39565b60086020526000908152604090205481565b3480156103e657600080fd5b506103fa6103f5366004612a30565b610a49565b60405190151581526020016102a6565b34801561041657600080fd5b506102c2610425366004612b62565b610a68565b34801561043657600080fd5b506103757f000000000000000000000000000000000000000000000000000000000000000081565b34801561046a57600080fd5b5061029c610479366004612b39565b60096020526000908152604090205481565b34801561049757600080fd5b506103757f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cb57600080fd5b506102c26104da366004612b7f565b610aa1565b3480156104eb57600080fd5b506102c26104fa366004612bb2565b610b69565b34801561050b57600080fd5b506102c2610ca3565b34801561052057600080fd5b5061053461052f366004612a30565b610cb7565b60405167ffffffffffffffff90911681526020016102a6565b34801561055957600080fd5b506103fa610568366004612bf2565b610d0a565b34801561057957600080fd5b5060005473ffffffffffffffffffffffffffffffffffffffff16610375565b3480156105a457600080fd5b506002546103759073ffffffffffffffffffffffffffffffffffffffff1681565b6102c26105d3366004612c6a565b610d2c565b3480156105e457600080fd5b5061029c6105f3366004612b39565b60016020526000908152604090205481565b6102c2610613366004612ccb565b610daf565b6102c2610626366004612c6a565b610f66565b34801561063757600080fd5b506102c2610646366004612b7f565b61100e565b6102c2610659366004612977565b6110b3565b6102c261066c366004612d0d565b6110fb565b34801561067d57600080fd5b5061069161068c366004612c6a565b6113d0565b604080519283526020830191909152016102a6565b3480156106b257600080fd5b506102c26106c1366004612b7f565b611447565b3480156106d257600080fd5b506102c26106e1366004612b7f565b6114c8565b3480156106f257600080fd5b506102c2610701366004612d8e565b61157f565b34801561071257600080fd5b506005546103759073ffffffffffffffffffffffffffffffffffffffff1681565b34801561073f57600080fd5b506103fa61074e366004612dac565b611641565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146107c9576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906107e3906107de908a612b39565b611677565b1461083a576107f56020880188612b39565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107c0565b610849878787878787876116cc565b50505050505050565b61085a611a1d565b6108648282611a9e565b5050565b848114801561087657508483145b6108dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4f6d6e69436f756e7465723a206c656e677468206d69736d617463680000000060448201526064016107c0565b60005b858110156108495760008787838181106108fb576108fb612dc8565b90506020020160208101906109109190612b39565b9050600061096487878581811061092957610929612dc8565b905060200201602081019061093e9190612df7565b60055474010000000000000000000000000000000000000000900463ffffffff16611af3565b905060006109cb838388888881811061097f5761097f612dc8565b90506020028101906109919190612e12565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b6c915050565b9050610a3483838888888181106109e4576109e4612dc8565b90506020028101906109f69190612e12565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250339150611c5a9050565b50610a3e83611d72565b5050506001016108df565b63ffffffff821660009081526001602052604090205481145b92915050565b610a70611a1d565b600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610b71611a1d565b6040517fd70b890200000000000000000000000000000000000000000000000000000000815230600482015263ffffffff841660248201526044810183905267ffffffffffffffff821660648201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063d70b890290608401600060405180830381600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505060075460ff16159150610c9e90505763ffffffff831660009081526006602090815260408083208584529091528120805467ffffffffffffffff1691610c7683612ea6565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505b505050565b610cab611a1d565b610cb56000611d9b565b565b60075460009060ff1615610d025763ffffffff83166000908152600660209081526040808320858452909152902054610cfb9067ffffffffffffffff166001612ecd565b9050610a62565b506000610a62565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b610d9f84610d4c85600560149054906101000a900463ffffffff16611af3565b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506040805180820190915234815260208101919091529250339150611e109050565b50610da984611d72565b50505050565b60005b81811015610ea15736838383818110610dcd57610dcd612dc8565b9050602002810190610ddf9190612ef5565b9050610dfb610df16020830183612b39565b6020830135610a49565b610e055750610e99565b3063d045a0dc60c08301358360a0810135610e24610100830183612e12565b610e35610100890160e08a01612b7f565b610e436101208a018a612e12565b6040518963ffffffff1660e01b8152600401610e659796959493929190612f7c565b6000604051808303818588803b158015610e7e57600080fd5b505af1158015610e92573d6000803e3d6000fd5b5050505050505b600101610db2565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015610eed573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610f339190810190613063565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107c0919061316d565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fe7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b61100784610d4c85600560149054906101000a900463ffffffff16611af3565b5050505050565b611016611a1d565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561109f57600080fd5b505af1158015611007573d6000803e3d6000fd5b3330146110ec576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108498787878787878761083a565b73ffffffffffffffffffffffffffffffffffffffff8716301461117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600560248201527f216f41707000000000000000000000000000000000000000000000000000000060448201526064016107c0565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611219576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f21656e64706f696e74000000000000000000000000000000000000000000000060448201526064016107c0565b60006112258686611e3c565b90507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff82160161126f576001600460008282546112649190613180565b909155506113c69050565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60ff821601611364576001600460008282546112ac9190613180565b90915550600090506112be8787611e5e565b90506112c981611d72565b600061131c62030d406000611315604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9190611e81565b905061135c8261133f6001600560149054906101000a900463ffffffff16611af3565b836040518060400160405280348152602001600081525030611e10565b5050506113c6565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f696e76616c6964206d657373616765207479706500000000000000000000000060448201526064016107c0565b5050505050505050565b6000806000611431876113f588600560149054906101000a900463ffffffff16611af3565b87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250611b6c915050565b8051602090910151909890975095505050505050565b61144f611a1d565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c24277609060200160405180910390a150565b6114d0611a1d565b73ffffffffffffffffffffffffffffffffffffffff8116611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107c0565b61157c81611d9b565b50565b60055473ffffffffffffffffffffffffffffffffffffffff163314611600576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f6f6e6c792061646d696e0000000000000000000000000000000000000000000060448201526064016107c0565b61086473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611f02565b60006020820180359060019083906116599086612b39565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610a62576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107c0565b6116f66116dc6020890189612b39565b60208901356116f160608b0160408c01613193565b611fd6565b60006117028686611e3c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff8216016117d0576003805490600061173e836131b0565b919050555061174d868661210c565b3410156117b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4f6d6e69436f756e7465723a20696e73756666696369656e742076616c75650060448201526064016107c0565b6117cb6117c660208a018a612b39565b61212b565b6113c6565b60ff8116600214806117e5575060ff81166004145b156118c257600380549060006117fa836131b0565b9091555061181090506117c660208a018a612b39565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061188b9030908b906000908c908c906004016131e8565b600060405180830381600087803b1580156118a557600080fd5b505af11580156118b9573d6000803e3d6000fd5b505050506113c6565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd60ff82160161136457600380549060006118fc836131b0565b9091555061191290506117c660208a018a612b39565b61192761192260208a018a612b39565b611d72565b600061197362030d40600a611315604080517e03000000000000000000000000000000000000000000000000000000000000602082015281516002818303018152602290910190915290565b9050611a1661198560208b018b612b39565b600554604080517f010000000000000000000000000000000000000000000000000000000000000060208201527401000000000000000000000000000000000000000090920460e01b7fffffffff00000000000000000000000000000000000000000000000000000000166021830152600a602580840191909152815180840390910181526045909201905261133f565b50506113c6565b60005473ffffffffffffffffffffffffffffffffffffffff163314610cb5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107c0565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6040517fff0000000000000000000000000000000000000000000000000000000000000060f884901b1660208201527fffffffff0000000000000000000000000000000000000000000000000000000060e083901b1660218201526060906025015b604051602081830303815290604052905092915050565b60408051808201909152600080825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611bdc89611677565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611c11929190613228565b6040805180830381865afa158015611c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c51919061331b565b95945050505050565b611c626128ac565b6000611c71846000015161214c565b602085015190915015611c8b57611c8b8460200151612299565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001611ce88c611677565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401611d24929190613228565b60806040518083038185885af1158015611d42573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d679190613337565b979650505050505050565b63ffffffff81166000908152600960205260408120805491611d93836131b0565b919050555050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611e186128ac565b6000611e2d8787876000886020015111611b6c565b9050611d678787878487611c5a565b6000611e4b600182848661339f565b611e54916133c9565b60f81c9392505050565b6000611e6e60056001848661339f565b611e7791613411565b60e01c9392505050565b6060836003611e918260006123bb565b61ffff1614611ede57611ea58160006123bb565b6040517f3a51740d00000000000000000000000000000000000000000000000000000000815261ffff90911660048201526024016107c0565b6000611eea858561243b565b9050611ef8866001836124db565b9695505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610c9e9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612546565b63ffffffff8316600090815260066020908152604080832085845290915290205460075467ffffffffffffffff9091169060ff16156120965761201a816001612ecd565b67ffffffffffffffff168267ffffffffffffffff1614612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f4170703a20696e76616c6964206e6f6e63650000000000000000000000000060448201526064016107c0565b8067ffffffffffffffff168267ffffffffffffffff161115610da95763ffffffff841660009081526006602090815260408083208684529091529020805467ffffffffffffffff84167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911617905550505050565b600061211b826005818661339f565b61212491613457565b9392505050565b63ffffffff81166000908152600860205260408120805491611d93836131b0565b60003415612186576040517f9d6cd06800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81156122915773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361222f5761222a73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084611f02565b612291565b61229173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016337f000000000000000000000000000000000000000000000000000000000000000085612655565b506000919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613493565b905073ffffffffffffffffffffffffffffffffffffffff8116612379576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61086473ffffffffffffffffffffffffffffffffffffffff8216337f000000000000000000000000000000000000000000000000000000000000000085612655565b60006123c8826002613180565b83511015612432576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016107c0565b50016002015190565b60606fffffffffffffffffffffffffffffffff8216156124a457604080517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086811b8216602084015285901b16603082015201604051602081830303815290604052612124565b6040517fffffffffffffffffffffffffffffffff00000000000000000000000000000000608085901b166020820152603001611b55565b60608360036124eb8260006123bb565b61ffff16146124ff57611ea58160006123bb565b84600161250c85516126b3565b6125179060016134b0565b868660405160200161252d9594939291906134cb565b6040516020818303038152906040529150509392505050565b60006125a8826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661274b9092919063ffffffff16565b90508051600014806125c95750808060200190518101906125c99190613564565b610c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107c0565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052610da99085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611f54565b600061ffff821115612747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016107c0565b5090565b6060610d248484600085856000808673ffffffffffffffffffffffffffffffffffffffff16858760405161277f9190613581565b60006040518083038185875af1925050503d80600081146127bc576040519150601f19603f3d011682016040523d82523d6000602084013e6127c1565b606091505b5091509150611d67878383876060831561286357825160000361285c5773ffffffffffffffffffffffffffffffffffffffff85163b61285c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107c0565b5081610d24565b610d2483838151156128785781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c0919061316d565b604051806060016040528060008019168152602001600067ffffffffffffffff1681526020016128ef604051806040016040528060008152602001600081525090565b905290565b60006060828403121561290657600080fd5b50919050565b60008083601f84011261291e57600080fd5b50813567ffffffffffffffff81111561293657600080fd5b60208301915083602082850101111561294e57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461157c57600080fd5b600080600080600080600060e0888a03121561299257600080fd5b61299c89896128f4565b965060608801359550608088013567ffffffffffffffff808211156129c057600080fd5b6129cc8b838c0161290c565b909750955060a08a013591506129e182612955565b90935060c089013590808211156129f757600080fd5b50612a048a828b0161290c565b989b979a50959850939692959293505050565b803563ffffffff81168114612a2b57600080fd5b919050565b60008060408385031215612a4357600080fd5b612a4c83612a17565b946020939093013593505050565b60008083601f840112612a6c57600080fd5b50813567ffffffffffffffff811115612a8457600080fd5b6020830191508360208260051b850101111561294e57600080fd5b60008060008060008060608789031215612ab857600080fd5b863567ffffffffffffffff80821115612ad057600080fd5b612adc8a838b01612a5a565b90985096506020890135915080821115612af557600080fd5b612b018a838b01612a5a565b90965094506040890135915080821115612b1a57600080fd5b50612b2789828a01612a5a565b979a9699509497509295939492505050565b600060208284031215612b4b57600080fd5b61212482612a17565b801515811461157c57600080fd5b600060208284031215612b7457600080fd5b813561212481612b54565b600060208284031215612b9157600080fd5b813561212481612955565b67ffffffffffffffff8116811461157c57600080fd5b600080600060608486031215612bc757600080fd5b612bd084612a17565b9250602084013591506040840135612be781612b9c565b809150509250925092565b60008060008060a08587031215612c0857600080fd5b612c1286866128f4565b9350606085013567ffffffffffffffff811115612c2e57600080fd5b612c3a8782880161290c565b9094509250506080850135612c4e81612955565b939692955090935050565b803560ff81168114612a2b57600080fd5b60008060008060608587031215612c8057600080fd5b612c8985612a17565b9350612c9760208601612c59565b9250604085013567ffffffffffffffff811115612cb357600080fd5b612cbf8782880161290c565b95989497509550505050565b60008060208385031215612cde57600080fd5b823567ffffffffffffffff811115612cf557600080fd5b612d0185828601612a5a565b90969095509350505050565b600080600080600080600060a0888a031215612d2857600080fd5b8735612d3381612955565b965060208801359550604088013567ffffffffffffffff80821115612d5757600080fd5b612d638b838c0161290c565b909750955060608a01359150612d7882612955565b909350608089013590808211156129f757600080fd5b60008060408385031215612da157600080fd5b8235612a4c81612955565b600060608284031215612dbe57600080fd5b61212483836128f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215612e0957600080fd5b61212482612c59565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e4757600080fd5b83018035915067ffffffffffffffff821115612e6257600080fd5b60200191503681900382131561294e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818103612ec357612ec3612e77565b6001019392505050565b67ffffffffffffffff818116838216019080821115612eee57612eee612e77565b5092915050565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112612f2957600080fd5b9190910192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b63ffffffff612f8a89612a17565b1681526020880135602082015260006040890135612fa781612b9c565b67ffffffffffffffff811660408401525087606083015260e06080830152612fd360e083018789612f33565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c0840152613002818587612f33565b9a9950505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b8381101561305a578181015183820152602001613042565b50506000910152565b60006020828403121561307557600080fd5b815167ffffffffffffffff8082111561308d57600080fd5b818401915084601f8301126130a157600080fd5b8151818111156130b3576130b3613010565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156130f9576130f9613010565b8160405282815287602084870101111561311257600080fd5b611d6783602083016020880161303f565b6000815180845261313b81602086016020860161303f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006121246020830184613123565b80820180821115610a6257610a62612e77565b6000602082840312156131a557600080fd5b813561212481612b9c565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131e1576131e1612e77565b5060010190565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015261ffff84166040820152608060608201526000611d67608083018486612f33565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261325e60e0840182613123565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526132998282613123565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b6000604082840312156132de57600080fd5b6040516040810181811067ffffffffffffffff8211171561330157613301613010565b604052825181526020928301519281019290925250919050565b60006040828403121561332d57600080fd5b61212483836132cc565b60006080828403121561334957600080fd5b6040516060810181811067ffffffffffffffff8211171561336c5761336c613010565b60405282518152602083015161338181612b9c565b602082015261339384604085016132cc565b60408201529392505050565b600080858511156133af57600080fd5b838611156133bc57600080fd5b5050820193919092039150565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156134095780818660010360031b1b83161692505b505092915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156134095760049490940360031b84901b1690921692915050565b80356020831015610a62577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b6000602082840312156134a557600080fd5b815161212481612955565b61ffff818116838216019080821115612eee57612eee612e77565b600086516134dd818460208b0161303f565b80830190507fff00000000000000000000000000000000000000000000000000000000000000808860f81b1682527fffff0000000000000000000000000000000000000000000000000000000000008760f01b166001830152808660f81b16600383015250835161355581600484016020880161303f565b01600401979650505050505050565b60006020828403121561357657600080fd5b815161212481612b54565b60008251612f2981846020870161303f56fea26469706673582212207811b79ad8f5e3cfd266965517d3585eabd48263c4d6f581ac2c1561d97fe28864736f6c63430008160033",
946
+ "linkReferences": {},
947
+ "deployedLinkReferences": {}
948
+ }