@ensuro/core 1.2.7 → 2.0.0-beta10

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 (109) hide show
  1. package/README.md +63 -27
  2. package/build/contracts/AccessManager.sol/AccessManager.json +559 -0
  3. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +219 -0
  4. package/build/contracts/EToken.sol/EToken.json +217 -190
  5. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +17 -4
  6. package/build/contracts/{extras/IPriceRiskModule.sol/IPriceRiskModule.json → LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json} +81 -131
  7. package/build/contracts/Policy.sol/Policy.json +2 -2
  8. package/build/contracts/PolicyPool.sol/PolicyPool.json +425 -295
  9. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +15 -2
  10. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +868 -0
  11. package/build/contracts/{BaseAssetManager.sol/BaseAssetManager.json → Reserve.sol/Reserve.json} +37 -166
  12. package/build/contracts/RiskModule.sol/RiskModule.json +85 -312
  13. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +960 -0
  14. package/build/contracts/{DataTypes.sol/DataTypes.json → TimeScaled.sol/TimeScaled.json} +4 -4
  15. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +134 -336
  16. package/build/contracts/dependencies/ERC1967Proxy.sol/ERC1967Proxy.json +64 -0
  17. package/build/{interfaces/IExchange.sol/IExchange.json → contracts/dependencies/IERC20Metadata.sol/IERC20Metadata.json} +83 -79
  18. package/build/contracts/{WadRayMath.sol → dependencies/WadRayMath.sol}/WadRayMath.json +3 -3
  19. package/build/{interfaces/IPolicyPoolConfig.sol/IPolicyPoolConfig.json → contracts/interfaces/IAccessManager.sol/IAccessManager.json} +79 -77
  20. package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +109 -0
  21. package/build/{interfaces → contracts/interfaces}/IEToken.sol/IEToken.json +39 -91
  22. package/build/{interfaces → contracts/interfaces}/ILPWhitelist.sol/ILPWhitelist.json +1 -1
  23. package/build/{interfaces → contracts/interfaces}/IPolicyHolder.sol/IPolicyHolder.json +1 -1
  24. package/build/{interfaces → contracts/interfaces}/IPolicyPool.sol/IPolicyPool.json +137 -100
  25. package/build/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +1 -1
  26. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +315 -0
  27. package/build/{interfaces → contracts/interfaces}/IRiskModule.sol/IRiskModule.json +58 -34
  28. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
  29. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  30. package/build/{interfaces/IInsolvencyHook.sol/IInsolvencyHook.json → contracts/mocks/IMintableERC20.sol/IMintableERC20.json} +13 -8
  31. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +228 -0
  32. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +35 -0
  33. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +702 -0
  34. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  35. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +764 -0
  36. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  37. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  38. package/contracts/AccessManager.sol +103 -0
  39. package/contracts/ERC4626AssetManager.sol +52 -0
  40. package/contracts/EToken.sol +254 -299
  41. package/contracts/LPManualWhitelist.sol +4 -4
  42. package/contracts/LiquidityThresholdAssetManager.sol +160 -0
  43. package/contracts/Policy.sol +49 -45
  44. package/contracts/PolicyPool.sol +379 -514
  45. package/contracts/PolicyPoolComponent.sol +41 -41
  46. package/contracts/PremiumsAccount.sol +480 -0
  47. package/contracts/Reserve.sol +213 -0
  48. package/contracts/RiskModule.sol +233 -174
  49. package/contracts/SignedQuoteRiskModule.sol +241 -0
  50. package/contracts/TimeScaled.sol +138 -0
  51. package/contracts/TrustfulRiskModule.sol +85 -23
  52. package/contracts/dependencies/ERC1967Proxy.sol +19 -0
  53. package/contracts/dependencies/IERC20Metadata.sol +19 -0
  54. package/contracts/dependencies/WadRayMath.sol +126 -0
  55. package/contracts/interfaces/IAccessManager.sol +148 -0
  56. package/contracts/interfaces/IAssetManager.sol +84 -0
  57. package/contracts/interfaces/IEToken.sol +195 -0
  58. package/contracts/interfaces/ILPWhitelist.sol +40 -0
  59. package/{interfaces → contracts/interfaces}/IPolicyHolder.sol +0 -0
  60. package/contracts/interfaces/IPolicyPool.sol +145 -0
  61. package/{interfaces → contracts/interfaces}/IPolicyPoolComponent.sol +3 -0
  62. package/contracts/interfaces/IPremiumsAccount.sol +76 -0
  63. package/contracts/interfaces/IRiskModule.sol +123 -0
  64. package/contracts/mocks/FixedRateVault.sol +85 -0
  65. package/contracts/mocks/ForwardProxy.sol +66 -0
  66. package/contracts/mocks/IMintableERC20.sol +13 -0
  67. package/contracts/mocks/PolicyHolderMock.sol +89 -0
  68. package/contracts/mocks/PolicyPoolComponentMock.sol +17 -0
  69. package/contracts/mocks/PolicyPoolMock.sol +148 -0
  70. package/contracts/mocks/RiskModuleMock.sol +75 -0
  71. package/contracts/mocks/TestCurrency.sol +35 -0
  72. package/contracts/mocks/TestNFT.sol +23 -0
  73. package/js/test-utils.js +356 -0
  74. package/package.json +2 -2
  75. package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +0 -742
  76. package/build/contracts/Exchange.sol/Exchange.json +0 -591
  77. package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +0 -1112
  78. package/build/contracts/PolicyNFT.sol/PolicyNFT.json +0 -570
  79. package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +0 -686
  80. package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +0 -50
  81. package/build/contracts/extras/PriceRiskModule.sol/PriceRiskModule.json +0 -1055
  82. package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +0 -322
  83. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +0 -571
  84. package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +0 -602
  85. package/build/interfaces/IAssetManager.sol/IAssetManager.json +0 -31
  86. package/build/interfaces/IExchange.sol/IPriceOracle.json +0 -30
  87. package/build/interfaces/IPolicyNFT.sol/IPolicyNFT.json +0 -321
  88. package/contracts/AaveAssetManager.sol +0 -298
  89. package/contracts/BaseAssetManager.sol +0 -301
  90. package/contracts/DataTypes.sol +0 -287
  91. package/contracts/Exchange.sol +0 -189
  92. package/contracts/FlightDelayRiskModule.sol +0 -208
  93. package/contracts/PolicyNFT.sol +0 -96
  94. package/contracts/PolicyPoolConfig.sol +0 -247
  95. package/contracts/WadRayMath.sol +0 -135
  96. package/contracts/dependencies/ChainlinkClientUpgradeable.sol +0 -371
  97. package/contracts/extras/IPriceRiskModule.sol +0 -41
  98. package/contracts/extras/PriceRiskModule.sol +0 -243
  99. package/contracts/upgraded/IPolicyNFTv1.sol +0 -15
  100. package/contracts/upgraded/PolicyNFTv1.sol +0 -126
  101. package/interfaces/IAssetManager.sol +0 -23
  102. package/interfaces/IEToken.sol +0 -48
  103. package/interfaces/IExchange.sol +0 -59
  104. package/interfaces/IInsolvencyHook.sol +0 -27
  105. package/interfaces/ILPWhitelist.sol +0 -23
  106. package/interfaces/IPolicyNFT.sol +0 -15
  107. package/interfaces/IPolicyPool.sol +0 -44
  108. package/interfaces/IPolicyPoolConfig.sol +0 -87
  109. package/interfaces/IRiskModule.sol +0 -29
