@super-protocol/sdk-js 0.6.0

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 (132) hide show
  1. package/build/BlockchainConnector.d.ts +48 -0
  2. package/build/BlockchainConnector.js +259 -0
  3. package/build/TIIGenerator.d.ts +21 -0
  4. package/build/TIIGenerator.js +251 -0
  5. package/build/constants.d.ts +7 -0
  6. package/build/constants.js +10 -0
  7. package/build/contracts/ActiveOffersList.json +131 -0
  8. package/build/contracts/ActiveOrdersList.json +74 -0
  9. package/build/contracts/Marks.json +79 -0
  10. package/build/contracts/Offers.json +999 -0
  11. package/build/contracts/Orders.json +984 -0
  12. package/build/contracts/Providers.json +440 -0
  13. package/build/contracts/ProvidersOffers.json +254 -0
  14. package/build/contracts/Staking.json +323 -0
  15. package/build/contracts/Superpro.json +197 -0
  16. package/build/contracts/SuperproToken.json +356 -0
  17. package/build/crypto/Crypto.d.ts +37 -0
  18. package/build/crypto/Crypto.js +181 -0
  19. package/build/crypto/index.d.ts +2 -0
  20. package/build/crypto/index.js +7 -0
  21. package/build/crypto/nodejs/AES.d.ts +24 -0
  22. package/build/crypto/nodejs/AES.js +152 -0
  23. package/build/crypto/nodejs/ARIA.d.ts +24 -0
  24. package/build/crypto/nodejs/ARIA.js +151 -0
  25. package/build/crypto/nodejs/ECIES.d.ts +6 -0
  26. package/build/crypto/nodejs/ECIES.js +94 -0
  27. package/build/crypto/nodejs/NativeCrypto.d.ts +54 -0
  28. package/build/crypto/nodejs/NativeCrypto.js +214 -0
  29. package/build/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  30. package/build/crypto/nodejs/RSA-Hybrid.js +153 -0
  31. package/build/index.d.ts +65 -0
  32. package/build/index.js +117 -0
  33. package/build/logger.d.ts +4 -0
  34. package/build/logger.js +8 -0
  35. package/build/models/Ballot.d.ts +13 -0
  36. package/build/models/Ballot.js +76 -0
  37. package/build/models/Offer.d.ts +70 -0
  38. package/build/models/Offer.js +273 -0
  39. package/build/models/Order.d.ts +125 -0
  40. package/build/models/Order.js +540 -0
  41. package/build/models/Provider.d.ts +40 -0
  42. package/build/models/Provider.js +167 -0
  43. package/build/models/TCB.d.ts +80 -0
  44. package/build/models/TCB.js +315 -0
  45. package/build/models/TeeOffer.d.ts +118 -0
  46. package/build/models/TeeOffer.js +436 -0
  47. package/build/proto/Compression.d.ts +33 -0
  48. package/build/proto/Compression.js +146 -0
  49. package/build/proto/TRI.d.ts +122 -0
  50. package/build/proto/TRI.js +316 -0
  51. package/build/providers/storage/ChunksDownloadDecorator.d.ts +38 -0
  52. package/build/providers/storage/ChunksDownloadDecorator.js +284 -0
  53. package/build/providers/storage/IStorageProvider.d.ts +17 -0
  54. package/build/providers/storage/IStorageProvider.js +2 -0
  55. package/build/providers/storage/StorjStorageProvider.d.ts +26 -0
  56. package/build/providers/storage/StorjStorageProvider.js +389 -0
  57. package/build/providers/storage/getStorageProvider.d.ts +4 -0
  58. package/build/providers/storage/getStorageProvider.js +16 -0
  59. package/build/staticModels/ActiveOffers.d.ts +29 -0
  60. package/build/staticModels/ActiveOffers.js +144 -0
  61. package/build/staticModels/ActiveOrders.d.ts +21 -0
  62. package/build/staticModels/ActiveOrders.js +120 -0
  63. package/build/staticModels/Consensus.d.ts +63 -0
  64. package/build/staticModels/Consensus.js +373 -0
  65. package/build/staticModels/Epochs.d.ts +23 -0
  66. package/build/staticModels/Epochs.js +97 -0
  67. package/build/staticModels/LastBlocks.d.ts +25 -0
  68. package/build/staticModels/LastBlocks.js +96 -0
  69. package/build/staticModels/Marks.d.ts +13 -0
  70. package/build/staticModels/Marks.js +113 -0
  71. package/build/staticModels/OffersFactory.d.ts +37 -0
  72. package/build/staticModels/OffersFactory.js +227 -0
  73. package/build/staticModels/OrdersFactory.d.ts +137 -0
  74. package/build/staticModels/OrdersFactory.js +539 -0
  75. package/build/staticModels/ProviderRegistry.d.ts +81 -0
  76. package/build/staticModels/ProviderRegistry.js +311 -0
  77. package/build/staticModels/Staking.d.ts +26 -0
  78. package/build/staticModels/Staking.js +132 -0
  79. package/build/staticModels/Superpro.d.ts +20 -0
  80. package/build/staticModels/Superpro.js +99 -0
  81. package/build/staticModels/SuperproToken.d.ts +30 -0
  82. package/build/staticModels/SuperproToken.js +125 -0
  83. package/build/staticModels/Suspicious.d.ts +26 -0
  84. package/build/staticModels/Suspicious.js +99 -0
  85. package/build/staticModels/TeeOffersFactory.d.ts +36 -0
  86. package/build/staticModels/TeeOffersFactory.js +206 -0
  87. package/build/staticModels/Voting.d.ts +35 -0
  88. package/build/staticModels/Voting.js +111 -0
  89. package/build/store.d.ts +12 -0
  90. package/build/store.js +13 -0
  91. package/build/types/Ballot.d.ts +75 -0
  92. package/build/types/Ballot.js +49 -0
  93. package/build/types/Epoch.d.ts +21 -0
  94. package/build/types/Epoch.js +18 -0
  95. package/build/types/Events.d.ts +18 -0
  96. package/build/types/Events.js +2 -0
  97. package/build/types/Marks.d.ts +5 -0
  98. package/build/types/Marks.js +9 -0
  99. package/build/types/Offer.d.ts +63 -0
  100. package/build/types/Offer.js +41 -0
  101. package/build/types/Order.d.ts +61 -0
  102. package/build/types/Order.js +36 -0
  103. package/build/types/Origins.d.ts +12 -0
  104. package/build/types/Origins.js +10 -0
  105. package/build/types/Provider.d.ts +25 -0
  106. package/build/types/Provider.js +19 -0
  107. package/build/types/Staking.d.ts +27 -0
  108. package/build/types/Staking.js +22 -0
  109. package/build/types/Superpro.d.ts +24 -0
  110. package/build/types/Superpro.js +29 -0
  111. package/build/types/TcbData.d.ts +26 -0
  112. package/build/types/TcbData.js +21 -0
  113. package/build/types/TeeOffer.d.ts +22 -0
  114. package/build/types/TeeOffer.js +15 -0
  115. package/build/types/Web3.d.ts +26 -0
  116. package/build/types/Web3.js +2 -0
  117. package/build/types/blockchainConnector/StorageAccess.d.ts +8 -0
  118. package/build/types/blockchainConnector/StorageAccess.js +2 -0
  119. package/build/types/storage/StorageAccess.d.ts +6 -0
  120. package/build/types/storage/StorageAccess.js +2 -0
  121. package/build/types/storage/StorageFileAccess.d.ts +5 -0
  122. package/build/types/storage/StorageFileAccess.js +2 -0
  123. package/build/types/storage/StorageObject.d.ts +8 -0
  124. package/build/types/storage/StorageObject.js +2 -0
  125. package/build/utils/NonceTracker.d.ts +12 -0
  126. package/build/utils/NonceTracker.js +84 -0
  127. package/build/utils/TxManager.d.ts +21 -0
  128. package/build/utils/TxManager.js +159 -0
  129. package/build/utils.d.ts +38 -0
  130. package/build/utils.js +195 -0
  131. package/package.json +68 -0
  132. package/readme.md +40 -0
