@web3dotorg/evm-slc-core-sdk 0.3.2

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 (58) hide show
  1. package/common.ts +131 -0
  2. package/constants.ts +34 -0
  3. package/contracts/governance/ExecutorsRegistry.ts +1249 -0
  4. package/contracts/governance/Governance.ts +1740 -0
  5. package/contracts/governance/NeutralsRegistry.ts +1393 -0
  6. package/contracts/governance/ParameterRegistry.ts +832 -0
  7. package/contracts/governance/index.ts +7 -0
  8. package/contracts/index.ts +15 -0
  9. package/contracts/interfaces/IExecutorsRegistry.ts +601 -0
  10. package/contracts/interfaces/IGovernance.ts +215 -0
  11. package/contracts/interfaces/INeutralsRegistry.ts +624 -0
  12. package/contracts/interfaces/IQParameters.ts +109 -0
  13. package/contracts/interfaces/ISLCCore.ts +289 -0
  14. package/contracts/interfaces/ISLCCoreFactory.ts +217 -0
  15. package/contracts/interfaces/IWrappedToken.ts +272 -0
  16. package/contracts/interfaces/index.ts +10 -0
  17. package/contracts/libs/Errors.ts +71 -0
  18. package/contracts/libs/NeutralsSelection.ts +71 -0
  19. package/contracts/libs/index.ts +5 -0
  20. package/contracts/mocks/MockGovernance.ts +389 -0
  21. package/contracts/mocks/MockNeutralsRegistry.ts +791 -0
  22. package/contracts/mocks/SimpleContract.ts +110 -0
  23. package/contracts/mocks/WrappedToken.ts +334 -0
  24. package/contracts/mocks/index.ts +7 -0
  25. package/contracts/slc-core/SLCCore.ts +397 -0
  26. package/contracts/slc-core/SLCCoreFactory.ts +559 -0
  27. package/contracts/slc-core/index.ts +5 -0
  28. package/contracts/token/Token.ts +399 -0
  29. package/contracts/token/index.ts +4 -0
  30. package/factories/contracts/governance/ExecutorsRegistry__factory.ts +1240 -0
  31. package/factories/contracts/governance/Governance__factory.ts +2328 -0
  32. package/factories/contracts/governance/NeutralsRegistry__factory.ts +1491 -0
  33. package/factories/contracts/governance/ParameterRegistry__factory.ts +834 -0
  34. package/factories/contracts/governance/index.ts +7 -0
  35. package/factories/contracts/index.ts +9 -0
  36. package/factories/contracts/interfaces/IExecutorsRegistry__factory.ts +428 -0
  37. package/factories/contracts/interfaces/IGovernance__factory.ts +153 -0
  38. package/factories/contracts/interfaces/INeutralsRegistry__factory.ts +527 -0
  39. package/factories/contracts/interfaces/IQParameters__factory.ts +101 -0
  40. package/factories/contracts/interfaces/ISLCCoreFactory__factory.ts +197 -0
  41. package/factories/contracts/interfaces/ISLCCore__factory.ts +227 -0
  42. package/factories/contracts/interfaces/IWrappedToken__factory.ts +221 -0
  43. package/factories/contracts/interfaces/index.ts +10 -0
  44. package/factories/contracts/libs/Errors__factory.ts +205 -0
  45. package/factories/contracts/libs/NeutralsSelection__factory.ts +103 -0
  46. package/factories/contracts/libs/index.ts +5 -0
  47. package/factories/contracts/mocks/MockGovernance__factory.ts +353 -0
  48. package/factories/contracts/mocks/MockNeutralsRegistry__factory.ts +730 -0
  49. package/factories/contracts/mocks/SimpleContract__factory.ts +110 -0
  50. package/factories/contracts/mocks/WrappedToken__factory.ts +433 -0
  51. package/factories/contracts/mocks/index.ts +7 -0
  52. package/factories/contracts/slc-core/SLCCoreFactory__factory.ts +568 -0
  53. package/factories/contracts/slc-core/SLCCore__factory.ts +373 -0
  54. package/factories/contracts/slc-core/index.ts +5 -0
  55. package/factories/contracts/token/Token__factory.ts +505 -0
  56. package/factories/contracts/token/index.ts +4 -0
  57. package/index.ts +38 -0
  58. package/package.json +25 -0