@@ -1,1055 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "PriceRiskModule",
4
- "sourceName": "contracts/extras/PriceRiskModule.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "contract IPolicyPool",
10
- "name": "policyPool_",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "contract IERC20Metadata",
15
- "name": "asset_",
16
- "type": "address"
17
- },
18
- {
19
- "internalType": "contract IERC20Metadata",
20
- "name": "referenceCurrency_",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "uint256",
25
- "name": "slotSize_",
26
- "type": "uint256"
27
- }
28
- ],
29
- "stateMutability": "nonpayable",
30
- "type": "constructor"
31
- },
32
- {
33
- "anonymous": false,
34
- "inputs": [
35
- {
36
- "indexed": false,
37
- "internalType": "address",
38
- "name": "previousAdmin",
39
- "type": "address"
40
- },
41
- {
42
- "indexed": false,
43
- "internalType": "address",
44
- "name": "newAdmin",
45
- "type": "address"
46
- }
47
- ],
48
- "name": "AdminChanged",
49
- "type": "event"
50
- },
51
- {
52
- "anonymous": false,
53
- "inputs": [
54
- {
55
- "indexed": true,
56
- "internalType": "address",
57
- "name": "beacon",
58
- "type": "address"
59
- }
60
- ],
61
- "name": "BeaconUpgraded",
62
- "type": "event"
63
- },
64
- {
65
- "anonymous": false,
66
- "inputs": [
67
- {
68
- "indexed": true,
69
- "internalType": "enum IPolicyPoolConfig.GovernanceActions",
70
- "name": "action",
71
- "type": "uint8"
72
- },
73
- {
74
- "indexed": false,
75
- "internalType": "address",
76
- "name": "value",
77
- "type": "address"
78
- }
79
- ],
80
- "name": "ComponentChanged",
81
- "type": "event"
82
- },
83
- {
84
- "anonymous": false,
85
- "inputs": [
86
- {
87
- "indexed": true,
88
- "internalType": "enum IPolicyPoolConfig.GovernanceActions",
89
- "name": "action",
90
- "type": "uint8"
91
- },
92
- {
93
- "indexed": false,
94
- "internalType": "uint256",
95
- "name": "value",
96
- "type": "uint256"
97
- }
98
- ],
99
- "name": "GovernanceAction",
100
- "type": "event"
101
- },
102
- {
103
- "anonymous": false,
104
- "inputs": [
105
- {
106
- "indexed": true,
107
- "internalType": "address",
108
- "name": "customer",
109
- "type": "address"
110
- },
111
- {
112
- "indexed": false,
113
- "internalType": "uint256",
114
- "name": "policyId",
115
- "type": "uint256"
116
- },
117
- {
118
- "indexed": false,
119
- "internalType": "uint256",
120
- "name": "triggerPrice",
121
- "type": "uint256"
122
- },
123
- {
124
- "indexed": false,
125
- "internalType": "bool",
126
- "name": "lower",
127
- "type": "bool"
128
- }
129
- ],
130
- "name": "NewPricePolicy",
131
- "type": "event"
132
- },
133
- {
134
- "anonymous": false,
135
- "inputs": [
136
- {
137
- "indexed": false,
138
- "internalType": "address",
139
- "name": "account",
140
- "type": "address"
141
- }
142
- ],
143
- "name": "Paused",
144
- "type": "event"
145
- },
146
- {
147
- "anonymous": false,
148
- "inputs": [
149
- {
150
- "indexed": true,
151
- "internalType": "bytes32",
152
- "name": "role",
153
- "type": "bytes32"
154
- },
155
- {
156
- "indexed": true,
157
- "internalType": "bytes32",
158
- "name": "previousAdminRole",
159
- "type": "bytes32"
160
- },
161
- {
162
- "indexed": true,
163
- "internalType": "bytes32",
164
- "name": "newAdminRole",
165
- "type": "bytes32"
166
- }
167
- ],
168
- "name": "RoleAdminChanged",
169
- "type": "event"
170
- },
171
- {
172
- "anonymous": false,
173
- "inputs": [
174
- {
175
- "indexed": true,
176
- "internalType": "bytes32",
177
- "name": "role",
178
- "type": "bytes32"
179
- },
180
- {
181
- "indexed": true,
182
- "internalType": "address",
183
- "name": "account",
184
- "type": "address"
185
- },
186
- {
187
- "indexed": true,
188
- "internalType": "address",
189
- "name": "sender",
190
- "type": "address"
191
- }
192
- ],
193
- "name": "RoleGranted",
194
- "type": "event"
195
- },
196
- {
197
- "anonymous": false,
198
- "inputs": [
199
- {
200
- "indexed": true,
201
- "internalType": "bytes32",
202
- "name": "role",
203
- "type": "bytes32"
204
- },
205
- {
206
- "indexed": true,
207
- "internalType": "address",
208
- "name": "account",
209
- "type": "address"
210
- },
211
- {
212
- "indexed": true,
213
- "internalType": "address",
214
- "name": "sender",
215
- "type": "address"
216
- }
217
- ],
218
- "name": "RoleRevoked",
219
- "type": "event"
220
- },
221
- {
222
- "anonymous": false,
223
- "inputs": [
224
- {
225
- "indexed": false,
226
- "internalType": "address",
227
- "name": "account",
228
- "type": "address"
229
- }
230
- ],
231
- "name": "Unpaused",
232
- "type": "event"
233
- },
234
- {
235
- "anonymous": false,
236
- "inputs": [
237
- {
238
- "indexed": true,
239
- "internalType": "address",
240
- "name": "implementation",
241
- "type": "address"
242
- }
243
- ],
244
- "name": "Upgraded",
245
- "type": "event"
246
- },
247
- {
248
- "inputs": [],
249
- "name": "CUSTOMER_ROLE",
250
- "outputs": [
251
- {
252
- "internalType": "bytes32",
253
- "name": "",
254
- "type": "bytes32"
255
- }
256
- ],
257
- "stateMutability": "view",
258
- "type": "function"
259
- },
260
- {
261
- "inputs": [],
262
- "name": "DEFAULT_ADMIN_ROLE",
263
- "outputs": [
264
- {
265
- "internalType": "bytes32",
266
- "name": "",
267
- "type": "bytes32"
268
- }
269
- ],
270
- "stateMutability": "view",
271
- "type": "function"
272
- },
273
- {
274
- "inputs": [],
275
- "name": "GUARDIAN_ROLE",
276
- "outputs": [
277
- {
278
- "internalType": "bytes32",
279
- "name": "",
280
- "type": "bytes32"
281
- }
282
- ],
283
- "stateMutability": "view",
284
- "type": "function"
285
- },
286
- {
287
- "inputs": [],
288
- "name": "LEVEL1_ROLE",
289
- "outputs": [
290
- {
291
- "internalType": "bytes32",
292
- "name": "",
293
- "type": "bytes32"
294
- }
295
- ],
296
- "stateMutability": "view",
297
- "type": "function"
298
- },
299
- {
300
- "inputs": [],
301
- "name": "LEVEL2_ROLE",
302
- "outputs": [
303
- {
304
- "internalType": "bytes32",
305
- "name": "",
306
- "type": "bytes32"
307
- }
308
- ],
309
- "stateMutability": "view",
310
- "type": "function"
311
- },
312
- {
313
- "inputs": [],
314
- "name": "LEVEL3_ROLE",
315
- "outputs": [
316
- {
317
- "internalType": "bytes32",
318
- "name": "",
319
- "type": "bytes32"
320
- }
321
- ],
322
- "stateMutability": "view",
323
- "type": "function"
324
- },
325
- {
326
- "inputs": [],
327
- "name": "PRICER_ROLE",
328
- "outputs": [
329
- {
330
- "internalType": "bytes32",
331
- "name": "",
332
- "type": "bytes32"
333
- }
334
- ],
335
- "stateMutability": "view",
336
- "type": "function"
337
- },
338
- {
339
- "inputs": [],
340
- "name": "PRICE_SLOTS",
341
- "outputs": [
342
- {
343
- "internalType": "uint8",
344
- "name": "",
345
- "type": "uint8"
346
- }
347
- ],
348
- "stateMutability": "view",
349
- "type": "function"
350
- },
351
- {
352
- "inputs": [],
353
- "name": "RM_PROVIDER_ROLE",
354
- "outputs": [
355
- {
356
- "internalType": "bytes32",
357
- "name": "",
358
- "type": "bytes32"
359
- }
360
- ],
361
- "stateMutability": "view",
362
- "type": "function"
363
- },
364
- {
365
- "inputs": [],
366
- "name": "TWEAK_EXPIRATION",
367
- "outputs": [
368
- {
369
- "internalType": "uint40",
370
- "name": "",
371
- "type": "uint40"
372
- }
373
- ],
374
- "stateMutability": "view",
375
- "type": "function"
376
- },
377
- {
378
- "inputs": [],
379
- "name": "asset",
380
- "outputs": [
381
- {
382
- "internalType": "contract IERC20Metadata",
383
- "name": "",
384
- "type": "address"
385
- }
386
- ],
387
- "stateMutability": "view",
388
- "type": "function"
389
- },
390
- {
391
- "inputs": [],
392
- "name": "currency",
393
- "outputs": [
394
- {
395
- "internalType": "contract IERC20Metadata",
396
- "name": "",
397
- "type": "address"
398
- }
399
- ],
400
- "stateMutability": "view",
401
- "type": "function"
402
- },
403
- {
404
- "inputs": [],
405
- "name": "ensuroFee",
406
- "outputs": [
407
- {
408
- "internalType": "uint256",
409
- "name": "",
410
- "type": "uint256"
411
- }
412
- ],
413
- "stateMutability": "view",
414
- "type": "function"
415
- },
416
- {
417
- "inputs": [
418
- {
419
- "internalType": "int40",
420
- "name": "duration",
421
- "type": "int40"
422
- }
423
- ],
424
- "name": "getCDF",
425
- "outputs": [
426
- {
427
- "internalType": "uint256[30]",
428
- "name": "",
429
- "type": "uint256[30]"
430
- }
431
- ],
432
- "stateMutability": "view",
433
- "type": "function"
434
- },
435
- {
436
- "inputs": [
437
- {
438
- "internalType": "uint256",
439
- "name": "payout",
440
- "type": "uint256"
441
- },
442
- {
443
- "internalType": "uint256",
444
- "name": "lossProb",
445
- "type": "uint256"
446
- },
447
- {
448
- "internalType": "uint40",
449
- "name": "expiration",
450
- "type": "uint40"
451
- }
452
- ],
453
- "name": "getMinimumPremium",
454
- "outputs": [
455
- {
456
- "internalType": "uint256",
457
- "name": "",
458
- "type": "uint256"
459
- }
460
- ],
461
- "stateMutability": "view",
462
- "type": "function"
463
- },
464
- {
465
- "inputs": [
466
- {
467
- "internalType": "bytes32",
468
- "name": "role",
469
- "type": "bytes32"
470
- }
471
- ],
472
- "name": "getRoleAdmin",
473
- "outputs": [
474
- {
475
- "internalType": "bytes32",
476
- "name": "",
477
- "type": "bytes32"
478
- }
479
- ],
480
- "stateMutability": "view",
481
- "type": "function"
482
- },
483
- {
484
- "inputs": [
485
- {
486
- "internalType": "bytes32",
487
- "name": "role",
488
- "type": "bytes32"
489
- },
490
- {
491
- "internalType": "address",
492
- "name": "account",
493
- "type": "address"
494
- }
495
- ],
496
- "name": "grantRole",
497
- "outputs": [],
498
- "stateMutability": "nonpayable",
499
- "type": "function"
500
- },
501
- {
502
- "inputs": [
503
- {
504
- "internalType": "bytes32",
505
- "name": "role",
506
- "type": "bytes32"
507
- },
508
- {
509
- "internalType": "address",
510
- "name": "account",
511
- "type": "address"
512
- }
513
- ],
514
- "name": "hasRole",
515
- "outputs": [
516
- {
517
- "internalType": "bool",
518
- "name": "",
519
- "type": "bool"
520
- }
521
- ],
522
- "stateMutability": "view",
523
- "type": "function"
524
- },
525
- {
526
- "inputs": [
527
- {
528
- "internalType": "string",
529
- "name": "name_",
530
- "type": "string"
531
- },
532
- {
533
- "internalType": "uint256",
534
- "name": "scrPercentage_",
535
- "type": "uint256"
536
- },
537
- {
538
- "internalType": "uint256",
539
- "name": "ensuroFee_",
540
- "type": "uint256"
541
- },
542
- {
543
- "internalType": "uint256",
544
- "name": "scrInterestRate_",
545
- "type": "uint256"
546
- },
547
- {
548
- "internalType": "uint256",
549
- "name": "maxScrPerPolicy_",
550
- "type": "uint256"
551
- },
552
- {
553
- "internalType": "uint256",
554
- "name": "scrLimit_",
555
- "type": "uint256"
556
- },
557
- {
558
- "internalType": "address",
559
- "name": "wallet_",
560
- "type": "address"
561
- }
562
- ],
563
- "name": "initialize",
564
- "outputs": [],
565
- "stateMutability": "nonpayable",
566
- "type": "function"
567
- },
568
- {
569
- "inputs": [],
570
- "name": "lastTweak",
571
- "outputs": [
572
- {
573
- "internalType": "uint40",
574
- "name": "",
575
- "type": "uint40"
576
- },
577
- {
578
- "internalType": "uint56",
579
- "name": "",
580
- "type": "uint56"
581
- }
582
- ],
583
- "stateMutability": "view",
584
- "type": "function"
585
- },
586
- {
587
- "inputs": [],
588
- "name": "maxScrPerPolicy",
589
- "outputs": [
590
- {
591
- "internalType": "uint256",
592
- "name": "",
593
- "type": "uint256"
594
- }
595
- ],
596
- "stateMutability": "view",
597
- "type": "function"
598
- },
599
- {
600
- "inputs": [],
601
- "name": "moc",
602
- "outputs": [
603
- {
604
- "internalType": "uint256",
605
- "name": "",
606
- "type": "uint256"
607
- }
608
- ],
609
- "stateMutability": "view",
610
- "type": "function"
611
- },
612
- {
613
- "inputs": [],
614
- "name": "name",
615
- "outputs": [
616
- {
617
- "internalType": "string",
618
- "name": "",
619
- "type": "string"
620
- }
621
- ],
622
- "stateMutability": "view",
623
- "type": "function"
624
- },
625
- {
626
- "inputs": [
627
- {
628
- "internalType": "uint256",
629
- "name": "triggerPrice",
630
- "type": "uint256"
631
- },
632
- {
633
- "internalType": "bool",
634
- "name": "lower",
635
- "type": "bool"
636
- },
637
- {
638
- "internalType": "uint256",
639
- "name": "payout",
640
- "type": "uint256"
641
- },
642
- {
643
- "internalType": "uint40",
644
- "name": "expiration",
645
- "type": "uint40"
646
- }
647
- ],
648
- "name": "newPolicy",
649
- "outputs": [
650
- {
651
- "internalType": "uint256",
652
- "name": "",
653
- "type": "uint256"
654
- }
655
- ],
656
- "stateMutability": "nonpayable",
657
- "type": "function"
658
- },
659
- {
660
- "inputs": [],
661
- "name": "pause",
662
- "outputs": [],
663
- "stateMutability": "nonpayable",
664
- "type": "function"
665
- },
666
- {
667
- "inputs": [],
668
- "name": "paused",
669
- "outputs": [
670
- {
671
- "internalType": "bool",
672
- "name": "",
673
- "type": "bool"
674
- }
675
- ],
676
- "stateMutability": "view",
677
- "type": "function"
678
- },
679
- {
680
- "inputs": [],
681
- "name": "policyPool",
682
- "outputs": [
683
- {
684
- "internalType": "contract IPolicyPool",
685
- "name": "",
686
- "type": "address"
687
- }
688
- ],
689
- "stateMutability": "view",
690
- "type": "function"
691
- },
692
- {
693
- "inputs": [
694
- {
695
- "internalType": "uint256",
696
- "name": "triggerPrice",
697
- "type": "uint256"
698
- },
699
- {
700
- "internalType": "bool",
701
- "name": "lower",
702
- "type": "bool"
703
- },
704
- {
705
- "internalType": "uint256",
706
- "name": "payout",
707
- "type": "uint256"
708
- },
709
- {
710
- "internalType": "uint40",
711
- "name": "expiration",
712
- "type": "uint40"
713
- }
714
- ],
715
- "name": "pricePolicy",
716
- "outputs": [
717
- {
718
- "internalType": "uint256",
719
- "name": "premium",
720
- "type": "uint256"
721
- },
722
- {
723
- "internalType": "uint256",
724
- "name": "lossProb",
725
- "type": "uint256"
726
- }
727
- ],
728
- "stateMutability": "view",
729
- "type": "function"
730
- },
731
- {
732
- "inputs": [],
733
- "name": "proxiableUUID",
734
- "outputs": [
735
- {
736
- "internalType": "bytes32",
737
- "name": "",
738
- "type": "bytes32"
739
- }
740
- ],
741
- "stateMutability": "view",
742
- "type": "function"
743
- },
744
- {
745
- "inputs": [],
746
- "name": "referenceCurrency",
747
- "outputs": [
748
- {
749
- "internalType": "contract IERC20Metadata",
750
- "name": "",
751
- "type": "address"
752
- }
753
- ],
754
- "stateMutability": "view",
755
- "type": "function"
756
- },
757
- {
758
- "inputs": [
759
- {
760
- "internalType": "uint256",
761
- "name": "scrAmount",
762
- "type": "uint256"
763
- }
764
- ],
765
- "name": "releaseScr",
766
- "outputs": [],
767
- "stateMutability": "nonpayable",
768
- "type": "function"
769
- },
770
- {
771
- "inputs": [
772
- {
773
- "internalType": "bytes32",
774
- "name": "role",
775
- "type": "bytes32"
776
- },
777
- {
778
- "internalType": "address",
779
- "name": "account",
780
- "type": "address"
781
- }
782
- ],
783
- "name": "renounceRole",
784
- "outputs": [],
785
- "stateMutability": "nonpayable",
786
- "type": "function"
787
- },
788
- {
789
- "inputs": [
790
- {
791
- "internalType": "bytes32",
792
- "name": "role",
793
- "type": "bytes32"
794
- },
795
- {
796
- "internalType": "address",
797
- "name": "account",
798
- "type": "address"
799
- }
800
- ],
801
- "name": "revokeRole",
802
- "outputs": [],
803
- "stateMutability": "nonpayable",
804
- "type": "function"
805
- },
806
- {
807
- "inputs": [],
808
- "name": "scrInterestRate",
809
- "outputs": [
810
- {
811
- "internalType": "uint256",
812
- "name": "",
813
- "type": "uint256"
814
- }
815
- ],
816
- "stateMutability": "view",
817
- "type": "function"
818
- },
819
- {
820
- "inputs": [],
821
- "name": "scrLimit",
822
- "outputs": [
823
- {
824
- "internalType": "uint256",
825
- "name": "",
826
- "type": "uint256"
827
- }
828
- ],
829
- "stateMutability": "view",
830
- "type": "function"
831
- },
832
- {
833
- "inputs": [],
834
- "name": "scrPercentage",
835
- "outputs": [
836
- {
837
- "internalType": "uint256",
838
- "name": "",
839
- "type": "uint256"
840
- }
841
- ],
842
- "stateMutability": "view",
843
- "type": "function"
844
- },
845
- {
846
- "inputs": [
847
- {
848
- "internalType": "int40",
849
- "name": "duration",
850
- "type": "int40"
851
- },
852
- {
853
- "internalType": "uint256[30]",
854
- "name": "cdf",
855
- "type": "uint256[30]"
856
- }
857
- ],
858
- "name": "setCDF",
859
- "outputs": [],
860
- "stateMutability": "nonpayable",
861
- "type": "function"
862
- },
863
- {
864
- "inputs": [
865
- {
866
- "internalType": "uint256",
867
- "name": "newEnsuroFee",
868
- "type": "uint256"
869
- }
870
- ],
871
- "name": "setEnsuroFee",
872
- "outputs": [],
873
- "stateMutability": "nonpayable",
874
- "type": "function"
875
- },
876
- {
877
- "inputs": [
878
- {
879
- "internalType": "uint256",
880
- "name": "newMaxScrPerPolicy",
881
- "type": "uint256"
882
- }
883
- ],
884
- "name": "setMaxScrPerPolicy",
885
- "outputs": [],
886
- "stateMutability": "nonpayable",
887
- "type": "function"
888
- },
889
- {
890
- "inputs": [
891
- {
892
- "internalType": "uint256",
893
- "name": "newMoc",
894
- "type": "uint256"
895
- }
896
- ],
897
- "name": "setMoc",
898
- "outputs": [],
899
- "stateMutability": "nonpayable",
900
- "type": "function"
901
- },
902
- {
903
- "inputs": [
904
- {
905
- "internalType": "uint256",
906
- "name": "newScrInterestRate",
907
- "type": "uint256"
908
- }
909
- ],
910
- "name": "setScrInterestRate",
911
- "outputs": [],
912
- "stateMutability": "nonpayable",
913
- "type": "function"
914
- },
915
- {
916
- "inputs": [
917
- {
918
- "internalType": "uint256",
919
- "name": "newScrLimit",
920
- "type": "uint256"
921
- }
922
- ],
923
- "name": "setScrLimit",
924
- "outputs": [],
925
- "stateMutability": "nonpayable",
926
- "type": "function"
927
- },
928
- {
929
- "inputs": [
930
- {
931
- "internalType": "uint256",
932
- "name": "newScrPercentage",
933
- "type": "uint256"
934
- }
935
- ],
936
- "name": "setScrPercentage",
937
- "outputs": [],
938
- "stateMutability": "nonpayable",
939
- "type": "function"
940
- },
941
- {
942
- "inputs": [
943
- {
944
- "internalType": "address",
945
- "name": "wallet_",
946
- "type": "address"
947
- }
948
- ],
949
- "name": "setWallet",
950
- "outputs": [],
951
- "stateMutability": "nonpayable",
952
- "type": "function"
953
- },
954
- {
955
- "inputs": [
956
- {
957
- "internalType": "bytes4",
958
- "name": "interfaceId",
959
- "type": "bytes4"
960
- }
961
- ],
962
- "name": "supportsInterface",
963
- "outputs": [
964
- {
965
- "internalType": "bool",
966
- "name": "",
967
- "type": "bool"
968
- }
969
- ],
970
- "stateMutability": "view",
971
- "type": "function"
972
- },
973
- {
974
- "inputs": [],
975
- "name": "totalScr",
976
- "outputs": [
977
- {
978
- "internalType": "uint256",
979
- "name": "",
980
- "type": "uint256"
981
- }
982
- ],
983
- "stateMutability": "view",
984
- "type": "function"
985
- },
986
- {
987
- "inputs": [
988
- {
989
- "internalType": "uint256",
990
- "name": "policyId",
991
- "type": "uint256"
992
- }
993
- ],
994
- "name": "triggerPolicy",
995
- "outputs": [],
996
- "stateMutability": "nonpayable",
997
- "type": "function"
998
- },
999
- {
1000
- "inputs": [],
1001
- "name": "unpause",
1002
- "outputs": [],
1003
- "stateMutability": "nonpayable",
1004
- "type": "function"
1005
- },
1006
- {
1007
- "inputs": [
1008
- {
1009
- "internalType": "address",
1010
- "name": "newImplementation",
1011
- "type": "address"
1012
- }
1013
- ],
1014
- "name": "upgradeTo",
1015
- "outputs": [],
1016
- "stateMutability": "nonpayable",
1017
- "type": "function"
1018
- },
1019
- {
1020
- "inputs": [
1021
- {
1022
- "internalType": "address",
1023
- "name": "newImplementation",
1024
- "type": "address"
1025
- },
1026
- {
1027
- "internalType": "bytes",
1028
- "name": "data",
1029
- "type": "bytes"
1030
- }
1031
- ],
1032
- "name": "upgradeToAndCall",
1033
- "outputs": [],
1034
- "stateMutability": "payable",
1035
- "type": "function"
1036
- },
1037
- {
1038
- "inputs": [],
1039
- "name": "wallet",
1040
- "outputs": [
1041
- {
1042
- "internalType": "address",
1043
- "name": "",
1044
- "type": "address"
1045
- }
1046
- ],
1047
- "stateMutability": "view",
1048
- "type": "function"
1049
- }
1050
- ],
1051
- "bytecode": "0x6101206040523060601b6080523480156200001957600080fd5b5060405162005771380380620057718339810160408190526200003c9162000067565b6001600160601b0319606094851b811660a05292841b831660c052921b1660e05261010052620000da565b600080600080608085870312156200007e57600080fd5b84516200008b81620000c1565b60208601519094506200009e81620000c1565b6040860151909350620000b181620000c1565b6060959095015193969295505050565b6001600160a01b0381168114620000d757600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c61010051615590620001e1600039600061391801526000818161042501528181612ca501526138020152600081816104ec01528181612c840152612cc60152600081816105a701528181610ab901528181610c85015281816110ff0152818161118b015281816116eb015281816118ff01528181611a7301528181611c5401528181611ec701528181611f7b0152818161215c01528181612341015281816125310152818161290c01528181612b750152818161308901528181613137015261332b015260008181610edd01528181610f1d0152818161128c015281816112cc015261135b01526155906000f3fe6080604052600436106102e45760003560e01c80636f0dbe6f11610190578063ca996de3116100dc578063e42569d911610095578063f33323a41161006f578063f33323a41461092c578063f48d63ad1461094c578063f67b2bad14610979578063fbb812791461099b57600080fd5b8063e42569d9146108d0578063e5a6b10f146108f7578063e61735c01461090c57600080fd5b8063ca996de314610824578063d44499a81461083a578063d547741f14610850578063dab5d88d14610870578063deaa59df14610890578063e101a345146108b057600080fd5b80639cbbcd9211610149578063a5f8b2d611610123578063a5f8b2d614610785578063a9a24f27146107ba578063b9ea870a146107ee578063bf8e934d1461080e57600080fd5b80639cbbcd921461073a5780639d90724d1461075a578063a217fddf1461077057600080fd5b80636f0dbe6f14610678578063775ead48146106985780637ed5acfa146106b85780638456cb59146106e55780638bac3a24146106fa57806391d148541461071a57600080fd5b806338d52e0f1161024f5780634f1ef2861161020857806353428253116101e257806353428253146106125780635b494dd5146106285780635c975abb1461064a5780635d505fe71461066257600080fd5b80634f1ef286146105cb578063521eb273146105de57806352d1902d146105fd57600080fd5b806338d52e0f146104dd5780633f4ba83a1461051057806341ea6a0f14610525578063468a8c9f1461053b5780634a47a3e0146105765780634d15eb031461059857600080fd5b806324ea54f4116102a157806324ea54f4146103f45780632c7a69fe146104165780632f2ff15d1461045d57806336568abe1461047d5780633659cfe61461049d578063377e1cc9146104bd57600080fd5b806301ffc9a7146102e957806306fdde031461031e578063089a850414610340578063204d79231461036257806322875d63146103a4578063248a9ca3146103c4575b600080fd5b3480156102f557600080fd5b50610309610304366004614b2f565b6109cf565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b50610333610a06565b6040516103159190614de6565b34801561034c57600080fd5b5061036061035b366004614acd565b610a99565b005b34801561036e57600080fd5b506103967f288a15c4a15d470e4cd9cad2f113b91206b520c26dbd3dd74627f0c057baa19c81565b604051908152602001610315565b3480156103b057600080fd5b506103606103bf366004614acd565b610c65565b3480156103d057600080fd5b506103966103df366004614acd565b600090815260c9602052604090206001015490565b34801561040057600080fd5b5061039660008051602061553b83398151915281565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610315565b34801561046957600080fd5b50610360610478366004614aff565b610e29565b34801561048957600080fd5b50610360610498366004614aff565b610e54565b3480156104a957600080fd5b506103606104b8366004614a2f565b610ed2565b3480156104c957600080fd5b506103606104d8366004614acd565b610fb2565b3480156104e957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b34801561051c57600080fd5b5061036061116b565b34801561053157600080fd5b5061013454610396565b34801561054757600080fd5b5061012d546040805164ffffffffff83168152600160281b90920466ffffffffffffff16602083015201610315565b34801561058257600080fd5b5061039660008051602061551b83398151915281565b3480156105a457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b6103606105d9366004614a4c565b611281565b3480156105ea57600080fd5b50610136546001600160a01b0316610445565b34801561060957600080fd5b5061039661134e565b34801561061e57600080fd5b5061013054610396565b34801561063457600080fd5b506103966000805160206154d483398151915281565b34801561065657600080fd5b5060fb5460ff16610309565b34801561066e57600080fd5b5061013354610396565b34801561068457600080fd5b50610360610693366004614bce565b611401565b3480156106a457600080fd5b506103966106b3366004614c64565b61149d565b3480156106c457600080fd5b506106cf6201518081565b60405164ffffffffff9091168152602001610315565b3480156106f157600080fd5b506103606116da565b34801561070657600080fd5b50610396610715366004614cac565b6117e2565b34801561072657600080fd5b50610309610735366004614aff565b6118d1565b34801561074657600080fd5b50610360610755366004614acd565b6118fc565b34801561076657600080fd5b5061013254610396565b34801561077c57600080fd5b50610396600081565b34801561079157600080fd5b506107a56107a0366004614c64565b611999565b60408051928352602083019190915201610315565b3480156107c657600080fd5b506103967f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad181565b3480156107fa57600080fd5b50610360610809366004614acd565b611a53565b34801561081a57600080fd5b5061012f54610396565b34801561083057600080fd5b5061013554610396565b34801561084657600080fd5b5061013154610396565b34801561085c57600080fd5b5061036061086b366004614aff565b611c0e565b34801561087c57600080fd5b5061036061088b366004614acd565b611c34565b34801561089c57600080fd5b506103606108ab366004614a2f565b611dfb565b3480156108bc57600080fd5b506103606108cb366004614b91565b611e53565b3480156108dc57600080fd5b506108e5601e81565b60405160ff9091168152602001610315565b34801561090357600080fd5b50610445611ec3565b34801561091857600080fd5b50610360610927366004614acd565b611f5b565b34801561093857600080fd5b50610360610947366004614acd565b612120565b34801561095857600080fd5b5061096c610967366004614b76565b6124dc565b6040516103159190614d95565b34801561098557600080fd5b506103966000805160206154b483398151915281565b3480156109a757600080fd5b506103967fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b60006001600160e01b03198216637965db0b60e01b1480610a0057506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061012e8054610a16906153c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906153c7565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610b7793929190614dc7565b60006040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506000610bc060008051602061551b83398151915261252d565b159050801580610be45750610be461013154856af8277896582678ac000000612640565b610c4d5760405162461bcd60e51b815260206004820152602f60248201527f547765616b2065786365656465643a20656e7375726f46656520747765616b7360448201526e206f6e6c7920757020746f2033302560881b60648201526084015b60405180910390fd5b610131849055610c5f600a85836126cb565b50505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610d4393929190614dc7565b60006040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506000610d8c60008051602061551b83398151915261252d565b159050801580610dad5750610dad6101335485670429d069189e000061272c565b610e175760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206d6178536372506572506f6c69637920604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610133849055610c5f600b85836126cb565b600082815260c96020526040902060010154610e45813361279b565b610e4f83836127ff565b505050565b6001600160a01b0381163314610ec45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c44565b610ece8282612885565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f1b5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f64600080516020615494833981519152546001600160a01b031690565b6001600160a01b031614610f8a5760405162461bcd60e51b8152600401610c4490614e65565b610f93816128ec565b60408051600080825260208201909252610faf918391906129f6565b50565b60fb5460ff1615610fd55760405162461bcd60e51b8152600401610c4490614eb1565b60008181526101376020526040812090610fed612b70565b600b83015490915060ff161580611008575081600a01548111155b61106a5760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203e60448201526c2074726967676572507269636560981b6064820152608401610c44565b600b82015460ff1680611081575081600a01548110155b6110e35760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203c60448201526c2074726967676572507269636560981b6064820152608401610c44565b6001820154604051639e556b2b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639e556b2b9161113491869160040161503f565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b50505050505050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161124993929190614dc7565b60006040518083038186803b15801561126157600080fd5b505afa158015611275573d6000803e3d6000fd5b50505050610ece612e2f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112ca5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611313600080516020615494833981519152546001600160a01b031690565b6001600160a01b0316146113395760405162461bcd60e51b8152600401610c4490614e65565b611342826128ec565b610ece828260016129f6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c44565b5060008051602061549483398151915290565b600054610100900460ff1661141c5760005460ff1615611420565b303b155b61143c5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff1615801561145e576000805461ffff19166101011790555b61146d88888888888888612ec2565b61013980546001600160601b03191660011790558015611493576000805461ff00191690555b5050505050505050565b60008060006114ae87878787611999565b915091506000821161151b5760405162461bcd60e51b815260206004820152603060248201527f456974686572206475726174696f6e206f722070657263656e74616765206a7560448201526f1b5c081b9bdd081cdd5c1c1bdc9d195960821b6064820152608401610c44565b61013954600090611538906001600160601b03163060601b6150eb565b6000818152610137602052604090206101395491925090339061156d908990879087908b9086906001600160601b0316612f59565b80518355602081015160018085019190915560408201516002850155606082015160038501556080820151600485015560a0820151600585015560c0820151600685015560e082015160078501556101008201516008850155610120820151600985018054610140850151610160909501516001600160a01b039093166001600160c81b031990911617600160a01b64ffffffffff958616021764ffffffffff60c81b1916600160c81b949092169390930217909155610139805460009061163f9084906001600160601b031661512c565b82546101009290920a6001600160601b0381810219909316919092169190910217905550600a82018a9055600b8201805460ff19168a151590811790915560408051858152602081018d9052908101919091526001600160a01b038216907fac60a84d926e5f83b9718922af7ef1285ea8a8516516c4981ed3297d2e89ae0b9060600160405180910390a2509093505050505b949350505050565b60008051602061553b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190614b59565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b1580156117c257600080fd5b505afa1580156117d6573d6000803e3d6000fd5b50505050610faf6133c4565b60008061181361180e6117ff6117f86101305490565b879061341c565b611808886134f3565b9061341c565b613571565b905060008161182f61182861180e61012f5490565b88906135f1565b6118399190615324565b9050600061187961180e6e0612d847b578e7643c28ac000000006118644264ffffffffff8a16615324565b610132545b6118739190615305565b906136a4565b9050600061188783836135f1565b905060006118ab61189b61180e6101315490565b6118a584886150eb565b906135f1565b9050816118b882876150eb565b6118c291906150eb565b955050505050505b9392505050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461197e5760405162461bcd60e51b815260206004820152602160248201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6044820152601b60fa1b6064820152608401610c44565b8061013560008282546119919190615324565b909155505050565b60008060006119a6612b70565b90508580156119b457508681115b806119c75750851580156119c757508681105b611a135760405162461bcd60e51b815260206004820152601e60248201527f507269636520616c726561647920617420747269676765722076616c756500006044820152606401610c44565b611a278188611a22428861533b565b6137aa565b915081611a3b576000809250925050611a4a565b611a468583866117e2565b9250505b94509492505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b029190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611b3193929190614dc7565b60006040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506000611b7a60008051602061551b83398151915261252d565b159050801580611b9e5750611b9e61013054856a52b7d2dcc80cd2e4000000612640565b611bfc5760405162461bcd60e51b815260206004820152602960248201527f547765616b2065786365656465643a206d6f6320747765616b73206f6e6c7920604482015268757020746f2031302560b81b6064820152608401610c44565b610130849055610c5f600885836126cb565b600082815260c96020526040902060010154611c2a813361279b565b610e4f8383612885565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cab57600080fd5b505afa158015611cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce39190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611d1293929190614dc7565b60006040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506000611d5b60008051602061551b83398151915261252d565b159050801580611d7f5750611d7f61013254856af8277896582678ac000000612640565b611de95760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20736372496e7465726573745261746520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610132849055610c5f600985836126cb565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1611e26813361279b565b61013680546001600160a01b0319166001600160a01b038416908117909155610ece90600f9060006126cb565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611e7e813361279b565b60fb5460ff1615611ea15760405162461bcd60e51b8152600401610c4490614eb1565b600483810b900b600090815261013860205260409020610c5f9083601e614834565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190614b59565b905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd257600080fd5b505afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161203993929190614dc7565b60006040518083038186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b50505050600061208260008051602061551b83398151915261252d565b1590508015806120a657506120a661012f54856a52b7d2dcc80cd2e4000000612640565b61210e5760405162461bcd60e51b815260206004820152603360248201527f547765616b2065786365656465643a2073637250657263656e7461676520747760448201527265616b73206f6e6c7920757020746f2031302560681b6064820152608401610c44565b61012f849055610c5f600785836126cb565b6000805160206154b483398151915260008051602061551b8339815191526000805160206154d48339815191526121568361252d565b61224b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161221a93929190614dc7565b60006040518083038186803b15801561223257600080fd5b505afa158015612246573d6000803e3d6000fd5b505050505b600061226460008051602061551b83398151915261252d565b15801561228557506122836000805160206154b483398151915261252d565b155b90508015806122a557506122a5610134548667016345785d8a000061272c565b6123085760405162461bcd60e51b815260206004820152602e60248201527f547765616b2065786365656465643a207363724c696d697420747765616b732060448201526d6f6e6c7920757020746f2031302560901b6064820152608401610c44565b610134548511158061232c575061232c6000805160206154b483398151915261252d565b806123d25750846123d067016345785d8a00007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b77ddfea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561239857600080fd5b505afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a59190614ae6565b115b6124595760405162461bcd60e51b815260206004820152604c60248201527f547765616b2065786365656465643a20496e6372656173652c203e3d3130252060448201527f6f662074686520746f74616c206c69717569646974792c20726571756972657360648201526b204c4556454c315f524f4c4560a01b608482015260a401610c44565b610135548510156124c35760405162461bcd60e51b815260206004820152602e60248201527f43616e27742073657420534352206c657373207468616e2063757272656e742060448201526d29a1a91030b63637b1b0ba34b7b760911b6064820152608401610c44565b6101348590556124d5600c86836126cb565b5050505050565b6124e4614872565b600482810b900b600090815261013860205260409081902081516103c081019283905291601e9082845b81548152602001906001019080831161250e5750505050509050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561258857600080fd5b505afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c09190614b59565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b15801561260857600080fd5b505afa15801561261c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190614ab0565b600082841415612652575060016118ca565b8361266c5750676765c793fa10079d601b1b8110156118ca565b82612679575060006118ca565b828410156126ab5781676765c793fa10079d601b1b61269885876136a4565b6126a29190615324565b111590506118ca565b816126b684866136a4565b6126a290676765c793fa10079d601b1b615324565b6126d36139a5565b80156126e2576126e283613c73565b82601e8111156126f4576126f461542e565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008284141561273e575060016118ca565b836127555750670de0b6b3a76400008110156118ca565b82612762575060006118ca565b8284101561277e5781670de0b6b3a76400006126988587613dd6565b816127898486613dd6565b6126a290670de0b6b3a7640000615324565b6127a582826118d1565b610ece576127bd816001600160a01b03166014613ec2565b6127c8836020613ec2565b6040516020016127d9929190614d20565b60408051601f198184030181529082905262461bcd60e51b8252610c4491600401614de6565b61280982826118d1565b610ece57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61288f82826118d1565b15610ece57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561296357600080fd5b505afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016129ca93929190614dc7565b60006040518083038186803b1580156129e257600080fd5b505afa158015611162573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612a2957610e4f8361405e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a6257600080fd5b505afa925050508015612a92575060408051601f3d908101601f19168201909252612a8f91810190614ae6565b60015b612af55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c44565b6000805160206154948339815191528114612b645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c44565b50610e4f8383836140fa565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bcc57600080fd5b505afa158015612be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c049190614b59565b6001600160a01b031663d2f7265a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3c57600080fd5b505afa158015612c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c749190614b59565b6001600160a01b031663248391ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1d57600080fd5b505afa158015612d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d559190614ce1565b612d6090600a6151c9565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152604482015260640160206040518083038186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de59190614ae6565b905080612e2a5760405162461bcd60e51b81526020600482015260136024820152725072696365206e6f7420617661696c61626c6560681b6044820152606401610c44565b919050565b60fb5460ff16612e785760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c44565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16612edd5760005460ff1615612ee1565b303b155b612efd5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015612f1f576000805461ffff19166101011790555b612f2761411f565b612f2f614146565b612f3e888888888888886141c7565b8015611493576000805461ff00191690555050505050505050565b612f61614891565b60fb5460ff1615612f845760405162461bcd60e51b8152600401610c4490614eb1565b868610612fd35760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610c44565b4264ffffffffff168464ffffffffff16116130305760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610c44565b6001600160a01b0383166130865760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610c44565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130e057600080fd5b505afa1580156130f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131189190614b59565b604051636eb1769f60e11b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e9060440160206040518083038186803b15801561318357600080fd5b505afa158015613197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bb9190614ae6565b101561321f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b6064820152608401610c44565b600061322e30888a898961429d565b9050610133548160600151111561329f5760405162461bcd60e51b815260206004820152602f60248201527f5269736b4d6f64756c653a20534352206973206d6f7265207468616e206d617860448201526e696d756d2070657220706f6c69637960881b6064820152608401610c44565b806060015161013560008282546132b691906150eb565b9091555050610134546101355411156133115760405162461bcd60e51b815260206004820152601e60248201527f5269736b4d6f64756c653a20534352206c696d697420657863656564656400006044820152606401610c44565b604051630cb8251d60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906319704a3a9061336490859089908990600401614f74565b602060405180830381600087803b15801561337e57600080fd5b505af1158015613392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b69190614ae6565b825250979650505050505050565b60fb5460ff16156133e75760405162461bcd60e51b8152600401610c4490614eb1565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ea53390565b6000821580613429575081155b1561343657506000610a00565b8161344d6002676765c793fa10079d601b1b61514e565b61345990600019615324565b613463919061514e565b8311156134be5760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b676765c793fa10079d601b1b6134d560028261514e565b6134df8486615305565b6134e991906150eb565b6118ca919061514e565b600080613504633b9aca0084615305565b905082613515633b9aca008361514e565b14610a005760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610c44565b6000806135836002633b9aca0061514e565b9050600061359184836150eb565b9050818110156135e35760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610c44565b6116d2633b9aca008261514e565b60008215806135fe575081155b1561360b57506000610a00565b8161361f6002670de0b6b3a764000061514e565b61362b90600019615324565b613635919061514e565b8311156136905760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b670de0b6b3a76400006134d560028261514e565b6000816136f35760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b600061370060028461514e565b9050676765c793fa10079d601b1b61371a82600019615324565b613724919061514e565b84111561377f5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796676765c793fa10079d601b1b87615305565b6137a091906150eb565b6116d2919061514e565b60008061013860008587116137c1576000196137c4565b60015b610e106137d387610708615103565b6137dd9190615162565b6137e79190615274565b60040b60040b815260200190815260200160002090506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561385957600080fd5b505afa15801561386d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138919190614ce1565b61389c906012615361565b6138a790600a6151c9565b9050858711156138e7576138ce6138be8289615305565b6138c88389615305565b90613dd6565b6138e090670de0b6b3a7640000615324565b9150613914565b670de0b6b3a76400006139076138fd838a615305565b6138c8848a615305565b6139119190615324565b91505b60007f000000000000000000000000000000000000000000000000000000000000000061394260028261514e565b61394c90856150eb565b613956919061514e565b9050601e60ff82161061399057836139706001601e615361565b60ff16601e811061398357613983615444565b01549450505050506118ca565b838160ff16601e811061398357613983615444565b676765c793fa10079d601b1b61012f54111580156139c65750600061012f54115b613a205760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2073637250657263656e74616765206d757374206260448201526465203c3d3160d81b6064820152608401610c44565b613a36676765c793fa10079d601b1b6002615305565b6101305411158015613a605750613a596002676765c793fa10079d601b1b61514e565b6101305410155b613aac5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20325d6044820152606401610c44565b676765c793fa10079d601b1b610131541115613b155760405162461bcd60e51b815260206004820152602260248201527f56616c69646174696f6e3a20656e7375726f466565206d757374206265203c3d604482015261203160f01b6064820152608401610c44565b676765c793fa10079d601b1b610132541115613b8b5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a20736372496e74657265737452617465206d75737460448201526e206265203c3d20312028313030252960881b6064820152608401610c44565b61013554610134541015613c075760405162461bcd60e51b815260206004820152603760248201527f56616c69646174696f6e3a207363724c696d69742063616e2774206265206c6560448201527f7373207468616e2061637475616c20746f74616c5363720000000000000000006064820152608401610c44565b610136546001600160a01b0316613c715760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a2057616c6c65742063616e2774206265207a65726f604482015267206164647265737360c01b6064820152608401610c44565b565b6000600182601e811115613c8957613c8961542e565b613c939190615361565b61012d54600160ff929092169190911b91506201518090613cbb9064ffffffffff164261533b565b64ffffffffff161115613cf95761012d805466ffffffffffffff8316600160281b026001600160601b031990911664ffffffffff4216171790555050565b61012d54600160281b9004811666ffffffffffffff16613d585761012d805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166001600160601b0319909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610c44565b600081613e255760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b6000613e3260028461514e565b9050670de0b6b3a7640000613e4982600019615324565b613e53919061514e565b841115613eae5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796670de0b6b3a764000087615305565b60606000613ed1836002615305565b613edc9060026150eb565b67ffffffffffffffff811115613ef457613ef461545a565b6040519080825280601f01601f191660200182016040528015613f1e576020820181803683370190505b509050600360fc1b81600081518110613f3957613f39615444565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f6857613f68615444565b60200101906001600160f81b031916908160001a9053506000613f8c846002615305565b613f979060016150eb565b90505b600181111561400f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613fcb57613fcb615444565b1a60f81b828281518110613fe157613fe1615444565b60200101906001600160f81b031916908160001a90535060049490941c93614008816153b0565b9050613f9a565b5083156118ca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c44565b6001600160a01b0381163b6140cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c44565b60008051602061549483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6141038361465b565b6000825111806141105750805b15610e4f57610c5f838361469b565b600054610100900460ff16613c715760405162461bcd60e51b8152600401610c4490614f29565b600054610100900460ff166141615760005460ff1615614165565b303b155b6141815760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff161580156141a3576000805461ffff19166101011790555b6141ab61411f565b6141b361478f565b8015610faf576000805461ff001916905550565b600054610100900460ff166141e25760005460ff16156141e6565b303b155b6142025760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015614224576000805461ffff19166101011790555b87516142389061012e9060208b0190614909565b5061012f879055676765c793fa10079d601b1b61013055610131869055610132859055610133849055610134839055600061013581905561013680546001600160a01b0319166001600160a01b03851617905561429590336147be565b612f3e6139a5565b6142a5614891565b838511156143005760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610c44565b614308614891565b6001600160a01b038716610120820181905260408083018890526020808401889052608084018790528151635342825360e01b815291516143a89361180e936117ff939192635342825392600480840193919291829003018186803b15801561437057600080fd5b505afa158015614384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190614ae6565b8160a00181815250508060a0015161443461442d896001600160a01b031663bf8e934d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b505afa158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190614ae6565b87906135f1565b61443e9190615324565b606082018190526144855760405162461bcd60e51b81526020600482015260116024820152705343522063616e2774206265207a65726f60781b6044820152606401610c44565b64ffffffffff4281166101408301819052908416610160830181905261454b916145409161180e916e0612d847b578e7643c28ac00000000916144c8919061533b565b64ffffffffff168b6001600160a01b0316639d90724d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561450857600080fd5b505afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190614ae6565b6060830151906135f1565b816101000181815250506145a9614594886001600160a01b031663d44499a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b8261010001518360a001516118a591906150eb565b60c0820181905261010082015160a083015188926145c6916150eb565b6145d091906150eb565b111561461e5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610c44565b60c081015161010082015160a08301516146389089615324565b6146429190615324565b61464c9190615324565b60e08201529695505050505050565b6146648161405e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6147035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c44565b600080846001600160a01b03168460405161471e9190614d04565b600060405180830381855af49150503d8060008114614759576040519150601f19603f3d011682016040523d82523d6000602084013e61475e565b606091505b509150915061478682826040518060600160405280602781526020016154f4602791396147c8565b95945050505050565b600054610100900460ff166147b65760405162461bcd60e51b8152600401610c4490614f29565b613c71614801565b610ece82826127ff565b606083156147d75750816118ca565b8251156147e75782518084602001fd5b8160405162461bcd60e51b8152600401610c449190614de6565b600054610100900460ff166148285760405162461bcd60e51b8152600401610c4490614f29565b60fb805460ff19169055565b82601e8101928215614862579160200282015b82811115614862578235825591602001919060010190614847565b5061486e92915061497d565b5090565b604051806103c00160405280601e906020820280368337509192915050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b828054614915906153c7565b90600052602060002090601f0160209004810192826149375760008555614862565b82601f1061495057805160ff1916838001178555614862565b82800160010185558215614862579182015b82811115614862578251825591602001919060010190614962565b5b8082111561486e576000815560010161497e565b600067ffffffffffffffff808411156149ad576149ad61545a565b604051601f8501601f19908116603f011681019082821181831017156149d5576149d561545a565b816040528093508581528686860111156149ee57600080fd5b858560208301376000602087830101525050509392505050565b8035600481900b8114612e2a57600080fd5b803564ffffffffff81168114612e2a57600080fd5b600060208284031215614a4157600080fd5b81356118ca81615470565b60008060408385031215614a5f57600080fd5b8235614a6a81615470565b9150602083013567ffffffffffffffff811115614a8657600080fd5b8301601f81018513614a9757600080fd5b614aa685823560208401614992565b9150509250929050565b600060208284031215614ac257600080fd5b81516118ca81615485565b600060208284031215614adf57600080fd5b5035919050565b600060208284031215614af857600080fd5b5051919050565b60008060408385031215614b1257600080fd5b823591506020830135614b2481615470565b809150509250929050565b600060208284031215614b4157600080fd5b81356001600160e01b0319811681146118ca57600080fd5b600060208284031215614b6b57600080fd5b81516118ca81615470565b600060208284031215614b8857600080fd5b6118ca82614a08565b6000806103e0808486031215614ba657600080fd5b614baf84614a08565b9250848185011115614bc057600080fd5b506020830190509250929050565b600080600080600080600060e0888a031215614be957600080fd5b873567ffffffffffffffff811115614c0057600080fd5b8801601f81018a13614c1157600080fd5b614c208a823560208401614992565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614c5481615470565b8091505092959891949750929550565b60008060008060808587031215614c7a57600080fd5b843593506020850135614c8c81615485565b925060408501359150614ca160608601614a1a565b905092959194509250565b600080600060608486031215614cc157600080fd5b8335925060208401359150614cd860408501614a1a565b90509250925092565b600060208284031215614cf357600080fd5b815160ff811681146118ca57600080fd5b60008251614d16818460208701615384565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614d58816017850160208801615384565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d89816028840160208801615384565b01602801949350505050565b6103c08101818360005b601e811015614dbe578151835260209283019290910190600101614d9f565b50505092915050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152614e05816040850160208701615384565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006101c082019050845182526020850151602083015260408501516040830152606085015160608301526080850151608083015260a085015160a083015260c085015160c083015260e085015160e083015261010080860151818401525061012080860151614fee828501826001600160a01b03169052565b50506101408581015164ffffffffff81168483015250506101608581015164ffffffffff81168483015250506001600160a01b0384166101808301526001600160601b0383166101a08301526116d2565b8254815260018301546020820152600283015460408201526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e0820152600883015461010082015260098301546001600160a01b0381166101208301526101a082019064ffffffffff60a082901c81166101408501526150db6101608501828460c81c1664ffffffffff169052565b5050826101808301529392505050565b600082198211156150fe576150fe615402565b500190565b600064ffffffffff80831681851680830382111561512357615123615402565b01949350505050565b60006001600160601b0380831681851680830382111561512357615123615402565b60008261515d5761515d615418565b500490565b600064ffffffffff8084168061517a5761517a615418565b92169190910492915050565b600181815b808511156151c15781600019048211156151a7576151a7615402565b808516156151b457918102915b93841c939080029061518b565b509250929050565b60006118ca60ff8416836000826151e257506001610a00565b816151ef57506000610a00565b8160018114615205576002811461520f5761522b565b6001915050610a00565b60ff84111561522057615220615402565b50506001821b610a00565b5060208310610133831016604e8410600b841016171561524e575081810a610a00565b6152588383615186565b806000190482111561526c5761526c615402565b029392505050565b60008160040b8360040b647fffffffff6000821360008413838304851182821616156152a2576152a2615402565b647fffffffff1960008512828116878305871216156152c3576152c3615402565b600087129250858205871284841616156152df576152df615402565b858505871281841616156152f5576152f5615402565b5050509290910295945050505050565b600081600019048311821515161561531f5761531f615402565b500290565b60008282101561533657615336615402565b500390565b600064ffffffffff8381169083168181101561535957615359615402565b039392505050565b600060ff821660ff84168082101561537b5761537b615402565b90039392505050565b60005b8381101561539f578181015183820152602001615387565b83811115610c5f5750506000910152565b6000816153bf576153bf615402565b506000190190565b600181811c908216806153db57607f821691505b602082108114156153fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610faf57600080fd5b8015158114610faf57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb25ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b9ebd85db62896abb9973c6233a37901307a79b9c92665e907ee2e2a4d3e5fdf64736f6c63430008060033",
1052
- "deployedBytecode": "0x6080604052600436106102e45760003560e01c80636f0dbe6f11610190578063ca996de3116100dc578063e42569d911610095578063f33323a41161006f578063f33323a41461092c578063f48d63ad1461094c578063f67b2bad14610979578063fbb812791461099b57600080fd5b8063e42569d9146108d0578063e5a6b10f146108f7578063e61735c01461090c57600080fd5b8063ca996de314610824578063d44499a81461083a578063d547741f14610850578063dab5d88d14610870578063deaa59df14610890578063e101a345146108b057600080fd5b80639cbbcd9211610149578063a5f8b2d611610123578063a5f8b2d614610785578063a9a24f27146107ba578063b9ea870a146107ee578063bf8e934d1461080e57600080fd5b80639cbbcd921461073a5780639d90724d1461075a578063a217fddf1461077057600080fd5b80636f0dbe6f14610678578063775ead48146106985780637ed5acfa146106b85780638456cb59146106e55780638bac3a24146106fa57806391d148541461071a57600080fd5b806338d52e0f1161024f5780634f1ef2861161020857806353428253116101e257806353428253146106125780635b494dd5146106285780635c975abb1461064a5780635d505fe71461066257600080fd5b80634f1ef286146105cb578063521eb273146105de57806352d1902d146105fd57600080fd5b806338d52e0f146104dd5780633f4ba83a1461051057806341ea6a0f14610525578063468a8c9f1461053b5780634a47a3e0146105765780634d15eb031461059857600080fd5b806324ea54f4116102a157806324ea54f4146103f45780632c7a69fe146104165780632f2ff15d1461045d57806336568abe1461047d5780633659cfe61461049d578063377e1cc9146104bd57600080fd5b806301ffc9a7146102e957806306fdde031461031e578063089a850414610340578063204d79231461036257806322875d63146103a4578063248a9ca3146103c4575b600080fd5b3480156102f557600080fd5b50610309610304366004614b2f565b6109cf565b60405190151581526020015b60405180910390f35b34801561032a57600080fd5b50610333610a06565b6040516103159190614de6565b34801561034c57600080fd5b5061036061035b366004614acd565b610a99565b005b34801561036e57600080fd5b506103967f288a15c4a15d470e4cd9cad2f113b91206b520c26dbd3dd74627f0c057baa19c81565b604051908152602001610315565b3480156103b057600080fd5b506103606103bf366004614acd565b610c65565b3480156103d057600080fd5b506103966103df366004614acd565b600090815260c9602052604090206001015490565b34801561040057600080fd5b5061039660008051602061553b83398151915281565b34801561042257600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610315565b34801561046957600080fd5b50610360610478366004614aff565b610e29565b34801561048957600080fd5b50610360610498366004614aff565b610e54565b3480156104a957600080fd5b506103606104b8366004614a2f565b610ed2565b3480156104c957600080fd5b506103606104d8366004614acd565b610fb2565b3480156104e957600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b34801561051c57600080fd5b5061036061116b565b34801561053157600080fd5b5061013454610396565b34801561054757600080fd5b5061012d546040805164ffffffffff83168152600160281b90920466ffffffffffffff16602083015201610315565b34801561058257600080fd5b5061039660008051602061551b83398151915281565b3480156105a457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610445565b6103606105d9366004614a4c565b611281565b3480156105ea57600080fd5b50610136546001600160a01b0316610445565b34801561060957600080fd5b5061039661134e565b34801561061e57600080fd5b5061013054610396565b34801561063457600080fd5b506103966000805160206154d483398151915281565b34801561065657600080fd5b5060fb5460ff16610309565b34801561066e57600080fd5b5061013354610396565b34801561068457600080fd5b50610360610693366004614bce565b611401565b3480156106a457600080fd5b506103966106b3366004614c64565b61149d565b3480156106c457600080fd5b506106cf6201518081565b60405164ffffffffff9091168152602001610315565b3480156106f157600080fd5b506103606116da565b34801561070657600080fd5b50610396610715366004614cac565b6117e2565b34801561072657600080fd5b50610309610735366004614aff565b6118d1565b34801561074657600080fd5b50610360610755366004614acd565b6118fc565b34801561076657600080fd5b5061013254610396565b34801561077c57600080fd5b50610396600081565b34801561079157600080fd5b506107a56107a0366004614c64565b611999565b60408051928352602083019190915201610315565b3480156107c657600080fd5b506103967f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad181565b3480156107fa57600080fd5b50610360610809366004614acd565b611a53565b34801561081a57600080fd5b5061012f54610396565b34801561083057600080fd5b5061013554610396565b34801561084657600080fd5b5061013154610396565b34801561085c57600080fd5b5061036061086b366004614aff565b611c0e565b34801561087c57600080fd5b5061036061088b366004614acd565b611c34565b34801561089c57600080fd5b506103606108ab366004614a2f565b611dfb565b3480156108bc57600080fd5b506103606108cb366004614b91565b611e53565b3480156108dc57600080fd5b506108e5601e81565b60405160ff9091168152602001610315565b34801561090357600080fd5b50610445611ec3565b34801561091857600080fd5b50610360610927366004614acd565b611f5b565b34801561093857600080fd5b50610360610947366004614acd565b612120565b34801561095857600080fd5b5061096c610967366004614b76565b6124dc565b6040516103159190614d95565b34801561098557600080fd5b506103966000805160206154b483398151915281565b3480156109a757600080fd5b506103967fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a81565b60006001600160e01b03198216637965db0b60e01b1480610a0057506301ffc9a760e01b6001600160e01b03198316145b92915050565b606061012e8054610a16906153c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610a42906153c7565b8015610a8f5780601f10610a6457610100808354040283529160200191610a8f565b820191906000526020600020905b815481529060010190602001808311610a7257829003601f168201915b5050505050905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1057600080fd5b505afa158015610b24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b489190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610b7793929190614dc7565b60006040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506000610bc060008051602061551b83398151915261252d565b159050801580610be45750610be461013154856af8277896582678ac000000612640565b610c4d5760405162461bcd60e51b815260206004820152602f60248201527f547765616b2065786365656465643a20656e7375726f46656520747765616b7360448201526e206f6e6c7920757020746f2033302560881b60648201526084015b60405180910390fd5b610131849055610c5f600a85836126cb565b50505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d149190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610d4393929190614dc7565b60006040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506000610d8c60008051602061551b83398151915261252d565b159050801580610dad5750610dad6101335485670429d069189e000061272c565b610e175760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206d6178536372506572506f6c69637920604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610133849055610c5f600b85836126cb565b600082815260c96020526040902060010154610e45813361279b565b610e4f83836127ff565b505050565b6001600160a01b0381163314610ec45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c44565b610ece8282612885565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f1b5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f64600080516020615494833981519152546001600160a01b031690565b6001600160a01b031614610f8a5760405162461bcd60e51b8152600401610c4490614e65565b610f93816128ec565b60408051600080825260208201909252610faf918391906129f6565b50565b60fb5460ff1615610fd55760405162461bcd60e51b8152600401610c4490614eb1565b60008181526101376020526040812090610fed612b70565b600b83015490915060ff161580611008575081600a01548111155b61106a5760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203e60448201526c2074726967676572507269636560981b6064820152608401610c44565b600b82015460ff1680611081575081600a01548110155b6110e35760405162461bcd60e51b815260206004820152602d60248201527f436f6e646974696f6e206e6f74206d65742043757272656e745072696365203c60448201526c2074726967676572507269636560981b6064820152608401610c44565b6001820154604051639e556b2b60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691639e556b2b9161113491869160040161503f565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b50505050505050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111e257600080fd5b505afa1580156111f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161124993929190614dc7565b60006040518083038186803b15801561126157600080fd5b505afa158015611275573d6000803e3d6000fd5b50505050610ece612e2f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156112ca5760405162461bcd60e51b8152600401610c4490614e19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611313600080516020615494833981519152546001600160a01b031690565b6001600160a01b0316146113395760405162461bcd60e51b8152600401610c4490614e65565b611342826128ec565b610ece828260016129f6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ee5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c44565b5060008051602061549483398151915290565b600054610100900460ff1661141c5760005460ff1615611420565b303b155b61143c5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff1615801561145e576000805461ffff19166101011790555b61146d88888888888888612ec2565b61013980546001600160601b03191660011790558015611493576000805461ff00191690555b5050505050505050565b60008060006114ae87878787611999565b915091506000821161151b5760405162461bcd60e51b815260206004820152603060248201527f456974686572206475726174696f6e206f722070657263656e74616765206a7560448201526f1b5c081b9bdd081cdd5c1c1bdc9d195960821b6064820152608401610c44565b61013954600090611538906001600160601b03163060601b6150eb565b6000818152610137602052604090206101395491925090339061156d908990879087908b9086906001600160601b0316612f59565b80518355602081015160018085019190915560408201516002850155606082015160038501556080820151600485015560a0820151600585015560c0820151600685015560e082015160078501556101008201516008850155610120820151600985018054610140850151610160909501516001600160a01b039093166001600160c81b031990911617600160a01b64ffffffffff958616021764ffffffffff60c81b1916600160c81b949092169390930217909155610139805460009061163f9084906001600160601b031661512c565b82546101009290920a6001600160601b0381810219909316919092169190910217905550600a82018a9055600b8201805460ff19168a151590811790915560408051858152602081018d9052908101919091526001600160a01b038216907fac60a84d926e5f83b9718922af7ef1285ea8a8516516c4981ed3297d2e89ae0b9060600160405180910390a2509093505050505b949350505050565b60008051602061553b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561174257600080fd5b505afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190614b59565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b1580156117c257600080fd5b505afa1580156117d6573d6000803e3d6000fd5b50505050610faf6133c4565b60008061181361180e6117ff6117f86101305490565b879061341c565b611808886134f3565b9061341c565b613571565b905060008161182f61182861180e61012f5490565b88906135f1565b6118399190615324565b9050600061187961180e6e0612d847b578e7643c28ac000000006118644264ffffffffff8a16615324565b610132545b6118739190615305565b906136a4565b9050600061188783836135f1565b905060006118ab61189b61180e6101315490565b6118a584886150eb565b906135f1565b9050816118b882876150eb565b6118c291906150eb565b955050505050505b9392505050565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461197e5760405162461bcd60e51b815260206004820152602160248201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6044820152601b60fa1b6064820152608401610c44565b8061013560008282546119919190615324565b909155505050565b60008060006119a6612b70565b90508580156119b457508681115b806119c75750851580156119c757508681105b611a135760405162461bcd60e51b815260206004820152601e60248201527f507269636520616c726561647920617420747269676765722076616c756500006044820152606401610c44565b611a278188611a22428861533b565b6137aa565b915081611a3b576000809250925050611a4a565b611a468583866117e2565b9250505b94509492505050565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b029190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611b3193929190614dc7565b60006040518083038186803b158015611b4957600080fd5b505afa158015611b5d573d6000803e3d6000fd5b505050506000611b7a60008051602061551b83398151915261252d565b159050801580611b9e5750611b9e61013054856a52b7d2dcc80cd2e4000000612640565b611bfc5760405162461bcd60e51b815260206004820152602960248201527f547765616b2065786365656465643a206d6f6320747765616b73206f6e6c7920604482015268757020746f2031302560b81b6064820152608401610c44565b610130849055610c5f600885836126cb565b600082815260c96020526040902060010154611c2a813361279b565b610e4f8383612885565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cab57600080fd5b505afa158015611cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce39190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611d1293929190614dc7565b60006040518083038186803b158015611d2a57600080fd5b505afa158015611d3e573d6000803e3d6000fd5b505050506000611d5b60008051602061551b83398151915261252d565b159050801580611d7f5750611d7f61013254856af8277896582678ac000000612640565b611de95760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20736372496e7465726573745261746520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610c44565b610132849055610c5f600985836126cb565b7f0df0a8869cf58168a14cd7ac426ff1b8c6ff5d5c800c6f44803f3431dcb3bad1611e26813361279b565b61013680546001600160a01b0319166001600160a01b038416908117909155610ece90600f9060006126cb565b7fc6823861ee2bb2198ce6b1fd6faf4c8f44f745bc804aca4a762f67e0d507fd8a611e7e813361279b565b60fb5460ff1615611ea15760405162461bcd60e51b8152600401610c4490614eb1565b600483810b900b600090815261013860205260409020610c5f9083601e614834565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f1e57600080fd5b505afa158015611f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f569190614b59565b905090565b60008051602061551b8339815191526000805160206154d48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611fd257600080fd5b505afa158015611fe6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061200a9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161203993929190614dc7565b60006040518083038186803b15801561205157600080fd5b505afa158015612065573d6000803e3d6000fd5b50505050600061208260008051602061551b83398151915261252d565b1590508015806120a657506120a661012f54856a52b7d2dcc80cd2e4000000612640565b61210e5760405162461bcd60e51b815260206004820152603360248201527f547765616b2065786365656465643a2073637250657263656e7461676520747760448201527265616b73206f6e6c7920757020746f2031302560681b6064820152608401610c44565b61012f849055610c5f600785836126cb565b6000805160206154b483398151915260008051602061551b8339815191526000805160206154d48339815191526121568361252d565b61224b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b357600080fd5b505afa1580156121c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121eb9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161221a93929190614dc7565b60006040518083038186803b15801561223257600080fd5b505afa158015612246573d6000803e3d6000fd5b505050505b600061226460008051602061551b83398151915261252d565b15801561228557506122836000805160206154b483398151915261252d565b155b90508015806122a557506122a5610134548667016345785d8a000061272c565b6123085760405162461bcd60e51b815260206004820152602e60248201527f547765616b2065786365656465643a207363724c696d697420747765616b732060448201526d6f6e6c7920757020746f2031302560901b6064820152608401610c44565b610134548511158061232c575061232c6000805160206154b483398151915261252d565b806123d25750846123d067016345785d8a00007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b77ddfea6040518163ffffffff1660e01b815260040160206040518083038186803b15801561239857600080fd5b505afa1580156123ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a59190614ae6565b115b6124595760405162461bcd60e51b815260206004820152604c60248201527f547765616b2065786365656465643a20496e6372656173652c203e3d3130252060448201527f6f662074686520746f74616c206c69717569646974792c20726571756972657360648201526b204c4556454c315f524f4c4560a01b608482015260a401610c44565b610135548510156124c35760405162461bcd60e51b815260206004820152602e60248201527f43616e27742073657420534352206c657373207468616e2063757272656e742060448201526d29a1a91030b63637b1b0ba34b7b760911b6064820152608401610c44565b6101348590556124d5600c86836126cb565b5050505050565b6124e4614872565b600482810b900b600090815261013860205260409081902081516103c081019283905291601e9082845b81548152602001906001019080831161250e5750505050509050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561258857600080fd5b505afa15801561259c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c09190614b59565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b15801561260857600080fd5b505afa15801561261c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a009190614ab0565b600082841415612652575060016118ca565b8361266c5750676765c793fa10079d601b1b8110156118ca565b82612679575060006118ca565b828410156126ab5781676765c793fa10079d601b1b61269885876136a4565b6126a29190615324565b111590506118ca565b816126b684866136a4565b6126a290676765c793fa10079d601b1b615324565b6126d36139a5565b80156126e2576126e283613c73565b82601e8111156126f4576126f461542e565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008284141561273e575060016118ca565b836127555750670de0b6b3a76400008110156118ca565b82612762575060006118ca565b8284101561277e5781670de0b6b3a76400006126988587613dd6565b816127898486613dd6565b6126a290670de0b6b3a7640000615324565b6127a582826118d1565b610ece576127bd816001600160a01b03166014613ec2565b6127c8836020613ec2565b6040516020016127d9929190614d20565b60408051601f198184030181529082905262461bcd60e51b8252610c4491600401614de6565b61280982826118d1565b610ece57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556128413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61288f82826118d1565b15610ece57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061553b8339815191526000805160206154b48339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561296357600080fd5b505afa158015612977573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061299b9190614b59565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016129ca93929190614dc7565b60006040518083038186803b1580156129e257600080fd5b505afa158015611162573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612a2957610e4f8361405e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612a6257600080fd5b505afa925050508015612a92575060408051601f3d908101601f19168201909252612a8f91810190614ae6565b60015b612af55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c44565b6000805160206154948339815191528114612b645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c44565b50610e4f8383836140fa565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bcc57600080fd5b505afa158015612be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c049190614b59565b6001600160a01b031663d2f7265a6040518163ffffffff1660e01b815260040160206040518083038186803b158015612c3c57600080fd5b505afa158015612c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c749190614b59565b6001600160a01b031663248391ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612d1d57600080fd5b505afa158015612d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d559190614ce1565b612d6090600a6151c9565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152604482015260640160206040518083038186803b158015612dad57600080fd5b505afa158015612dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612de59190614ae6565b905080612e2a5760405162461bcd60e51b81526020600482015260136024820152725072696365206e6f7420617661696c61626c6560681b6044820152606401610c44565b919050565b60fb5460ff16612e785760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610c44565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16612edd5760005460ff1615612ee1565b303b155b612efd5760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015612f1f576000805461ffff19166101011790555b612f2761411f565b612f2f614146565b612f3e888888888888886141c7565b8015611493576000805461ff00191690555050505050505050565b612f61614891565b60fb5460ff1615612f845760405162461bcd60e51b8152600401610c4490614eb1565b868610612fd35760405162461bcd60e51b815260206004820181905260248201527f5072656d69756d206d757374206265206c657373207468616e207061796f75746044820152606401610c44565b4264ffffffffff168464ffffffffff16116130305760405162461bcd60e51b815260206004820181905260248201527f45787069726174696f6e206d75737420626520696e20746865206675747572656044820152606401610c44565b6001600160a01b0383166130865760405162461bcd60e51b815260206004820152601e60248201527f437573746f6d65722063616e2774206265207a65726f206164647265737300006044820152606401610c44565b857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156130e057600080fd5b505afa1580156130f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131189190614b59565b604051636eb1769f60e11b81526001600160a01b0386811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e9060440160206040518083038186803b15801561318357600080fd5b505afa158015613197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bb9190614ae6565b101561321f5760405162461bcd60e51b815260206004820152602d60248201527f596f75206d75737420616c6c6f7720454e5355524f20746f207472616e73666560448201526c7220746865207072656d69756d60981b6064820152608401610c44565b600061322e30888a898961429d565b9050610133548160600151111561329f5760405162461bcd60e51b815260206004820152602f60248201527f5269736b4d6f64756c653a20534352206973206d6f7265207468616e206d617860448201526e696d756d2070657220706f6c69637960881b6064820152608401610c44565b806060015161013560008282546132b691906150eb565b9091555050610134546101355411156133115760405162461bcd60e51b815260206004820152601e60248201527f5269736b4d6f64756c653a20534352206c696d697420657863656564656400006044820152606401610c44565b604051630cb8251d60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906319704a3a9061336490859089908990600401614f74565b602060405180830381600087803b15801561337e57600080fd5b505af1158015613392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b69190614ae6565b825250979650505050505050565b60fb5460ff16156133e75760405162461bcd60e51b8152600401610c4490614eb1565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612ea53390565b6000821580613429575081155b1561343657506000610a00565b8161344d6002676765c793fa10079d601b1b61514e565b61345990600019615324565b613463919061514e565b8311156134be5760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b676765c793fa10079d601b1b6134d560028261514e565b6134df8486615305565b6134e991906150eb565b6118ca919061514e565b600080613504633b9aca0084615305565b905082613515633b9aca008361514e565b14610a005760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b6064820152608401610c44565b6000806135836002633b9aca0061514e565b9050600061359184836150eb565b9050818110156135e35760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f776044820152606401610c44565b6116d2633b9aca008261514e565b60008215806135fe575081155b1561360b57506000610a00565b8161361f6002670de0b6b3a764000061514e565b61362b90600019615324565b613635919061514e565b8311156136905760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b670de0b6b3a76400006134d560028261514e565b6000816136f35760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b600061370060028461514e565b9050676765c793fa10079d601b1b61371a82600019615324565b613724919061514e565b84111561377f5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796676765c793fa10079d601b1b87615305565b6137a091906150eb565b6116d2919061514e565b60008061013860008587116137c1576000196137c4565b60015b610e106137d387610708615103565b6137dd9190615162565b6137e79190615274565b60040b60040b815260200190815260200160002090506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561385957600080fd5b505afa15801561386d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138919190614ce1565b61389c906012615361565b6138a790600a6151c9565b9050858711156138e7576138ce6138be8289615305565b6138c88389615305565b90613dd6565b6138e090670de0b6b3a7640000615324565b9150613914565b670de0b6b3a76400006139076138fd838a615305565b6138c8848a615305565b6139119190615324565b91505b60007f000000000000000000000000000000000000000000000000000000000000000061394260028261514e565b61394c90856150eb565b613956919061514e565b9050601e60ff82161061399057836139706001601e615361565b60ff16601e811061398357613983615444565b01549450505050506118ca565b838160ff16601e811061398357613983615444565b676765c793fa10079d601b1b61012f54111580156139c65750600061012f54115b613a205760405162461bcd60e51b815260206004820152602560248201527f56616c69646174696f6e3a2073637250657263656e74616765206d757374206260448201526465203c3d3160d81b6064820152608401610c44565b613a36676765c793fa10079d601b1b6002615305565b6101305411158015613a605750613a596002676765c793fa10079d601b1b61514e565b6101305410155b613aac5760405162461bcd60e51b815260206004820181905260248201527f56616c69646174696f6e3a206d6f63206d757374206265205b302e352c20325d6044820152606401610c44565b676765c793fa10079d601b1b610131541115613b155760405162461bcd60e51b815260206004820152602260248201527f56616c69646174696f6e3a20656e7375726f466565206d757374206265203c3d604482015261203160f01b6064820152608401610c44565b676765c793fa10079d601b1b610132541115613b8b5760405162461bcd60e51b815260206004820152602f60248201527f56616c69646174696f6e3a20736372496e74657265737452617465206d75737460448201526e206265203c3d20312028313030252960881b6064820152608401610c44565b61013554610134541015613c075760405162461bcd60e51b815260206004820152603760248201527f56616c69646174696f6e3a207363724c696d69742063616e2774206265206c6560448201527f7373207468616e2061637475616c20746f74616c5363720000000000000000006064820152608401610c44565b610136546001600160a01b0316613c715760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a2057616c6c65742063616e2774206265207a65726f604482015267206164647265737360c01b6064820152608401610c44565b565b6000600182601e811115613c8957613c8961542e565b613c939190615361565b61012d54600160ff929092169190911b91506201518090613cbb9064ffffffffff164261533b565b64ffffffffff161115613cf95761012d805466ffffffffffffff8316600160281b026001600160601b031990911664ffffffffff4216171790555050565b61012d54600160281b9004811666ffffffffffffff16613d585761012d805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166001600160601b0319909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610c44565b600081613e255760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610c44565b6000613e3260028461514e565b9050670de0b6b3a7640000613e4982600019615324565b613e53919061514e565b841115613eae5760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610c44565b8281613796670de0b6b3a764000087615305565b60606000613ed1836002615305565b613edc9060026150eb565b67ffffffffffffffff811115613ef457613ef461545a565b6040519080825280601f01601f191660200182016040528015613f1e576020820181803683370190505b509050600360fc1b81600081518110613f3957613f39615444565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613f6857613f68615444565b60200101906001600160f81b031916908160001a9053506000613f8c846002615305565b613f979060016150eb565b90505b600181111561400f576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613fcb57613fcb615444565b1a60f81b828281518110613fe157613fe1615444565b60200101906001600160f81b031916908160001a90535060049490941c93614008816153b0565b9050613f9a565b5083156118ca5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c44565b6001600160a01b0381163b6140cb5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c44565b60008051602061549483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6141038361465b565b6000825111806141105750805b15610e4f57610c5f838361469b565b600054610100900460ff16613c715760405162461bcd60e51b8152600401610c4490614f29565b600054610100900460ff166141615760005460ff1615614165565b303b155b6141815760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff161580156141a3576000805461ffff19166101011790555b6141ab61411f565b6141b361478f565b8015610faf576000805461ff001916905550565b600054610100900460ff166141e25760005460ff16156141e6565b303b155b6142025760405162461bcd60e51b8152600401610c4490614edb565b600054610100900460ff16158015614224576000805461ffff19166101011790555b87516142389061012e9060208b0190614909565b5061012f879055676765c793fa10079d601b1b61013055610131869055610132859055610133849055610134839055600061013581905561013680546001600160a01b0319166001600160a01b03851617905561429590336147be565b612f3e6139a5565b6142a5614891565b838511156143005760405162461bcd60e51b815260206004820152602260248201527f5072656d69756d2063616e6e6f74206265206d6f7265207468616e207061796f6044820152611d5d60f21b6064820152608401610c44565b614308614891565b6001600160a01b038716610120820181905260408083018890526020808401889052608084018790528151635342825360e01b815291516143a89361180e936117ff939192635342825392600480840193919291829003018186803b15801561437057600080fd5b505afa158015614384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f89190614ae6565b8160a00181815250508060a0015161443461442d896001600160a01b031663bf8e934d6040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b505afa158015614409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e9190614ae6565b87906135f1565b61443e9190615324565b606082018190526144855760405162461bcd60e51b81526020600482015260116024820152705343522063616e2774206265207a65726f60781b6044820152606401610c44565b64ffffffffff4281166101408301819052908416610160830181905261454b916145409161180e916e0612d847b578e7643c28ac00000000916144c8919061533b565b64ffffffffff168b6001600160a01b0316639d90724d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561450857600080fd5b505afa15801561451c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118699190614ae6565b6060830151906135f1565b816101000181815250506145a9614594886001600160a01b031663d44499a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156143f557600080fd5b8261010001518360a001516118a591906150eb565b60c0820181905261010082015160a083015188926145c6916150eb565b6145d091906150eb565b111561461e5760405162461bcd60e51b815260206004820152601960248201527f5072656d69756d206c657373207468616e206d696e696d756d000000000000006044820152606401610c44565b60c081015161010082015160a08301516146389089615324565b6146429190615324565b61464c9190615324565b60e08201529695505050505050565b6146648161405e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6147035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610c44565b600080846001600160a01b03168460405161471e9190614d04565b600060405180830381855af49150503d8060008114614759576040519150601f19603f3d011682016040523d82523d6000602084013e61475e565b606091505b509150915061478682826040518060600160405280602781526020016154f4602791396147c8565b95945050505050565b600054610100900460ff166147b65760405162461bcd60e51b8152600401610c4490614f29565b613c71614801565b610ece82826127ff565b606083156147d75750816118ca565b8251156147e75782518084602001fd5b8160405162461bcd60e51b8152600401610c449190614de6565b600054610100900460ff166148285760405162461bcd60e51b8152600401610c4490614f29565b60fb805460ff19169055565b82601e8101928215614862579160200282015b82811115614862578235825591602001919060010190614847565b5061486e92915061497d565b5090565b604051806103c00160405280601e906020820280368337509192915050565b60405180610180016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600064ffffffffff168152602001600064ffffffffff1681525090565b828054614915906153c7565b90600052602060002090601f0160209004810192826149375760008555614862565b82601f1061495057805160ff1916838001178555614862565b82800160010185558215614862579182015b82811115614862578251825591602001919060010190614962565b5b8082111561486e576000815560010161497e565b600067ffffffffffffffff808411156149ad576149ad61545a565b604051601f8501601f19908116603f011681019082821181831017156149d5576149d561545a565b816040528093508581528686860111156149ee57600080fd5b858560208301376000602087830101525050509392505050565b8035600481900b8114612e2a57600080fd5b803564ffffffffff81168114612e2a57600080fd5b600060208284031215614a4157600080fd5b81356118ca81615470565b60008060408385031215614a5f57600080fd5b8235614a6a81615470565b9150602083013567ffffffffffffffff811115614a8657600080fd5b8301601f81018513614a9757600080fd5b614aa685823560208401614992565b9150509250929050565b600060208284031215614ac257600080fd5b81516118ca81615485565b600060208284031215614adf57600080fd5b5035919050565b600060208284031215614af857600080fd5b5051919050565b60008060408385031215614b1257600080fd5b823591506020830135614b2481615470565b809150509250929050565b600060208284031215614b4157600080fd5b81356001600160e01b0319811681146118ca57600080fd5b600060208284031215614b6b57600080fd5b81516118ca81615470565b600060208284031215614b8857600080fd5b6118ca82614a08565b6000806103e0808486031215614ba657600080fd5b614baf84614a08565b9250848185011115614bc057600080fd5b506020830190509250929050565b600080600080600080600060e0888a031215614be957600080fd5b873567ffffffffffffffff811115614c0057600080fd5b8801601f81018a13614c1157600080fd5b614c208a823560208401614992565b9750506020880135955060408801359450606088013593506080880135925060a0880135915060c0880135614c5481615470565b8091505092959891949750929550565b60008060008060808587031215614c7a57600080fd5b843593506020850135614c8c81615485565b925060408501359150614ca160608601614a1a565b905092959194509250565b600080600060608486031215614cc157600080fd5b8335925060208401359150614cd860408501614a1a565b90509250925092565b600060208284031215614cf357600080fd5b815160ff811681146118ca57600080fd5b60008251614d16818460208701615384565b9190910192915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614d58816017850160208801615384565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614d89816028840160208801615384565b01602801949350505050565b6103c08101818360005b601e811015614dbe578151835260209283019290910190600101614d9f565b50505092915050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152614e05816040850160208701615384565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006101c082019050845182526020850151602083015260408501516040830152606085015160608301526080850151608083015260a085015160a083015260c085015160c083015260e085015160e083015261010080860151818401525061012080860151614fee828501826001600160a01b03169052565b50506101408581015164ffffffffff81168483015250506101608581015164ffffffffff81168483015250506001600160a01b0384166101808301526001600160601b0383166101a08301526116d2565b8254815260018301546020820152600283015460408201526003830154606082015260048301546080820152600583015460a0820152600683015460c0820152600783015460e0820152600883015461010082015260098301546001600160a01b0381166101208301526101a082019064ffffffffff60a082901c81166101408501526150db6101608501828460c81c1664ffffffffff169052565b5050826101808301529392505050565b600082198211156150fe576150fe615402565b500190565b600064ffffffffff80831681851680830382111561512357615123615402565b01949350505050565b60006001600160601b0380831681851680830382111561512357615123615402565b60008261515d5761515d615418565b500490565b600064ffffffffff8084168061517a5761517a615418565b92169190910492915050565b600181815b808511156151c15781600019048211156151a7576151a7615402565b808516156151b457918102915b93841c939080029061518b565b509250929050565b60006118ca60ff8416836000826151e257506001610a00565b816151ef57506000610a00565b8160018114615205576002811461520f5761522b565b6001915050610a00565b60ff84111561522057615220615402565b50506001821b610a00565b5060208310610133831016604e8410600b841016171561524e575081810a610a00565b6152588383615186565b806000190482111561526c5761526c615402565b029392505050565b60008160040b8360040b647fffffffff6000821360008413838304851182821616156152a2576152a2615402565b647fffffffff1960008512828116878305871216156152c3576152c3615402565b600087129250858205871284841616156152df576152df615402565b858505871281841616156152f5576152f5615402565b5050509290910295945050505050565b600081600019048311821515161561531f5761531f615402565b500290565b60008282101561533657615336615402565b500390565b600064ffffffffff8381169083168181101561535957615359615402565b039392505050565b600060ff821660ff84168082101561537b5761537b615402565b90039392505050565b60005b8381101561539f578181015183820152602001615387565b83811115610c5f5750506000910152565b6000816153bf576153bf615402565b506000190190565b600181811c908216806153db57607f821691505b602082108114156153fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610faf57600080fd5b8015158114610faf57600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb25ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220b9ebd85db62896abb9973c6233a37901307a79b9c92665e907ee2e2a4d3e5fdf64736f6c63430008060033",
1053
- "linkReferences": {},
1054
- "deployedLinkReferences": {}
1055
- }