@@ -0,0 +1,999 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Offers",
4
+ "sourceName": "contracts/Offers.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "creator",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bytes32",
18
+ "name": "externalId",
19
+ "type": "bytes32"
20
+ },
21
+ {
22
+ "indexed": true,
23
+ "internalType": "uint256",
24
+ "name": "offerId",
25
+ "type": "uint256"
26
+ }
27
+ ],
28
+ "name": "OfferCreated",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "address",
37
+ "name": "providerAuth",
38
+ "type": "address"
39
+ },
40
+ {
41
+ "indexed": true,
42
+ "internalType": "uint256",
43
+ "name": "offerId",
44
+ "type": "uint256"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "enum OfferType",
49
+ "name": "offerType",
50
+ "type": "uint8"
51
+ }
52
+ ],
53
+ "name": "OfferDisabled",
54
+ "type": "event"
55
+ },
56
+ {
57
+ "anonymous": false,
58
+ "inputs": [
59
+ {
60
+ "indexed": true,
61
+ "internalType": "address",
62
+ "name": "providerAuth",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "indexed": true,
67
+ "internalType": "uint256",
68
+ "name": "offerId",
69
+ "type": "uint256"
70
+ },
71
+ {
72
+ "indexed": true,
73
+ "internalType": "enum OfferType",
74
+ "name": "offerType",
75
+ "type": "uint8"
76
+ }
77
+ ],
78
+ "name": "OfferEnabled",
79
+ "type": "event"
80
+ },
81
+ {
82
+ "anonymous": false,
83
+ "inputs": [
84
+ {
85
+ "indexed": true,
86
+ "internalType": "address",
87
+ "name": "creator",
88
+ "type": "address"
89
+ },
90
+ {
91
+ "indexed": true,
92
+ "internalType": "bytes32",
93
+ "name": "externalId",
94
+ "type": "bytes32"
95
+ },
96
+ {
97
+ "indexed": true,
98
+ "internalType": "uint256",
99
+ "name": "offerId",
100
+ "type": "uint256"
101
+ }
102
+ ],
103
+ "name": "TeeOfferCreated",
104
+ "type": "event"
105
+ },
106
+ {
107
+ "anonymous": false,
108
+ "inputs": [
109
+ {
110
+ "indexed": true,
111
+ "internalType": "address",
112
+ "name": "providerAuth",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "indexed": true,
117
+ "internalType": "uint256",
118
+ "name": "offerId",
119
+ "type": "uint256"
120
+ },
121
+ {
122
+ "indexed": false,
123
+ "internalType": "uint256",
124
+ "name": "violationRate",
125
+ "type": "uint256"
126
+ }
127
+ ],
128
+ "name": "TeeOfferViolationRateChanged",
129
+ "type": "event"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "address",
135
+ "name": "providerAuth",
136
+ "type": "address"
137
+ },
138
+ {
139
+ "components": [
140
+ {
141
+ "internalType": "string",
142
+ "name": "name",
143
+ "type": "string"
144
+ },
145
+ {
146
+ "internalType": "string",
147
+ "name": "description",
148
+ "type": "string"
149
+ },
150
+ {
151
+ "internalType": "string",
152
+ "name": "teeType",
153
+ "type": "string"
154
+ },
155
+ {
156
+ "internalType": "uint32",
157
+ "name": "slots",
158
+ "type": "uint32"
159
+ },
160
+ {
161
+ "internalType": "uint64",
162
+ "name": "minTimeMinutes",
163
+ "type": "uint64"
164
+ },
165
+ {
166
+ "internalType": "string",
167
+ "name": "properties",
168
+ "type": "string"
169
+ },
170
+ {
171
+ "internalType": "address",
172
+ "name": "tcb",
173
+ "type": "address"
174
+ },
175
+ {
176
+ "internalType": "string",
177
+ "name": "tlb",
178
+ "type": "string"
179
+ },
180
+ {
181
+ "internalType": "string",
182
+ "name": "argsPublicKey",
183
+ "type": "string"
184
+ }
185
+ ],
186
+ "internalType": "struct TeeOfferInfo",
187
+ "name": "info",
188
+ "type": "tuple"
189
+ },
190
+ {
191
+ "internalType": "bytes32",
192
+ "name": "externalId",
193
+ "type": "bytes32"
194
+ }
195
+ ],
196
+ "name": "createTeeOffer",
197
+ "outputs": [],
198
+ "stateMutability": "nonpayable",
199
+ "type": "function"
200
+ },
201
+ {
202
+ "inputs": [
203
+ {
204
+ "internalType": "address",
205
+ "name": "providerAuth",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "components": [
210
+ {
211
+ "internalType": "string",
212
+ "name": "name",
213
+ "type": "string"
214
+ },
215
+ {
216
+ "internalType": "enum OfferGroup",
217
+ "name": "group",
218
+ "type": "uint8"
219
+ },
220
+ {
221
+ "internalType": "enum OfferType",
222
+ "name": "offerType",
223
+ "type": "uint8"
224
+ },
225
+ {
226
+ "internalType": "bool",
227
+ "name": "cancelable",
228
+ "type": "bool"
229
+ },
230
+ {
231
+ "internalType": "string",
232
+ "name": "description",
233
+ "type": "string"
234
+ },
235
+ {
236
+ "internalType": "uint256",
237
+ "name": "holdSum",
238
+ "type": "uint256"
239
+ },
240
+ {
241
+ "components": [
242
+ {
243
+ "internalType": "uint256[]",
244
+ "name": "offers",
245
+ "type": "uint256[]"
246
+ },
247
+ {
248
+ "internalType": "enum OfferType[]",
249
+ "name": "types",
250
+ "type": "uint8[]"
251
+ }
252
+ ],
253
+ "internalType": "struct OfferRestrictions",
254
+ "name": "restrictions",
255
+ "type": "tuple"
256
+ },
257
+ {
258
+ "internalType": "string",
259
+ "name": "properties",
260
+ "type": "string"
261
+ },
262
+ {
263
+ "internalType": "uint256",
264
+ "name": "maxDurationTimeMinutes",
265
+ "type": "uint256"
266
+ },
267
+ {
268
+ "internalType": "string",
269
+ "name": "input",
270
+ "type": "string"
271
+ },
272
+ {
273
+ "internalType": "string",
274
+ "name": "output",
275
+ "type": "string"
276
+ },
277
+ {
278
+ "internalType": "string",
279
+ "name": "allowedArgs",
280
+ "type": "string"
281
+ },
282
+ {
283
+ "internalType": "address[]",
284
+ "name": "allowedAccounts",
285
+ "type": "address[]"
286
+ },
287
+ {
288
+ "internalType": "string",
289
+ "name": "argsPublicKey",
290
+ "type": "string"
291
+ },
292
+ {
293
+ "internalType": "string",
294
+ "name": "resultUrl",
295
+ "type": "string"
296
+ },
297
+ {
298
+ "internalType": "string",
299
+ "name": "linkage",
300
+ "type": "string"
301
+ },
302
+ {
303
+ "internalType": "string",
304
+ "name": "hash",
305
+ "type": "string"
306
+ }
307
+ ],
308
+ "internalType": "struct ValueOfferInfo",
309
+ "name": "info",
310
+ "type": "tuple"
311
+ },
312
+ {
313
+ "internalType": "bytes32",
314
+ "name": "externalId",
315
+ "type": "bytes32"
316
+ }
317
+ ],
318
+ "name": "createValueOffer",
319
+ "outputs": [],
320
+ "stateMutability": "nonpayable",
321
+ "type": "function"
322
+ },
323
+ {
324
+ "inputs": [
325
+ {
326
+ "internalType": "uint256",
327
+ "name": "offerId",
328
+ "type": "uint256"
329
+ }
330
+ ],
331
+ "name": "disableOffer",
332
+ "outputs": [],
333
+ "stateMutability": "nonpayable",
334
+ "type": "function"
335
+ },
336
+ {
337
+ "inputs": [
338
+ {
339
+ "internalType": "uint256",
340
+ "name": "offerId",
341
+ "type": "uint256"
342
+ }
343
+ ],
344
+ "name": "enableOffer",
345
+ "outputs": [],
346
+ "stateMutability": "nonpayable",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "uint256",
353
+ "name": "offerId",
354
+ "type": "uint256"
355
+ },
356
+ {
357
+ "internalType": "uint256",
358
+ "name": "startDate",
359
+ "type": "uint256"
360
+ },
361
+ {
362
+ "internalType": "uint256",
363
+ "name": "orderPrice",
364
+ "type": "uint256"
365
+ }
366
+ ],
367
+ "name": "getOfferClosingPrice",
368
+ "outputs": [
369
+ {
370
+ "internalType": "uint256",
371
+ "name": "",
372
+ "type": "uint256"
373
+ }
374
+ ],
375
+ "stateMutability": "view",
376
+ "type": "function"
377
+ },
378
+ {
379
+ "inputs": [
380
+ {
381
+ "internalType": "uint256",
382
+ "name": "offerId",
383
+ "type": "uint256"
384
+ }
385
+ ],
386
+ "name": "getOfferDisabledAfter",
387
+ "outputs": [
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "stateMutability": "view",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [
399
+ {
400
+ "internalType": "uint256",
401
+ "name": "offerId",
402
+ "type": "uint256"
403
+ }
404
+ ],
405
+ "name": "getOfferGroup",
406
+ "outputs": [
407
+ {
408
+ "internalType": "enum OfferGroup",
409
+ "name": "",
410
+ "type": "uint8"
411
+ }
412
+ ],
413
+ "stateMutability": "view",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [
418
+ {
419
+ "internalType": "uint256",
420
+ "name": "offerId",
421
+ "type": "uint256"
422
+ }
423
+ ],
424
+ "name": "getOfferHoldDeposit",
425
+ "outputs": [
426
+ {
427
+ "internalType": "uint256",
428
+ "name": "",
429
+ "type": "uint256"
430
+ }
431
+ ],
432
+ "stateMutability": "view",
433
+ "type": "function"
434
+ },
435
+ {
436
+ "inputs": [
437
+ {
438
+ "internalType": "uint256",
439
+ "name": "offerId",
440
+ "type": "uint256"
441
+ }
442
+ ],
443
+ "name": "getOfferOrigins",
444
+ "outputs": [
445
+ {
446
+ "components": [
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "createdDate",
450
+ "type": "uint256"
451
+ },
452
+ {
453
+ "internalType": "address",
454
+ "name": "createdBy",
455
+ "type": "address"
456
+ },
457
+ {
458
+ "internalType": "uint256",
459
+ "name": "modifiedDate",
460
+ "type": "uint256"
461
+ },
462
+ {
463
+ "internalType": "address",
464
+ "name": "modifiedBy",
465
+ "type": "address"
466
+ }
467
+ ],
468
+ "internalType": "struct Origins",
469
+ "name": "",
470
+ "type": "tuple"
471
+ }
472
+ ],
473
+ "stateMutability": "view",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "internalType": "uint256",
480
+ "name": "offerId",
481
+ "type": "uint256"
482
+ }
483
+ ],
484
+ "name": "getOfferProviderAuthority",
485
+ "outputs": [
486
+ {
487
+ "internalType": "address",
488
+ "name": "",
489
+ "type": "address"
490
+ }
491
+ ],
492
+ "stateMutability": "view",
493
+ "type": "function"
494
+ },
495
+ {
496
+ "inputs": [
497
+ {
498
+ "internalType": "uint256",
499
+ "name": "offerId",
500
+ "type": "uint256"
501
+ }
502
+ ],
503
+ "name": "getOfferType",
504
+ "outputs": [
505
+ {
506
+ "internalType": "enum OfferType",
507
+ "name": "",
508
+ "type": "uint8"
509
+ }
510
+ ],
511
+ "stateMutability": "view",
512
+ "type": "function"
513
+ },
514
+ {
515
+ "inputs": [
516
+ {
517
+ "internalType": "enum OfferType",
518
+ "name": "offerType",
519
+ "type": "uint8"
520
+ }
521
+ ],
522
+ "name": "getOffersCountByType",
523
+ "outputs": [
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "",
527
+ "type": "uint256"
528
+ }
529
+ ],
530
+ "stateMutability": "view",
531
+ "type": "function"
532
+ },
533
+ {
534
+ "inputs": [],
535
+ "name": "getOffersTotalCount",
536
+ "outputs": [
537
+ {
538
+ "internalType": "uint256",
539
+ "name": "",
540
+ "type": "uint256"
541
+ }
542
+ ],
543
+ "stateMutability": "view",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "inputs": [
548
+ {
549
+ "internalType": "uint256",
550
+ "name": "offerId",
551
+ "type": "uint256"
552
+ }
553
+ ],
554
+ "name": "getTeeOffer",
555
+ "outputs": [
556
+ {
557
+ "components": [
558
+ {
559
+ "internalType": "uint256",
560
+ "name": "id",
561
+ "type": "uint256"
562
+ },
563
+ {
564
+ "internalType": "address",
565
+ "name": "providerAuth",
566
+ "type": "address"
567
+ },
568
+ {
569
+ "components": [
570
+ {
571
+ "internalType": "string",
572
+ "name": "name",
573
+ "type": "string"
574
+ },
575
+ {
576
+ "internalType": "string",
577
+ "name": "description",
578
+ "type": "string"
579
+ },
580
+ {
581
+ "internalType": "string",
582
+ "name": "teeType",
583
+ "type": "string"
584
+ },
585
+ {
586
+ "internalType": "uint32",
587
+ "name": "slots",
588
+ "type": "uint32"
589
+ },
590
+ {
591
+ "internalType": "uint64",
592
+ "name": "minTimeMinutes",
593
+ "type": "uint64"
594
+ },
595
+ {
596
+ "internalType": "string",
597
+ "name": "properties",
598
+ "type": "string"
599
+ },
600
+ {
601
+ "internalType": "address",
602
+ "name": "tcb",
603
+ "type": "address"
604
+ },
605
+ {
606
+ "internalType": "string",
607
+ "name": "tlb",
608
+ "type": "string"
609
+ },
610
+ {
611
+ "internalType": "string",
612
+ "name": "argsPublicKey",
613
+ "type": "string"
614
+ }
615
+ ],
616
+ "internalType": "struct TeeOfferInfo",
617
+ "name": "info",
618
+ "type": "tuple"
619
+ },
620
+ {
621
+ "internalType": "uint256",
622
+ "name": "disabledAfter",
623
+ "type": "uint256"
624
+ }
625
+ ],
626
+ "internalType": "struct TeeOfferData",
627
+ "name": "ret",
628
+ "type": "tuple"
629
+ }
630
+ ],
631
+ "stateMutability": "view",
632
+ "type": "function"
633
+ },
634
+ {
635
+ "inputs": [
636
+ {
637
+ "internalType": "uint256",
638
+ "name": "offerId",
639
+ "type": "uint256"
640
+ }
641
+ ],
642
+ "name": "getTeeOfferLastTlbAddedTime",
643
+ "outputs": [
644
+ {
645
+ "internalType": "uint256",
646
+ "name": "",
647
+ "type": "uint256"
648
+ }
649
+ ],
650
+ "stateMutability": "view",
651
+ "type": "function"
652
+ },
653
+ {
654
+ "inputs": [
655
+ {
656
+ "internalType": "uint256",
657
+ "name": "offerId",
658
+ "type": "uint256"
659
+ }
660
+ ],
661
+ "name": "getValueOffer",
662
+ "outputs": [
663
+ {
664
+ "components": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "id",
668
+ "type": "uint256"
669
+ },
670
+ {
671
+ "internalType": "address",
672
+ "name": "providerAuth",
673
+ "type": "address"
674
+ },
675
+ {
676
+ "components": [
677
+ {
678
+ "internalType": "string",
679
+ "name": "name",
680
+ "type": "string"
681
+ },
682
+ {
683
+ "internalType": "enum OfferGroup",
684
+ "name": "group",
685
+ "type": "uint8"
686
+ },
687
+ {
688
+ "internalType": "enum OfferType",
689
+ "name": "offerType",
690
+ "type": "uint8"
691
+ },
692
+ {
693
+ "internalType": "bool",
694
+ "name": "cancelable",
695
+ "type": "bool"
696
+ },
697
+ {
698
+ "internalType": "string",
699
+ "name": "description",
700
+ "type": "string"
701
+ },
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "holdSum",
705
+ "type": "uint256"
706
+ },
707
+ {
708
+ "components": [
709
+ {
710
+ "internalType": "uint256[]",
711
+ "name": "offers",
712
+ "type": "uint256[]"
713
+ },
714
+ {
715
+ "internalType": "enum OfferType[]",
716
+ "name": "types",
717
+ "type": "uint8[]"
718
+ }
719
+ ],
720
+ "internalType": "struct OfferRestrictions",
721
+ "name": "restrictions",
722
+ "type": "tuple"
723
+ },
724
+ {
725
+ "internalType": "string",
726
+ "name": "properties",
727
+ "type": "string"
728
+ },
729
+ {
730
+ "internalType": "uint256",
731
+ "name": "maxDurationTimeMinutes",
732
+ "type": "uint256"
733
+ },
734
+ {
735
+ "internalType": "string",
736
+ "name": "input",
737
+ "type": "string"
738
+ },
739
+ {
740
+ "internalType": "string",
741
+ "name": "output",
742
+ "type": "string"
743
+ },
744
+ {
745
+ "internalType": "string",
746
+ "name": "allowedArgs",
747
+ "type": "string"
748
+ },
749
+ {
750
+ "internalType": "address[]",
751
+ "name": "allowedAccounts",
752
+ "type": "address[]"
753
+ },
754
+ {
755
+ "internalType": "string",
756
+ "name": "argsPublicKey",
757
+ "type": "string"
758
+ },
759
+ {
760
+ "internalType": "string",
761
+ "name": "resultUrl",
762
+ "type": "string"
763
+ },
764
+ {
765
+ "internalType": "string",
766
+ "name": "linkage",
767
+ "type": "string"
768
+ },
769
+ {
770
+ "internalType": "string",
771
+ "name": "hash",
772
+ "type": "string"
773
+ }
774
+ ],
775
+ "internalType": "struct ValueOfferInfo",
776
+ "name": "info",
777
+ "type": "tuple"
778
+ },
779
+ {
780
+ "internalType": "uint256",
781
+ "name": "disabledAfter",
782
+ "type": "uint256"
783
+ }
784
+ ],
785
+ "internalType": "struct ValueOfferData",
786
+ "name": "ret",
787
+ "type": "tuple"
788
+ }
789
+ ],
790
+ "stateMutability": "view",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [
795
+ {
796
+ "internalType": "uint256",
797
+ "name": "offerId",
798
+ "type": "uint256"
799
+ },
800
+ {
801
+ "internalType": "address",
802
+ "name": "consumer",
803
+ "type": "address"
804
+ }
805
+ ],
806
+ "name": "isOfferAllowedForConsumer",
807
+ "outputs": [
808
+ {
809
+ "internalType": "bool",
810
+ "name": "",
811
+ "type": "bool"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [
819
+ {
820
+ "internalType": "uint256",
821
+ "name": "offerId",
822
+ "type": "uint256"
823
+ }
824
+ ],
825
+ "name": "isOfferCancelable",
826
+ "outputs": [
827
+ {
828
+ "internalType": "bool",
829
+ "name": "",
830
+ "type": "bool"
831
+ }
832
+ ],
833
+ "stateMutability": "view",
834
+ "type": "function"
835
+ },
836
+ {
837
+ "inputs": [
838
+ {
839
+ "internalType": "uint256",
840
+ "name": "offerId",
841
+ "type": "uint256"
842
+ }
843
+ ],
844
+ "name": "isOfferEnabled",
845
+ "outputs": [
846
+ {
847
+ "internalType": "bool",
848
+ "name": "",
849
+ "type": "bool"
850
+ }
851
+ ],
852
+ "stateMutability": "view",
853
+ "type": "function"
854
+ },
855
+ {
856
+ "inputs": [
857
+ {
858
+ "internalType": "uint256",
859
+ "name": "offerId",
860
+ "type": "uint256"
861
+ }
862
+ ],
863
+ "name": "isOfferExists",
864
+ "outputs": [
865
+ {
866
+ "internalType": "bool",
867
+ "name": "",
868
+ "type": "bool"
869
+ }
870
+ ],
871
+ "stateMutability": "view",
872
+ "type": "function"
873
+ },
874
+ {
875
+ "inputs": [
876
+ {
877
+ "internalType": "uint256",
878
+ "name": "offerId",
879
+ "type": "uint256"
880
+ },
881
+ {
882
+ "internalType": "enum OfferType",
883
+ "name": "offerType",
884
+ "type": "uint8"
885
+ }
886
+ ],
887
+ "name": "isOfferRestrictedByOfferType",
888
+ "outputs": [
889
+ {
890
+ "internalType": "bool",
891
+ "name": "",
892
+ "type": "bool"
893
+ }
894
+ ],
895
+ "stateMutability": "view",
896
+ "type": "function"
897
+ },
898
+ {
899
+ "inputs": [
900
+ {
901
+ "internalType": "uint256",
902
+ "name": "offerId",
903
+ "type": "uint256"
904
+ },
905
+ {
906
+ "internalType": "uint256",
907
+ "name": "otherOfferId",
908
+ "type": "uint256"
909
+ }
910
+ ],
911
+ "name": "isOfferRestrictionsPermitOtherOffer",
912
+ "outputs": [
913
+ {
914
+ "internalType": "bool",
915
+ "name": "",
916
+ "type": "bool"
917
+ }
918
+ ],
919
+ "stateMutability": "view",
920
+ "type": "function"
921
+ },
922
+ {
923
+ "inputs": [
924
+ {
925
+ "internalType": "uint256",
926
+ "name": "offerId",
927
+ "type": "uint256"
928
+ },
929
+ {
930
+ "internalType": "string",
931
+ "name": "description",
932
+ "type": "string"
933
+ }
934
+ ],
935
+ "name": "setOfferDescription",
936
+ "outputs": [],
937
+ "stateMutability": "nonpayable",
938
+ "type": "function"
939
+ },
940
+ {
941
+ "inputs": [
942
+ {
943
+ "internalType": "uint256",
944
+ "name": "offerId",
945
+ "type": "uint256"
946
+ },
947
+ {
948
+ "internalType": "string",
949
+ "name": "name",
950
+ "type": "string"
951
+ }
952
+ ],
953
+ "name": "setOfferName",
954
+ "outputs": [],
955
+ "stateMutability": "nonpayable",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [
960
+ {
961
+ "internalType": "uint256",
962
+ "name": "offerId",
963
+ "type": "uint256"
964
+ },
965
+ {
966
+ "internalType": "string",
967
+ "name": "publicKey",
968
+ "type": "string"
969
+ }
970
+ ],
971
+ "name": "setOfferPublicKey",
972
+ "outputs": [],
973
+ "stateMutability": "nonpayable",
974
+ "type": "function"
975
+ },
976
+ {
977
+ "inputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "offerId",
981
+ "type": "uint256"
982
+ },
983
+ {
984
+ "internalType": "string",
985
+ "name": "tlb",
986
+ "type": "string"
987
+ }
988
+ ],
989
+ "name": "setTeeOfferTlb",
990
+ "outputs": [],
991
+ "stateMutability": "nonpayable",
992
+ "type": "function"
993
+ }
994
+ ],
995
+ "bytecode": "0x608060405234801561001057600080fd5b50614e33806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637f470684116100ee578063cc04f00311610097578063d76f5b2c11610071578063d76f5b2c1461047c578063d9841bc6146104ac578063e51334fb146104bf578063e8e8ad4e146104d257600080fd5b8063cc04f00314610443578063d35c85d314610456578063d43d0f411461046957600080fd5b8063a356088d116100c8578063a356088d146103fd578063b473aaaa1461041d578063b98c9f3e1461043057600080fd5b80637f470684146103b05780638442090a146103d75780638556582d146103ea57600080fd5b80634e6e04f71161015b5780635ddc0ba2116101355780635ddc0ba21461034a5780636165696f1461036a57806371c3c94b1461038a5780637bdd40781461039d57600080fd5b80634e6e04f71461029157806350dc7eef146102e25780635ca1b89f146102f557600080fd5b8063295a9e621161018c578063295a9e621461022c5780633835b0d3146102415780634202334f1461027e57600080fd5b80631e5dd86b146101b35780631e7adb9d146101db5780632385868414610219575b600080fd5b6101c66101c1366004613ecf565b6104e5565b60405190151581526020015b60405180910390f35b61020b6101e9366004613efb565b6000908152600080516020614d9e833981519152602052604090206006015490565b6040519081526020016101d2565b61020b610227366004613efb565b610591565b61023f61023a36600461403c565b6105f7565b005b61027161024f366004613efb565b6000908152600080516020614d9e833981519152602052604090205460ff1690565b6040516101d291906140ad565b6101c661028c3660046140de565b61086e565b6102ca61029f366004613efb565b6000908152600080516020614d9e83398151915260205260409020600501546001600160a01b031690565b6040516001600160a01b0390911681526020016101d2565b61023f6102f036600461413a565b610955565b610308610303366004613efb565b611016565b6040516101d29190815181526020808301516001600160a01b039081169183019190915260408084015190830152606092830151169181019190915260800190565b61035d610358366004613efb565b6110a1565b6040516101d291906142fc565b61037d610378366004613efb565b6114c5565b6040516101d2919061444d565b6101c6610398366004613efb565b61152e565b61023f6103ab366004613efb565b611562565b7fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee845461020b565b6101c66103e5366004613efb565b611971565b61020b6103f836600461445b565b6119e0565b61041061040b366004613efb565b611a60565b6040516101d29190614546565b61023f61042b366004614918565b6121de565b61020b61043e366004614b62565b612a04565b6101c6610451366004614b8e565b612be1565b61023f610464366004613efb565b612c90565b61023f61047736600461403c565b612ffd565b61020b61048a366004613efb565b6000908152600080516020614dde833981519152602052604090206009015490565b61023f6104ba36600461403c565b613257565b6101c66104cd366004613efb565b613536565b61023f6104e036600461403c565b61356a565b6000828152600080516020614dbe8339815191526020526040812080601101600084600381111561051857610518614083565b600381111561052957610529614083565b815260208101919091526040016000205460ff1680610587575061058581601001600085600381111561055e5761055e614083565b600381111561056f5761056f614083565b8152602001908152602001600020600101541590565b155b9150505b92915050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156105c4576105c4614083565b14156105d35750600092915050565b50506000908152600080516020614dbe833981519152602052604090206003015490565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b15801561065e57600080fd5b505afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106969190614bb0565b90506001600160a01b03811633146106ff5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084015b60405180910390fd5b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff16600381111561074a5761074a614083565b14158061075d57508054600260ff909116105b6107a05760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff1660038111156107ed576107ed614083565b141561082d576000898152600080516020614dde83398151915260205260408120895190915061082690600883019060208c0190613b8c565b5050610863565b6000898152600080516020614dbe83398151915260205260408120895190915061086090600c83019060208c0190613b8c565b50505b505050505050505050565b6000828152600080516020614d9e833981519152602052604081206000815460ff1660038111156108a1576108a1614083565b14156108b157600191505061058b565b6000848152600080516020614dbe83398151915260205260409020600b8101546108e05760019250505061058b565b60005b600b82015481101561094957600082600001600b01828154811061090957610909614bcd565b6000918252602090912001546001600160a01b039081169150861681141561093857600194505050505061058b565b5061094281614bf9565b90506108e3565b50600095945050505050565b30604051630f56c8a760e11b81526001600160a01b0385811660048301529190911690631ead914e9060240160206040518083038186803b15801561099957600080fd5b505afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190614c14565b610a1d5760405162461bcd60e51b815260206004820152601a60248201527f50726f7669646572206973206e6f74207265676973746572656400000000000060448201526064016106f6565b3060405163b6dd45ff60e01b81526001600160a01b038581166004830152919091169063b6dd45ff90602401600060405180830381600087803b158015610a6357600080fd5b505af1158015610a77573d6000803e3d6000fd5b505050506000610a843090565b6001600160a01b031663897ce7cf60056040518263ffffffff1660e01b8152600401610ab09190614c31565b60206040518083038186803b158015610ac857600080fd5b505afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190614c4b565b905060003060405163d8a2d2c560e01b81526001600160a01b038781166004830152919091169063d8a2d2c59060240160206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b809190614c4b565b90506000306040516305e0d9bd60e31b81526001600160a01b038881166004830152602482018690529190911690632f06cde89060440160206040518083038186803b158015610bcf57600080fd5b505afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190614c4b565b9050333060405163071ddd6760e11b81526001600160a01b0389811660048301529190911690630e3bbace9060240160206040518083038186803b158015610c4e57600080fd5b505afa158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190614bb0565b6001600160a01b031614610ce65760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b80821015610d5c5760405162461bcd60e51b815260206004820152602360248201527f5365637572697479206465706f73697420697320746f6f20736d616c6c20287460448201527f656529000000000000000000000000000000000000000000000000000000000060648201526084016106f6565b6000610d6860006137c7565b6000818152600080516020614d9e8339815191526020526040812091925090805460ff191681556005810180546001600160a01b03199081166001600160a01b038c1617909155426001830181905560028301805433908416811790915560038401919091556004830180549092161790556000838152600080516020614dde83398151915260205260408120919250908851805191925089916001840191610e1691839160200190613b8c565b506020828101518051610e2f9260018501920190613b8c565b5060408201518051610e4b916002840191602090910190613b8c565b506060820151600382018054608085015167ffffffffffffffff16640100000000026bffffffffffffffffffffffff1990911663ffffffff9093169290921791909117905560a08201518051610eab916004840191602090910190613b8c565b5060c08201516005820180546001600160a01b0319166001600160a01b0390921691909117905560e08201518051610eed916006840191602090910190613b8c565b506101008201518051610f0a916007840191602090910190613b8c565b50905050610f153090565b6001600160a01b031663fa8e245e8a8560006040518463ffffffff1660e01b8152600401610f4593929190614c64565b600060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b50505050610f7e3090565b6001600160a01b0316634c17da92846040518263ffffffff1660e01b8152600401610fab91815260200190565b600060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505060405185925089915033907e5df092672da531405626f5263533cfa98d929d57b194c31fb6fed2cbc929db90600090a4505050505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529061105c836000908152600080516020614d9e8339815191526020526040902090565b604080516080810182526001830154815260028301546001600160a01b0390811660208301526003840154928201929092526004909201541660608201529392505050565b6110a9613c10565b6000828152600080516020614d9e83398151915260209081526040808320600080516020614dde83398151915283529281902085855260058401546001600160a01b031692850192909252805161012081019091526001820180548290829061111190614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461113d90614c90565b801561118a5780601f1061115f5761010080835404028352916020019161118a565b820191906000526020600020905b81548152906001019060200180831161116d57829003601f168201915b505050505081526020016001820180546111a390614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546111cf90614c90565b801561121c5780601f106111f15761010080835404028352916020019161121c565b820191906000526020600020905b8154815290600101906020018083116111ff57829003601f168201915b5050505050815260200160028201805461123590614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461126190614c90565b80156112ae5780601f10611283576101008083540402835291602001916112ae565b820191906000526020600020905b81548152906001019060200180831161129157829003601f168201915b5050509183525050600382015463ffffffff81166020830152640100000000900467ffffffffffffffff1660408201526004820180546060909201916112f390614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461131f90614c90565b801561136c5780601f106113415761010080835404028352916020019161136c565b820191906000526020600020905b81548152906001019060200180831161134f57829003601f168201915b505050918352505060058201546001600160a01b0316602082015260068201805460409092019161139c90614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546113c890614c90565b80156114155780601f106113ea57610100808354040283529160200191611415565b820191906000526020600020905b8154815290600101906020018083116113f857829003601f168201915b5050505050815260200160078201805461142e90614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461145a90614c90565b80156114a75780601f1061147c576101008083540402835291602001916114a7565b820191906000526020600020905b81548152906001019060200180831161148a57829003601f168201915b50505091909252505050604084015250600601546060820152919050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156114f8576114f8614083565b14156115075750600192915050565b50506000908152600080516020614dbe833981519152602052604090206001015460ff1690565b6000808211801561058b5750507fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee8454101590565b6000818152600080516020614d9e83398151915260205260408120829150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156115c957600080fd5b505afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190614bb0565b90506001600160a01b03811633146116655760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000848152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815487939060ff1660038111156116b0576116b0614083565b1415806116c357508054600260ff909116105b6117065760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000878152600080516020614d9e833981519152602052604090206006810154156117735760405162461bcd60e51b815260206004820152601960248201527f4f6666657220697320616c72656164792064697361626c65640000000000000060448201526064016106f6565b6117958160010142600282015560030180546001600160a01b03191633179055565b6040517f897ce7cf000000000000000000000000000000000000000000000000000000008152309063897ce7cf906117d1906004908101614c31565b60206040518083038186803b1580156117e957600080fd5b505afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118219190614c4b565b61182b9042614ccb565b600682018190556005820154825460405163a4f48e3d60e01b8152309363a4f48e3d93611871936001600160a01b03909116928e9260ff90921691600091600401614ce3565b600060405180830381600087803b15801561188b57600080fd5b505af115801561189f573d6000803e3d6000fd5b505050506118aa3090565b6001600160a01b031663087960d98983600601546040518363ffffffff1660e01b81526004016118e4929190918252602082015260400190565b600060405180830381600087803b1580156118fe57600080fd5b505af1158015611912573d6000803e3d6000fd5b5050825460ff16915050600381111561192d5761192d614083565b60058201546040518a916001600160a01b0316907fda3cf25191e5eec59245d2d16a2d74a4155ebaa61176cc6b1309fa508d0984f090600090a45050505050505050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156119a4576119a4614083565b14156119b35750600192915050565b50506000908152600080516020614dbe833981519152602052604090206001015462010000900460ff1690565b60007fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee847fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee8982846003811115611a3757611a37614083565b6003811115611a4857611a48614083565b81526020810191909152604001600020549392505050565b611a68613ca7565b6000828152600080516020614d9e83398151915260209081526040808320600080516020614dbe83398151915283529281902085855260058401546001600160a01b031692850192909252805161022081019091528154829082908290611ace90614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611afa90614c90565b8015611b475780601f10611b1c57610100808354040283529160200191611b47565b820191906000526020600020905b815481529060010190602001808311611b2a57829003601f168201915b5050509183525050600182015460209091019060ff166002811115611b6e57611b6e614083565b6002811115611b7f57611b7f614083565b81526020016001820160019054906101000a900460ff166003811115611ba757611ba7614083565b6003811115611bb857611bb8614083565b8152600182015462010000900460ff1615156020820152600282018054604090920191611be490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1090614c90565b8015611c5d5780601f10611c3257610100808354040283529160200191611c5d565b820191906000526020600020905b815481529060010190602001808311611c4057829003601f168201915b50505050508152602001600382015481526020016004820160405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015611ccf57602002820191906000526020600020905b815481526020019060010190808311611cbb575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d5757602002820191906000526020600020906000905b82829054906101000a900460ff166003811115611d3557611d35614083565b815260206001928301818104948501949093039092029101808411611d165790505b5050505050815250508152602001600682018054611d7490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611da090614c90565b8015611ded5780601f10611dc257610100808354040283529160200191611ded565b820191906000526020600020905b815481529060010190602001808311611dd057829003601f168201915b5050505050815260200160078201548152602001600882018054611e1090614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3c90614c90565b8015611e895780601f10611e5e57610100808354040283529160200191611e89565b820191906000526020600020905b815481529060010190602001808311611e6c57829003601f168201915b50505050508152602001600982018054611ea290614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611ece90614c90565b8015611f1b5780601f10611ef057610100808354040283529160200191611f1b565b820191906000526020600020905b815481529060010190602001808311611efe57829003601f168201915b50505050508152602001600a82018054611f3490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6090614c90565b8015611fad5780601f10611f8257610100808354040283529160200191611fad565b820191906000526020600020905b815481529060010190602001808311611f9057829003601f168201915b50505050508152602001600b820180548060200260200160405190810160405280929190818152602001828054801561200f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ff1575b50505050508152602001600c8201805461202890614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461205490614c90565b80156120a15780601f10612076576101008083540402835291602001916120a1565b820191906000526020600020905b81548152906001019060200180831161208457829003601f168201915b50505050508152602001600d820180546120ba90614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546120e690614c90565b80156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b50505050508152602001600e8201805461214c90614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461217890614c90565b80156121c55780601f1061219a576101008083540402835291602001916121c5565b820191906000526020600020905b8154815290600101906020018083116121a857829003601f168201915b50505050508152602001600f8201805461142e90614c90565b30604051630f56c8a760e11b81526001600160a01b0385811660048301529190911690631ead914e9060240160206040518083038186803b15801561222257600080fd5b505afa158015612236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225a9190614c14565b6122a65760405162461bcd60e51b815260206004820152601a60248201527f50726f7669646572206973206e6f74207265676973746572656400000000000060448201526064016106f6565b3060405163b6dd45ff60e01b81526001600160a01b038581166004830152919091169063b6dd45ff90602401600060405180830381600087803b1580156122ec57600080fd5b505af1158015612300573d6000803e3d6000fd5b50505050600061230d3090565b6001600160a01b031663897ce7cf60066040518263ffffffff1660e01b81526004016123399190614c31565b60206040518083038186803b15801561235157600080fd5b505afa158015612365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123899190614c4b565b905060003060405163d8a2d2c560e01b81526001600160a01b038781166004830152919091169063d8a2d2c59060240160206040518083038186803b1580156123d157600080fd5b505afa1580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124099190614c4b565b90506000306040516305e0d9bd60e31b81526001600160a01b038881166004830152602482018690529190911690632f06cde89060440160206040518083038186803b15801561245857600080fd5b505afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124909190614c4b565b90506000856040015160038111156124aa576124aa614083565b14156124f85760405162461bcd60e51b815260206004820152601760248201527f496e766169642076616c7565206f66666572207479706500000000000000000060448201526064016106f6565b333060405163071ddd6760e11b81526001600160a01b0389811660048301529190911690630e3bbace9060240160206040518083038186803b15801561253d57600080fd5b505afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125759190614bb0565b6001600160a01b0316146125d55760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b808210156126255760405162461bcd60e51b815260206004820152601d60248201527f5365637572697479206465706f73697420697320746f6f20736d616c6c00000060448201526064016106f6565b600061263486604001516137c7565b6000818152600080516020614d9e8339815191526020526040908190209088015181549293509091829060ff1916600183600381111561267657612676614083565b02179055506005810180546001600160a01b038a166001600160a01b031991821617909155426001830181905560028301805483163390811790915560038401919091556004830180549092161790556000828152600080516020614dbe8339815191526020526040812088518051919250899183916126fb91839160200190613b8c565b50602082015160018083018054909160ff199091169083600281111561272357612723614083565b0217905550604082015160018201805461ff00191661010083600381111561274d5761274d614083565b02179055506060820151600182018054911515620100000262ff0000199092169190911790556080820151805161278e916002840191602090910190613b8c565b5060a0820151600382015560c08201518051805160048401916127b691839160200190613cc6565b5060208281015180516127cf9260018501920190613d00565b50505060e082015180516127ed916006840191602090910190613b8c565b5061010082015160078201556101208201518051612815916008840191602090910190613b8c565b506101408201518051612832916009840191602090910190613b8c565b50610160820151805161284f91600a840191602090910190613b8c565b50610180820151805161286c91600b840191602090910190613daf565b506101a0820151805161288991600c840191602090910190613b8c565b506101c082015180516128a691600d840191602090910190613b8c565b506101e082015180516128c391600e840191602090910190613b8c565b5061020082015180516128e091600f840191602090910190613b8c565b509050506128ee8189613856565b60408089015190517ffa8e245e000000000000000000000000000000000000000000000000000000008152309163fa8e245e91612932918d91889190600401614c64565b600060405180830381600087803b15801561294c57600080fd5b505af1158015612960573d6000803e3d6000fd5b5050505061296b3090565b6001600160a01b0316634c17da92846040518263ffffffff1660e01b815260040161299891815260200190565b600060405180830381600087803b1580156129b257600080fd5b505af11580156129c6573d6000803e3d6000fd5b505060405185925089915033907fe8953a36b344cf43660efc2a608b608b7635ecb16314534b98e7d5885ae4291190600090a4505050505050505050565b6000838152600080516020614d9e833981519152602052604081206000815460ff166003811115612a3757612a37614083565b1415612b89576000858152600080516020614dde8339815191526020526040812090612a638642614d1a565b90506000612a72603c83614d47565b6004840154909150640100000000900467ffffffffffffffff16811015612aac57506004820154640100000000900467ffffffffffffffff165b6004838101546040517f0b82a0ce0000000000000000000000000000000000000000000000000000000081529182018a905260009163ffffffff909116903090630b82a0ce9060240160206040518083038186803b158015612b0d57600080fd5b505afa158015612b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b459190614c4b565b612b4f9190614d47565b90506000612b61603c62015180614d5b565b63ffffffff16612b718385614d7e565b612b7b9190614d47565b9650612bda95505050505050565b6000858152600080516020614dbe8339815191526020526040812060078101549091904290612bb990603c614d7e565b612bc39088614ccb565b10905080612bd15784612bd4565b60005b93505050505b9392505050565b600081831415612bf35750600161058b565b6000838152600080516020614dbe83398151915260209081526040808320858452600080516020614d9e83398151915290925282208054919290916010840190829060ff166003811115612c4957612c49614083565b6003811115612c5a57612c5a614083565b81526020019081526020016000209050612c7681600101541590565b80612c865750612c868186613ab6565b9695505050505050565b6000818152600080516020614d9e83398151915260205260408120829150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b158015612cf757600080fd5b505afa158015612d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2f9190614bb0565b90506001600160a01b0381163314612d935760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000848152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815487939060ff166003811115612dde57612dde614083565b141580612df157508054600260ff909116105b612e345760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000878152600080516020614d9e833981519152602052604090206006810154612ea05760405162461bcd60e51b815260206004820152601860248201527f4f6666657220697320616c726561647920656e61626c6564000000000000000060448201526064016106f6565b612ec28160010142600282015560030180546001600160a01b03191633179055565b6000600682018190556005820154825460405163a4f48e3d60e01b8152309363a4f48e3d93612f0a936001600160a01b03909116928e9260ff90921691600191600401614ce3565b600060405180830381600087803b158015612f2457600080fd5b505af1158015612f38573d6000803e3d6000fd5b50505050612f433090565b6001600160a01b0316634c17da92896040518263ffffffff1660e01b8152600401612f7091815260200190565b600060405180830381600087803b158015612f8a57600080fd5b505af1158015612f9e573d6000803e3d6000fd5b5050825460ff169150506003811115612fb957612fb9614083565b60058201546040518a916001600160a01b0316907ff31105f3ed0244cf1e9bc35a9bbd1d0855e47a8ab57a00f7e94b7dfa2b6ea36e90600090a45050505050505050565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b15801561306457600080fd5b505afa158015613078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309c9190614bb0565b90506001600160a01b03811633146131005760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff16600381111561314b5761314b614083565b14158061315e57508054600260ff909116105b6131a15760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff1660038111156131ee576131ee614083565b1415613227576000898152600080516020614dde83398151915260205260408120895190915061082690600183019060208c0190613b8c565b6000898152600080516020614dbe83398151915260205260408120895190915061086090829060208c0190613b8c565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156132be57600080fd5b505afa1580156132d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132f69190614bb0565b90506001600160a01b038116331461335a5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff1660038111156133a5576133a5614083565b1415806133b857508054600260ff909116105b6133fb5760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e8339815191526020526040812090506000815460ff16600381111561343057613430614083565b1461347d5760405162461bcd60e51b815260206004820152601260248201527f496e76616c6964206f666665722074797065000000000000000000000000000060448201526064016106f6565b61349f8160010142600282015560030180546001600160a01b03191633179055565b6000898152600080516020614dde83398151915260205260409020600981015442906134ce9062015180614ccb565b1061351b5760405162461bcd60e51b815260206004820152601460248201527f417661696c61626c65206f6e636520612064617900000000000000000000000060448201526064016106f6565b426009820155885161086090600783019060208c0190613b8c565b6000818152600080516020614d9e8339815191526020526040812060068101541580612bda57506006015442111592915050565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156135d157600080fd5b505afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190614bb0565b90506001600160a01b038116331461366d5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff1660038111156136b8576136b8614083565b1415806136cb57508054600260ff909116105b61370e5760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff16600381111561375b5761375b614083565b1415613794576000898152600080516020614dde83398151915260205260408120895190915061082690600283019060208c0190613b8c565b6000898152600080516020614dbe83398151915260205260408120895190915061086090600283019060208c0190613b8c565b7fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee84805460009190819083906137fb90614bf9565b9182905550915060058101600084600381111561381a5761381a614083565b600381111561382b5761382b614083565b8152602080820192909252604001600090812080546001810182559082529190200182905550919050565b60c08101515151158061387e575060008160200151600281111561387c5761387c614083565b145b6138ca5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420616c6c6f77656420666f72206f75747075742067726f75700000000060448201526064016106f6565b60005b60c08201515151811015613a1b5760008260c001516000015182815181106138f7576138f7614bcd565b602002602001015190506139297fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee845490565b811061399d5760405162461bcd60e51b815260206004820152603060248201527f4f666665722063616e6e6f742062652072657374726963746564206279206e6f60448201527f6e2d6578697374696e67206f666665720000000000000000000000000000000060648201526084016106f6565b6000818152600080516020614d9e8339815191526020526040812080549091613a08918491601089019160ff1660038111156139db576139db614083565b60038111156139ec576139ec614083565b8152602001908152602001600020613b0b90919063ffffffff16565b505080613a1490614bf9565b90506138cd565b5060005b8160c001516020015151811015613ab15760008260c00151602001518281518110613a4c57613a4c614bcd565b602002602001015190506001846011016000836003811115613a7057613a70614083565b6003811115613a8157613a81614083565b81526020810191909152604001600020805460ff191691151591909117905550613aaa81614bf9565b9050613a1f565b505050565b6001820154600090613aca5750600061058b565b600082815260208490526040902054151580612bda57508183600101600081548110613af857613af8614bcd565b9060005260206000200154149392505050565b60018201546000901580613b565750600082815260208490526040902054158015613b5657508183600101600081548110613b4857613b48614bcd565b906000526020600020015414155b905080613b6257505050565b50600180830180546000848152602095865260408120829055928101825590825292902090910155565b828054613b9890614c90565b90600052602060002090601f016020900481019282613bba5760008555613c00565b82601f10613bd357805160ff1916838001178555613c00565b82800160010185558215613c00579182015b82811115613c00578251825591602001919060010190613be5565b50613c0c929150613e04565b5090565b60405180608001604052806000815260200160006001600160a01b03168152602001613c9a604051806101200160405280606081526020016060815260200160608152602001600063ffffffff168152602001600067ffffffffffffffff1681526020016060815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001600081525090565b6040805160808101825260008082526020820152908101613c9a613e19565b828054828255906000526020600020908101928215613c005791602002820182811115613c00578251825591602001919060010190613be5565b82805482825590600052602060002090601f01602090048101928215613c005791602002820160005b83821115613d7557835183826101000a81548160ff02191690836003811115613d5457613d54614083565b02179055509260200192600101602081600001049283019260010302613d29565b8015613da25782816101000a81549060ff0219169055600101602081600001049283019260010302613d75565b5050613c0c929150613e04565b828054828255906000526020600020908101928215613c00579160200282015b82811115613c0057825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613dcf565b5b80821115613c0c5760008155600101613e05565b604080516102208101909152606081526020810160008152602001600081526020016000151581526020016060815260200160008152602001613e6f604051806040016040528060608152602001606081525090565b8152602001606081526020016000815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b803560048110613eca57600080fd5b919050565b60008060408385031215613ee257600080fd5b82359150613ef260208401613ebb565b90509250929050565b600060208284031215613f0d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b60405290565b6040805190810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b604051610220810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b604051601f8201601f1916810167ffffffffffffffff81118282101715613fc457613fc4613f14565b604052919050565b600082601f830112613fdd57600080fd5b813567ffffffffffffffff811115613ff757613ff7613f14565b61400a601f8201601f1916602001613f9b565b81815284602083860101111561401f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561404f57600080fd5b82359150602083013567ffffffffffffffff81111561406d57600080fd5b61407985828601613fcc565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600481106140a9576140a9614083565b9052565b6020810161058b8284614099565b6001600160a01b03811681146140d057600080fd5b50565b8035613eca816140bb565b600080604083850312156140f157600080fd5b823591506020830135614103816140bb565b809150509250929050565b803563ffffffff81168114613eca57600080fd5b803567ffffffffffffffff81168114613eca57600080fd5b60008060006060848603121561414f57600080fd5b833561415a816140bb565b9250602084013567ffffffffffffffff8082111561417757600080fd5b90850190610120828803121561418c57600080fd5b614194613f2a565b8235828111156141a357600080fd5b6141af89828601613fcc565b8252506020830135828111156141c457600080fd5b6141d089828601613fcc565b6020830152506040830135828111156141e857600080fd5b6141f489828601613fcc565b6040830152506142066060840161410e565b606082015261421760808401614122565b608082015260a08301358281111561422e57600080fd5b61423a89828601613fcc565b60a08301525061424c60c084016140d3565b60c082015260e08301358281111561426357600080fd5b61426f89828601613fcc565b60e083015250610100808401358381111561428957600080fd5b6142958a828701613fcc565b828401525050809450505050604084013590509250925092565b6000815180845260005b818110156142d5576020818501810151868301820152016142b9565b818111156142e7576000602083870101525b50601f01601f19169290920160200192915050565b60208152815160208201526001600160a01b036020830151166040820152600060408301516080606084015280516101208060a08601526143416101c08601836142af565b91506020830151609f19808785030160c088015261435f84836142af565b935060408501519150808785030160e088015261437c84836142af565b9350606085015191506101006143998189018463ffffffff169052565b608086015167ffffffffffffffff811689860152925060a0860151935081888603016101408901526143cb85856142af565b945060c086015193506143ea6101608901856001600160a01b03169052565b60e08601519350818886030161018089015261440685856142af565b9501518786039091016101a08801529392506144269150829050836142af565b915050606084015160808401528091505092915050565b600381106140a9576140a9614083565b6020810161058b828461443d565b60006020828403121561446d57600080fd5b612bda82613ebb565b805160408084528151908401819052600091602091908201906060860190845b818110156144b257835183529284019291840191600101614496565b50508483015186820387850152805180835290840192506000918401905b808310156144f7576144e3828551614099565b9284019260019290920191908401906144d0565b509695505050505050565b600081518084526020808501945080840160005b8381101561453b5781516001600160a01b031687529582019590820190600101614516565b509495945050505050565b60208152815160208201526001600160a01b036020830151166040820152600060408301516080606084015280516102208060a086015261458b6102c08601836142af565b9150602083015161459f60c087018261443d565b5060408301516145b260e0870182614099565b5060608301516101006145c88188018315159052565b60808501519150609f196101208189870301818a01526145e886856142af565b955060a0870151935061014084818b015260c08801519450610160838b890301818c01526146168887614476565b975060e08901519550610180848c8a0301818d015261463589886142af565b9850858a015196506101a0955086868d0152838a015196506101c09350848c8a0301848d015261466589886142af565b9850828a015196506101e09250848c8a0301838d015261468589886142af565b9850818a015196506102009150848c8a0301828d01526146a589886142af565b9850808a0151965050838b890301878c01526146c18887614502565b9750848901519650838b8903016102408c01526146de88886142af565b9750828901519650838b8903016102608c01526146fb88886142af565b9750818901519650838b8903016102808c015261471888886142af565b975080890151985050505080888603016102a08901525050505061442681836142af565b803560038110613eca57600080fd5b80151581146140d057600080fd5b8035613eca8161474b565b600067ffffffffffffffff82111561477e5761477e613f14565b5060051b60200190565b600082601f83011261479957600080fd5b813560206147ae6147a983614764565b613f9b565b82815260059290921b840181019181810190868411156147cd57600080fd5b8286015b848110156144f7576147e281613ebb565b83529183019183016147d1565b60006040828403121561480157600080fd5b614809613f54565b9050813567ffffffffffffffff8082111561482357600080fd5b818401915084601f83011261483757600080fd5b813560206148476147a983614764565b82815260059290921b8401810191818101908884111561486657600080fd5b948201945b838610156148845785358252948201949082019061486b565b8652508581013593508284111561489a57600080fd5b6148a687858801614788565b818601525050505092915050565b600082601f8301126148c557600080fd5b813560206148d56147a983614764565b82815260059290921b840181019181810190868411156148f457600080fd5b8286015b848110156144f757803561490b816140bb565b83529183019183016148f8565b60008060006060848603121561492d57600080fd5b8335614938816140bb565b9250602084013567ffffffffffffffff8082111561495557600080fd5b90850190610220828803121561496a57600080fd5b614972613f77565b82358281111561498157600080fd5b61498d89828601613fcc565b82525061499c6020840161473c565b60208201526149ad60408401613ebb565b60408201526149be60608401614759565b60608201526080830135828111156149d557600080fd5b6149e189828601613fcc565b60808301525060a083013560a082015260c083013582811115614a0357600080fd5b614a0f898286016147ef565b60c08301525060e083013582811115614a2757600080fd5b614a3389828601613fcc565b60e08301525061010083810135908201526101208084013583811115614a5857600080fd5b614a648a828701613fcc565b8284015250506101408084013583811115614a7e57600080fd5b614a8a8a828701613fcc565b8284015250506101608084013583811115614aa457600080fd5b614ab08a828701613fcc565b8284015250506101808084013583811115614aca57600080fd5b614ad68a8287016148b4565b8284015250506101a08084013583811115614af057600080fd5b614afc8a828701613fcc565b8284015250506101c08084013583811115614b1657600080fd5b614b228a828701613fcc565b8284015250506101e08084013583811115614b3c57600080fd5b614b488a828701613fcc565b828401525050610200808401358381111561428957600080fd5b600080600060608486031215614b7757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215614ba157600080fd5b50508035926020909101359150565b600060208284031215614bc257600080fd5b8151612bda816140bb565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415614c0d57614c0d614be3565b5060010190565b600060208284031215614c2657600080fd5b8151612bda8161474b565b6020810160088310614c4557614c45614083565b91905290565b600060208284031215614c5d57600080fd5b5051919050565b6001600160a01b03841681526020810183905260608101614c886040830184614099565b949350505050565b600181811c90821680614ca457607f821691505b60208210811415614cc557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115614cde57614cde614be3565b500190565b6001600160a01b03861681526020810185905260a08101614d076040830186614099565b9215156060820152608001529392505050565b600082821015614d2c57614d2c614be3565b500390565b634e487b7160e01b600052601260045260246000fd5b600082614d5657614d56614d31565b500490565b600063ffffffff80841680614d7257614d72614d31565b92169190910492915050565b6000816000190483118215151615614d9857614d98614be3565b50029056fea15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee85a15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee86a15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee87a2646970667358221220197f39b4cd23e8c0828e131b3fd10eb0b4725d168d6c71c518dcbf1e02b93d7064736f6c63430008090033",
996
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637f470684116100ee578063cc04f00311610097578063d76f5b2c11610071578063d76f5b2c1461047c578063d9841bc6146104ac578063e51334fb146104bf578063e8e8ad4e146104d257600080fd5b8063cc04f00314610443578063d35c85d314610456578063d43d0f411461046957600080fd5b8063a356088d116100c8578063a356088d146103fd578063b473aaaa1461041d578063b98c9f3e1461043057600080fd5b80637f470684146103b05780638442090a146103d75780638556582d146103ea57600080fd5b80634e6e04f71161015b5780635ddc0ba2116101355780635ddc0ba21461034a5780636165696f1461036a57806371c3c94b1461038a5780637bdd40781461039d57600080fd5b80634e6e04f71461029157806350dc7eef146102e25780635ca1b89f146102f557600080fd5b8063295a9e621161018c578063295a9e621461022c5780633835b0d3146102415780634202334f1461027e57600080fd5b80631e5dd86b146101b35780631e7adb9d146101db5780632385868414610219575b600080fd5b6101c66101c1366004613ecf565b6104e5565b60405190151581526020015b60405180910390f35b61020b6101e9366004613efb565b6000908152600080516020614d9e833981519152602052604090206006015490565b6040519081526020016101d2565b61020b610227366004613efb565b610591565b61023f61023a36600461403c565b6105f7565b005b61027161024f366004613efb565b6000908152600080516020614d9e833981519152602052604090205460ff1690565b6040516101d291906140ad565b6101c661028c3660046140de565b61086e565b6102ca61029f366004613efb565b6000908152600080516020614d9e83398151915260205260409020600501546001600160a01b031690565b6040516001600160a01b0390911681526020016101d2565b61023f6102f036600461413a565b610955565b610308610303366004613efb565b611016565b6040516101d29190815181526020808301516001600160a01b039081169183019190915260408084015190830152606092830151169181019190915260800190565b61035d610358366004613efb565b6110a1565b6040516101d291906142fc565b61037d610378366004613efb565b6114c5565b6040516101d2919061444d565b6101c6610398366004613efb565b61152e565b61023f6103ab366004613efb565b611562565b7fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee845461020b565b6101c66103e5366004613efb565b611971565b61020b6103f836600461445b565b6119e0565b61041061040b366004613efb565b611a60565b6040516101d29190614546565b61023f61042b366004614918565b6121de565b61020b61043e366004614b62565b612a04565b6101c6610451366004614b8e565b612be1565b61023f610464366004613efb565b612c90565b61023f61047736600461403c565b612ffd565b61020b61048a366004613efb565b6000908152600080516020614dde833981519152602052604090206009015490565b61023f6104ba36600461403c565b613257565b6101c66104cd366004613efb565b613536565b61023f6104e036600461403c565b61356a565b6000828152600080516020614dbe8339815191526020526040812080601101600084600381111561051857610518614083565b600381111561052957610529614083565b815260208101919091526040016000205460ff1680610587575061058581601001600085600381111561055e5761055e614083565b600381111561056f5761056f614083565b8152602001908152602001600020600101541590565b155b9150505b92915050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156105c4576105c4614083565b14156105d35750600092915050565b50506000908152600080516020614dbe833981519152602052604090206003015490565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b15801561065e57600080fd5b505afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106969190614bb0565b90506001600160a01b03811633146106ff5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084015b60405180910390fd5b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff16600381111561074a5761074a614083565b14158061075d57508054600260ff909116105b6107a05760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff1660038111156107ed576107ed614083565b141561082d576000898152600080516020614dde83398151915260205260408120895190915061082690600883019060208c0190613b8c565b5050610863565b6000898152600080516020614dbe83398151915260205260408120895190915061086090600c83019060208c0190613b8c565b50505b505050505050505050565b6000828152600080516020614d9e833981519152602052604081206000815460ff1660038111156108a1576108a1614083565b14156108b157600191505061058b565b6000848152600080516020614dbe83398151915260205260409020600b8101546108e05760019250505061058b565b60005b600b82015481101561094957600082600001600b01828154811061090957610909614bcd565b6000918252602090912001546001600160a01b039081169150861681141561093857600194505050505061058b565b5061094281614bf9565b90506108e3565b50600095945050505050565b30604051630f56c8a760e11b81526001600160a01b0385811660048301529190911690631ead914e9060240160206040518083038186803b15801561099957600080fd5b505afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190614c14565b610a1d5760405162461bcd60e51b815260206004820152601a60248201527f50726f7669646572206973206e6f74207265676973746572656400000000000060448201526064016106f6565b3060405163b6dd45ff60e01b81526001600160a01b038581166004830152919091169063b6dd45ff90602401600060405180830381600087803b158015610a6357600080fd5b505af1158015610a77573d6000803e3d6000fd5b505050506000610a843090565b6001600160a01b031663897ce7cf60056040518263ffffffff1660e01b8152600401610ab09190614c31565b60206040518083038186803b158015610ac857600080fd5b505afa158015610adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b009190614c4b565b905060003060405163d8a2d2c560e01b81526001600160a01b038781166004830152919091169063d8a2d2c59060240160206040518083038186803b158015610b4857600080fd5b505afa158015610b5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b809190614c4b565b90506000306040516305e0d9bd60e31b81526001600160a01b038881166004830152602482018690529190911690632f06cde89060440160206040518083038186803b158015610bcf57600080fd5b505afa158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c079190614c4b565b9050333060405163071ddd6760e11b81526001600160a01b0389811660048301529190911690630e3bbace9060240160206040518083038186803b158015610c4e57600080fd5b505afa158015610c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c869190614bb0565b6001600160a01b031614610ce65760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b80821015610d5c5760405162461bcd60e51b815260206004820152602360248201527f5365637572697479206465706f73697420697320746f6f20736d616c6c20287460448201527f656529000000000000000000000000000000000000000000000000000000000060648201526084016106f6565b6000610d6860006137c7565b6000818152600080516020614d9e8339815191526020526040812091925090805460ff191681556005810180546001600160a01b03199081166001600160a01b038c1617909155426001830181905560028301805433908416811790915560038401919091556004830180549092161790556000838152600080516020614dde83398151915260205260408120919250908851805191925089916001840191610e1691839160200190613b8c565b506020828101518051610e2f9260018501920190613b8c565b5060408201518051610e4b916002840191602090910190613b8c565b506060820151600382018054608085015167ffffffffffffffff16640100000000026bffffffffffffffffffffffff1990911663ffffffff9093169290921791909117905560a08201518051610eab916004840191602090910190613b8c565b5060c08201516005820180546001600160a01b0319166001600160a01b0390921691909117905560e08201518051610eed916006840191602090910190613b8c565b506101008201518051610f0a916007840191602090910190613b8c565b50905050610f153090565b6001600160a01b031663fa8e245e8a8560006040518463ffffffff1660e01b8152600401610f4593929190614c64565b600060405180830381600087803b158015610f5f57600080fd5b505af1158015610f73573d6000803e3d6000fd5b50505050610f7e3090565b6001600160a01b0316634c17da92846040518263ffffffff1660e01b8152600401610fab91815260200190565b600060405180830381600087803b158015610fc557600080fd5b505af1158015610fd9573d6000803e3d6000fd5b505060405185925089915033907e5df092672da531405626f5263533cfa98d929d57b194c31fb6fed2cbc929db90600090a4505050505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529061105c836000908152600080516020614d9e8339815191526020526040902090565b604080516080810182526001830154815260028301546001600160a01b0390811660208301526003840154928201929092526004909201541660608201529392505050565b6110a9613c10565b6000828152600080516020614d9e83398151915260209081526040808320600080516020614dde83398151915283529281902085855260058401546001600160a01b031692850192909252805161012081019091526001820180548290829061111190614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461113d90614c90565b801561118a5780601f1061115f5761010080835404028352916020019161118a565b820191906000526020600020905b81548152906001019060200180831161116d57829003601f168201915b505050505081526020016001820180546111a390614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546111cf90614c90565b801561121c5780601f106111f15761010080835404028352916020019161121c565b820191906000526020600020905b8154815290600101906020018083116111ff57829003601f168201915b5050505050815260200160028201805461123590614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461126190614c90565b80156112ae5780601f10611283576101008083540402835291602001916112ae565b820191906000526020600020905b81548152906001019060200180831161129157829003601f168201915b5050509183525050600382015463ffffffff81166020830152640100000000900467ffffffffffffffff1660408201526004820180546060909201916112f390614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461131f90614c90565b801561136c5780601f106113415761010080835404028352916020019161136c565b820191906000526020600020905b81548152906001019060200180831161134f57829003601f168201915b505050918352505060058201546001600160a01b0316602082015260068201805460409092019161139c90614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546113c890614c90565b80156114155780601f106113ea57610100808354040283529160200191611415565b820191906000526020600020905b8154815290600101906020018083116113f857829003601f168201915b5050505050815260200160078201805461142e90614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461145a90614c90565b80156114a75780601f1061147c576101008083540402835291602001916114a7565b820191906000526020600020905b81548152906001019060200180831161148a57829003601f168201915b50505091909252505050604084015250600601546060820152919050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156114f8576114f8614083565b14156115075750600192915050565b50506000908152600080516020614dbe833981519152602052604090206001015460ff1690565b6000808211801561058b5750507fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee8454101590565b6000818152600080516020614d9e83398151915260205260408120829150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156115c957600080fd5b505afa1580156115dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116019190614bb0565b90506001600160a01b03811633146116655760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000848152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815487939060ff1660038111156116b0576116b0614083565b1415806116c357508054600260ff909116105b6117065760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000878152600080516020614d9e833981519152602052604090206006810154156117735760405162461bcd60e51b815260206004820152601960248201527f4f6666657220697320616c72656164792064697361626c65640000000000000060448201526064016106f6565b6117958160010142600282015560030180546001600160a01b03191633179055565b6040517f897ce7cf000000000000000000000000000000000000000000000000000000008152309063897ce7cf906117d1906004908101614c31565b60206040518083038186803b1580156117e957600080fd5b505afa1580156117fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118219190614c4b565b61182b9042614ccb565b600682018190556005820154825460405163a4f48e3d60e01b8152309363a4f48e3d93611871936001600160a01b03909116928e9260ff90921691600091600401614ce3565b600060405180830381600087803b15801561188b57600080fd5b505af115801561189f573d6000803e3d6000fd5b505050506118aa3090565b6001600160a01b031663087960d98983600601546040518363ffffffff1660e01b81526004016118e4929190918252602082015260400190565b600060405180830381600087803b1580156118fe57600080fd5b505af1158015611912573d6000803e3d6000fd5b5050825460ff16915050600381111561192d5761192d614083565b60058201546040518a916001600160a01b0316907fda3cf25191e5eec59245d2d16a2d74a4155ebaa61176cc6b1309fa508d0984f090600090a45050505050505050565b6000818152600080516020614d9e833981519152602052604081206000815460ff1660038111156119a4576119a4614083565b14156119b35750600192915050565b50506000908152600080516020614dbe833981519152602052604090206001015462010000900460ff1690565b60007fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee847fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee8982846003811115611a3757611a37614083565b6003811115611a4857611a48614083565b81526020810191909152604001600020549392505050565b611a68613ca7565b6000828152600080516020614d9e83398151915260209081526040808320600080516020614dbe83398151915283529281902085855260058401546001600160a01b031692850192909252805161022081019091528154829082908290611ace90614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611afa90614c90565b8015611b475780601f10611b1c57610100808354040283529160200191611b47565b820191906000526020600020905b815481529060010190602001808311611b2a57829003601f168201915b5050509183525050600182015460209091019060ff166002811115611b6e57611b6e614083565b6002811115611b7f57611b7f614083565b81526020016001820160019054906101000a900460ff166003811115611ba757611ba7614083565b6003811115611bb857611bb8614083565b8152600182015462010000900460ff1615156020820152600282018054604090920191611be490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611c1090614c90565b8015611c5d5780601f10611c3257610100808354040283529160200191611c5d565b820191906000526020600020905b815481529060010190602001808311611c4057829003601f168201915b50505050508152602001600382015481526020016004820160405180604001604052908160008201805480602002602001604051908101604052809291908181526020018280548015611ccf57602002820191906000526020600020905b815481526020019060010190808311611cbb575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d5757602002820191906000526020600020906000905b82829054906101000a900460ff166003811115611d3557611d35614083565b815260206001928301818104948501949093039092029101808411611d165790505b5050505050815250508152602001600682018054611d7490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611da090614c90565b8015611ded5780601f10611dc257610100808354040283529160200191611ded565b820191906000526020600020905b815481529060010190602001808311611dd057829003601f168201915b5050505050815260200160078201548152602001600882018054611e1090614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611e3c90614c90565b8015611e895780601f10611e5e57610100808354040283529160200191611e89565b820191906000526020600020905b815481529060010190602001808311611e6c57829003601f168201915b50505050508152602001600982018054611ea290614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611ece90614c90565b8015611f1b5780601f10611ef057610100808354040283529160200191611f1b565b820191906000526020600020905b815481529060010190602001808311611efe57829003601f168201915b50505050508152602001600a82018054611f3490614c90565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6090614c90565b8015611fad5780601f10611f8257610100808354040283529160200191611fad565b820191906000526020600020905b815481529060010190602001808311611f9057829003601f168201915b50505050508152602001600b820180548060200260200160405190810160405280929190818152602001828054801561200f57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ff1575b50505050508152602001600c8201805461202890614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461205490614c90565b80156120a15780601f10612076576101008083540402835291602001916120a1565b820191906000526020600020905b81548152906001019060200180831161208457829003601f168201915b50505050508152602001600d820180546120ba90614c90565b80601f01602080910402602001604051908101604052809291908181526020018280546120e690614c90565b80156121335780601f1061210857610100808354040283529160200191612133565b820191906000526020600020905b81548152906001019060200180831161211657829003601f168201915b50505050508152602001600e8201805461214c90614c90565b80601f016020809104026020016040519081016040528092919081815260200182805461217890614c90565b80156121c55780601f1061219a576101008083540402835291602001916121c5565b820191906000526020600020905b8154815290600101906020018083116121a857829003601f168201915b50505050508152602001600f8201805461142e90614c90565b30604051630f56c8a760e11b81526001600160a01b0385811660048301529190911690631ead914e9060240160206040518083038186803b15801561222257600080fd5b505afa158015612236573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225a9190614c14565b6122a65760405162461bcd60e51b815260206004820152601a60248201527f50726f7669646572206973206e6f74207265676973746572656400000000000060448201526064016106f6565b3060405163b6dd45ff60e01b81526001600160a01b038581166004830152919091169063b6dd45ff90602401600060405180830381600087803b1580156122ec57600080fd5b505af1158015612300573d6000803e3d6000fd5b50505050600061230d3090565b6001600160a01b031663897ce7cf60066040518263ffffffff1660e01b81526004016123399190614c31565b60206040518083038186803b15801561235157600080fd5b505afa158015612365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123899190614c4b565b905060003060405163d8a2d2c560e01b81526001600160a01b038781166004830152919091169063d8a2d2c59060240160206040518083038186803b1580156123d157600080fd5b505afa1580156123e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124099190614c4b565b90506000306040516305e0d9bd60e31b81526001600160a01b038881166004830152602482018690529190911690632f06cde89060440160206040518083038186803b15801561245857600080fd5b505afa15801561246c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124909190614c4b565b90506000856040015160038111156124aa576124aa614083565b14156124f85760405162461bcd60e51b815260206004820152601760248201527f496e766169642076616c7565206f66666572207479706500000000000000000060448201526064016106f6565b333060405163071ddd6760e11b81526001600160a01b0389811660048301529190911690630e3bbace9060240160206040518083038186803b15801561253d57600080fd5b505afa158015612551573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125759190614bb0565b6001600160a01b0316146125d55760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b808210156126255760405162461bcd60e51b815260206004820152601d60248201527f5365637572697479206465706f73697420697320746f6f20736d616c6c00000060448201526064016106f6565b600061263486604001516137c7565b6000818152600080516020614d9e8339815191526020526040908190209088015181549293509091829060ff1916600183600381111561267657612676614083565b02179055506005810180546001600160a01b038a166001600160a01b031991821617909155426001830181905560028301805483163390811790915560038401919091556004830180549092161790556000828152600080516020614dbe8339815191526020526040812088518051919250899183916126fb91839160200190613b8c565b50602082015160018083018054909160ff199091169083600281111561272357612723614083565b0217905550604082015160018201805461ff00191661010083600381111561274d5761274d614083565b02179055506060820151600182018054911515620100000262ff0000199092169190911790556080820151805161278e916002840191602090910190613b8c565b5060a0820151600382015560c08201518051805160048401916127b691839160200190613cc6565b5060208281015180516127cf9260018501920190613d00565b50505060e082015180516127ed916006840191602090910190613b8c565b5061010082015160078201556101208201518051612815916008840191602090910190613b8c565b506101408201518051612832916009840191602090910190613b8c565b50610160820151805161284f91600a840191602090910190613b8c565b50610180820151805161286c91600b840191602090910190613daf565b506101a0820151805161288991600c840191602090910190613b8c565b506101c082015180516128a691600d840191602090910190613b8c565b506101e082015180516128c391600e840191602090910190613b8c565b5061020082015180516128e091600f840191602090910190613b8c565b509050506128ee8189613856565b60408089015190517ffa8e245e000000000000000000000000000000000000000000000000000000008152309163fa8e245e91612932918d91889190600401614c64565b600060405180830381600087803b15801561294c57600080fd5b505af1158015612960573d6000803e3d6000fd5b5050505061296b3090565b6001600160a01b0316634c17da92846040518263ffffffff1660e01b815260040161299891815260200190565b600060405180830381600087803b1580156129b257600080fd5b505af11580156129c6573d6000803e3d6000fd5b505060405185925089915033907fe8953a36b344cf43660efc2a608b608b7635ecb16314534b98e7d5885ae4291190600090a4505050505050505050565b6000838152600080516020614d9e833981519152602052604081206000815460ff166003811115612a3757612a37614083565b1415612b89576000858152600080516020614dde8339815191526020526040812090612a638642614d1a565b90506000612a72603c83614d47565b6004840154909150640100000000900467ffffffffffffffff16811015612aac57506004820154640100000000900467ffffffffffffffff165b6004838101546040517f0b82a0ce0000000000000000000000000000000000000000000000000000000081529182018a905260009163ffffffff909116903090630b82a0ce9060240160206040518083038186803b158015612b0d57600080fd5b505afa158015612b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b459190614c4b565b612b4f9190614d47565b90506000612b61603c62015180614d5b565b63ffffffff16612b718385614d7e565b612b7b9190614d47565b9650612bda95505050505050565b6000858152600080516020614dbe8339815191526020526040812060078101549091904290612bb990603c614d7e565b612bc39088614ccb565b10905080612bd15784612bd4565b60005b93505050505b9392505050565b600081831415612bf35750600161058b565b6000838152600080516020614dbe83398151915260209081526040808320858452600080516020614d9e83398151915290925282208054919290916010840190829060ff166003811115612c4957612c49614083565b6003811115612c5a57612c5a614083565b81526020019081526020016000209050612c7681600101541590565b80612c865750612c868186613ab6565b9695505050505050565b6000818152600080516020614d9e83398151915260205260408120829150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b158015612cf757600080fd5b505afa158015612d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2f9190614bb0565b90506001600160a01b0381163314612d935760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000848152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815487939060ff166003811115612dde57612dde614083565b141580612df157508054600260ff909116105b612e345760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000878152600080516020614d9e833981519152602052604090206006810154612ea05760405162461bcd60e51b815260206004820152601860248201527f4f6666657220697320616c726561647920656e61626c6564000000000000000060448201526064016106f6565b612ec28160010142600282015560030180546001600160a01b03191633179055565b6000600682018190556005820154825460405163a4f48e3d60e01b8152309363a4f48e3d93612f0a936001600160a01b03909116928e9260ff90921691600191600401614ce3565b600060405180830381600087803b158015612f2457600080fd5b505af1158015612f38573d6000803e3d6000fd5b50505050612f433090565b6001600160a01b0316634c17da92896040518263ffffffff1660e01b8152600401612f7091815260200190565b600060405180830381600087803b158015612f8a57600080fd5b505af1158015612f9e573d6000803e3d6000fd5b5050825460ff169150506003811115612fb957612fb9614083565b60058201546040518a916001600160a01b0316907ff31105f3ed0244cf1e9bc35a9bbd1d0855e47a8ab57a00f7e94b7dfa2b6ea36e90600090a45050505050505050565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b15801561306457600080fd5b505afa158015613078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061309c9190614bb0565b90506001600160a01b03811633146131005760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff16600381111561314b5761314b614083565b14158061315e57508054600260ff909116105b6131a15760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff1660038111156131ee576131ee614083565b1415613227576000898152600080516020614dde83398151915260205260408120895190915061082690600183019060208c0190613b8c565b6000898152600080516020614dbe83398151915260205260408120895190915061086090829060208c0190613b8c565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156132be57600080fd5b505afa1580156132d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132f69190614bb0565b90506001600160a01b038116331461335a5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff1660038111156133a5576133a5614083565b1415806133b857508054600260ff909116105b6133fb5760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e8339815191526020526040812090506000815460ff16600381111561343057613430614083565b1461347d5760405162461bcd60e51b815260206004820152601260248201527f496e76616c6964206f666665722074797065000000000000000000000000000060448201526064016106f6565b61349f8160010142600282015560030180546001600160a01b03191633179055565b6000898152600080516020614dde83398151915260205260409020600981015442906134ce9062015180614ccb565b1061351b5760405162461bcd60e51b815260206004820152601460248201527f417661696c61626c65206f6e636520612064617900000000000000000000000060448201526064016106f6565b426009820155885161086090600783019060208c0190613b8c565b6000818152600080516020614d9e8339815191526020526040812060068101541580612bda57506006015442111592915050565b6000828152600080516020614d9e83398151915260205260408120839150600030600583015460405163071ddd6760e11b81526001600160a01b039182166004820152911690630e3bbace9060240160206040518083038186803b1580156135d157600080fd5b505afa1580156135e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136099190614bb0565b90506001600160a01b038116331461366d5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106f6565b6000858152600080516020614d9e83398151915260209081526040808320600080516020614dde8339815191529092528220815488939060ff1660038111156136b8576136b8614083565b1415806136cb57508054600260ff909116105b61370e5760405162461bcd60e51b8152602060048201526014602482015273151959481bd999995c881a5cc8189b1bd8dad95960621b60448201526064016106f6565b6000888152600080516020614d9e833981519152602052604090204260038201556004810180546001600160a01b031916331790556000815460ff16600381111561375b5761375b614083565b1415613794576000898152600080516020614dde83398151915260205260408120895190915061082690600283019060208c0190613b8c565b6000898152600080516020614dbe83398151915260205260408120895190915061086090600283019060208c0190613b8c565b7fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee84805460009190819083906137fb90614bf9565b9182905550915060058101600084600381111561381a5761381a614083565b600381111561382b5761382b614083565b8152602080820192909252604001600090812080546001810182559082529190200182905550919050565b60c08101515151158061387e575060008160200151600281111561387c5761387c614083565b145b6138ca5760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420616c6c6f77656420666f72206f75747075742067726f75700000000060448201526064016106f6565b60005b60c08201515151811015613a1b5760008260c001516000015182815181106138f7576138f7614bcd565b602002602001015190506139297fa15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee845490565b811061399d5760405162461bcd60e51b815260206004820152603060248201527f4f666665722063616e6e6f742062652072657374726963746564206279206e6f60448201527f6e2d6578697374696e67206f666665720000000000000000000000000000000060648201526084016106f6565b6000818152600080516020614d9e8339815191526020526040812080549091613a08918491601089019160ff1660038111156139db576139db614083565b60038111156139ec576139ec614083565b8152602001908152602001600020613b0b90919063ffffffff16565b505080613a1490614bf9565b90506138cd565b5060005b8160c001516020015151811015613ab15760008260c00151602001518281518110613a4c57613a4c614bcd565b602002602001015190506001846011016000836003811115613a7057613a70614083565b6003811115613a8157613a81614083565b81526020810191909152604001600020805460ff191691151591909117905550613aaa81614bf9565b9050613a1f565b505050565b6001820154600090613aca5750600061058b565b600082815260208490526040902054151580612bda57508183600101600081548110613af857613af8614bcd565b9060005260206000200154149392505050565b60018201546000901580613b565750600082815260208490526040902054158015613b5657508183600101600081548110613b4857613b48614bcd565b906000526020600020015414155b905080613b6257505050565b50600180830180546000848152602095865260408120829055928101825590825292902090910155565b828054613b9890614c90565b90600052602060002090601f016020900481019282613bba5760008555613c00565b82601f10613bd357805160ff1916838001178555613c00565b82800160010185558215613c00579182015b82811115613c00578251825591602001919060010190613be5565b50613c0c929150613e04565b5090565b60405180608001604052806000815260200160006001600160a01b03168152602001613c9a604051806101200160405280606081526020016060815260200160608152602001600063ffffffff168152602001600067ffffffffffffffff1681526020016060815260200160006001600160a01b0316815260200160608152602001606081525090565b8152602001600081525090565b6040805160808101825260008082526020820152908101613c9a613e19565b828054828255906000526020600020908101928215613c005791602002820182811115613c00578251825591602001919060010190613be5565b82805482825590600052602060002090601f01602090048101928215613c005791602002820160005b83821115613d7557835183826101000a81548160ff02191690836003811115613d5457613d54614083565b02179055509260200192600101602081600001049283019260010302613d29565b8015613da25782816101000a81549060ff0219169055600101602081600001049283019260010302613d75565b5050613c0c929150613e04565b828054828255906000526020600020908101928215613c00579160200282015b82811115613c0057825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613dcf565b5b80821115613c0c5760008155600101613e05565b604080516102208101909152606081526020810160008152602001600081526020016000151581526020016060815260200160008152602001613e6f604051806040016040528060608152602001606081525090565b8152602001606081526020016000815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b803560048110613eca57600080fd5b919050565b60008060408385031215613ee257600080fd5b82359150613ef260208401613ebb565b90509250929050565b600060208284031215613f0d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b60405290565b6040805190810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b604051610220810167ffffffffffffffff81118282101715613f4e57613f4e613f14565b604051601f8201601f1916810167ffffffffffffffff81118282101715613fc457613fc4613f14565b604052919050565b600082601f830112613fdd57600080fd5b813567ffffffffffffffff811115613ff757613ff7613f14565b61400a601f8201601f1916602001613f9b565b81815284602083860101111561401f57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561404f57600080fd5b82359150602083013567ffffffffffffffff81111561406d57600080fd5b61407985828601613fcc565b9150509250929050565b634e487b7160e01b600052602160045260246000fd5b600481106140a9576140a9614083565b9052565b6020810161058b8284614099565b6001600160a01b03811681146140d057600080fd5b50565b8035613eca816140bb565b600080604083850312156140f157600080fd5b823591506020830135614103816140bb565b809150509250929050565b803563ffffffff81168114613eca57600080fd5b803567ffffffffffffffff81168114613eca57600080fd5b60008060006060848603121561414f57600080fd5b833561415a816140bb565b9250602084013567ffffffffffffffff8082111561417757600080fd5b90850190610120828803121561418c57600080fd5b614194613f2a565b8235828111156141a357600080fd5b6141af89828601613fcc565b8252506020830135828111156141c457600080fd5b6141d089828601613fcc565b6020830152506040830135828111156141e857600080fd5b6141f489828601613fcc565b6040830152506142066060840161410e565b606082015261421760808401614122565b608082015260a08301358281111561422e57600080fd5b61423a89828601613fcc565b60a08301525061424c60c084016140d3565b60c082015260e08301358281111561426357600080fd5b61426f89828601613fcc565b60e083015250610100808401358381111561428957600080fd5b6142958a828701613fcc565b828401525050809450505050604084013590509250925092565b6000815180845260005b818110156142d5576020818501810151868301820152016142b9565b818111156142e7576000602083870101525b50601f01601f19169290920160200192915050565b60208152815160208201526001600160a01b036020830151166040820152600060408301516080606084015280516101208060a08601526143416101c08601836142af565b91506020830151609f19808785030160c088015261435f84836142af565b935060408501519150808785030160e088015261437c84836142af565b9350606085015191506101006143998189018463ffffffff169052565b608086015167ffffffffffffffff811689860152925060a0860151935081888603016101408901526143cb85856142af565b945060c086015193506143ea6101608901856001600160a01b03169052565b60e08601519350818886030161018089015261440685856142af565b9501518786039091016101a08801529392506144269150829050836142af565b915050606084015160808401528091505092915050565b600381106140a9576140a9614083565b6020810161058b828461443d565b60006020828403121561446d57600080fd5b612bda82613ebb565b805160408084528151908401819052600091602091908201906060860190845b818110156144b257835183529284019291840191600101614496565b50508483015186820387850152805180835290840192506000918401905b808310156144f7576144e3828551614099565b9284019260019290920191908401906144d0565b509695505050505050565b600081518084526020808501945080840160005b8381101561453b5781516001600160a01b031687529582019590820190600101614516565b509495945050505050565b60208152815160208201526001600160a01b036020830151166040820152600060408301516080606084015280516102208060a086015261458b6102c08601836142af565b9150602083015161459f60c087018261443d565b5060408301516145b260e0870182614099565b5060608301516101006145c88188018315159052565b60808501519150609f196101208189870301818a01526145e886856142af565b955060a0870151935061014084818b015260c08801519450610160838b890301818c01526146168887614476565b975060e08901519550610180848c8a0301818d015261463589886142af565b9850858a015196506101a0955086868d0152838a015196506101c09350848c8a0301848d015261466589886142af565b9850828a015196506101e09250848c8a0301838d015261468589886142af565b9850818a015196506102009150848c8a0301828d01526146a589886142af565b9850808a0151965050838b890301878c01526146c18887614502565b9750848901519650838b8903016102408c01526146de88886142af565b9750828901519650838b8903016102608c01526146fb88886142af565b9750818901519650838b8903016102808c015261471888886142af565b975080890151985050505080888603016102a08901525050505061442681836142af565b803560038110613eca57600080fd5b80151581146140d057600080fd5b8035613eca8161474b565b600067ffffffffffffffff82111561477e5761477e613f14565b5060051b60200190565b600082601f83011261479957600080fd5b813560206147ae6147a983614764565b613f9b565b82815260059290921b840181019181810190868411156147cd57600080fd5b8286015b848110156144f7576147e281613ebb565b83529183019183016147d1565b60006040828403121561480157600080fd5b614809613f54565b9050813567ffffffffffffffff8082111561482357600080fd5b818401915084601f83011261483757600080fd5b813560206148476147a983614764565b82815260059290921b8401810191818101908884111561486657600080fd5b948201945b838610156148845785358252948201949082019061486b565b8652508581013593508284111561489a57600080fd5b6148a687858801614788565b818601525050505092915050565b600082601f8301126148c557600080fd5b813560206148d56147a983614764565b82815260059290921b840181019181810190868411156148f457600080fd5b8286015b848110156144f757803561490b816140bb565b83529183019183016148f8565b60008060006060848603121561492d57600080fd5b8335614938816140bb565b9250602084013567ffffffffffffffff8082111561495557600080fd5b90850190610220828803121561496a57600080fd5b614972613f77565b82358281111561498157600080fd5b61498d89828601613fcc565b82525061499c6020840161473c565b60208201526149ad60408401613ebb565b60408201526149be60608401614759565b60608201526080830135828111156149d557600080fd5b6149e189828601613fcc565b60808301525060a083013560a082015260c083013582811115614a0357600080fd5b614a0f898286016147ef565b60c08301525060e083013582811115614a2757600080fd5b614a3389828601613fcc565b60e08301525061010083810135908201526101208084013583811115614a5857600080fd5b614a648a828701613fcc565b8284015250506101408084013583811115614a7e57600080fd5b614a8a8a828701613fcc565b8284015250506101608084013583811115614aa457600080fd5b614ab08a828701613fcc565b8284015250506101808084013583811115614aca57600080fd5b614ad68a8287016148b4565b8284015250506101a08084013583811115614af057600080fd5b614afc8a828701613fcc565b8284015250506101c08084013583811115614b1657600080fd5b614b228a828701613fcc565b8284015250506101e08084013583811115614b3c57600080fd5b614b488a828701613fcc565b828401525050610200808401358381111561428957600080fd5b600080600060608486031215614b7757600080fd5b505081359360208301359350604090920135919050565b60008060408385031215614ba157600080fd5b50508035926020909101359150565b600060208284031215614bc257600080fd5b8151612bda816140bb565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415614c0d57614c0d614be3565b5060010190565b600060208284031215614c2657600080fd5b8151612bda8161474b565b6020810160088310614c4557614c45614083565b91905290565b600060208284031215614c5d57600080fd5b5051919050565b6001600160a01b03841681526020810183905260608101614c886040830184614099565b949350505050565b600181811c90821680614ca457607f821691505b60208210811415614cc557634e487b7160e01b600052602260045260246000fd5b50919050565b60008219821115614cde57614cde614be3565b500190565b6001600160a01b03861681526020810185905260a08101614d076040830186614099565b9215156060820152608001529392505050565b600082821015614d2c57614d2c614be3565b500390565b634e487b7160e01b600052601260045260246000fd5b600082614d5657614d56614d31565b500490565b600063ffffffff80841680614d7257614d72614d31565b92169190910492915050565b6000816000190483118215151615614d9857614d98614be3565b50029056fea15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee85a15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee86a15d1660ecf4f4c2ac27ec148e6bb28bae19d84f4ea12b71b4576a040a68ee87a2646970667358221220197f39b4cd23e8c0828e131b3fd10eb0b4725d168d6c71c518dcbf1e02b93d7064736f6c63430008090033",
997
+ "linkReferences": {},
998
+ "deployedLinkReferences": {}
999
+ }