@@ -0,0 +1,1491 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../common";
12
+ import type {
13
+ NeutralsRegistry,
14
+ NeutralsRegistryInterface,
15
+ } from "../../../contracts/governance/NeutralsRegistry";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ internalType: "address",
22
+ name: "target",
23
+ type: "address",
24
+ },
25
+ ],
26
+ name: "AddressEmptyCode",
27
+ type: "error",
28
+ },
29
+ {
30
+ inputs: [
31
+ {
32
+ internalType: "uint256",
33
+ name: "addressesCount",
34
+ type: "uint256",
35
+ },
36
+ {
37
+ internalType: "uint256",
38
+ name: "weightsCount",
39
+ type: "uint256",
40
+ },
41
+ ],
42
+ name: "CountOfAddressesMustBeTheSameAsWeights",
43
+ type: "error",
44
+ },
45
+ {
46
+ inputs: [
47
+ {
48
+ internalType: "address",
49
+ name: "implementation",
50
+ type: "address",
51
+ },
52
+ ],
53
+ name: "ERC1967InvalidImplementation",
54
+ type: "error",
55
+ },
56
+ {
57
+ inputs: [],
58
+ name: "ERC1967NonPayable",
59
+ type: "error",
60
+ },
61
+ {
62
+ inputs: [],
63
+ name: "FailedCall",
64
+ type: "error",
65
+ },
66
+ {
67
+ inputs: [
68
+ {
69
+ internalType: "address",
70
+ name: "delegator",
71
+ type: "address",
72
+ },
73
+ {
74
+ internalType: "address",
75
+ name: "neutral",
76
+ type: "address",
77
+ },
78
+ {
79
+ internalType: "uint256",
80
+ name: "requested",
81
+ type: "uint256",
82
+ },
83
+ {
84
+ internalType: "uint256",
85
+ name: "availible",
86
+ type: "uint256",
87
+ },
88
+ ],
89
+ name: "InsufficientDelegationAmount",
90
+ type: "error",
91
+ },
92
+ {
93
+ inputs: [
94
+ {
95
+ internalType: "address",
96
+ name: "subject",
97
+ type: "address",
98
+ },
99
+ {
100
+ internalType: "uint256",
101
+ name: "requestedAmount",
102
+ type: "uint256",
103
+ },
104
+ {
105
+ internalType: "uint256",
106
+ name: "availibleAmount",
107
+ type: "uint256",
108
+ },
109
+ ],
110
+ name: "InsufficientStakeAmount",
111
+ type: "error",
112
+ },
113
+ {
114
+ inputs: [
115
+ {
116
+ internalType: "uint256",
117
+ name: "amount",
118
+ type: "uint256",
119
+ },
120
+ ],
121
+ name: "InvalidDelegationAmount",
122
+ type: "error",
123
+ },
124
+ {
125
+ inputs: [],
126
+ name: "InvalidERC20Token",
127
+ type: "error",
128
+ },
129
+ {
130
+ inputs: [],
131
+ name: "InvalidGovernance",
132
+ type: "error",
133
+ },
134
+ {
135
+ inputs: [],
136
+ name: "InvalidInitialization",
137
+ type: "error",
138
+ },
139
+ {
140
+ inputs: [],
141
+ name: "InvalidParametersRegistry",
142
+ type: "error",
143
+ },
144
+ {
145
+ inputs: [
146
+ {
147
+ internalType: "uint256",
148
+ name: "amount_",
149
+ type: "uint256",
150
+ },
151
+ ],
152
+ name: "InvalidStakeAmount",
153
+ type: "error",
154
+ },
155
+ {
156
+ inputs: [
157
+ {
158
+ internalType: "uint256",
159
+ name: "k",
160
+ type: "uint256",
161
+ },
162
+ {
163
+ internalType: "uint256",
164
+ name: "addressesLength",
165
+ type: "uint256",
166
+ },
167
+ ],
168
+ name: "KmustBeInRangeOfAddresesLength",
169
+ type: "error",
170
+ },
171
+ {
172
+ inputs: [
173
+ {
174
+ internalType: "uint256",
175
+ name: "requestedDelegation",
176
+ type: "uint256",
177
+ },
178
+ {
179
+ internalType: "uint256",
180
+ name: "currentDelegatedStake",
181
+ type: "uint256",
182
+ },
183
+ {
184
+ internalType: "uint256",
185
+ name: "maxPossibleDelegatedStake",
186
+ type: "uint256",
187
+ },
188
+ ],
189
+ name: "MaxDelegationAmplificationConstraintViolated",
190
+ type: "error",
191
+ },
192
+ {
193
+ inputs: [
194
+ {
195
+ internalType: "address",
196
+ name: "neutral",
197
+ type: "address",
198
+ },
199
+ ],
200
+ name: "NeutralAlreadyPaused",
201
+ type: "error",
202
+ },
203
+ {
204
+ inputs: [
205
+ {
206
+ internalType: "address",
207
+ name: "subject",
208
+ type: "address",
209
+ },
210
+ ],
211
+ name: "NeutralCannotDelegateToHimself",
212
+ type: "error",
213
+ },
214
+ {
215
+ inputs: [
216
+ {
217
+ internalType: "address",
218
+ name: "neutral",
219
+ type: "address",
220
+ },
221
+ ],
222
+ name: "NeutralHasNoStake",
223
+ type: "error",
224
+ },
225
+ {
226
+ inputs: [
227
+ {
228
+ internalType: "address",
229
+ name: "neutral",
230
+ type: "address",
231
+ },
232
+ ],
233
+ name: "NeutralNotPaused",
234
+ type: "error",
235
+ },
236
+ {
237
+ inputs: [
238
+ {
239
+ internalType: "address",
240
+ name: "subject",
241
+ type: "address",
242
+ },
243
+ ],
244
+ name: "NoRewardsAvailible",
245
+ type: "error",
246
+ },
247
+ {
248
+ inputs: [
249
+ {
250
+ internalType: "address",
251
+ name: "subject",
252
+ type: "address",
253
+ },
254
+ ],
255
+ name: "NoWithdrawalAnnouncement",
256
+ type: "error",
257
+ },
258
+ {
259
+ inputs: [],
260
+ name: "NotInitializing",
261
+ type: "error",
262
+ },
263
+ {
264
+ inputs: [
265
+ {
266
+ internalType: "string",
267
+ name: "parameterName",
268
+ type: "string",
269
+ },
270
+ ],
271
+ name: "ParameterIsAlreadySynced",
272
+ type: "error",
273
+ },
274
+ {
275
+ inputs: [
276
+ {
277
+ internalType: "address",
278
+ name: "parametersRegistry",
279
+ type: "address",
280
+ },
281
+ {
282
+ internalType: "string",
283
+ name: "parameterName",
284
+ type: "string",
285
+ },
286
+ ],
287
+ name: "ParameterIsNotSet",
288
+ type: "error",
289
+ },
290
+ {
291
+ inputs: [
292
+ {
293
+ internalType: "string",
294
+ name: "parameterName",
295
+ type: "string",
296
+ },
297
+ ],
298
+ name: "ParameterIsNotSynced",
299
+ type: "error",
300
+ },
301
+ {
302
+ inputs: [],
303
+ name: "QueueIsEmpty",
304
+ type: "error",
305
+ },
306
+ {
307
+ inputs: [
308
+ {
309
+ internalType: "address",
310
+ name: "token",
311
+ type: "address",
312
+ },
313
+ ],
314
+ name: "SafeERC20FailedOperation",
315
+ type: "error",
316
+ },
317
+ {
318
+ inputs: [
319
+ {
320
+ internalType: "uint256",
321
+ name: "providedNumber",
322
+ type: "uint256",
323
+ },
324
+ {
325
+ internalType: "uint256",
326
+ name: "activeNeutralsCount",
327
+ type: "uint256",
328
+ },
329
+ ],
330
+ name: "SelectedNeutralsNumberOutOfRange",
331
+ type: "error",
332
+ },
333
+ {
334
+ inputs: [
335
+ {
336
+ internalType: "address",
337
+ name: "sender",
338
+ type: "address",
339
+ },
340
+ ],
341
+ name: "SenderExpectedToBeDAOSLC",
342
+ type: "error",
343
+ },
344
+ {
345
+ inputs: [
346
+ {
347
+ internalType: "address",
348
+ name: "sender",
349
+ type: "address",
350
+ },
351
+ ],
352
+ name: "SenderExpectedToBeGovernance",
353
+ type: "error",
354
+ },
355
+ {
356
+ inputs: [],
357
+ name: "UUPSUnauthorizedCallContext",
358
+ type: "error",
359
+ },
360
+ {
361
+ inputs: [
362
+ {
363
+ internalType: "bytes32",
364
+ name: "slot",
365
+ type: "bytes32",
366
+ },
367
+ ],
368
+ name: "UUPSUnsupportedProxiableUUID",
369
+ type: "error",
370
+ },
371
+ {
372
+ inputs: [
373
+ {
374
+ internalType: "uint256",
375
+ name: "value",
376
+ type: "uint256",
377
+ },
378
+ ],
379
+ name: "ValueShouldBeInBasisPoints",
380
+ type: "error",
381
+ },
382
+ {
383
+ inputs: [
384
+ {
385
+ internalType: "address",
386
+ name: "subject",
387
+ type: "address",
388
+ },
389
+ ],
390
+ name: "WithdrawalAlreadyAnnounced",
391
+ type: "error",
392
+ },
393
+ {
394
+ inputs: [
395
+ {
396
+ internalType: "address",
397
+ name: "subject",
398
+ type: "address",
399
+ },
400
+ {
401
+ internalType: "uint256",
402
+ name: "availableAt",
403
+ type: "uint256",
404
+ },
405
+ ],
406
+ name: "WithdrawalNotReady",
407
+ type: "error",
408
+ },
409
+ {
410
+ anonymous: false,
411
+ inputs: [
412
+ {
413
+ indexed: false,
414
+ internalType: "address",
415
+ name: "delegator",
416
+ type: "address",
417
+ },
418
+ {
419
+ indexed: false,
420
+ internalType: "address",
421
+ name: "neutral",
422
+ type: "address",
423
+ },
424
+ {
425
+ indexed: false,
426
+ internalType: "uint256",
427
+ name: "amount",
428
+ type: "uint256",
429
+ },
430
+ ],
431
+ name: "DelegationWithdrawn",
432
+ type: "event",
433
+ },
434
+ {
435
+ anonymous: false,
436
+ inputs: [
437
+ {
438
+ indexed: false,
439
+ internalType: "uint64",
440
+ name: "version",
441
+ type: "uint64",
442
+ },
443
+ ],
444
+ name: "Initialized",
445
+ type: "event",
446
+ },
447
+ {
448
+ anonymous: false,
449
+ inputs: [
450
+ {
451
+ indexed: true,
452
+ internalType: "address",
453
+ name: "neutral",
454
+ type: "address",
455
+ },
456
+ {
457
+ indexed: false,
458
+ internalType: "uint256",
459
+ name: "stake",
460
+ type: "uint256",
461
+ },
462
+ ],
463
+ name: "NeutralActivated",
464
+ type: "event",
465
+ },
466
+ {
467
+ anonymous: false,
468
+ inputs: [
469
+ {
470
+ indexed: true,
471
+ internalType: "address",
472
+ name: "neutral",
473
+ type: "address",
474
+ },
475
+ ],
476
+ name: "NeutralMovedToStandby",
477
+ type: "event",
478
+ },
479
+ {
480
+ anonymous: false,
481
+ inputs: [
482
+ {
483
+ indexed: true,
484
+ internalType: "address",
485
+ name: "neutral",
486
+ type: "address",
487
+ },
488
+ ],
489
+ name: "NeutralPaused",
490
+ type: "event",
491
+ },
492
+ {
493
+ anonymous: false,
494
+ inputs: [
495
+ {
496
+ indexed: true,
497
+ internalType: "address",
498
+ name: "neutral",
499
+ type: "address",
500
+ },
501
+ {
502
+ indexed: false,
503
+ internalType: "uint256",
504
+ name: "amount",
505
+ type: "uint256",
506
+ },
507
+ {
508
+ indexed: false,
509
+ internalType: "address",
510
+ name: "recipient",
511
+ type: "address",
512
+ },
513
+ ],
514
+ name: "NeutralSlashed",
515
+ type: "event",
516
+ },
517
+ {
518
+ anonymous: false,
519
+ inputs: [
520
+ {
521
+ indexed: true,
522
+ internalType: "address",
523
+ name: "neutral",
524
+ type: "address",
525
+ },
526
+ {
527
+ indexed: false,
528
+ internalType: "uint256",
529
+ name: "amount",
530
+ type: "uint256",
531
+ },
532
+ {
533
+ indexed: false,
534
+ internalType: "uint256",
535
+ name: "totalStake",
536
+ type: "uint256",
537
+ },
538
+ ],
539
+ name: "NeutralStaked",
540
+ type: "event",
541
+ },
542
+ {
543
+ anonymous: false,
544
+ inputs: [
545
+ {
546
+ indexed: true,
547
+ internalType: "address",
548
+ name: "neutral",
549
+ type: "address",
550
+ },
551
+ ],
552
+ name: "NeutralUnpaused",
553
+ type: "event",
554
+ },
555
+ {
556
+ anonymous: false,
557
+ inputs: [
558
+ {
559
+ indexed: true,
560
+ internalType: "address",
561
+ name: "neutral",
562
+ type: "address",
563
+ },
564
+ {
565
+ indexed: false,
566
+ internalType: "uint256",
567
+ name: "amount",
568
+ type: "uint256",
569
+ },
570
+ {
571
+ indexed: false,
572
+ internalType: "uint256",
573
+ name: "remainingStake",
574
+ type: "uint256",
575
+ },
576
+ ],
577
+ name: "NeutralUnstaked",
578
+ type: "event",
579
+ },
580
+ {
581
+ anonymous: false,
582
+ inputs: [
583
+ {
584
+ indexed: true,
585
+ internalType: "address",
586
+ name: "neutral",
587
+ type: "address",
588
+ },
589
+ {
590
+ indexed: false,
591
+ internalType: "uint256",
592
+ name: "amount",
593
+ type: "uint256",
594
+ },
595
+ ],
596
+ name: "RewardsClaimed",
597
+ type: "event",
598
+ },
599
+ {
600
+ anonymous: false,
601
+ inputs: [
602
+ {
603
+ indexed: false,
604
+ internalType: "address[]",
605
+ name: "selectedNeutrals",
606
+ type: "address[]",
607
+ },
608
+ {
609
+ indexed: false,
610
+ internalType: "uint256",
611
+ name: "totalAmount",
612
+ type: "uint256",
613
+ },
614
+ ],
615
+ name: "RewardsDistributed",
616
+ type: "event",
617
+ },
618
+ {
619
+ anonymous: false,
620
+ inputs: [
621
+ {
622
+ indexed: true,
623
+ internalType: "address",
624
+ name: "implementation",
625
+ type: "address",
626
+ },
627
+ ],
628
+ name: "Upgraded",
629
+ type: "event",
630
+ },
631
+ {
632
+ anonymous: false,
633
+ inputs: [
634
+ {
635
+ indexed: true,
636
+ internalType: "address",
637
+ name: "neutral",
638
+ type: "address",
639
+ },
640
+ {
641
+ indexed: false,
642
+ internalType: "uint256",
643
+ name: "amount",
644
+ type: "uint256",
645
+ },
646
+ {
647
+ indexed: false,
648
+ internalType: "uint256",
649
+ name: "availableAt",
650
+ type: "uint256",
651
+ },
652
+ ],
653
+ name: "WithdrawalAnnounced",
654
+ type: "event",
655
+ },
656
+ {
657
+ anonymous: false,
658
+ inputs: [
659
+ {
660
+ indexed: true,
661
+ internalType: "address",
662
+ name: "neutral",
663
+ type: "address",
664
+ },
665
+ {
666
+ indexed: false,
667
+ internalType: "uint256",
668
+ name: "amount",
669
+ type: "uint256",
670
+ },
671
+ ],
672
+ name: "WithdrawalCancelled",
673
+ type: "event",
674
+ },
675
+ {
676
+ inputs: [],
677
+ name: "UPGRADE_INTERFACE_VERSION",
678
+ outputs: [
679
+ {
680
+ internalType: "string",
681
+ name: "",
682
+ type: "string",
683
+ },
684
+ ],
685
+ stateMutability: "view",
686
+ type: "function",
687
+ },
688
+ {
689
+ inputs: [
690
+ {
691
+ internalType: "address",
692
+ name: "governance_",
693
+ type: "address",
694
+ },
695
+ ],
696
+ name: "__NeutralsRegistry_init",
697
+ outputs: [],
698
+ stateMutability: "nonpayable",
699
+ type: "function",
700
+ },
701
+ {
702
+ inputs: [
703
+ {
704
+ internalType: "uint256",
705
+ name: "amount_",
706
+ type: "uint256",
707
+ },
708
+ ],
709
+ name: "addNeutralsStake",
710
+ outputs: [],
711
+ stateMutability: "nonpayable",
712
+ type: "function",
713
+ },
714
+ {
715
+ inputs: [
716
+ {
717
+ internalType: "address",
718
+ name: "neutral_",
719
+ type: "address",
720
+ },
721
+ {
722
+ internalType: "uint256",
723
+ name: "amount_",
724
+ type: "uint256",
725
+ },
726
+ ],
727
+ name: "announceDelegationWithdrawal",
728
+ outputs: [],
729
+ stateMutability: "nonpayable",
730
+ type: "function",
731
+ },
732
+ {
733
+ inputs: [
734
+ {
735
+ internalType: "uint256",
736
+ name: "amount_",
737
+ type: "uint256",
738
+ },
739
+ ],
740
+ name: "announceNeutralsWithdrawal",
741
+ outputs: [],
742
+ stateMutability: "nonpayable",
743
+ type: "function",
744
+ },
745
+ {
746
+ inputs: [],
747
+ name: "boundActiveNeutralsList",
748
+ outputs: [],
749
+ stateMutability: "nonpayable",
750
+ type: "function",
751
+ },
752
+ {
753
+ inputs: [
754
+ {
755
+ internalType: "address",
756
+ name: "neutral_",
757
+ type: "address",
758
+ },
759
+ ],
760
+ name: "cancelDelegationWithdrawal",
761
+ outputs: [],
762
+ stateMutability: "nonpayable",
763
+ type: "function",
764
+ },
765
+ {
766
+ inputs: [],
767
+ name: "cancelNeutralsWithdrawal",
768
+ outputs: [],
769
+ stateMutability: "nonpayable",
770
+ type: "function",
771
+ },
772
+ {
773
+ inputs: [
774
+ {
775
+ internalType: "address",
776
+ name: "neutral_",
777
+ type: "address",
778
+ },
779
+ ],
780
+ name: "claimDelegatorRewards",
781
+ outputs: [],
782
+ stateMutability: "nonpayable",
783
+ type: "function",
784
+ },
785
+ {
786
+ inputs: [],
787
+ name: "claimNeutralRewards",
788
+ outputs: [],
789
+ stateMutability: "nonpayable",
790
+ type: "function",
791
+ },
792
+ {
793
+ inputs: [
794
+ {
795
+ internalType: "address",
796
+ name: "neutral_",
797
+ type: "address",
798
+ },
799
+ ],
800
+ name: "completeDelegationWithdrawal",
801
+ outputs: [],
802
+ stateMutability: "nonpayable",
803
+ type: "function",
804
+ },
805
+ {
806
+ inputs: [],
807
+ name: "completeNeutralsWithdrawal",
808
+ outputs: [],
809
+ stateMutability: "nonpayable",
810
+ type: "function",
811
+ },
812
+ {
813
+ inputs: [
814
+ {
815
+ internalType: "address",
816
+ name: "neutral_",
817
+ type: "address",
818
+ },
819
+ {
820
+ internalType: "uint256",
821
+ name: "amount_",
822
+ type: "uint256",
823
+ },
824
+ ],
825
+ name: "delegate",
826
+ outputs: [],
827
+ stateMutability: "nonpayable",
828
+ type: "function",
829
+ },
830
+ {
831
+ inputs: [
832
+ {
833
+ internalType: "address[]",
834
+ name: "selectedNeutrals_",
835
+ type: "address[]",
836
+ },
837
+ {
838
+ internalType: "uint256",
839
+ name: "amount_",
840
+ type: "uint256",
841
+ },
842
+ ],
843
+ name: "distributeRewards",
844
+ outputs: [],
845
+ stateMutability: "nonpayable",
846
+ type: "function",
847
+ },
848
+ {
849
+ inputs: [
850
+ {
851
+ internalType: "uint256",
852
+ name: "offset_",
853
+ type: "uint256",
854
+ },
855
+ {
856
+ internalType: "uint256",
857
+ name: "limit_",
858
+ type: "uint256",
859
+ },
860
+ ],
861
+ name: "getActiveNeutrals",
862
+ outputs: [
863
+ {
864
+ internalType: "address[]",
865
+ name: "",
866
+ type: "address[]",
867
+ },
868
+ ],
869
+ stateMutability: "view",
870
+ type: "function",
871
+ },
872
+ {
873
+ inputs: [
874
+ {
875
+ internalType: "address",
876
+ name: "neutral_",
877
+ type: "address",
878
+ },
879
+ ],
880
+ name: "getAvailibleRewards",
881
+ outputs: [
882
+ {
883
+ internalType: "uint256",
884
+ name: "",
885
+ type: "uint256",
886
+ },
887
+ ],
888
+ stateMutability: "view",
889
+ type: "function",
890
+ },
891
+ {
892
+ inputs: [],
893
+ name: "getCurrentGovernance",
894
+ outputs: [
895
+ {
896
+ internalType: "address",
897
+ name: "",
898
+ type: "address",
899
+ },
900
+ ],
901
+ stateMutability: "view",
902
+ type: "function",
903
+ },
904
+ {
905
+ inputs: [],
906
+ name: "getCurrentMaxActiveNeutralsParameter",
907
+ outputs: [
908
+ {
909
+ internalType: "uint256",
910
+ name: "",
911
+ type: "uint256",
912
+ },
913
+ ],
914
+ stateMutability: "view",
915
+ type: "function",
916
+ },
917
+ {
918
+ inputs: [
919
+ {
920
+ internalType: "address",
921
+ name: "delegator_",
922
+ type: "address",
923
+ },
924
+ {
925
+ internalType: "address",
926
+ name: "neutral_",
927
+ type: "address",
928
+ },
929
+ ],
930
+ name: "getDelegation",
931
+ outputs: [
932
+ {
933
+ components: [
934
+ {
935
+ internalType: "uint256",
936
+ name: "delegationAmount",
937
+ type: "uint256",
938
+ },
939
+ {
940
+ components: [
941
+ {
942
+ internalType: "uint256",
943
+ name: "amount",
944
+ type: "uint256",
945
+ },
946
+ {
947
+ internalType: "uint256",
948
+ name: "announcedAt",
949
+ type: "uint256",
950
+ },
951
+ {
952
+ internalType: "uint256",
953
+ name: "availableAt",
954
+ type: "uint256",
955
+ },
956
+ ],
957
+ internalType: "struct NeutralsRegistry.WithdrawalAnnouncement",
958
+ name: "withdrawal",
959
+ type: "tuple",
960
+ },
961
+ {
962
+ internalType: "uint256",
963
+ name: "owedValue",
964
+ type: "uint256",
965
+ },
966
+ {
967
+ internalType: "uint256",
968
+ name: "cumulativeSum",
969
+ type: "uint256",
970
+ },
971
+ ],
972
+ internalType: "struct NeutralsRegistry.Delegation",
973
+ name: "",
974
+ type: "tuple",
975
+ },
976
+ ],
977
+ stateMutability: "view",
978
+ type: "function",
979
+ },
980
+ {
981
+ inputs: [
982
+ {
983
+ internalType: "address",
984
+ name: "neutral_",
985
+ type: "address",
986
+ },
987
+ {
988
+ internalType: "uint256",
989
+ name: "offset_",
990
+ type: "uint256",
991
+ },
992
+ {
993
+ internalType: "uint256",
994
+ name: "limit_",
995
+ type: "uint256",
996
+ },
997
+ ],
998
+ name: "getDelegatorsPerNeutral",
999
+ outputs: [
1000
+ {
1001
+ internalType: "address[]",
1002
+ name: "",
1003
+ type: "address[]",
1004
+ },
1005
+ ],
1006
+ stateMutability: "view",
1007
+ type: "function",
1008
+ },
1009
+ {
1010
+ inputs: [
1011
+ {
1012
+ internalType: "address",
1013
+ name: "neutral_",
1014
+ type: "address",
1015
+ },
1016
+ ],
1017
+ name: "getExternalLink",
1018
+ outputs: [
1019
+ {
1020
+ internalType: "string",
1021
+ name: "",
1022
+ type: "string",
1023
+ },
1024
+ ],
1025
+ stateMutability: "view",
1026
+ type: "function",
1027
+ },
1028
+ {
1029
+ inputs: [
1030
+ {
1031
+ internalType: "address",
1032
+ name: "neutral_",
1033
+ type: "address",
1034
+ },
1035
+ ],
1036
+ name: "getNeutralDelegationShare",
1037
+ outputs: [
1038
+ {
1039
+ internalType: "uint256",
1040
+ name: "",
1041
+ type: "uint256",
1042
+ },
1043
+ ],
1044
+ stateMutability: "view",
1045
+ type: "function",
1046
+ },
1047
+ {
1048
+ inputs: [
1049
+ {
1050
+ internalType: "address",
1051
+ name: "neutral_",
1052
+ type: "address",
1053
+ },
1054
+ ],
1055
+ name: "getNeutralInfo",
1056
+ outputs: [
1057
+ {
1058
+ components: [
1059
+ {
1060
+ internalType: "uint256",
1061
+ name: "selfStake",
1062
+ type: "uint256",
1063
+ },
1064
+ {
1065
+ internalType: "uint256",
1066
+ name: "weight",
1067
+ type: "uint256",
1068
+ },
1069
+ {
1070
+ internalType: "uint256",
1071
+ name: "delegatedStake",
1072
+ type: "uint256",
1073
+ },
1074
+ {
1075
+ internalType: "uint256",
1076
+ name: "rewards",
1077
+ type: "uint256",
1078
+ },
1079
+ {
1080
+ internalType: "uint256",
1081
+ name: "delegationShare",
1082
+ type: "uint256",
1083
+ },
1084
+ {
1085
+ internalType: "string",
1086
+ name: "externalLink",
1087
+ type: "string",
1088
+ },
1089
+ {
1090
+ internalType: "bool",
1091
+ name: "isActive",
1092
+ type: "bool",
1093
+ },
1094
+ {
1095
+ internalType: "bool",
1096
+ name: "isStandby",
1097
+ type: "bool",
1098
+ },
1099
+ ],
1100
+ internalType: "struct NeutralsRegistry.NeutralsInfo",
1101
+ name: "",
1102
+ type: "tuple",
1103
+ },
1104
+ ],
1105
+ stateMutability: "view",
1106
+ type: "function",
1107
+ },
1108
+ {
1109
+ inputs: [],
1110
+ name: "getNeutralsCount",
1111
+ outputs: [
1112
+ {
1113
+ internalType: "uint256",
1114
+ name: "",
1115
+ type: "uint256",
1116
+ },
1117
+ ],
1118
+ stateMutability: "view",
1119
+ type: "function",
1120
+ },
1121
+ {
1122
+ inputs: [
1123
+ {
1124
+ internalType: "address",
1125
+ name: "delegator_",
1126
+ type: "address",
1127
+ },
1128
+ {
1129
+ internalType: "uint256",
1130
+ name: "offset_",
1131
+ type: "uint256",
1132
+ },
1133
+ {
1134
+ internalType: "uint256",
1135
+ name: "limit_",
1136
+ type: "uint256",
1137
+ },
1138
+ ],
1139
+ name: "getNeutralsPerDelegator",
1140
+ outputs: [
1141
+ {
1142
+ internalType: "address[]",
1143
+ name: "",
1144
+ type: "address[]",
1145
+ },
1146
+ ],
1147
+ stateMutability: "view",
1148
+ type: "function",
1149
+ },
1150
+ {
1151
+ inputs: [
1152
+ {
1153
+ internalType: "uint256",
1154
+ name: "number_",
1155
+ type: "uint256",
1156
+ },
1157
+ ],
1158
+ name: "getNeutralsSlice",
1159
+ outputs: [
1160
+ {
1161
+ internalType: "address[]",
1162
+ name: "",
1163
+ type: "address[]",
1164
+ },
1165
+ ],
1166
+ stateMutability: "view",
1167
+ type: "function",
1168
+ },
1169
+ {
1170
+ inputs: [],
1171
+ name: "getParameterRegistry",
1172
+ outputs: [
1173
+ {
1174
+ internalType: "address",
1175
+ name: "",
1176
+ type: "address",
1177
+ },
1178
+ ],
1179
+ stateMutability: "view",
1180
+ type: "function",
1181
+ },
1182
+ {
1183
+ inputs: [
1184
+ {
1185
+ internalType: "uint256",
1186
+ name: "offset_",
1187
+ type: "uint256",
1188
+ },
1189
+ {
1190
+ internalType: "uint256",
1191
+ name: "limit_",
1192
+ type: "uint256",
1193
+ },
1194
+ ],
1195
+ name: "getStandbyNeutrals",
1196
+ outputs: [
1197
+ {
1198
+ internalType: "address[]",
1199
+ name: "",
1200
+ type: "address[]",
1201
+ },
1202
+ ],
1203
+ stateMutability: "view",
1204
+ type: "function",
1205
+ },
1206
+ {
1207
+ inputs: [],
1208
+ name: "getToken",
1209
+ outputs: [
1210
+ {
1211
+ internalType: "address",
1212
+ name: "",
1213
+ type: "address",
1214
+ },
1215
+ ],
1216
+ stateMutability: "view",
1217
+ type: "function",
1218
+ },
1219
+ {
1220
+ inputs: [
1221
+ {
1222
+ internalType: "address",
1223
+ name: "neutral_",
1224
+ type: "address",
1225
+ },
1226
+ ],
1227
+ name: "getWithdrawalAnnouncement",
1228
+ outputs: [
1229
+ {
1230
+ components: [
1231
+ {
1232
+ internalType: "uint256",
1233
+ name: "amount",
1234
+ type: "uint256",
1235
+ },
1236
+ {
1237
+ internalType: "uint256",
1238
+ name: "announcedAt",
1239
+ type: "uint256",
1240
+ },
1241
+ {
1242
+ internalType: "uint256",
1243
+ name: "availableAt",
1244
+ type: "uint256",
1245
+ },
1246
+ ],
1247
+ internalType: "struct NeutralsRegistry.WithdrawalAnnouncement",
1248
+ name: "",
1249
+ type: "tuple",
1250
+ },
1251
+ ],
1252
+ stateMutability: "view",
1253
+ type: "function",
1254
+ },
1255
+ {
1256
+ inputs: [],
1257
+ name: "implementation",
1258
+ outputs: [
1259
+ {
1260
+ internalType: "address",
1261
+ name: "",
1262
+ type: "address",
1263
+ },
1264
+ ],
1265
+ stateMutability: "view",
1266
+ type: "function",
1267
+ },
1268
+ {
1269
+ inputs: [
1270
+ {
1271
+ internalType: "address",
1272
+ name: "candidate_",
1273
+ type: "address",
1274
+ },
1275
+ ],
1276
+ name: "isNeutral",
1277
+ outputs: [
1278
+ {
1279
+ internalType: "bool",
1280
+ name: "",
1281
+ type: "bool",
1282
+ },
1283
+ ],
1284
+ stateMutability: "view",
1285
+ type: "function",
1286
+ },
1287
+ {
1288
+ inputs: [
1289
+ {
1290
+ internalType: "address",
1291
+ name: "neutral_",
1292
+ type: "address",
1293
+ },
1294
+ ],
1295
+ name: "isWithdrawalReady",
1296
+ outputs: [
1297
+ {
1298
+ internalType: "bool",
1299
+ name: "",
1300
+ type: "bool",
1301
+ },
1302
+ ],
1303
+ stateMutability: "view",
1304
+ type: "function",
1305
+ },
1306
+ {
1307
+ inputs: [],
1308
+ name: "proxiableUUID",
1309
+ outputs: [
1310
+ {
1311
+ internalType: "bytes32",
1312
+ name: "",
1313
+ type: "bytes32",
1314
+ },
1315
+ ],
1316
+ stateMutability: "view",
1317
+ type: "function",
1318
+ },
1319
+ {
1320
+ inputs: [
1321
+ {
1322
+ internalType: "uint256",
1323
+ name: "delegationShare_",
1324
+ type: "uint256",
1325
+ },
1326
+ ],
1327
+ name: "setDelegationShare",
1328
+ outputs: [],
1329
+ stateMutability: "nonpayable",
1330
+ type: "function",
1331
+ },
1332
+ {
1333
+ inputs: [
1334
+ {
1335
+ internalType: "string",
1336
+ name: "externalLink_",
1337
+ type: "string",
1338
+ },
1339
+ ],
1340
+ name: "setExternalLink",
1341
+ outputs: [],
1342
+ stateMutability: "nonpayable",
1343
+ type: "function",
1344
+ },
1345
+ {
1346
+ inputs: [
1347
+ {
1348
+ internalType: "address",
1349
+ name: "neutral_",
1350
+ type: "address",
1351
+ },
1352
+ {
1353
+ internalType: "uint256",
1354
+ name: "amount_",
1355
+ type: "uint256",
1356
+ },
1357
+ ],
1358
+ name: "slashNeutral",
1359
+ outputs: [],
1360
+ stateMutability: "nonpayable",
1361
+ type: "function",
1362
+ },
1363
+ {
1364
+ inputs: [
1365
+ {
1366
+ internalType: "bytes4",
1367
+ name: "interfaceId_",
1368
+ type: "bytes4",
1369
+ },
1370
+ ],
1371
+ name: "supportsInterface",
1372
+ outputs: [
1373
+ {
1374
+ internalType: "bool",
1375
+ name: "",
1376
+ type: "bool",
1377
+ },
1378
+ ],
1379
+ stateMutability: "view",
1380
+ type: "function",
1381
+ },
1382
+ {
1383
+ inputs: [],
1384
+ name: "tryBecomeActive",
1385
+ outputs: [],
1386
+ stateMutability: "nonpayable",
1387
+ type: "function",
1388
+ },
1389
+ {
1390
+ inputs: [
1391
+ {
1392
+ internalType: "address",
1393
+ name: "neutral_",
1394
+ type: "address",
1395
+ },
1396
+ {
1397
+ internalType: "uint256",
1398
+ name: "newAmount_",
1399
+ type: "uint256",
1400
+ },
1401
+ ],
1402
+ name: "updateDelegationWithdrawal",
1403
+ outputs: [],
1404
+ stateMutability: "nonpayable",
1405
+ type: "function",
1406
+ },
1407
+ {
1408
+ inputs: [
1409
+ {
1410
+ internalType: "uint256",
1411
+ name: "newAmount_",
1412
+ type: "uint256",
1413
+ },
1414
+ ],
1415
+ name: "updateNeutralsWithdrawal",
1416
+ outputs: [],
1417
+ stateMutability: "nonpayable",
1418
+ type: "function",
1419
+ },
1420
+ {
1421
+ inputs: [
1422
+ {
1423
+ internalType: "address",
1424
+ name: "newImplementation",
1425
+ type: "address",
1426
+ },
1427
+ {
1428
+ internalType: "bytes",
1429
+ name: "data",
1430
+ type: "bytes",
1431
+ },
1432
+ ],
1433
+ name: "upgradeToAndCall",
1434
+ outputs: [],
1435
+ stateMutability: "payable",
1436
+ type: "function",
1437
+ },
1438
+ ] as const;
1439
+
1440
+ const _bytecode =
1441
+ "0x60a0806040523460295730608052614163908161002f8239608051818181610d950152611e8e0152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80629b7b1b146102b65780630178db72146102b157806301ffc9a7146102ac578063026e402b146102a75780630ad34d91146102a257806315049a5a1461029d578063155311c4146102985780631a8d57bc146102935780631f9179211461028e57806321df0da714610289578063274b8f9c146102845780632e36a2a01461027f5780633b9363001461027a5780633f01c77e1461027557806341a7e8af146102705780634b33e5821461026b5780634d42175b146102665780634f1ef2861461026157806352d1902d1461025c57806353fe1598146102575780635c60da1b146102525780636478db0f1461024d5780636cd08a9314610248578063765251d014610243578063800821101461023e57806383c2972f14610239578063854f0b0214610234578063855e1b591461022f578063915a044f1461022a578063a801609f14610225578063ad3cb1cc14610220578063b9b8c6c51461021b578063c32ffb5014610216578063c6436bf614610211578063c869d1d91461020c578063d298b47114610207578063dcf2fc3914610202578063ec667d92146101fd578063ee602ca4146101f8578063f4deaca3146101f3578063f8b6171f146101ee5763fac8a8c4146101e957600080fd5b611840565b6117ae565b611630565b6115d5565b611543565b6114e4565b6114ae565b611455565b611436565b61140f565b6113ed565b6113a6565b6112fe565b61120d565b6111e4565b6110f1565b6110af565b61106b565b610f8e565b610f5d565b610ee5565b610eaf565b610dec565b610d82565b610d07565b610bbb565b610ad7565b610a0b565b6109e0565b6109aa565b610985565b61093e565b610908565b6107c0565b610715565b6106e3565b610627565b6105ae565b6104a7565b610451565b610426565b6102d1565b6001600160a01b038116036102cc57565b600080fd5b346102cc5760203660031901126102cc576004356102ee816102bb565b6000805160206140f783398151915254906001600160401b0361032060ff604085901c1615936001600160401b031690565b168015908161041e575b6001149081610414575b15908161040b575b506103fa57610381908261037860016001600160401b03196000805160206140f78339815191525416176000805160206140f783398151915255565b6103d55761199c565b61038757005b6000805160206140f7833981519152805460ff60401b19169055604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29080602081015b0390a1005b6000805160206140f7833981519152805460ff60401b1916600160401b17905561199c565b63f92ee8a960e01b60005260046000fd5b9050153861033c565b303b159150610334565b83915061032a565b346102cc5760003660031901126102cc57602060008051602061411783398151915254604051908152f35b346102cc5760203660031901126102cc5760043563ffffffff60e01b81168091036102cc57602090638135b5b360e01b8114908115610496575b506040519015158152f35b6301ffc9a760e01b1490503861048b565b346102cc5760403660031901126102cc576004356104c4816102bb565b602435908115610599576001600160a01b038116338114610584576104e882611b4e565b80549160026104f5612e9a565b9201549185830180931161057f578361050d916124d2565b921561056b5750818110156105505761054e8461052b8186336124e5565b6000805160206140b7833981519152546001600160a01b03165b30903390612579565b005b8363160f94f760e21b60005260045260245260445260646000fd5b630193015960e41b60005260045260246000fd5b611f9e565b6374d189fd60e11b6000523360045260246000fd5b50634e53fe2160e01b60005260045260246000fd5b346102cc5760203660031901126102cc57602060046105d681356105d1816102bb565b611b4e565b0154604051908152f35b91909160a0606060c083019480518452610616602082015160208601906040809180518452602081015160208501520151910152565b604081015160808501520151910152565b346102cc5760403660031901126102cc576106df61069e60043561064a816102bb565b6106876024359161065a836102bb565b6000606060405161066a81610c79565b828152610675611ca4565b60208201528260408201520152611b87565b9060018060a01b0316600052602052604060002090565b6005604051916106ad83610c79565b805483526106bd60018201611cc3565b60208401526004810154604084015201546060820152604051918291826105e0565b0390f35b346102cc5760403660031901126102cc5761054e600435610703816102bb565b6024359061071081611d95565b61201d565b346102cc5760203660031901126102cc5760046107498135610736816102bb565b6107408133612f07565b61068733611b87565b0180549081156107ab57600090556000805160206140b78339815191525461077d90829033906001600160a01b03166125c2565b6040519081527ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe60203392a2005b63699535a560e01b6000523360045260246000fd5b346102cc5760203660031901126102cc576004356001600160401b0381116102cc57366023820112156102cc578060040135906001600160401b0382116102cc5736602483830101116102cc576024019061081a33611b4e565b8054156108f357600501906001600160401b0381116108ee57610847816108418454611ceb565b84611d43565b6000601f8211600114610887578190610878939460009261087c575b50508160011b916000199060031b1c19161790565b9055005b013590503880610863565b601f1982169361089c84600052602060002090565b91805b8681106108d657508360019596106108bc575b505050811b019055005b0135600019600384901b60f8161c191690553880806108b2565b9092602060018192868601358155019401910161089f565b610c63565b630193015960e41b6000523360045260246000fd5b346102cc5760003660031901126102cc576000805160206140b7833981519152546040516001600160a01b039091168152602090f35b346102cc5760203660031901126102cc5760043561271081116109715761096433611b4e565b8054156108f35760040155005b63f26f518360e01b60005260045260246000fd5b346102cc5760203660031901126102cc5761054e6004356109a5816102bb565b611d95565b346102cc5760003660031901126102cc57600080516020613ff7833981519152546040516001600160a01b039091168152602090f35b346102cc5760003660031901126102cc57602060008051602061405783398151915254604051908152f35b346102cc5760203660031901126102cc57602060036105d66004356105d1816102bb565b919082519283825260005b848110610a5b575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201610a3a565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015261010060e0610ac160a08501518360c0860152610120850190610a2f565b9360c08101511515828501520151151591015290565b346102cc5760203660031901126102cc576106df610b39600435610afa816102bb565b600060e0604051610b0a81610c94565b828152826020820152826040820152826060820152826080820152606060a08201528260c08201520152611b4e565b610baf610ba6600660405193610b4e85610c94565b8054855260018101546020860152600281015460408601526003810154606086015260048101546080860152610b8660058201611de0565b60a08601520154610b9d60ff8216151560c0860152565b60081c60ff1690565b151560e0830152565b60405191829182610a70565b346102cc5760203660031901126102cc57600435610bd76125fd565b610be033611b4e565b90610bea33611bc0565b600181015415610c4e5754825481810180911161057f5761054e9355610c24610c1233611bc0565b60026000918281558260018201550155565b610c2d33612648565b604051908152339060008051602061413783398151915290602090a26120df565b63ee11dd8b60e01b6000523360045260246000fd5b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b038211176108ee57604052565b61010081019081106001600160401b038211176108ee57604052565b606081019081106001600160401b038211176108ee57604052565b90601f801991011681019081106001600160401b038211176108ee57604052565b6001600160401b0381116108ee57601f01601f191660200190565b60403660031901126102cc57600435610d1f816102bb565b602435906001600160401b0382116102cc57366023830112156102cc57816004013590610d4b82610cec565b91610d596040519384610ccb565b80835236602482860101116102cc57602081600092602461054e97018387013784010152611e82565b346102cc5760003660031901126102cc577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610ddb5760206040516000805160206140778339815191528152f35b63703e46dd60e11b60005260046000fd5b346102cc5760203660031901126102cc57600435610e086125fd565b8015610e9b57610e1733611b4e565b805482810180911161057f5781610e96917ffdf6e1eb675dced7f94cf60fd5df666a83361c68351e17f559c9eb522e7ed3369355610e5433612648565b6000805160206140b783398151915254610e7c908590309033906001600160a01b0316612579565b546040805194855260208501919091523393918291820190565b0390a2005b63222d164360e21b60005260045260246000fd5b346102cc5760003660031901126102cc57600080516020614077833981519152546040516001600160a01b039091168152602090f35b346102cc5760003660031901126102cc57610efe6125fd565b610f0733611b4e565b610f1033611bc0565b600181015415610c4e57549080549082820180921161057f5755610f36610c1233611bc0565b610f3f33612648565b604051908152339060008051602061413783398151915290602090a2005b346102cc5760203660031901126102cc576020610f84600435610f7f816102bb565b611fcf565b6040519015158152f35b346102cc5760003660031901126102cc57610fa761242b565b806000805160206141178339815191525414610fd5576000805160206141178339815191525561054e612687565b611001610fe0611fe2565b604051636fe324a160e01b8152602060048201529182916024830190610a2f565b0390fd5b60609060031901126102cc5760043561101d816102bb565b906024359060443590565b602060408183019282815284518094520192019060005b81811061104c5750505090565b82516001600160a01b031684526020938401939092019160010161103f565b346102cc576106df61108f61108a61108236611005565b929091611bf9565b6126f2565b60405191829182611028565b9060206110ac928181520190610a2f565b90565b346102cc5760203660031901126102cc576106df6110dd60056110d76004356105d1816102bb565b01611de0565b604051918291602083526020830190610a2f565b346102cc5760203660031901126102cc5760043561110e816102bb565b61111b8161068733611b87565b90600282015415610c4e5760038201548042106111cc575060017faa0001b0e2e76b9a1b925257fefa58b756aebc52d2d7c8a85ea5beacc77a21009201549061117f600161116c3361068785611b87565b0160026000918281558260018201550155565b6000805160206140b7833981519152546111a590839033906001600160a01b03166125c2565b604080513381526001600160a01b03909216602083015281019190915280606081016103d0565b63941d772960e01b6000523360045260245260446000fd5b346102cc5760403660031901126102cc5761054e600435611204816102bb565b6024359061201d565b346102cc5760203660031901126102cc576004356112296125fd565b61123233611b4e565b61123b33611bc0565b815480156112e9578084116112cc5750600181019081546112b75760008051602061403783398151915292610e9692600261127d6112776128d7565b42611fc2565b9384928882554290550155611293858254612144565b905561129e33612648565b6040805194855260208501919091523393918291820190565b63e7f8a2d360e01b6000523360045260246000fd5b6339f1f13f60e11b60005233600452602484905260445260646000fd5b630193015960e41b6000523360045260246000fd5b346102cc5760003660031901126102cc5761131833611b4e565b61132133611bc0565b6001810154156113915760028101548042106111cc5750610e967f848f895d31303a7b3bea7b22a84bea01ec95b889e3b004a0f03c68a1c2489e6091549261136b610c1233611bc0565b6000805160206140b783398151915254610e7c90859033906001600160a01b03166125c2565b63ee11dd8b60e01b6000523360045260246000fd5b346102cc5760003660031901126102cc576106df60408051906113c98183610ccb565b60058252640352e302e360dc1b602083015251918291602083526020830190610a2f565b346102cc5760003660031901126102cc576114066125fd565b61054e33612944565b346102cc5760203660031901126102cc576020610f84600435611431816102bb565b612151565b346102cc576106df61108f61108a61144d36611005565b929091611c32565b346102cc5760003660031901126102cc57600361147133611b4e565b015480156107ab576000600361148633611b4e565b01556000805160206140b78339815191525461077d90829033906001600160a01b03166125c2565b346102cc5760003660031901126102cc576000805160206140d7833981519152546040516001600160a01b039091168152602090f35b346102cc5760403660031901126102cc576004356001600160401b0381116102cc57366023820112156102cc578060040135906001600160401b0382116102cc573660248360051b830101116102cc5761054e91602480359201612174565b346102cc5760403660031901126102cc576004356115736024358260008051602061405783398151915254612b29565b81810381811161057f5761158690612332565b91805b82811061159e57604051806106df8682611028565b6115a781612364565b9054838303929160031b1c6001600160a01b031681831161057f576115ce600193876123e6565b5201611589565b346102cc5760203660031901126102cc57606061160d6116086004356115fa816102bb565b611602611ca4565b50611bc0565b611cc3565b61162e60405180926040809180518452602081015160208501520151910152565bf35b346102cc5760403660031901126102cc5760043561164d816102bb565b602435611658612b50565b6116606125fd565b61166982611b4e565b61167283611bc0565b92815491829460018101541515938461179e575b8015611780578511611758577f5dc7aee63c712bf912c29a0f198cb6d040d20387b78bf03ae3c8c2ac17c6d21594956116bd612bb8565b948188119081611750575b50611730575b50506116db858254612144565b90556116e681612648565b6000805160206140b78339815191525461170c90859084906001600160a01b03166125c2565b604080519485526001600160a01b0392831660208601529116929081908101610e96565b61173b915490611fc2565b8155611749610c1283611bc0565b38806116ce565b9050386116c8565b6339f1f13f60e11b6000526001600160a01b0383166004526024859052604486905260646000fd5b630193015960e41b6000526001600160a01b03841660045260246000fd5b81546117a991611fc2565b611686565b346102cc5760403660031901126102cc576004356117de6024358260008051602061409783398151915254612b29565b81810381811161057f576117f190612332565b91805b82811061180957604051806106df8682611028565b61181281612399565b9054838303929160031b1c6001600160a01b031681831161057f57611839600193876123e6565b52016117f4565b346102cc5760203660031901126102cc57600435600080516020614057833981519152548082118015611973575b6119595761187a6135af565b9061188481612332565b9061188e43612135565b406040516118b7816118a96020820194859190602083019252565b03601f198101835282610ccb565b51902060005b8281106118e2576106df85876118d4818884612da9565b815260405191829182611028565b8061194860016119066105d16118f983968b6123e6565b516001600160a01b031690565b015461194360405161192b816118a9878a602084019091604092825260208201520190565b6a084595161401484a00000090602081519101200690565b612c25565b61195282876123e6565b52016118bd565b635c3b25a560e11b60005260049190915260245260446000fd5b50811561186e565b908160209103126102cc57516110ac816102bb565b6040513d6000823e3d90fd5b6119a4612e21565b6001600160a01b03168015611b3e57600080516020613ff783398151915280546001600160a01b0319166001600160a01b039290921691821790556119f0905b6001600160a01b031690565b604051632db8b60760e01b815290602082600481845afa908115611b1757600492600092611b1c575b5060209060405193848092630574924160e21b82525afa918215611b1757600092611ae6575b506001600160a01b0316908115611ad5576001600160a01b03168015611ac4576000805160206140b783398151915280546001600160a01b039384166001600160a01b0319918216179091556000805160206140d78339815191528054929093169116179055611ac2611ab061242b565b60008051602061411783398151915255565b565b633f63c6e560e01b60005260046000fd5b6326412d8960e21b60005260046000fd5b611b0991925060203d602011611b10575b611b018183610ccb565b81019061197b565b9038611a3f565b503d611af7565b611990565b6020919250611b3790823d8411611b1057611b018183610ccb565b9190611a19565b6218c61b60e21b60005260046000fd5b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d149096020526040902090565b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490c6020526040902090565b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490a6020526040902090565b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490d6020526040902090565b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490e6020526040902090565b6001600160a01b031660009081527f02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490b6020526040902090565b60405190611cb182610cb0565b60006040838281528260208201520152565b90604051611cd081610cb0565b60406002829480548452600181015460208501520154910152565b90600182811c92168015611d1b575b6020831014611d0557565b634e487b7160e01b600052602260045260246000fd5b91607f1691611cfa565b91611d3f9183549060031b91821b91600019901b19161790565b9055565b601f8211611d5057505050565b6000526020600020906020601f840160051c83019310611d8b575b601f0160051c01905b818110611d7f575050565b60008155600101611d74565b9091508190611d6b565b611da28161068733611b87565b600281015415610c4e57600161116c81611dc4930154936107408582336124e5565b60405190815260008051602061413783398151915260203392a2565b9060405191826000825492611df484611ceb565b8084529360018116908115611e605750600114611e19575b50611ac292500383610ccb565b90506000929192526020600020906000915b818310611e44575050906020611ac29282010138611e0c565b6020919350806001915483858901015201910190918492611e2b565b905060209250611ac294915060ff191682840152151560051b82010138611e0c565b90916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611f7b575b50610ddb57611ec6612b50565b6040516352d1902d60e01b8152926020846004816001600160a01b0387165afa60009481611f4a575b50611f1257634c9c8ce360e01b6000526001600160a01b03831660045260246000fd5b90916000805160206140778339815191528403611f3457611ac2929350612fe7565b632a87526960e21b600052600484905260246000fd5b611f6d91955060203d602011611f74575b611f658183610ccb565b8101906123fa565b9338611eef565b503d611f5b565b600080516020614077833981519152546001600160a01b03161415905038611eb9565b634e487b7160e01b600052601160045260246000fd5b906001820180921161057f57565b9190820180921161057f57565b6006611fdc60ff92611b4e565b01541690565b60405190611ff1604083610ccb565b601e82527f736c632e6e65757472616c732e6d61784163746976654e65757472616c7300006020830152565b81156120c9576120308161068733611b87565b61203d8261068733611b87565b5480841161208f5750600281019081546112b75761129e846000805160206140378339815191529461208a9460036120766112776127f0565b95869285600183015542905501553361285d565b0390a2565b60405163061de09d60e11b81523360048201526001600160a01b039390931660248401526044830193909352506064810191909152608490fd5b634e53fe2160e01b600052600482905260246000fd5b6120e76125fd565b6120f033611b4e565b6120f933611bc0565b815480156112e9578084116112cc5750600181019081546112b7576000805160206140378339815191529261208a92600261127d6112776128d7565b60001981019190821161057f57565b9190820391821161057f57565b61215a90611bc0565b60018101541561216e576002015442101590565b50600090565b600080516020613ff783398151915254909392906001600160a01b0316330361226057811561225b5781810460005b838110612236575050926122317f4c7cb22838e004dd47d1cb8aabab908f17a2851609c953fb7547c066d5e41acf93946122256121de612aa2565b6000805160206140b7833981519152546122029084906001600160a01b0316610545565b6000805160206140b78339815191525486840691906001600160a01b03166125c2565b604051938493846122ca565b0390a1565b806122558361225061224b600195898c6122ab565b6122c0565b6129ce565b016121a3565b612275565b63064ad62560e21b6000523360045260246000fd5b634e487b7160e01b600052601260045260246000fd5b811561225b570490565b634e487b7160e01b600052603260045260246000fd5b91908110156122bb5760051b0190565b612295565b356110ac816102bb565b60408082528101839052939291606085019060005b8181106122f157505060209150930152565b90916020806001928635612304816102bb565b848060a01b031681520194019101929190926122df565b6001600160401b0381116108ee5760051b60200190565b9061233c8261231b565b6123496040519182610ccb565b828152809261235a601f199161231b565b0190602036910137565b600080516020614057833981519152548110156122bb5760008051602061405783398151915260005260206000200190600090565b600080516020614097833981519152548110156122bb5760008051602061409783398151915260005260206000200190600090565b80548210156122bb5760005260206000200190600090565b80518210156122bb5760209160051b010190565b908160209103126102cc575190565b6001600160a01b0390911681526040602082018190526110ac92910190610a2f565b6000805160206140d78339815191525461244d906001600160a01b03166119e4565b90612474602061245b611fe2565b6040518093819262498bff60e81b83526004830161109b565b0381865afa600091816124b1575b506124ad5782612490611fe2565b6040516334d82c6160e11b81529182916110019160048401612409565b9150565b6124cb91925060203d602011611f7457611f658183610ccb565b9038612482565b8181029291811591840414171561057f57565b6124ef8282612f07565b6124f882611b4e565b6125058361068784611b87565b91825415612537575b50815484810180911161057f57600292550191825490810180911161057f57611ac29255612f54565b8061255761254761257293611c32565b6001600160a01b038716906137d5565b5061256185611bf9565b6001600160a01b03909116906137d5565b503861250e565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152611ac2916125bd608483610ccb565b612f8c565b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152611ac2916125bd606483610ccb565b6000805160206141178339815191525461261561242b565b0361261c57565b611001612627611fe2565b604051630e325b8360e31b8152602060048201529182916024830190610a2f565b611ac29061265581611fcf565b1561267957612663816130b6565b61266c816130da565b61267461326f565b612f54565b6126828161308b565b612663565b600080516020614117833981519152546000805160206140578339815191525490818110156126ee57810390811161057f575b80156126eb576126e26001600160a01b036126d36139b9565b166126dd816130b6565b6130da565b600019016126ba565b50565b5050565b929161270090828554612b29565b9080820382811161057f5761271490612332565b93815b8381106127245750505050565b61272e81836123ce565b9054848303929160031b1c6001600160a01b031681831161057f57612755600193896123e6565b5201612717565b6040519061276b606083610ccb565b6025825264195c9a5bd960da1b6040837f736c632e6e65757472616c732e6e65757472616c735769746864726177616c5060208201520152565b604051906127b4606083610ccb565b60278252661b14195c9a5bd960ca1b6040837f736c632e6e65757472616c732e64656c656761746f727357697468647261776160208201520152565b6000805160206140d783398151915254612812906001600160a01b03166119e4565b90612820602061245b61275c565b0381865afa6000918161283c575b506124ad57826124906127a5565b61285691925060203d602011611f7457611f658183610ccb565b903861282e565b6128678282612f07565b61287082611b4e565b61287d8361068784611b87565b9081549085820391821161057f5760029183550193845490810390811161057f57611ac2945554156128b0575b50612f54565b806128c6836128c16128d094611c32565b6132ef565b506128c183611bf9565b50386128aa565b6000805160206140d7833981519152546128f9906001600160a01b03166119e4565b90612907602061245b61275c565b0381865afa60009181612923575b506124ad578261249061275c565b61293d91925060203d602011611f7457611f658183610ccb565b9038612915565b61294d81611b4e565b5490612957613339565b82106126ee576000805160206140578339815191525460008051602061411783398151915254111561298d57611ac291506133a6565b6001600160a01b0361299d6139b9565b16916129a883611b4e565b5410156129c4576129bf826126dd611ac2946130b6565b6133a6565b611ac291506130da565b9060026129da83611b4e565b015415612a4b576129f78160046129f085611b4e565b0154612ca7565b80820391821161057f576003612a0c84611b4e565b0190815492830180931161057f57612a3c92612a3692556002612a2e85611b4e565b015490612d07565b91611c6b565b805491820180921161057f5755565b90612a57600391611b4e565b01805491820180921161057f5755565b60405190612a76604083610ccb565b601b82527f736c632e67656e6572616c2e74726561737572794164647265737300000000006020830152565b6000805160206140d783398151915254612ac4906001600160a01b03166119e4565b90612aec6020612ad2612a67565b6040518093819263d502db9760e01b83526004830161109b565b0381865afa60009181612b08575b506124ad5782612490612a67565b612b2291925060203d602011611b1057611b018183610ccb565b9038612afa565b929181019283821161057f57808411612b48575b508281116124ad5750565b925038612b3d565b6001600160a01b03612b60613542565b163303612b6957565b628ff8e960e21b6000523360045260246000fd5b60405190612b8c604083610ccb565b601e82527f736c632e6e65757472616c732e736c617368696e67526563697069656e7400006020830152565b6000805160206140d783398151915254612bda906001600160a01b03166119e4565b90612be86020612ad2612b7d565b0381865afa60009181612c04575b506124ad5782612490612b7d565b612c1e91925060203d602011611b1057611b018183610ccb565b9038612bf6565b612c2f8282613614565b918115612c9357816a084595161401484a0000001115612c8c577f58d10ca10c67639a01c8126b31bc1cc7fb9e575516fb70c108d55d224bfed7ad936a084595161401484a000000910990828211900360e71b910360191c170290565b6011613628565b506a084595161401484a0000009250500490565b612cb18282613614565b918115612cfc57816127101115612c8c577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b506127109250500490565b90612d1d6a084595161401484a00000083613614565b9190928315612d9d5783821115612d90576a084595161401484a000000829109816000038216809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b6011600383150218613628565b50906110ac925061228b565b9190918051835190818103612e0a57505081151580612dff575b81519015612de75750805160001981019190821161057f57611ac293600091613639565b82633f73cdbf60e11b60005260045260245260446000fd5b508051821115612dc3565b6302aac7d560e31b60005260045260245260446000fd5b60ff6000805160206140f78339815191525460401c1615612e3e57565b631afcd79f60e31b60005260046000fd5b60405190612e5e606083610ccb565b602782526634b1b0ba34b7b760c91b6040837f736c632e6e65757472616c732e6d617844656c65676174696f6e416d706c696660208201520152565b6000805160206140d783398151915254612ebc906001600160a01b03166119e4565b90612eca602061245b612e4f565b0381865afa60009181612ee6575b506124ad5782612490612e4f565b612f0091925060203d602011611f7457611f658183610ccb565b9038612ed8565b90612f1e90610687612f1882611c6b565b93611b87565b90815491815460058201938454820391821161057f57600491612f4091612c25565b9101805491820180921161057f5755549055565b612f5d81611b4e565b546002612f6983611b4e565b0154810180911161057f57612f88612f82600192613815565b92611b4e565b0155565b906000602091828151910182855af115611990576000513d612fde57506001600160a01b0381163b155b612fbd5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415612fb6565b90813b156130695760008051602061407783398151915280546001600160a01b0319166001600160a01b0384169081179091557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a280511561304f576126eb91613973565b50503461305857565b63b398979f60e01b60005260046000fd5b50634c9c8ce360e01b60009081526001600160a01b0391909116600452602490fd5b6006906130aa906130a46001600160a01b038216613b8d565b50611b4e565b01805461ff0019169055565b6006906130cf906130a46001600160a01b038216613cfd565b01805460ff19169055565b6130e381611b4e565b80546130ed613339565b116126ee57600681019060ff825460081c16613261575b546001600160a01b0390921691613129836000805160206140978339815191526137b3565b60008051602061401783398151915254600160401b8110156108ee5761317481600161318b9301600080516020614017833981519152556000805160206140178339815191526123ce565b819391549060031b91821b91600019901b19161790565b905560008051602061409783398151915254600019810190811161057f57806131c2816000805160206140178339815191526123ce565b90549060031b1c915b613206575b5050805461ff0019166101001790557f1b33235f2c9c3135f39e19703e6c3cb02751f4a1bdef1e76678395beb323dd3c600080a2565b600019810181811161057f5760011c908261322f836000805160206140178339815191526123ce565b90549060031b1c101561325b576132559082600080516020614097833981519152613f21565b806131cb565b506131d0565b61326a8361308b565b613104565b6000805160206140978339815191525415611ac257600060008051602061409783398151915254156132e05760008051602061409783398151915290527f8ccc6822d914e3ce5df20d9ca1c99b4109b19bb3bfa6b8969e621eb7965889cd54611ac2906001600160a01b0316612944565b6363c3654960e01b8152600490fd5b6110ac916001600160a01b031690613a62565b60405190613311604083610ccb565b6019825278736c632e6e65757472616c732e6d696e696d756d5374616b6560381b6020830152565b6000805160206140d78339815191525461335b906001600160a01b03166119e4565b90613369602061245b613302565b0381865afa60009181613385575b506124ad5782612490613302565b61339f91925060203d602011611f7457611f658183610ccb565b9038613377565b6133af8161308b565b6133b881611b4e565b80546001600160a01b038316929190196133e0846000805160206140578339815191526137b3565b600080516020613fd783398151915254600160401b8110156108ee5761317481600161342b9301600080516020613fd783398151915255600080516020613fd78339815191526123ce565b905560008051602061405783398151915254600019810190811161057f578061346281600080516020613fd78339815191526123ce565b90549060031b1c915b6134b7575b50506134ad7f1862725b703e058a2a48282cf335b4f294077d6c239644a5dd5e33aab51f7a8392600660209301600160ff19825416179055611b4e565b54604051908152a2565b600019810181811161057f5760011c90826134e083600080516020613fd78339815191526123ce565b90549060031b1c101561350c576135069082600080516020614057833981519152613f21565b8061346b565b50613470565b60405190613521604083610ccb565b6012825271736c632e67656e6572616c2e64616f534c4360701b6020830152565b6000805160206140d783398151915254613564906001600160a01b03166119e4565b906135726020612ad2613512565b0381865afa6000918161358e575b506124ad5782612490613512565b6135a891925060203d602011611b1057611b018183610ccb565b9038613580565b6040519060008051602061405783398151915254808352826020810160008051602061405783398151915260005260206000209260005b8181106135fb575050611ac292500383610ccb565b84548352600194850194879450602090930192016135e6565b906000198183099102908180821091030391565b634e487b716000526020526024601cfd5b9291939061364783826123e6565b518590815b85811061372357505061365f84836123e6565b5161366a87846123e6565b5161367586856123e6565b5261368087846123e6565b526136c46136916118f986886123e6565b6136ba6136a16118f98a8a6123e6565b6136ab888a6123e6565b6001600160a01b039091169052565b6136ab88886123e6565b6136d66136d18288612144565b611fb4565b9083821461371a578382101561370357506136fd906136f7611ac297611fb4565b93612144565b93613639565b9294935050613714611ac295612135565b92613639565b50505050505050565b8161372e82866123e6565b511161373d575b60010161364c565b966137ab60019161374e8a876123e6565b5161375982886123e6565b516137648c896123e6565b5261376f82886123e6565b526137a68a61379c8b6136ab6137886118f985846123e6565b936137966118f988856123e6565b926123e6565b6136ab838c6123e6565b613b1d565b979050613735565b805490600160401b8210156108ee5781613174916001611d3f940181556123ce565b600181019082600052816020526040600020541560001461380d576137fa83826137b3565b5491600052602052604060002055600190565b505050600090565b60018111156110ac57806001600160801b821015613936575b6138dc6138d26138c86138be6138b46138aa6138996138e39760046138e89a600160401b811015613929575b64010000000081101561391c575b6201000081101561390f575b610100811015613902575b60108110156138f5575b10156138ed575b60030260011c90565b6138a3818b61228b565b0160011c90565b6138a3818a61228b565b6138a3818961228b565b6138a3818861228b565b6138a3818761228b565b6138a3818661228b565b809361228b565b821190565b900390565b60011b613890565b60041c9160021b91613889565b60081c9160041b9161387f565b60101c9160081b91613874565b60201c9160101b91613868565b60401c9160201b9161385a565b50506138e86138e36138dc6138d26138c86138be6138b46138aa61389961395d8a60801c90565b9850600160401b975061382e9650505050505050565b6000806110ac93602081519101845af43d156139b1573d9161399483610cec565b926139a26040519485610ccb565b83523d6000602085013e613b2c565b606091613b2c565b6000805160206140578339815191525415613a05576000805160206140578339815191526000527f65d6ddbf53fb48acf1286c074d3981b0906af88ebb2245e98b1d701c95dffd835490565b6363c3654960e01b60005260046000fd5b634e487b7160e01b600052603160045260246000fd5b80548015613a5d576000190190613a58613a4683836123ce565b81929154906000199060031b1b191690565b905555565b613a16565b6001810191806000528260205260406000205492831515600014613b1457600019840184811161057f57835460001981019490851161057f576000958583613ac597613ab69503613acb575b505050613a2c565b90600052602052604060002090565b55600190565b613afb613af591613aec613ae2613b0b95886123ce565b90549060031b1c90565b928391876123ce565b90611d25565b8590600052602052604060002090565b55388080613aae565b50505050600090565b600019811461057f5760010190565b90613b525750805115613b4157805190602001fd5b63d6bda27560e01b60005260046000fd5b81511580613b84575b613b63575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b15613b5b565b60008051602061409783398151915254908115613cc3576000199060005b838110613cca575b50506000198114613cc357613bc782612135565b8114613c9357613c4c613c34613ae2613c2085613c1b613c03613ae2613bef613c8e9a612135565b6000805160206140978339815191526123ce565b613af5886000805160206140978339815191526123ce565b612135565b6000805160206140178339815191526123ce565b613af5836000805160206140178339815191526123ce565b613c63600080516020614097833981519152613a2c565b613c7a600080516020614017833981519152613a2c565b600080516020614097833981519152613e5c565b600190565b5050613cac600080516020614097833981519152613a2c565b613c8e600080516020614017833981519152613a2c565b5050600090565b81613ce6613ae2836000805160206140978339815191526123ce565b14613cf357600101613bab565b9150503880613bb3565b60008051602061405783398151915254908115613cc3576000199060005b838110613e29575b50506000198114613cc357613d3782612135565b8114613df957613db7613d9f613ae2613d8b85613c1b613d73613ae2613d5f613c8e9a612135565b6000805160206140578339815191526123ce565b613af5886000805160206140578339815191526123ce565b600080516020613fd78339815191526123ce565b613af583600080516020613fd78339815191526123ce565b613dce600080516020614057833981519152613a2c565b613de5600080516020613fd7833981519152613a2c565b600080516020614057833981519152613e5c565b5050613e12600080516020614057833981519152613a2c565b613c8e600080516020613fd7833981519152613a2c565b81613e45613ae2836000805160206140578339815191526123ce565b14613e5257600101613d1b565b9150503880613d23565b905b6001820190815481928260011b8381046002148415171561057f576001810180911161057f5782811080613efc575b613ef4575b50613e9c83613fb5565b9182109081613ed1575b50613ec9575b50818114613ec457613ebf908284613f21565b613e5e565b505050565b915038613eac565b9050613eed613ae285613ee7613ae286866123ce565b936123ce565b1038613ea6565b935038613e92565b50613f0781836123ce565b90549060031b1c613f1b613ae286856123ce565b10613e8d565b6001810192611d3f9291613f80613f3883836123ce565b90549060031b1c83613f4a86856123ce565b90549060031b1c613f69613174613f6189886123ce565b9490976123ce565b905583549060031b91821b91600019901b19161790565b9055613f8c81856123ce565b90549060031b1c91613f69613174613f61613fa784896123ce565b90549060031b1c93886123ce565b8060011b908082046002149015171561057f576002810180911161057f579056fe02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490502eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490002eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d149079af5208f4a6f6c7001c4c7c54434505fccefba7771cf71365559106c39b59d1802eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d14904360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490602eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d1490102eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d14902f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0002eec0af57616a1cb2ef3538f733bfc9b20f30a56aced6911a05ed5520d149082eed97477f07c07ec48f8f678f4e84f7c0de55bf33f51c3dc989b13353080319a164736f6c634300081e000a";
1442
+
1443
+ type NeutralsRegistryConstructorParams =
1444
+ | [signer?: Signer]
1445
+ | ConstructorParameters<typeof ContractFactory>;
1446
+
1447
+ const isSuperArgs = (
1448
+ xs: NeutralsRegistryConstructorParams
1449
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1450
+
1451
+ export class NeutralsRegistry__factory extends ContractFactory {
1452
+ constructor(...args: NeutralsRegistryConstructorParams) {
1453
+ if (isSuperArgs(args)) {
1454
+ super(...args);
1455
+ } else {
1456
+ super(_abi, _bytecode, args[0]);
1457
+ }
1458
+ this.contractName = "NeutralsRegistry";
1459
+ }
1460
+
1461
+ override getDeployTransaction(
1462
+ overrides?: NonPayableOverrides & { from?: string }
1463
+ ): Promise<ContractDeployTransaction> {
1464
+ return super.getDeployTransaction(overrides || {});
1465
+ }
1466
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
1467
+ return super.deploy(overrides || {}) as Promise<
1468
+ NeutralsRegistry & {
1469
+ deploymentTransaction(): ContractTransactionResponse;
1470
+ }
1471
+ >;
1472
+ }
1473
+ override connect(runner: ContractRunner | null): NeutralsRegistry__factory {
1474
+ return super.connect(runner) as NeutralsRegistry__factory;
1475
+ }
1476
+ static readonly contractName: "NeutralsRegistry";
1477
+
1478
+ public readonly contractName: "NeutralsRegistry";
1479
+
1480
+ static readonly bytecode = _bytecode;
1481
+ static readonly abi = _abi;
1482
+ static createInterface(): NeutralsRegistryInterface {
1483
+ return new Interface(_abi) as NeutralsRegistryInterface;
1484
+ }
1485
+ static connect(
1486
+ address: string,
1487
+ runner?: ContractRunner | null
1488
+ ): NeutralsRegistry {
1489
+ return new Contract(address, _abi, runner) as unknown as NeutralsRegistry;
1490
+ }
1491
+ }