@gainsnetwork/sdk 1.6.10 → 1.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +1911 -0
  2. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +2 -0
  3. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +1067 -0
  4. package/lib/contracts/types/generated/GNSBorrowingFees.js +2 -0
  5. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +533 -0
  6. package/lib/contracts/types/generated/GNSNftRewardsV6.js +2 -0
  7. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +613 -0
  8. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +2 -0
  9. package/lib/contracts/types/generated/GNSTrading.d.ts +758 -0
  10. package/lib/contracts/types/generated/GNSTrading.js +2 -0
  11. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +875 -0
  12. package/lib/contracts/types/generated/GNSTradingCallbacks.js +2 -0
  13. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +1387 -0
  14. package/lib/contracts/types/generated/GNSTradingStorage.js +2 -0
  15. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +1838 -0
  16. package/lib/contracts/types/generated/GTokenV6_3_2.js +2 -0
  17. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +83 -0
  18. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +2691 -0
  19. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +124 -0
  20. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +1784 -0
  21. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +100 -0
  22. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +1116 -0
  23. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +100 -0
  24. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +1003 -0
  25. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +113 -0
  26. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +1428 -0
  27. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +96 -0
  28. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +2241 -0
  29. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +95 -0
  30. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +1071 -0
  31. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +110 -0
  32. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +2682 -0
  33. package/lib/markets/schedules/holidays.js +3 -0
  34. package/package.json +1 -1
@@ -0,0 +1,2682 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GTokenV6_3_2__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
13
+ indexed: false,
14
+ internalType: "uint256",
15
+ name: "newAccValue",
16
+ type: "uint256",
17
+ },
18
+ ],
19
+ name: "AccBlockWeightedMarketCapStored",
20
+ type: "event",
21
+ },
22
+ {
23
+ anonymous: false,
24
+ inputs: [
25
+ {
26
+ indexed: true,
27
+ internalType: "address",
28
+ name: "sender",
29
+ type: "address",
30
+ },
31
+ {
32
+ indexed: true,
33
+ internalType: "uint256",
34
+ name: "newEpoch",
35
+ type: "uint256",
36
+ },
37
+ {
38
+ indexed: false,
39
+ internalType: "uint256",
40
+ name: "prevPositiveOpenPnl",
41
+ type: "uint256",
42
+ },
43
+ {
44
+ indexed: false,
45
+ internalType: "uint256",
46
+ name: "newPositiveOpenPnl",
47
+ type: "uint256",
48
+ },
49
+ {
50
+ indexed: false,
51
+ internalType: "uint256",
52
+ name: "newEpochPositiveOpenPnl",
53
+ type: "uint256",
54
+ },
55
+ {
56
+ indexed: false,
57
+ internalType: "int256",
58
+ name: "newAccPnlPerTokenUsed",
59
+ type: "int256",
60
+ },
61
+ ],
62
+ name: "AccPnlPerTokenUsedUpdated",
63
+ type: "event",
64
+ },
65
+ {
66
+ anonymous: false,
67
+ inputs: [
68
+ {
69
+ indexed: false,
70
+ internalType: "string",
71
+ name: "name",
72
+ type: "string",
73
+ },
74
+ {
75
+ indexed: false,
76
+ internalType: "address",
77
+ name: "newValue",
78
+ type: "address",
79
+ },
80
+ ],
81
+ name: "AddressParamUpdated",
82
+ type: "event",
83
+ },
84
+ {
85
+ anonymous: false,
86
+ inputs: [
87
+ {
88
+ indexed: true,
89
+ internalType: "address",
90
+ name: "owner",
91
+ type: "address",
92
+ },
93
+ {
94
+ indexed: true,
95
+ internalType: "address",
96
+ name: "spender",
97
+ type: "address",
98
+ },
99
+ {
100
+ indexed: false,
101
+ internalType: "uint256",
102
+ name: "value",
103
+ type: "uint256",
104
+ },
105
+ ],
106
+ name: "Approval",
107
+ type: "event",
108
+ },
109
+ {
110
+ anonymous: false,
111
+ inputs: [
112
+ {
113
+ indexed: true,
114
+ internalType: "address",
115
+ name: "sender",
116
+ type: "address",
117
+ },
118
+ {
119
+ indexed: true,
120
+ internalType: "address",
121
+ name: "user",
122
+ type: "address",
123
+ },
124
+ {
125
+ indexed: false,
126
+ internalType: "uint256",
127
+ name: "assets",
128
+ type: "uint256",
129
+ },
130
+ {
131
+ indexed: false,
132
+ internalType: "uint256",
133
+ name: "assetsLessDeplete",
134
+ type: "uint256",
135
+ },
136
+ ],
137
+ name: "AssetsReceived",
138
+ type: "event",
139
+ },
140
+ {
141
+ anonymous: false,
142
+ inputs: [
143
+ {
144
+ indexed: true,
145
+ internalType: "address",
146
+ name: "sender",
147
+ type: "address",
148
+ },
149
+ {
150
+ indexed: true,
151
+ internalType: "address",
152
+ name: "receiver",
153
+ type: "address",
154
+ },
155
+ {
156
+ indexed: false,
157
+ internalType: "uint256",
158
+ name: "assets",
159
+ type: "uint256",
160
+ },
161
+ ],
162
+ name: "AssetsSent",
163
+ type: "event",
164
+ },
165
+ {
166
+ anonymous: false,
167
+ inputs: [
168
+ {
169
+ indexed: false,
170
+ internalType: "uint256",
171
+ name: "newValue",
172
+ type: "uint256",
173
+ },
174
+ ],
175
+ name: "CurrentMaxSupplyUpdated",
176
+ type: "event",
177
+ },
178
+ {
179
+ anonymous: false,
180
+ inputs: [],
181
+ name: "DailyAccPnlDeltaReset",
182
+ type: "event",
183
+ },
184
+ {
185
+ anonymous: false,
186
+ inputs: [
187
+ {
188
+ indexed: true,
189
+ internalType: "address",
190
+ name: "sender",
191
+ type: "address",
192
+ },
193
+ {
194
+ indexed: false,
195
+ internalType: "uint256",
196
+ name: "assets",
197
+ type: "uint256",
198
+ },
199
+ {
200
+ indexed: false,
201
+ internalType: "uint256",
202
+ name: "amountGns",
203
+ type: "uint256",
204
+ },
205
+ ],
206
+ name: "Depleted",
207
+ type: "event",
208
+ },
209
+ {
210
+ anonymous: false,
211
+ inputs: [
212
+ {
213
+ indexed: true,
214
+ internalType: "address",
215
+ name: "sender",
216
+ type: "address",
217
+ },
218
+ {
219
+ indexed: true,
220
+ internalType: "address",
221
+ name: "owner",
222
+ type: "address",
223
+ },
224
+ {
225
+ indexed: false,
226
+ internalType: "uint256",
227
+ name: "assets",
228
+ type: "uint256",
229
+ },
230
+ {
231
+ indexed: false,
232
+ internalType: "uint256",
233
+ name: "shares",
234
+ type: "uint256",
235
+ },
236
+ ],
237
+ name: "Deposit",
238
+ type: "event",
239
+ },
240
+ {
241
+ anonymous: false,
242
+ inputs: [
243
+ {
244
+ indexed: true,
245
+ internalType: "address",
246
+ name: "sender",
247
+ type: "address",
248
+ },
249
+ {
250
+ indexed: true,
251
+ internalType: "address",
252
+ name: "owner",
253
+ type: "address",
254
+ },
255
+ {
256
+ indexed: false,
257
+ internalType: "uint256",
258
+ name: "depositId",
259
+ type: "uint256",
260
+ },
261
+ {
262
+ components: [
263
+ {
264
+ internalType: "address",
265
+ name: "owner",
266
+ type: "address",
267
+ },
268
+ {
269
+ internalType: "uint256",
270
+ name: "shares",
271
+ type: "uint256",
272
+ },
273
+ {
274
+ internalType: "uint256",
275
+ name: "assetsDeposited",
276
+ type: "uint256",
277
+ },
278
+ {
279
+ internalType: "uint256",
280
+ name: "assetsDiscount",
281
+ type: "uint256",
282
+ },
283
+ {
284
+ internalType: "uint256",
285
+ name: "atTimestamp",
286
+ type: "uint256",
287
+ },
288
+ {
289
+ internalType: "uint256",
290
+ name: "lockDuration",
291
+ type: "uint256",
292
+ },
293
+ ],
294
+ indexed: false,
295
+ internalType: "struct IGToken.LockedDeposit",
296
+ name: "d",
297
+ type: "tuple",
298
+ },
299
+ ],
300
+ name: "DepositLocked",
301
+ type: "event",
302
+ },
303
+ {
304
+ anonymous: false,
305
+ inputs: [
306
+ {
307
+ indexed: true,
308
+ internalType: "address",
309
+ name: "sender",
310
+ type: "address",
311
+ },
312
+ {
313
+ indexed: true,
314
+ internalType: "address",
315
+ name: "receiver",
316
+ type: "address",
317
+ },
318
+ {
319
+ indexed: true,
320
+ internalType: "address",
321
+ name: "owner",
322
+ type: "address",
323
+ },
324
+ {
325
+ indexed: false,
326
+ internalType: "uint256",
327
+ name: "depositId",
328
+ type: "uint256",
329
+ },
330
+ {
331
+ components: [
332
+ {
333
+ internalType: "address",
334
+ name: "owner",
335
+ type: "address",
336
+ },
337
+ {
338
+ internalType: "uint256",
339
+ name: "shares",
340
+ type: "uint256",
341
+ },
342
+ {
343
+ internalType: "uint256",
344
+ name: "assetsDeposited",
345
+ type: "uint256",
346
+ },
347
+ {
348
+ internalType: "uint256",
349
+ name: "assetsDiscount",
350
+ type: "uint256",
351
+ },
352
+ {
353
+ internalType: "uint256",
354
+ name: "atTimestamp",
355
+ type: "uint256",
356
+ },
357
+ {
358
+ internalType: "uint256",
359
+ name: "lockDuration",
360
+ type: "uint256",
361
+ },
362
+ ],
363
+ indexed: false,
364
+ internalType: "struct IGToken.LockedDeposit",
365
+ name: "d",
366
+ type: "tuple",
367
+ },
368
+ ],
369
+ name: "DepositUnlocked",
370
+ type: "event",
371
+ },
372
+ {
373
+ anonymous: false,
374
+ inputs: [
375
+ {
376
+ components: [
377
+ {
378
+ internalType: "address",
379
+ name: "addr",
380
+ type: "address",
381
+ },
382
+ {
383
+ internalType: "bytes",
384
+ name: "signature",
385
+ type: "bytes",
386
+ },
387
+ ],
388
+ indexed: false,
389
+ internalType: "struct GTokenV6_3_2.GnsPriceProvider",
390
+ name: "newValue",
391
+ type: "tuple",
392
+ },
393
+ ],
394
+ name: "GnsPriceProviderUpdated",
395
+ type: "event",
396
+ },
397
+ {
398
+ anonymous: false,
399
+ inputs: [
400
+ {
401
+ indexed: false,
402
+ internalType: "uint8",
403
+ name: "version",
404
+ type: "uint8",
405
+ },
406
+ ],
407
+ name: "Initialized",
408
+ type: "event",
409
+ },
410
+ {
411
+ anonymous: false,
412
+ inputs: [
413
+ {
414
+ indexed: false,
415
+ internalType: "string",
416
+ name: "name",
417
+ type: "string",
418
+ },
419
+ {
420
+ indexed: false,
421
+ internalType: "uint256",
422
+ name: "newValue",
423
+ type: "uint256",
424
+ },
425
+ ],
426
+ name: "NumberParamUpdated",
427
+ type: "event",
428
+ },
429
+ {
430
+ anonymous: false,
431
+ inputs: [],
432
+ name: "OpenTradesPnlFeedCallFailed",
433
+ type: "event",
434
+ },
435
+ {
436
+ anonymous: false,
437
+ inputs: [
438
+ {
439
+ indexed: true,
440
+ internalType: "address",
441
+ name: "previousOwner",
442
+ type: "address",
443
+ },
444
+ {
445
+ indexed: true,
446
+ internalType: "address",
447
+ name: "newOwner",
448
+ type: "address",
449
+ },
450
+ ],
451
+ name: "OwnershipTransferred",
452
+ type: "event",
453
+ },
454
+ {
455
+ anonymous: false,
456
+ inputs: [
457
+ {
458
+ indexed: true,
459
+ internalType: "address",
460
+ name: "sender",
461
+ type: "address",
462
+ },
463
+ {
464
+ indexed: false,
465
+ internalType: "uint256",
466
+ name: "assets",
467
+ type: "uint256",
468
+ },
469
+ {
470
+ indexed: false,
471
+ internalType: "uint256",
472
+ name: "amountGns",
473
+ type: "uint256",
474
+ },
475
+ ],
476
+ name: "Refilled",
477
+ type: "event",
478
+ },
479
+ {
480
+ anonymous: false,
481
+ inputs: [
482
+ {
483
+ indexed: true,
484
+ internalType: "address",
485
+ name: "sender",
486
+ type: "address",
487
+ },
488
+ {
489
+ indexed: false,
490
+ internalType: "uint256",
491
+ name: "assets",
492
+ type: "uint256",
493
+ },
494
+ ],
495
+ name: "RewardDistributed",
496
+ type: "event",
497
+ },
498
+ {
499
+ anonymous: false,
500
+ inputs: [
501
+ {
502
+ indexed: false,
503
+ internalType: "uint256",
504
+ name: "newValue",
505
+ type: "uint256",
506
+ },
507
+ ],
508
+ name: "ShareToAssetsPriceUpdated",
509
+ type: "event",
510
+ },
511
+ {
512
+ anonymous: false,
513
+ inputs: [
514
+ {
515
+ indexed: true,
516
+ internalType: "address",
517
+ name: "from",
518
+ type: "address",
519
+ },
520
+ {
521
+ indexed: true,
522
+ internalType: "address",
523
+ name: "to",
524
+ type: "address",
525
+ },
526
+ {
527
+ indexed: false,
528
+ internalType: "uint256",
529
+ name: "value",
530
+ type: "uint256",
531
+ },
532
+ ],
533
+ name: "Transfer",
534
+ type: "event",
535
+ },
536
+ {
537
+ anonymous: false,
538
+ inputs: [
539
+ {
540
+ indexed: true,
541
+ internalType: "address",
542
+ name: "sender",
543
+ type: "address",
544
+ },
545
+ {
546
+ indexed: true,
547
+ internalType: "address",
548
+ name: "receiver",
549
+ type: "address",
550
+ },
551
+ {
552
+ indexed: true,
553
+ internalType: "address",
554
+ name: "owner",
555
+ type: "address",
556
+ },
557
+ {
558
+ indexed: false,
559
+ internalType: "uint256",
560
+ name: "assets",
561
+ type: "uint256",
562
+ },
563
+ {
564
+ indexed: false,
565
+ internalType: "uint256",
566
+ name: "shares",
567
+ type: "uint256",
568
+ },
569
+ ],
570
+ name: "Withdraw",
571
+ type: "event",
572
+ },
573
+ {
574
+ anonymous: false,
575
+ inputs: [
576
+ {
577
+ indexed: true,
578
+ internalType: "address",
579
+ name: "sender",
580
+ type: "address",
581
+ },
582
+ {
583
+ indexed: true,
584
+ internalType: "address",
585
+ name: "owner",
586
+ type: "address",
587
+ },
588
+ {
589
+ indexed: false,
590
+ internalType: "uint256",
591
+ name: "shares",
592
+ type: "uint256",
593
+ },
594
+ {
595
+ indexed: false,
596
+ internalType: "uint256",
597
+ name: "currEpoch",
598
+ type: "uint256",
599
+ },
600
+ {
601
+ indexed: true,
602
+ internalType: "uint256",
603
+ name: "unlockEpoch",
604
+ type: "uint256",
605
+ },
606
+ ],
607
+ name: "WithdrawCanceled",
608
+ type: "event",
609
+ },
610
+ {
611
+ anonymous: false,
612
+ inputs: [
613
+ {
614
+ indexed: false,
615
+ internalType: "uint256[2]",
616
+ name: "newValue",
617
+ type: "uint256[2]",
618
+ },
619
+ ],
620
+ name: "WithdrawLockThresholdsPUpdated",
621
+ type: "event",
622
+ },
623
+ {
624
+ anonymous: false,
625
+ inputs: [
626
+ {
627
+ indexed: true,
628
+ internalType: "address",
629
+ name: "sender",
630
+ type: "address",
631
+ },
632
+ {
633
+ indexed: true,
634
+ internalType: "address",
635
+ name: "owner",
636
+ type: "address",
637
+ },
638
+ {
639
+ indexed: false,
640
+ internalType: "uint256",
641
+ name: "shares",
642
+ type: "uint256",
643
+ },
644
+ {
645
+ indexed: false,
646
+ internalType: "uint256",
647
+ name: "currEpoch",
648
+ type: "uint256",
649
+ },
650
+ {
651
+ indexed: true,
652
+ internalType: "uint256",
653
+ name: "unlockEpoch",
654
+ type: "uint256",
655
+ },
656
+ ],
657
+ name: "WithdrawRequested",
658
+ type: "event",
659
+ },
660
+ {
661
+ inputs: [],
662
+ name: "MIN_LOCK_DURATION",
663
+ outputs: [
664
+ {
665
+ internalType: "uint256",
666
+ name: "",
667
+ type: "uint256",
668
+ },
669
+ ],
670
+ stateMutability: "view",
671
+ type: "function",
672
+ },
673
+ {
674
+ inputs: [],
675
+ name: "accBlockWeightedMarketCap",
676
+ outputs: [
677
+ {
678
+ internalType: "uint256",
679
+ name: "",
680
+ type: "uint256",
681
+ },
682
+ ],
683
+ stateMutability: "view",
684
+ type: "function",
685
+ },
686
+ {
687
+ inputs: [],
688
+ name: "accBlockWeightedMarketCapLastStored",
689
+ outputs: [
690
+ {
691
+ internalType: "uint256",
692
+ name: "",
693
+ type: "uint256",
694
+ },
695
+ ],
696
+ stateMutability: "view",
697
+ type: "function",
698
+ },
699
+ {
700
+ inputs: [],
701
+ name: "accPnlPerToken",
702
+ outputs: [
703
+ {
704
+ internalType: "int256",
705
+ name: "",
706
+ type: "int256",
707
+ },
708
+ ],
709
+ stateMutability: "view",
710
+ type: "function",
711
+ },
712
+ {
713
+ inputs: [],
714
+ name: "accPnlPerTokenUsed",
715
+ outputs: [
716
+ {
717
+ internalType: "int256",
718
+ name: "",
719
+ type: "int256",
720
+ },
721
+ ],
722
+ stateMutability: "view",
723
+ type: "function",
724
+ },
725
+ {
726
+ inputs: [],
727
+ name: "accRewardsPerToken",
728
+ outputs: [
729
+ {
730
+ internalType: "uint256",
731
+ name: "",
732
+ type: "uint256",
733
+ },
734
+ ],
735
+ stateMutability: "view",
736
+ type: "function",
737
+ },
738
+ {
739
+ inputs: [],
740
+ name: "admin",
741
+ outputs: [
742
+ {
743
+ internalType: "address",
744
+ name: "",
745
+ type: "address",
746
+ },
747
+ ],
748
+ stateMutability: "view",
749
+ type: "function",
750
+ },
751
+ {
752
+ inputs: [
753
+ {
754
+ internalType: "address",
755
+ name: "owner",
756
+ type: "address",
757
+ },
758
+ {
759
+ internalType: "address",
760
+ name: "spender",
761
+ type: "address",
762
+ },
763
+ ],
764
+ name: "allowance",
765
+ outputs: [
766
+ {
767
+ internalType: "uint256",
768
+ name: "",
769
+ type: "uint256",
770
+ },
771
+ ],
772
+ stateMutability: "view",
773
+ type: "function",
774
+ },
775
+ {
776
+ inputs: [
777
+ {
778
+ internalType: "address",
779
+ name: "spender",
780
+ type: "address",
781
+ },
782
+ {
783
+ internalType: "uint256",
784
+ name: "amount",
785
+ type: "uint256",
786
+ },
787
+ ],
788
+ name: "approve",
789
+ outputs: [
790
+ {
791
+ internalType: "bool",
792
+ name: "",
793
+ type: "bool",
794
+ },
795
+ ],
796
+ stateMutability: "nonpayable",
797
+ type: "function",
798
+ },
799
+ {
800
+ inputs: [],
801
+ name: "asset",
802
+ outputs: [
803
+ {
804
+ internalType: "address",
805
+ name: "",
806
+ type: "address",
807
+ },
808
+ ],
809
+ stateMutability: "view",
810
+ type: "function",
811
+ },
812
+ {
813
+ inputs: [],
814
+ name: "assetsToDeplete",
815
+ outputs: [
816
+ {
817
+ internalType: "uint256",
818
+ name: "",
819
+ type: "uint256",
820
+ },
821
+ ],
822
+ stateMutability: "view",
823
+ type: "function",
824
+ },
825
+ {
826
+ inputs: [],
827
+ name: "availableAssets",
828
+ outputs: [
829
+ {
830
+ internalType: "uint256",
831
+ name: "",
832
+ type: "uint256",
833
+ },
834
+ ],
835
+ stateMutability: "view",
836
+ type: "function",
837
+ },
838
+ {
839
+ inputs: [
840
+ {
841
+ internalType: "address",
842
+ name: "account",
843
+ type: "address",
844
+ },
845
+ ],
846
+ name: "balanceOf",
847
+ outputs: [
848
+ {
849
+ internalType: "uint256",
850
+ name: "",
851
+ type: "uint256",
852
+ },
853
+ ],
854
+ stateMutability: "view",
855
+ type: "function",
856
+ },
857
+ {
858
+ inputs: [
859
+ {
860
+ internalType: "uint256",
861
+ name: "shares",
862
+ type: "uint256",
863
+ },
864
+ {
865
+ internalType: "address",
866
+ name: "owner",
867
+ type: "address",
868
+ },
869
+ {
870
+ internalType: "uint256",
871
+ name: "unlockEpoch",
872
+ type: "uint256",
873
+ },
874
+ ],
875
+ name: "cancelWithdrawRequest",
876
+ outputs: [],
877
+ stateMutability: "nonpayable",
878
+ type: "function",
879
+ },
880
+ {
881
+ inputs: [],
882
+ name: "collateralizationP",
883
+ outputs: [
884
+ {
885
+ internalType: "uint256",
886
+ name: "",
887
+ type: "uint256",
888
+ },
889
+ ],
890
+ stateMutability: "view",
891
+ type: "function",
892
+ },
893
+ {
894
+ inputs: [
895
+ {
896
+ internalType: "uint256",
897
+ name: "shares",
898
+ type: "uint256",
899
+ },
900
+ ],
901
+ name: "convertToAssets",
902
+ outputs: [
903
+ {
904
+ internalType: "uint256",
905
+ name: "assets",
906
+ type: "uint256",
907
+ },
908
+ ],
909
+ stateMutability: "view",
910
+ type: "function",
911
+ },
912
+ {
913
+ inputs: [
914
+ {
915
+ internalType: "uint256",
916
+ name: "assets",
917
+ type: "uint256",
918
+ },
919
+ ],
920
+ name: "convertToShares",
921
+ outputs: [
922
+ {
923
+ internalType: "uint256",
924
+ name: "shares",
925
+ type: "uint256",
926
+ },
927
+ ],
928
+ stateMutability: "view",
929
+ type: "function",
930
+ },
931
+ {
932
+ inputs: [],
933
+ name: "currentBalanceDai",
934
+ outputs: [
935
+ {
936
+ internalType: "uint256",
937
+ name: "",
938
+ type: "uint256",
939
+ },
940
+ ],
941
+ stateMutability: "view",
942
+ type: "function",
943
+ },
944
+ {
945
+ inputs: [],
946
+ name: "currentEpoch",
947
+ outputs: [
948
+ {
949
+ internalType: "uint256",
950
+ name: "",
951
+ type: "uint256",
952
+ },
953
+ ],
954
+ stateMutability: "view",
955
+ type: "function",
956
+ },
957
+ {
958
+ inputs: [],
959
+ name: "currentEpochPositiveOpenPnl",
960
+ outputs: [
961
+ {
962
+ internalType: "uint256",
963
+ name: "",
964
+ type: "uint256",
965
+ },
966
+ ],
967
+ stateMutability: "view",
968
+ type: "function",
969
+ },
970
+ {
971
+ inputs: [],
972
+ name: "currentEpochStart",
973
+ outputs: [
974
+ {
975
+ internalType: "uint256",
976
+ name: "",
977
+ type: "uint256",
978
+ },
979
+ ],
980
+ stateMutability: "view",
981
+ type: "function",
982
+ },
983
+ {
984
+ inputs: [],
985
+ name: "currentMaxSupply",
986
+ outputs: [
987
+ {
988
+ internalType: "uint256",
989
+ name: "",
990
+ type: "uint256",
991
+ },
992
+ ],
993
+ stateMutability: "view",
994
+ type: "function",
995
+ },
996
+ {
997
+ inputs: [],
998
+ name: "dailyAccPnlDelta",
999
+ outputs: [
1000
+ {
1001
+ internalType: "int256",
1002
+ name: "",
1003
+ type: "int256",
1004
+ },
1005
+ ],
1006
+ stateMutability: "view",
1007
+ type: "function",
1008
+ },
1009
+ {
1010
+ inputs: [],
1011
+ name: "dailyMintedGns",
1012
+ outputs: [
1013
+ {
1014
+ internalType: "uint256",
1015
+ name: "",
1016
+ type: "uint256",
1017
+ },
1018
+ ],
1019
+ stateMutability: "view",
1020
+ type: "function",
1021
+ },
1022
+ {
1023
+ inputs: [],
1024
+ name: "decimals",
1025
+ outputs: [
1026
+ {
1027
+ internalType: "uint8",
1028
+ name: "",
1029
+ type: "uint8",
1030
+ },
1031
+ ],
1032
+ stateMutability: "view",
1033
+ type: "function",
1034
+ },
1035
+ {
1036
+ inputs: [
1037
+ {
1038
+ internalType: "address",
1039
+ name: "spender",
1040
+ type: "address",
1041
+ },
1042
+ {
1043
+ internalType: "uint256",
1044
+ name: "subtractedValue",
1045
+ type: "uint256",
1046
+ },
1047
+ ],
1048
+ name: "decreaseAllowance",
1049
+ outputs: [
1050
+ {
1051
+ internalType: "bool",
1052
+ name: "",
1053
+ type: "bool",
1054
+ },
1055
+ ],
1056
+ stateMutability: "nonpayable",
1057
+ type: "function",
1058
+ },
1059
+ {
1060
+ inputs: [
1061
+ {
1062
+ internalType: "uint256",
1063
+ name: "assets",
1064
+ type: "uint256",
1065
+ },
1066
+ ],
1067
+ name: "deplete",
1068
+ outputs: [],
1069
+ stateMutability: "nonpayable",
1070
+ type: "function",
1071
+ },
1072
+ {
1073
+ inputs: [
1074
+ {
1075
+ internalType: "uint256",
1076
+ name: "assets",
1077
+ type: "uint256",
1078
+ },
1079
+ {
1080
+ internalType: "address",
1081
+ name: "receiver",
1082
+ type: "address",
1083
+ },
1084
+ ],
1085
+ name: "deposit",
1086
+ outputs: [
1087
+ {
1088
+ internalType: "uint256",
1089
+ name: "",
1090
+ type: "uint256",
1091
+ },
1092
+ ],
1093
+ stateMutability: "nonpayable",
1094
+ type: "function",
1095
+ },
1096
+ {
1097
+ inputs: [
1098
+ {
1099
+ internalType: "uint256",
1100
+ name: "assets",
1101
+ type: "uint256",
1102
+ },
1103
+ {
1104
+ internalType: "uint256",
1105
+ name: "lockDuration",
1106
+ type: "uint256",
1107
+ },
1108
+ {
1109
+ internalType: "address",
1110
+ name: "receiver",
1111
+ type: "address",
1112
+ },
1113
+ ],
1114
+ name: "depositWithDiscountAndLock",
1115
+ outputs: [
1116
+ {
1117
+ internalType: "uint256",
1118
+ name: "",
1119
+ type: "uint256",
1120
+ },
1121
+ ],
1122
+ stateMutability: "nonpayable",
1123
+ type: "function",
1124
+ },
1125
+ {
1126
+ inputs: [
1127
+ {
1128
+ internalType: "uint256",
1129
+ name: "assets",
1130
+ type: "uint256",
1131
+ },
1132
+ ],
1133
+ name: "distributeReward",
1134
+ outputs: [],
1135
+ stateMutability: "nonpayable",
1136
+ type: "function",
1137
+ },
1138
+ {
1139
+ inputs: [
1140
+ {
1141
+ internalType: "uint256",
1142
+ name: "depositId",
1143
+ type: "uint256",
1144
+ },
1145
+ ],
1146
+ name: "getLockedDeposit",
1147
+ outputs: [
1148
+ {
1149
+ components: [
1150
+ {
1151
+ internalType: "address",
1152
+ name: "owner",
1153
+ type: "address",
1154
+ },
1155
+ {
1156
+ internalType: "uint256",
1157
+ name: "shares",
1158
+ type: "uint256",
1159
+ },
1160
+ {
1161
+ internalType: "uint256",
1162
+ name: "assetsDeposited",
1163
+ type: "uint256",
1164
+ },
1165
+ {
1166
+ internalType: "uint256",
1167
+ name: "assetsDiscount",
1168
+ type: "uint256",
1169
+ },
1170
+ {
1171
+ internalType: "uint256",
1172
+ name: "atTimestamp",
1173
+ type: "uint256",
1174
+ },
1175
+ {
1176
+ internalType: "uint256",
1177
+ name: "lockDuration",
1178
+ type: "uint256",
1179
+ },
1180
+ ],
1181
+ internalType: "struct IGToken.LockedDeposit",
1182
+ name: "",
1183
+ type: "tuple",
1184
+ },
1185
+ ],
1186
+ stateMutability: "view",
1187
+ type: "function",
1188
+ },
1189
+ {
1190
+ inputs: [
1191
+ {
1192
+ internalType: "uint256",
1193
+ name: "currentBlock",
1194
+ type: "uint256",
1195
+ },
1196
+ ],
1197
+ name: "getPendingAccBlockWeightedMarketCap",
1198
+ outputs: [
1199
+ {
1200
+ internalType: "uint256",
1201
+ name: "",
1202
+ type: "uint256",
1203
+ },
1204
+ ],
1205
+ stateMutability: "view",
1206
+ type: "function",
1207
+ },
1208
+ {
1209
+ inputs: [],
1210
+ name: "gnsPriceProvider",
1211
+ outputs: [
1212
+ {
1213
+ internalType: "address",
1214
+ name: "addr",
1215
+ type: "address",
1216
+ },
1217
+ {
1218
+ internalType: "bytes",
1219
+ name: "signature",
1220
+ type: "bytes",
1221
+ },
1222
+ ],
1223
+ stateMutability: "view",
1224
+ type: "function",
1225
+ },
1226
+ {
1227
+ inputs: [],
1228
+ name: "gnsToken",
1229
+ outputs: [
1230
+ {
1231
+ internalType: "address",
1232
+ name: "",
1233
+ type: "address",
1234
+ },
1235
+ ],
1236
+ stateMutability: "view",
1237
+ type: "function",
1238
+ },
1239
+ {
1240
+ inputs: [],
1241
+ name: "gnsTokenToAssetsPrice",
1242
+ outputs: [
1243
+ {
1244
+ internalType: "uint256",
1245
+ name: "price",
1246
+ type: "uint256",
1247
+ },
1248
+ ],
1249
+ stateMutability: "view",
1250
+ type: "function",
1251
+ },
1252
+ {
1253
+ inputs: [
1254
+ {
1255
+ internalType: "address",
1256
+ name: "spender",
1257
+ type: "address",
1258
+ },
1259
+ {
1260
+ internalType: "uint256",
1261
+ name: "addedValue",
1262
+ type: "uint256",
1263
+ },
1264
+ ],
1265
+ name: "increaseAllowance",
1266
+ outputs: [
1267
+ {
1268
+ internalType: "bool",
1269
+ name: "",
1270
+ type: "bool",
1271
+ },
1272
+ ],
1273
+ stateMutability: "nonpayable",
1274
+ type: "function",
1275
+ },
1276
+ {
1277
+ inputs: [
1278
+ {
1279
+ internalType: "string",
1280
+ name: "_name",
1281
+ type: "string",
1282
+ },
1283
+ {
1284
+ internalType: "string",
1285
+ name: "_symbol",
1286
+ type: "string",
1287
+ },
1288
+ {
1289
+ components: [
1290
+ {
1291
+ internalType: "address",
1292
+ name: "asset",
1293
+ type: "address",
1294
+ },
1295
+ {
1296
+ internalType: "address",
1297
+ name: "owner",
1298
+ type: "address",
1299
+ },
1300
+ {
1301
+ internalType: "address",
1302
+ name: "manager",
1303
+ type: "address",
1304
+ },
1305
+ {
1306
+ internalType: "address",
1307
+ name: "admin",
1308
+ type: "address",
1309
+ },
1310
+ {
1311
+ internalType: "address",
1312
+ name: "gnsToken",
1313
+ type: "address",
1314
+ },
1315
+ {
1316
+ internalType: "address",
1317
+ name: "lockedDepositNft",
1318
+ type: "address",
1319
+ },
1320
+ {
1321
+ internalType: "address",
1322
+ name: "pnlHandler",
1323
+ type: "address",
1324
+ },
1325
+ {
1326
+ internalType: "address",
1327
+ name: "openTradesPnlFeed",
1328
+ type: "address",
1329
+ },
1330
+ {
1331
+ components: [
1332
+ {
1333
+ internalType: "address",
1334
+ name: "addr",
1335
+ type: "address",
1336
+ },
1337
+ {
1338
+ internalType: "bytes",
1339
+ name: "signature",
1340
+ type: "bytes",
1341
+ },
1342
+ ],
1343
+ internalType: "struct GTokenV6_3_2.GnsPriceProvider",
1344
+ name: "gnsPriceProvider",
1345
+ type: "tuple",
1346
+ },
1347
+ ],
1348
+ internalType: "struct GTokenV6_3_2.ContractAddresses",
1349
+ name: "_contractAddresses",
1350
+ type: "tuple",
1351
+ },
1352
+ {
1353
+ internalType: "uint256",
1354
+ name: "_MIN_LOCK_DURATION",
1355
+ type: "uint256",
1356
+ },
1357
+ {
1358
+ internalType: "uint256",
1359
+ name: "_maxAccOpenPnlDelta",
1360
+ type: "uint256",
1361
+ },
1362
+ {
1363
+ internalType: "uint256",
1364
+ name: "_maxDailyAccPnlDelta",
1365
+ type: "uint256",
1366
+ },
1367
+ {
1368
+ internalType: "uint256[2]",
1369
+ name: "_withdrawLockThresholdsP",
1370
+ type: "uint256[2]",
1371
+ },
1372
+ {
1373
+ internalType: "uint256",
1374
+ name: "_maxSupplyIncreaseDailyP",
1375
+ type: "uint256",
1376
+ },
1377
+ {
1378
+ internalType: "uint256",
1379
+ name: "_lossesBurnP",
1380
+ type: "uint256",
1381
+ },
1382
+ {
1383
+ internalType: "uint256",
1384
+ name: "_maxGnsSupplyMintDailyP",
1385
+ type: "uint256",
1386
+ },
1387
+ {
1388
+ internalType: "uint256",
1389
+ name: "_maxDiscountP",
1390
+ type: "uint256",
1391
+ },
1392
+ {
1393
+ internalType: "uint256",
1394
+ name: "_maxDiscountThresholdP",
1395
+ type: "uint256",
1396
+ },
1397
+ ],
1398
+ name: "initialize",
1399
+ outputs: [],
1400
+ stateMutability: "nonpayable",
1401
+ type: "function",
1402
+ },
1403
+ {
1404
+ inputs: [],
1405
+ name: "initializeV2",
1406
+ outputs: [],
1407
+ stateMutability: "nonpayable",
1408
+ type: "function",
1409
+ },
1410
+ {
1411
+ inputs: [],
1412
+ name: "lastDailyAccPnlDeltaReset",
1413
+ outputs: [
1414
+ {
1415
+ internalType: "uint256",
1416
+ name: "",
1417
+ type: "uint256",
1418
+ },
1419
+ ],
1420
+ stateMutability: "view",
1421
+ type: "function",
1422
+ },
1423
+ {
1424
+ inputs: [],
1425
+ name: "lastDailyMintedGnsReset",
1426
+ outputs: [
1427
+ {
1428
+ internalType: "uint256",
1429
+ name: "",
1430
+ type: "uint256",
1431
+ },
1432
+ ],
1433
+ stateMutability: "view",
1434
+ type: "function",
1435
+ },
1436
+ {
1437
+ inputs: [],
1438
+ name: "lastMaxSupplyUpdate",
1439
+ outputs: [
1440
+ {
1441
+ internalType: "uint256",
1442
+ name: "",
1443
+ type: "uint256",
1444
+ },
1445
+ ],
1446
+ stateMutability: "view",
1447
+ type: "function",
1448
+ },
1449
+ {
1450
+ inputs: [
1451
+ {
1452
+ internalType: "uint256",
1453
+ name: "collatP",
1454
+ type: "uint256",
1455
+ },
1456
+ {
1457
+ internalType: "uint256",
1458
+ name: "lockDuration",
1459
+ type: "uint256",
1460
+ },
1461
+ ],
1462
+ name: "lockDiscountP",
1463
+ outputs: [
1464
+ {
1465
+ internalType: "uint256",
1466
+ name: "",
1467
+ type: "uint256",
1468
+ },
1469
+ ],
1470
+ stateMutability: "view",
1471
+ type: "function",
1472
+ },
1473
+ {
1474
+ inputs: [],
1475
+ name: "lockedDepositNft",
1476
+ outputs: [
1477
+ {
1478
+ internalType: "contract INft",
1479
+ name: "",
1480
+ type: "address",
1481
+ },
1482
+ ],
1483
+ stateMutability: "view",
1484
+ type: "function",
1485
+ },
1486
+ {
1487
+ inputs: [
1488
+ {
1489
+ internalType: "uint256",
1490
+ name: "",
1491
+ type: "uint256",
1492
+ },
1493
+ ],
1494
+ name: "lockedDeposits",
1495
+ outputs: [
1496
+ {
1497
+ internalType: "address",
1498
+ name: "owner",
1499
+ type: "address",
1500
+ },
1501
+ {
1502
+ internalType: "uint256",
1503
+ name: "shares",
1504
+ type: "uint256",
1505
+ },
1506
+ {
1507
+ internalType: "uint256",
1508
+ name: "assetsDeposited",
1509
+ type: "uint256",
1510
+ },
1511
+ {
1512
+ internalType: "uint256",
1513
+ name: "assetsDiscount",
1514
+ type: "uint256",
1515
+ },
1516
+ {
1517
+ internalType: "uint256",
1518
+ name: "atTimestamp",
1519
+ type: "uint256",
1520
+ },
1521
+ {
1522
+ internalType: "uint256",
1523
+ name: "lockDuration",
1524
+ type: "uint256",
1525
+ },
1526
+ ],
1527
+ stateMutability: "view",
1528
+ type: "function",
1529
+ },
1530
+ {
1531
+ inputs: [],
1532
+ name: "lockedDepositsCount",
1533
+ outputs: [
1534
+ {
1535
+ internalType: "uint256",
1536
+ name: "",
1537
+ type: "uint256",
1538
+ },
1539
+ ],
1540
+ stateMutability: "view",
1541
+ type: "function",
1542
+ },
1543
+ {
1544
+ inputs: [],
1545
+ name: "lossesBurnP",
1546
+ outputs: [
1547
+ {
1548
+ internalType: "uint256",
1549
+ name: "",
1550
+ type: "uint256",
1551
+ },
1552
+ ],
1553
+ stateMutability: "view",
1554
+ type: "function",
1555
+ },
1556
+ {
1557
+ inputs: [
1558
+ {
1559
+ internalType: "uint256",
1560
+ name: "shares",
1561
+ type: "uint256",
1562
+ },
1563
+ {
1564
+ internalType: "address",
1565
+ name: "owner",
1566
+ type: "address",
1567
+ },
1568
+ ],
1569
+ name: "makeWithdrawRequest",
1570
+ outputs: [],
1571
+ stateMutability: "nonpayable",
1572
+ type: "function",
1573
+ },
1574
+ {
1575
+ inputs: [],
1576
+ name: "manager",
1577
+ outputs: [
1578
+ {
1579
+ internalType: "address",
1580
+ name: "",
1581
+ type: "address",
1582
+ },
1583
+ ],
1584
+ stateMutability: "view",
1585
+ type: "function",
1586
+ },
1587
+ {
1588
+ inputs: [],
1589
+ name: "marketCap",
1590
+ outputs: [
1591
+ {
1592
+ internalType: "uint256",
1593
+ name: "",
1594
+ type: "uint256",
1595
+ },
1596
+ ],
1597
+ stateMutability: "view",
1598
+ type: "function",
1599
+ },
1600
+ {
1601
+ inputs: [],
1602
+ name: "maxAccOpenPnlDelta",
1603
+ outputs: [
1604
+ {
1605
+ internalType: "uint256",
1606
+ name: "",
1607
+ type: "uint256",
1608
+ },
1609
+ ],
1610
+ stateMutability: "view",
1611
+ type: "function",
1612
+ },
1613
+ {
1614
+ inputs: [],
1615
+ name: "maxAccPnlPerToken",
1616
+ outputs: [
1617
+ {
1618
+ internalType: "uint256",
1619
+ name: "",
1620
+ type: "uint256",
1621
+ },
1622
+ ],
1623
+ stateMutability: "view",
1624
+ type: "function",
1625
+ },
1626
+ {
1627
+ inputs: [],
1628
+ name: "maxDailyAccPnlDelta",
1629
+ outputs: [
1630
+ {
1631
+ internalType: "uint256",
1632
+ name: "",
1633
+ type: "uint256",
1634
+ },
1635
+ ],
1636
+ stateMutability: "view",
1637
+ type: "function",
1638
+ },
1639
+ {
1640
+ inputs: [
1641
+ {
1642
+ internalType: "address",
1643
+ name: "owner",
1644
+ type: "address",
1645
+ },
1646
+ ],
1647
+ name: "maxDeposit",
1648
+ outputs: [
1649
+ {
1650
+ internalType: "uint256",
1651
+ name: "",
1652
+ type: "uint256",
1653
+ },
1654
+ ],
1655
+ stateMutability: "view",
1656
+ type: "function",
1657
+ },
1658
+ {
1659
+ inputs: [],
1660
+ name: "maxDiscountP",
1661
+ outputs: [
1662
+ {
1663
+ internalType: "uint256",
1664
+ name: "",
1665
+ type: "uint256",
1666
+ },
1667
+ ],
1668
+ stateMutability: "view",
1669
+ type: "function",
1670
+ },
1671
+ {
1672
+ inputs: [],
1673
+ name: "maxDiscountThresholdP",
1674
+ outputs: [
1675
+ {
1676
+ internalType: "uint256",
1677
+ name: "",
1678
+ type: "uint256",
1679
+ },
1680
+ ],
1681
+ stateMutability: "view",
1682
+ type: "function",
1683
+ },
1684
+ {
1685
+ inputs: [],
1686
+ name: "maxGnsSupplyMintDailyP",
1687
+ outputs: [
1688
+ {
1689
+ internalType: "uint256",
1690
+ name: "",
1691
+ type: "uint256",
1692
+ },
1693
+ ],
1694
+ stateMutability: "view",
1695
+ type: "function",
1696
+ },
1697
+ {
1698
+ inputs: [
1699
+ {
1700
+ internalType: "address",
1701
+ name: "",
1702
+ type: "address",
1703
+ },
1704
+ ],
1705
+ name: "maxMint",
1706
+ outputs: [
1707
+ {
1708
+ internalType: "uint256",
1709
+ name: "",
1710
+ type: "uint256",
1711
+ },
1712
+ ],
1713
+ stateMutability: "view",
1714
+ type: "function",
1715
+ },
1716
+ {
1717
+ inputs: [
1718
+ {
1719
+ internalType: "address",
1720
+ name: "owner",
1721
+ type: "address",
1722
+ },
1723
+ ],
1724
+ name: "maxRedeem",
1725
+ outputs: [
1726
+ {
1727
+ internalType: "uint256",
1728
+ name: "",
1729
+ type: "uint256",
1730
+ },
1731
+ ],
1732
+ stateMutability: "view",
1733
+ type: "function",
1734
+ },
1735
+ {
1736
+ inputs: [],
1737
+ name: "maxSupplyIncreaseDailyP",
1738
+ outputs: [
1739
+ {
1740
+ internalType: "uint256",
1741
+ name: "",
1742
+ type: "uint256",
1743
+ },
1744
+ ],
1745
+ stateMutability: "view",
1746
+ type: "function",
1747
+ },
1748
+ {
1749
+ inputs: [
1750
+ {
1751
+ internalType: "address",
1752
+ name: "owner",
1753
+ type: "address",
1754
+ },
1755
+ ],
1756
+ name: "maxWithdraw",
1757
+ outputs: [
1758
+ {
1759
+ internalType: "uint256",
1760
+ name: "",
1761
+ type: "uint256",
1762
+ },
1763
+ ],
1764
+ stateMutability: "view",
1765
+ type: "function",
1766
+ },
1767
+ {
1768
+ inputs: [
1769
+ {
1770
+ internalType: "uint256",
1771
+ name: "shares",
1772
+ type: "uint256",
1773
+ },
1774
+ {
1775
+ internalType: "address",
1776
+ name: "receiver",
1777
+ type: "address",
1778
+ },
1779
+ ],
1780
+ name: "mint",
1781
+ outputs: [
1782
+ {
1783
+ internalType: "uint256",
1784
+ name: "",
1785
+ type: "uint256",
1786
+ },
1787
+ ],
1788
+ stateMutability: "nonpayable",
1789
+ type: "function",
1790
+ },
1791
+ {
1792
+ inputs: [
1793
+ {
1794
+ internalType: "uint256",
1795
+ name: "shares",
1796
+ type: "uint256",
1797
+ },
1798
+ {
1799
+ internalType: "uint256",
1800
+ name: "lockDuration",
1801
+ type: "uint256",
1802
+ },
1803
+ {
1804
+ internalType: "address",
1805
+ name: "receiver",
1806
+ type: "address",
1807
+ },
1808
+ ],
1809
+ name: "mintWithDiscountAndLock",
1810
+ outputs: [
1811
+ {
1812
+ internalType: "uint256",
1813
+ name: "",
1814
+ type: "uint256",
1815
+ },
1816
+ ],
1817
+ stateMutability: "nonpayable",
1818
+ type: "function",
1819
+ },
1820
+ {
1821
+ inputs: [],
1822
+ name: "name",
1823
+ outputs: [
1824
+ {
1825
+ internalType: "string",
1826
+ name: "",
1827
+ type: "string",
1828
+ },
1829
+ ],
1830
+ stateMutability: "view",
1831
+ type: "function",
1832
+ },
1833
+ {
1834
+ inputs: [],
1835
+ name: "openTradesPnlFeed",
1836
+ outputs: [
1837
+ {
1838
+ internalType: "contract IOpenTradesPnlFeed",
1839
+ name: "",
1840
+ type: "address",
1841
+ },
1842
+ ],
1843
+ stateMutability: "view",
1844
+ type: "function",
1845
+ },
1846
+ {
1847
+ inputs: [],
1848
+ name: "owner",
1849
+ outputs: [
1850
+ {
1851
+ internalType: "address",
1852
+ name: "",
1853
+ type: "address",
1854
+ },
1855
+ ],
1856
+ stateMutability: "view",
1857
+ type: "function",
1858
+ },
1859
+ {
1860
+ inputs: [],
1861
+ name: "pnlHandler",
1862
+ outputs: [
1863
+ {
1864
+ internalType: "address",
1865
+ name: "",
1866
+ type: "address",
1867
+ },
1868
+ ],
1869
+ stateMutability: "view",
1870
+ type: "function",
1871
+ },
1872
+ {
1873
+ inputs: [
1874
+ {
1875
+ internalType: "uint256",
1876
+ name: "assets",
1877
+ type: "uint256",
1878
+ },
1879
+ ],
1880
+ name: "previewDeposit",
1881
+ outputs: [
1882
+ {
1883
+ internalType: "uint256",
1884
+ name: "",
1885
+ type: "uint256",
1886
+ },
1887
+ ],
1888
+ stateMutability: "view",
1889
+ type: "function",
1890
+ },
1891
+ {
1892
+ inputs: [
1893
+ {
1894
+ internalType: "uint256",
1895
+ name: "shares",
1896
+ type: "uint256",
1897
+ },
1898
+ ],
1899
+ name: "previewMint",
1900
+ outputs: [
1901
+ {
1902
+ internalType: "uint256",
1903
+ name: "",
1904
+ type: "uint256",
1905
+ },
1906
+ ],
1907
+ stateMutability: "view",
1908
+ type: "function",
1909
+ },
1910
+ {
1911
+ inputs: [
1912
+ {
1913
+ internalType: "uint256",
1914
+ name: "shares",
1915
+ type: "uint256",
1916
+ },
1917
+ ],
1918
+ name: "previewRedeem",
1919
+ outputs: [
1920
+ {
1921
+ internalType: "uint256",
1922
+ name: "",
1923
+ type: "uint256",
1924
+ },
1925
+ ],
1926
+ stateMutability: "view",
1927
+ type: "function",
1928
+ },
1929
+ {
1930
+ inputs: [
1931
+ {
1932
+ internalType: "uint256",
1933
+ name: "assets",
1934
+ type: "uint256",
1935
+ },
1936
+ ],
1937
+ name: "previewWithdraw",
1938
+ outputs: [
1939
+ {
1940
+ internalType: "uint256",
1941
+ name: "",
1942
+ type: "uint256",
1943
+ },
1944
+ ],
1945
+ stateMutability: "view",
1946
+ type: "function",
1947
+ },
1948
+ {
1949
+ inputs: [
1950
+ {
1951
+ internalType: "uint256",
1952
+ name: "assets",
1953
+ type: "uint256",
1954
+ },
1955
+ {
1956
+ internalType: "address",
1957
+ name: "user",
1958
+ type: "address",
1959
+ },
1960
+ ],
1961
+ name: "receiveAssets",
1962
+ outputs: [],
1963
+ stateMutability: "nonpayable",
1964
+ type: "function",
1965
+ },
1966
+ {
1967
+ inputs: [
1968
+ {
1969
+ internalType: "uint256",
1970
+ name: "shares",
1971
+ type: "uint256",
1972
+ },
1973
+ {
1974
+ internalType: "address",
1975
+ name: "receiver",
1976
+ type: "address",
1977
+ },
1978
+ {
1979
+ internalType: "address",
1980
+ name: "owner",
1981
+ type: "address",
1982
+ },
1983
+ ],
1984
+ name: "redeem",
1985
+ outputs: [
1986
+ {
1987
+ internalType: "uint256",
1988
+ name: "",
1989
+ type: "uint256",
1990
+ },
1991
+ ],
1992
+ stateMutability: "nonpayable",
1993
+ type: "function",
1994
+ },
1995
+ {
1996
+ inputs: [
1997
+ {
1998
+ internalType: "uint256",
1999
+ name: "assets",
2000
+ type: "uint256",
2001
+ },
2002
+ ],
2003
+ name: "refill",
2004
+ outputs: [],
2005
+ stateMutability: "nonpayable",
2006
+ type: "function",
2007
+ },
2008
+ {
2009
+ inputs: [],
2010
+ name: "renounceOwnership",
2011
+ outputs: [],
2012
+ stateMutability: "nonpayable",
2013
+ type: "function",
2014
+ },
2015
+ {
2016
+ inputs: [
2017
+ {
2018
+ internalType: "uint256",
2019
+ name: "assets",
2020
+ type: "uint256",
2021
+ },
2022
+ {
2023
+ internalType: "address",
2024
+ name: "receiver",
2025
+ type: "address",
2026
+ },
2027
+ ],
2028
+ name: "sendAssets",
2029
+ outputs: [],
2030
+ stateMutability: "nonpayable",
2031
+ type: "function",
2032
+ },
2033
+ {
2034
+ inputs: [],
2035
+ name: "shareToAssetsPrice",
2036
+ outputs: [
2037
+ {
2038
+ internalType: "uint256",
2039
+ name: "",
2040
+ type: "uint256",
2041
+ },
2042
+ ],
2043
+ stateMutability: "view",
2044
+ type: "function",
2045
+ },
2046
+ {
2047
+ inputs: [],
2048
+ name: "storeAccBlockWeightedMarketCap",
2049
+ outputs: [],
2050
+ stateMutability: "nonpayable",
2051
+ type: "function",
2052
+ },
2053
+ {
2054
+ inputs: [],
2055
+ name: "symbol",
2056
+ outputs: [
2057
+ {
2058
+ internalType: "string",
2059
+ name: "",
2060
+ type: "string",
2061
+ },
2062
+ ],
2063
+ stateMutability: "view",
2064
+ type: "function",
2065
+ },
2066
+ {
2067
+ inputs: [],
2068
+ name: "totalAssets",
2069
+ outputs: [
2070
+ {
2071
+ internalType: "uint256",
2072
+ name: "",
2073
+ type: "uint256",
2074
+ },
2075
+ ],
2076
+ stateMutability: "view",
2077
+ type: "function",
2078
+ },
2079
+ {
2080
+ inputs: [],
2081
+ name: "totalClosedPnl",
2082
+ outputs: [
2083
+ {
2084
+ internalType: "int256",
2085
+ name: "",
2086
+ type: "int256",
2087
+ },
2088
+ ],
2089
+ stateMutability: "view",
2090
+ type: "function",
2091
+ },
2092
+ {
2093
+ inputs: [],
2094
+ name: "totalDepleted",
2095
+ outputs: [
2096
+ {
2097
+ internalType: "uint256",
2098
+ name: "",
2099
+ type: "uint256",
2100
+ },
2101
+ ],
2102
+ stateMutability: "view",
2103
+ type: "function",
2104
+ },
2105
+ {
2106
+ inputs: [],
2107
+ name: "totalDepletedGns",
2108
+ outputs: [
2109
+ {
2110
+ internalType: "uint256",
2111
+ name: "",
2112
+ type: "uint256",
2113
+ },
2114
+ ],
2115
+ stateMutability: "view",
2116
+ type: "function",
2117
+ },
2118
+ {
2119
+ inputs: [],
2120
+ name: "totalDeposited",
2121
+ outputs: [
2122
+ {
2123
+ internalType: "uint256",
2124
+ name: "",
2125
+ type: "uint256",
2126
+ },
2127
+ ],
2128
+ stateMutability: "view",
2129
+ type: "function",
2130
+ },
2131
+ {
2132
+ inputs: [],
2133
+ name: "totalDiscounts",
2134
+ outputs: [
2135
+ {
2136
+ internalType: "uint256",
2137
+ name: "",
2138
+ type: "uint256",
2139
+ },
2140
+ ],
2141
+ stateMutability: "view",
2142
+ type: "function",
2143
+ },
2144
+ {
2145
+ inputs: [],
2146
+ name: "totalLiability",
2147
+ outputs: [
2148
+ {
2149
+ internalType: "int256",
2150
+ name: "",
2151
+ type: "int256",
2152
+ },
2153
+ ],
2154
+ stateMutability: "view",
2155
+ type: "function",
2156
+ },
2157
+ {
2158
+ inputs: [],
2159
+ name: "totalLockedDiscounts",
2160
+ outputs: [
2161
+ {
2162
+ internalType: "uint256",
2163
+ name: "",
2164
+ type: "uint256",
2165
+ },
2166
+ ],
2167
+ stateMutability: "view",
2168
+ type: "function",
2169
+ },
2170
+ {
2171
+ inputs: [],
2172
+ name: "totalRefilled",
2173
+ outputs: [
2174
+ {
2175
+ internalType: "uint256",
2176
+ name: "",
2177
+ type: "uint256",
2178
+ },
2179
+ ],
2180
+ stateMutability: "view",
2181
+ type: "function",
2182
+ },
2183
+ {
2184
+ inputs: [],
2185
+ name: "totalRefilledGns",
2186
+ outputs: [
2187
+ {
2188
+ internalType: "uint256",
2189
+ name: "",
2190
+ type: "uint256",
2191
+ },
2192
+ ],
2193
+ stateMutability: "view",
2194
+ type: "function",
2195
+ },
2196
+ {
2197
+ inputs: [],
2198
+ name: "totalRewards",
2199
+ outputs: [
2200
+ {
2201
+ internalType: "uint256",
2202
+ name: "",
2203
+ type: "uint256",
2204
+ },
2205
+ ],
2206
+ stateMutability: "view",
2207
+ type: "function",
2208
+ },
2209
+ {
2210
+ inputs: [
2211
+ {
2212
+ internalType: "address",
2213
+ name: "owner",
2214
+ type: "address",
2215
+ },
2216
+ ],
2217
+ name: "totalSharesBeingWithdrawn",
2218
+ outputs: [
2219
+ {
2220
+ internalType: "uint256",
2221
+ name: "shares",
2222
+ type: "uint256",
2223
+ },
2224
+ ],
2225
+ stateMutability: "view",
2226
+ type: "function",
2227
+ },
2228
+ {
2229
+ inputs: [],
2230
+ name: "totalSupply",
2231
+ outputs: [
2232
+ {
2233
+ internalType: "uint256",
2234
+ name: "",
2235
+ type: "uint256",
2236
+ },
2237
+ ],
2238
+ stateMutability: "view",
2239
+ type: "function",
2240
+ },
2241
+ {
2242
+ inputs: [
2243
+ {
2244
+ internalType: "address",
2245
+ name: "to",
2246
+ type: "address",
2247
+ },
2248
+ {
2249
+ internalType: "uint256",
2250
+ name: "amount",
2251
+ type: "uint256",
2252
+ },
2253
+ ],
2254
+ name: "transfer",
2255
+ outputs: [
2256
+ {
2257
+ internalType: "bool",
2258
+ name: "",
2259
+ type: "bool",
2260
+ },
2261
+ ],
2262
+ stateMutability: "nonpayable",
2263
+ type: "function",
2264
+ },
2265
+ {
2266
+ inputs: [
2267
+ {
2268
+ internalType: "address",
2269
+ name: "from",
2270
+ type: "address",
2271
+ },
2272
+ {
2273
+ internalType: "address",
2274
+ name: "to",
2275
+ type: "address",
2276
+ },
2277
+ {
2278
+ internalType: "uint256",
2279
+ name: "amount",
2280
+ type: "uint256",
2281
+ },
2282
+ ],
2283
+ name: "transferFrom",
2284
+ outputs: [
2285
+ {
2286
+ internalType: "bool",
2287
+ name: "",
2288
+ type: "bool",
2289
+ },
2290
+ ],
2291
+ stateMutability: "nonpayable",
2292
+ type: "function",
2293
+ },
2294
+ {
2295
+ inputs: [
2296
+ {
2297
+ internalType: "address",
2298
+ name: "newOwner",
2299
+ type: "address",
2300
+ },
2301
+ ],
2302
+ name: "transferOwnership",
2303
+ outputs: [],
2304
+ stateMutability: "nonpayable",
2305
+ type: "function",
2306
+ },
2307
+ {
2308
+ inputs: [],
2309
+ name: "tryNewOpenPnlRequestOrEpoch",
2310
+ outputs: [],
2311
+ stateMutability: "nonpayable",
2312
+ type: "function",
2313
+ },
2314
+ {
2315
+ inputs: [],
2316
+ name: "tryResetDailyAccPnlDelta",
2317
+ outputs: [],
2318
+ stateMutability: "nonpayable",
2319
+ type: "function",
2320
+ },
2321
+ {
2322
+ inputs: [],
2323
+ name: "tryUpdateCurrentMaxSupply",
2324
+ outputs: [],
2325
+ stateMutability: "nonpayable",
2326
+ type: "function",
2327
+ },
2328
+ {
2329
+ inputs: [],
2330
+ name: "tvl",
2331
+ outputs: [
2332
+ {
2333
+ internalType: "uint256",
2334
+ name: "",
2335
+ type: "uint256",
2336
+ },
2337
+ ],
2338
+ stateMutability: "view",
2339
+ type: "function",
2340
+ },
2341
+ {
2342
+ inputs: [
2343
+ {
2344
+ internalType: "uint256",
2345
+ name: "depositId",
2346
+ type: "uint256",
2347
+ },
2348
+ {
2349
+ internalType: "address",
2350
+ name: "receiver",
2351
+ type: "address",
2352
+ },
2353
+ ],
2354
+ name: "unlockDeposit",
2355
+ outputs: [],
2356
+ stateMutability: "nonpayable",
2357
+ type: "function",
2358
+ },
2359
+ {
2360
+ inputs: [
2361
+ {
2362
+ internalType: "uint256",
2363
+ name: "prevPositiveOpenPnl",
2364
+ type: "uint256",
2365
+ },
2366
+ {
2367
+ internalType: "uint256",
2368
+ name: "newPositiveOpenPnl",
2369
+ type: "uint256",
2370
+ },
2371
+ ],
2372
+ name: "updateAccPnlPerTokenUsed",
2373
+ outputs: [
2374
+ {
2375
+ internalType: "uint256",
2376
+ name: "",
2377
+ type: "uint256",
2378
+ },
2379
+ ],
2380
+ stateMutability: "nonpayable",
2381
+ type: "function",
2382
+ },
2383
+ {
2384
+ inputs: [
2385
+ {
2386
+ internalType: "address",
2387
+ name: "newValue",
2388
+ type: "address",
2389
+ },
2390
+ ],
2391
+ name: "updateAdmin",
2392
+ outputs: [],
2393
+ stateMutability: "nonpayable",
2394
+ type: "function",
2395
+ },
2396
+ {
2397
+ inputs: [
2398
+ {
2399
+ components: [
2400
+ {
2401
+ internalType: "address",
2402
+ name: "addr",
2403
+ type: "address",
2404
+ },
2405
+ {
2406
+ internalType: "bytes",
2407
+ name: "signature",
2408
+ type: "bytes",
2409
+ },
2410
+ ],
2411
+ internalType: "struct GTokenV6_3_2.GnsPriceProvider",
2412
+ name: "newValue",
2413
+ type: "tuple",
2414
+ },
2415
+ ],
2416
+ name: "updateGnsPriceProvider",
2417
+ outputs: [],
2418
+ stateMutability: "nonpayable",
2419
+ type: "function",
2420
+ },
2421
+ {
2422
+ inputs: [
2423
+ {
2424
+ internalType: "uint256",
2425
+ name: "newValue",
2426
+ type: "uint256",
2427
+ },
2428
+ ],
2429
+ name: "updateLossesBurnP",
2430
+ outputs: [],
2431
+ stateMutability: "nonpayable",
2432
+ type: "function",
2433
+ },
2434
+ {
2435
+ inputs: [
2436
+ {
2437
+ internalType: "address",
2438
+ name: "newValue",
2439
+ type: "address",
2440
+ },
2441
+ ],
2442
+ name: "updateManager",
2443
+ outputs: [],
2444
+ stateMutability: "nonpayable",
2445
+ type: "function",
2446
+ },
2447
+ {
2448
+ inputs: [
2449
+ {
2450
+ internalType: "uint256",
2451
+ name: "newValue",
2452
+ type: "uint256",
2453
+ },
2454
+ ],
2455
+ name: "updateMaxAccOpenPnlDelta",
2456
+ outputs: [],
2457
+ stateMutability: "nonpayable",
2458
+ type: "function",
2459
+ },
2460
+ {
2461
+ inputs: [
2462
+ {
2463
+ internalType: "uint256",
2464
+ name: "newValue",
2465
+ type: "uint256",
2466
+ },
2467
+ ],
2468
+ name: "updateMaxDailyAccPnlDelta",
2469
+ outputs: [],
2470
+ stateMutability: "nonpayable",
2471
+ type: "function",
2472
+ },
2473
+ {
2474
+ inputs: [
2475
+ {
2476
+ internalType: "uint256",
2477
+ name: "newValue",
2478
+ type: "uint256",
2479
+ },
2480
+ ],
2481
+ name: "updateMaxDiscountP",
2482
+ outputs: [],
2483
+ stateMutability: "nonpayable",
2484
+ type: "function",
2485
+ },
2486
+ {
2487
+ inputs: [
2488
+ {
2489
+ internalType: "uint256",
2490
+ name: "newValue",
2491
+ type: "uint256",
2492
+ },
2493
+ ],
2494
+ name: "updateMaxDiscountThresholdP",
2495
+ outputs: [],
2496
+ stateMutability: "nonpayable",
2497
+ type: "function",
2498
+ },
2499
+ {
2500
+ inputs: [
2501
+ {
2502
+ internalType: "uint256",
2503
+ name: "newValue",
2504
+ type: "uint256",
2505
+ },
2506
+ ],
2507
+ name: "updateMaxGnsSupplyMintDailyP",
2508
+ outputs: [],
2509
+ stateMutability: "nonpayable",
2510
+ type: "function",
2511
+ },
2512
+ {
2513
+ inputs: [
2514
+ {
2515
+ internalType: "uint256",
2516
+ name: "newValue",
2517
+ type: "uint256",
2518
+ },
2519
+ ],
2520
+ name: "updateMaxSupplyIncreaseDailyP",
2521
+ outputs: [],
2522
+ stateMutability: "nonpayable",
2523
+ type: "function",
2524
+ },
2525
+ {
2526
+ inputs: [
2527
+ {
2528
+ internalType: "address",
2529
+ name: "newValue",
2530
+ type: "address",
2531
+ },
2532
+ ],
2533
+ name: "updateOpenTradesPnlFeed",
2534
+ outputs: [],
2535
+ stateMutability: "nonpayable",
2536
+ type: "function",
2537
+ },
2538
+ {
2539
+ inputs: [
2540
+ {
2541
+ internalType: "address",
2542
+ name: "newValue",
2543
+ type: "address",
2544
+ },
2545
+ ],
2546
+ name: "updatePnlHandler",
2547
+ outputs: [],
2548
+ stateMutability: "nonpayable",
2549
+ type: "function",
2550
+ },
2551
+ {
2552
+ inputs: [
2553
+ {
2554
+ internalType: "uint256[2]",
2555
+ name: "newValue",
2556
+ type: "uint256[2]",
2557
+ },
2558
+ ],
2559
+ name: "updateWithdrawLockThresholdsP",
2560
+ outputs: [],
2561
+ stateMutability: "nonpayable",
2562
+ type: "function",
2563
+ },
2564
+ {
2565
+ inputs: [
2566
+ {
2567
+ internalType: "uint256",
2568
+ name: "assets",
2569
+ type: "uint256",
2570
+ },
2571
+ {
2572
+ internalType: "address",
2573
+ name: "receiver",
2574
+ type: "address",
2575
+ },
2576
+ {
2577
+ internalType: "address",
2578
+ name: "owner",
2579
+ type: "address",
2580
+ },
2581
+ ],
2582
+ name: "withdraw",
2583
+ outputs: [
2584
+ {
2585
+ internalType: "uint256",
2586
+ name: "",
2587
+ type: "uint256",
2588
+ },
2589
+ ],
2590
+ stateMutability: "nonpayable",
2591
+ type: "function",
2592
+ },
2593
+ {
2594
+ inputs: [],
2595
+ name: "withdrawEpochsTimelock",
2596
+ outputs: [
2597
+ {
2598
+ internalType: "uint256",
2599
+ name: "",
2600
+ type: "uint256",
2601
+ },
2602
+ ],
2603
+ stateMutability: "view",
2604
+ type: "function",
2605
+ },
2606
+ {
2607
+ inputs: [
2608
+ {
2609
+ internalType: "uint256",
2610
+ name: "",
2611
+ type: "uint256",
2612
+ },
2613
+ ],
2614
+ name: "withdrawLockThresholdsP",
2615
+ outputs: [
2616
+ {
2617
+ internalType: "uint256",
2618
+ name: "",
2619
+ type: "uint256",
2620
+ },
2621
+ ],
2622
+ stateMutability: "view",
2623
+ type: "function",
2624
+ },
2625
+ {
2626
+ inputs: [
2627
+ {
2628
+ internalType: "address",
2629
+ name: "",
2630
+ type: "address",
2631
+ },
2632
+ {
2633
+ internalType: "uint256",
2634
+ name: "",
2635
+ type: "uint256",
2636
+ },
2637
+ ],
2638
+ name: "withdrawRequests",
2639
+ outputs: [
2640
+ {
2641
+ internalType: "uint256",
2642
+ name: "",
2643
+ type: "uint256",
2644
+ },
2645
+ ],
2646
+ stateMutability: "view",
2647
+ type: "function",
2648
+ },
2649
+ ];
2650
+ const _bytecode = "0x608060405234801561001057600080fd5b50615f2280620000216000396000f3fe608060405234801561001057600080fd5b50600436106106175760003560e01c80638da5cb5b11610328578063ce96cb77116101b4578063e7839676116100fa578063f2fde38b116100a8578063f2fde38b14610d3f578063f31bd8f714610d52578063f5521eaa14610d5b578063f851a44014610d6e578063f8fb10f714610d81578063faf33f2914610d8a578063fe0b6d9014610d93578063ff50abdc14610da657600080fd5b8063e783967614610ca6578063e7899c0614610d09578063e8e4311014610d11578063ea5f2bba14610d24578063ef01ed9314610d2d578063ef8b30f714610b84578063f0a7744614610d3657600080fd5b8063d905777e11610162578063d905777e14610c37578063db0447d514610c4a578063dd62ed3e14610c53578063ddd65e3114610c66578063e065600514610c6f578063e2f273bd14610c78578063e5328e0614610c8b578063e66a6e3b14610c9357600080fd5b8063ce96cb7714610bbd578063ce9e1b2114610bd0578063cf39c2db14610be3578063d1e08c2014610bf6578063d229b2dd14610c09578063d272df1014610c1c578063d8bdfd4814610c2f57600080fd5b8063b224e73511610279578063be216e8311610227578063be216e8314610b45578063c117ef3d14610b4d578063c4c1416914610b56578063c63384ab14610b69578063c63d75b614610b71578063c6e6f59214610b84578063ca9d07ba14610b97578063cb7f2c3914610baa57600080fd5b8063b224e73514610a59578063b3c4850a14610a62578063b3d7f6b914610a75578063b460af9414610a88578063b54bf9c914610a9b578063b82c589914610aae578063ba08765214610b3257600080fd5b8063a457c2d7116102d6578063a457c2d7146109d4578063a481c14b146109e7578063a50043a0146109fa578063a8abe90514610a0d578063a9059cbb14610a20578063aabf8ede14610a33578063ad00a5a414610a4657600080fd5b80638da5cb5b14610966578063940a4e451461097757806394bf804d1461098a57806395d89b411461099d578063979abb25146109a5578063979b0895146109b85780639aca06dc146109cb57600080fd5b8063481c6a75116104a75780636ce7dcc9116103f857806375cd9da9116103a657806375cd9da914610914578063766718081461091d57806378b4330f1461092657806379431d9c1461092f5780637dfc6922146109425780637fcff2af1461094b5780638c465629146109545780638d6cb2881461095d57600080fd5b80636ce7dcc9146108825780636d6ca319146108955780636e553f65146108c05780636ee432f2146108d357806370a08231146108e6578063715018a6146108f95780637361a5441461090157600080fd5b80635a6953d3116104555780635a6953d31461083b5780635cd8a76b1461084e5780635e93f860146108565780635f4ae7411461085f57806361a8c8c4146108685780636445ec001461087157806366d8ecf11461087957600080fd5b8063481c6a75146107da5780634cdad5061461066a5780634ea0ddf7146107ed57806353409be2146107f657806354508847146107ff57806358aba00f14610812578063596f0bc51461082557600080fd5b80631f91f2871161056c5780632c135b931161051a5780632c135b9314610762578063313ce5671461076a57806338d52e0f14610789578063395093511461079a5780633b418c1e146107ad5780633cc77527146107b65780633d7e4587146107bf578063402d267d146107c757600080fd5b80631f91f287146106ef5780631fc8d0991461071a57806320124bce1461072257806320e70a561461072a578063215e2fae1461073d57806322b2ef851461074657806323b872dd1461074f57600080fd5b80630a28a477116105c95780630a28a477146106a85780630dfb5287146106bb5780630e15561a146106c35780630fc29349146106cc5780630fcc6f31146106d5578063104aeef8146106de57806318160ddd146106e757600080fd5b806301e1d1141461061c5780630307604f146106375780630344e8a31461064057806306fdde031461065557806307a2d13a1461066a5780630851a2021461067d578063095ea7b314610685575b600080fd5b610624610daf565b6040519081526020015b60405180910390f35b61062460f75481565b61065361064e36600461514d565b610e21565b005b61065d6111bb565b60405161062e91906151cd565b6106246106783660046151e0565b61124d565b610624611260565b6106986106933660046151f9565b61126a565b604051901515815260200161062e565b6106246106b63660046151e0565b611282565b61065361128f565b61062460ef5481565b61062460f05481565b61062460ee5481565b61062460e55481565b603554610624565b60ce54610702906001600160a01b031681565b6040516001600160a01b03909116815260200161062e565b61062461134a565b61062461145c565b610653610738366004615225565b611499565b61062460e85481565b61062460e65481565b61069861075d366004615242565b611536565b610624611590565b606554600160a01b900460ff1660405160ff909116815260200161062e565b6065546001600160a01b0316610702565b6106986107a83660046151f9565b6115a7565b61062460d45481565b61062460d95481565b6106536115c9565b6106246107d5366004615225565b611618565b60cb54610702906001600160a01b031681565b61062460de5481565b61062460f15481565b61065361080d3660046151e0565b61162d565b610653610820366004615225565b6116e2565b61082d6117b6565b60405161062e929190615283565b60cd54610702906001600160a01b031681565b610653611857565b61062460e05481565b61062460f55481565b61062460e35481565b610653611908565b61062460ea5481565b6106536108903660046151e0565b6119a9565b6106246108a33660046151f9565b60e760209081526000928352604080842090915290825290205481565b6106246108ce36600461514d565b611af6565b6106246108e13660046151e0565b611bc2565b6106246108f4366004615225565b611bd9565b610653611bf4565b61062461090f3660046152a7565b611c06565b61062460d85481565b61062460e25481565b61062460d15481565b60ca54610702906001600160a01b031681565b61062460db5481565b61062460df5481565b61062460eb5481565b61062460f85481565b6097546001600160a01b0316610702565b6106536109853660046151e0565b611dd2565b61062461099836600461514d565b611e96565b61065d611f58565b6106536109b33660046151e0565b611f67565b6106246109c63660046151e0565b61203a565b61062460f25481565b6106986109e23660046151f9565b61208f565b6106536109f536600461514d565b612115565b610653610a083660046152c9565b61229b565b610653610a1b36600461514d565b6123fa565b610698610a2e3660046151f9565b612609565b610653610a41366004615592565b612652565b610624610a54366004615225565b612a9d565b61062460e15481565b610624610a70366004615689565b612b1e565b610624610a833660046151e0565b612c92565b610624610a963660046156c2565b612c9f565b610653610aa93660046156f9565b612da9565b610afb610abc3660046151e0565b60e9602052600090815260409020805460018201546002830154600384015460048501546005909501546001600160a01b039094169492939192909186565b604080516001600160a01b0390971687526020870195909552938501929092526060840152608083015260a082015260c00161062e565b610624610b403660046156c2565b612eab565b610624612fa9565b61062460f45481565b610653610b643660046151e0565b612fc1565b610624613079565b610624610b7f366004615225565b6130ea565b610624610b923660046151e0565b613119565b610653610ba53660046151e0565b613126565b60c954610702906001600160a01b031681565b610624610bcb366004615225565b613458565b610653610bde3660046151e0565b613466565b610653610bf13660046151e0565b613513565b610624610c043660046152a7565b6135ca565b610653610c17366004615225565b61365f565b610653610c2a3660046151e0565b6136ee565b610624613745565b610624610c45366004615225565b6137e9565b61062460d75481565b610624610c6136600461572d565b6138a2565b61062460dd5481565b61062460ec5481565b610653610c86366004615225565b6138cd565b6106246139ca565b610653610ca136600461514d565b6139e6565b610cb9610cb43660046151e0565b613baa565b60405161062e919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0918201519181019190915260c00190565b610653613c4e565b610624610d1f366004615689565b613c99565b61062460dc5481565b61062460f65481565b61062460d35481565b610653610d4d366004615225565b613e05565b61062460f35481565b610653610d6936600461575b565b613ec3565b60cc54610702906001600160a01b031681565b61062460da5481565b61062460e45481565b610653610da13660046151e0565b613f4b565b61062460ed5481565b6065546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c9190615777565b905090565b600082815260e960205260408120903360ca546040516331a9108f60e11b8152600481018790529192506000916001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea49190615790565b9050816001600160a01b0316816001600160a01b03161480610f3b575060ca5460405163020604bf60e21b8152600481018790526001600160a01b0384811692169063081812fc90602401602060405180830381865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190615790565b6001600160a01b0316145b80610fb7575060ca5460405163e985e9c560e01b81526001600160a01b03838116600483015284811660248301529091169063e985e9c590604401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906157ad565b610fdc5760405162461bcd60e51b8152600401610fd3906157cf565b60405180910390fd5b82600501548360040154610ff0919061580a565b42101561102e5760405162461bcd60e51b815260206004820152600c60248201526b1393d517d5539313d0d2d15160a21b6044820152606401610fd3565b6000611053670de0b6b3a764000061104560355490565b600387015491906001614004565b90508060de6000828254611067919061581d565b909155506110759050612fa9565b60de5413156110965760405162461bcd60e51b8152600401610fd390615845565b60ca54604051630852cd8d60e31b8152600481018890526001600160a01b03909116906342966c6890602401600060405180830381600087803b1580156110dc57600080fd5b505af11580156110f0573d6000803e3d6000fd5b505050508060dd6000828254611106919061581d565b909155506111149050614063565b836003015460f0600082825461112a919061581d565b9091555050600384015460f18054600090611146908490615870565b9250508190555061115c308686600101546140c7565b816001600160a01b0316856001600160a01b0316846001600160a01b03167fe37405a4f414fe3119839681cc26ea3462fc575fd2f81734417e52144d3f34b989886040516111ab929190615883565b60405180910390a4505050505050565b6060603680546111ca906158cd565b80601f01602080910402602001604051908101604052809291908181526020018280546111f6906158cd565b80156112435780601f1061121857610100808354040283529160200191611243565b820191906000526020600020905b81548152906001019060200180831161122657829003601f168201915b5050505050905090565b600061125a826000614259565b92915050565b6000610e1c61145c565b60003361127881858561429a565b5060019392505050565b600061125a8260016143be565b60ce5460408051600481526024810182526020810180516001600160e01b031663bef35b7960e01b17905290516000926001600160a01b0316916112d291615901565b6000604051808303816000865af19150503d806000811461130f576040519150601f19603f3d011682016040523d82523d6000602084013e611314565b606091505b5050905080611347576040517f46f2d6138acb3be39ad6ae5c9279b648c2a2c68743d0ddc18cc3a81cedecebd590600090a15b50565b60cf54604051600091829182916001600160a01b03169061136d9060d09061591d565b600060405180830381855afa9150503d80600081146113a8576040519150601f19603f3d011682016040523d82523d6000602084013e6113ad565b606091505b5090925090506001821515146113fd5760405162461bcd60e51b815260206004820152601560248201527411d394d7d4149250d157d0d0531317d19052531151605a1b6044820152606401610fd3565b808060200190518101906114119190615777565b9250600083116114575760405162461bcd60e51b81526020600482015260116024820152700474e535f544f4b454e5f50524943455f3607c1b6044820152606401610fd3565b505090565b6000670de0b6b3a764000061147060355490565b60dd5461147b612fa9565b6114859190615993565b61148f91906159b3565b610e1c91906159e0565b6114a16143da565b6001600160a01b0381166114c75760405162461bcd60e51b8152600401610fd3906159f4565b60ce80546001600160a01b0319166001600160a01b03831690811790915560408051818152601191810191909152701bdc195b951c9859195cd41b9b11995959607a1b60608201526020810191909152600080516020615ecd833981519152906080015b60405180910390a150565b60008161154285611bd9565b61154c9190615870565b61155585612a9d565b11156115735760405162461bcd60e51b8152600401610fd390615a17565b61157e843384614434565b6112788484846140c7565b9392505050565b6000670de0b6b3a764000060dc5461148560355490565b6000336112788185856115ba83836138a2565b6115c4919061580a565b61429a565b60006115d36144a8565b90506115de8161203a565b60f781905560f88290556040519081527f9551c7fda0233728a7b7eae3d388b53a068086c3f7d613bdf74e6e58dd6b41ec9060200161152b565b600061125a611626836130ea565b6000614259565b60cb546001600160a01b0316336001600160a01b0316146116605760405162461bcd60e51b8152600401610fd390615a43565b611673600a670de0b6b3a76400006159e0565b8110156116925760405162461bcd60e51b8152600401610fd390615a69565b60d481905560408051818152601391810191909152726d61784461696c79416363506e6c44656c746160681b606082015260208101829052600080516020615e8d8339815191529060800161152b565b6116ea6143da565b6001600160a01b0381166117105760405162461bcd60e51b8152600401610fd3906159f4565b6097546001600160a01b0382811691161480159061173c575060cc546001600160a01b03828116911614155b6117585760405162461bcd60e51b8152600401610fd390615a8c565b60cb80546001600160a01b0319166001600160a01b038316908117909155604080518181526007918101919091526636b0b730b3b2b960c91b60608201526020810191909152600080516020615ecd8339815191529060800161152b565b60cf805460d080546001600160a01b0390921692916117d4906158cd565b80601f0160208091040260200160405190810160405280929190818152602001828054611800906158cd565b801561184d5780601f106118225761010080835404028352916020019161184d565b820191906000526020600020905b81548152906001019060200180831161183057829003601f168201915b5050505050905082565b600054600290610100900460ff16158015611879575060005460ff8083169116105b6118955760405162461bcd60e51b8152600401610fd390615ab1565b6000805461ffff191660ff8316176101001790556118b16115c9565b60ef5460ed60008282546118c5919061580a565b90915550506000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200161152b565b6201518060e6544261191a9190615870565b106119a757611932670de0b6b3a764000060646159b3565b60d754611948670de0b6b3a764000060646159b3565b611952919061580a565b60355461195f91906159b3565b61196991906159e0565b60e58190554260e6556040519081527fd103db6eec024592fa6d47db028ec6408076ac4762eb021a6e52b525828bab9b906020015b60405180910390a15b565b60ea548111156119cb5760405162461bcd60e51b8152600401610fd390615aff565b8060ea60008282546119dd9190615870565b9091555060009050611a006402540be4006119f661134a565b8491906001614004565b905060003360c954604051632770a7eb60e21b81529192506001600160a01b031690639dc29fac90611a389084908690600401615b27565b600060405180830381600087803b158015611a5257600080fd5b505af1158015611a66573d6000803e3d6000fd5b505050508260f36000828254611a7c919061580a565b925050819055508160f46000828254611a95919061580a565b90915550611aad9050611aa6614505565b8285614519565b60408051848152602081018490526001600160a01b038316917f1fb4f167278bb29c47ac4fd58ca1586b0626b52807f2991ef78abdbb97bb4333910160405180910390a2505050565b600082600060dc5411611b1b5760405162461bcd60e51b8152600401610fd390615b40565b60008111611b3b5760405162461bcd60e51b8152600401610fd390615b61565b611b4483611618565b841115611b935760405162461bcd60e51b815260206004820152601e60248201527f455243343632363a206465706f736974206d6f7265207468616e206d617800006044820152606401610fd3565b6000611b9e85613119565b9050611bac81866001614574565b611bb833858784614650565b91505b5092915050565b60d58160028110611bd257600080fd5b0154905081565b6001600160a01b031660009081526033602052604090205490565b611bfc6143da565b6119a760006146c0565b60ce5460009033906001600160a01b03168114611c555760405162461bcd60e51b815260206004820152600d60248201526c13d3931657d4139317d1915151609a1b6044820152606401610fd3565b6000611c618585615993565b90506000611c6e60355490565b90506000611cce670de0b6b3a76400008360de54611c8a612fa9565b611c949190615993565b611c9e91906159b3565b611ca891906159e0565b670de0b6b3a76400008460d354611cbf91906159b3565b611cc991906159e0565b614712565b9050808313611cdd5782611cdf565b805b925081611cf4670de0b6b3a764000085615b82565b611cfe9190615bb2565b60de6000828254611d0f919061581d565b925050819055508260f06000828254611d28919061581d565b909155505060de5460dd55611d3b614063565b60e28054906000611d4b83615be0565b90915550504260e355611d5e838861581d565b60e455611d69611908565b60e25460e45460dd54604080518b8152602081018b90529081019290925260608201526001600160a01b038616907f115621a72d6f59323a1d752b116219634bc004cadb85d6bdc8e7eb254905722d9060800160405180910390a3505060e45495945050505050565b33611de6611dde614505565b823085614728565b603554611dfb670de0b6b3a7640000846159b3565b611e0591906159e0565b60df6000828254611e16919061580a565b90915550611e249050614063565b8160ef6000828254611e36919061580a565b925050819055508160ed6000828254611e4f919061580a565b90915550506040518281526001600160a01b038216907fe34918ff1c7084970068b53fd71ad6d8b04e9f15d3886cbf006443e6cdc52ea69060200160405180910390a25050565b600082600060dc5411611ebb5760405162461bcd60e51b8152600401610fd390615b40565b60008111611edb5760405162461bcd60e51b8152600401610fd390615b61565b611ee4836130ea565b841115611f335760405162461bcd60e51b815260206004820152601b60248201527f455243343632363a206d696e74206d6f7265207468616e206d617800000000006044820152606401610fd3565b6000611f3e85612c92565b9050611f4c85826001614574565b611bb833858388614650565b6060603780546111ca906158cd565b60cb546001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610fd390615a43565b611fad670de0b6b3a7640000600a6159b3565b811115611ff15760405162461bcd60e51b8152602060048201526012602482015271105093d59157d3505617d11254d0d3d5539560721b6044820152606401610fd3565b60da81905560408051818152600c918101919091526b06d6178446973636f756e74560a41b606082015260208101829052600080516020615e8d8339815191529060800161152b565b600061204e612047611590565b6001614760565b701d6329f1c35ca4bfabb9f561000000000060f8548461206e9190615870565b61207891906159b3565b61208291906159e0565b60f75461125a919061580a565b6000338161209d82866138a2565b9050838110156120fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610fd3565b61210a828686840361429a565b506001949350505050565b33612129612121614505565b823086614728565b60dd548390600013801561213f5750600060de54125b1561219b5760006064670de0b6b3a764000060d8548761215f91906159b3565b61216991906159e0565b61217391906159e0565b90508060ea6000828254612187919061580a565b9091555061219790508183615870565b9150505b60006121a660355490565b6121b8670de0b6b3a7640000846159b3565b6121c291906159e0565b90508060de60008282546121d69190615993565b909155506121e49050613c4e565b8060e060008282546121f69190615993565b925050819055508160f0600082825461220f9190615993565b925050819055508160ee60008282546122289190615993565b90915550612236905061128f565b61223e611908565b836001600160a01b0316836001600160a01b03167f2083893e39f8ae736fed502f7e149cc5bfe6159878615fae685a9a98bc452d5a878560405161228c929190918252602082015260400190565b60405180910390a35050505050565b6001600160a01b038216600090815260e76020908152604080832084845290915290205483111561230a5760405162461bcd60e51b81526020600482015260196024820152781353d49157d512105397d5d2551211149055d7d05353d55395603a1b6044820152606401610fd3565b33600061231784836138a2565b9050836001600160a01b0316826001600160a01b0316148061234457506000811180156123445750848110155b6123605760405162461bcd60e51b8152600401610fd3906157cf565b6001600160a01b038416600090815260e76020908152604080832086845290915281208054879290612393908490615870565b9250508190555082846001600160a01b0316836001600160a01b03167f443ccdbbbde35bd48740a9ea14c47318b735db4631ed1ebcdaaaa9f4636c84ea8860e2546040516123eb929190918252602082015260400190565b60405180910390a45050505050565b60ce60009054906101000a90046001600160a01b03166001600160a01b031663b8feee646040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124719190615777565b156124ad5760405162461bcd60e51b815260206004820152600c60248201526b08a9c88be9e8cbe8aa09e86960a31b6044820152606401610fd3565b3360006124ba83836138a2565b9050826001600160a01b0316826001600160a01b031614806124e757506000811180156124e75750838110155b6125035760405162461bcd60e51b8152600401610fd3906157cf565b61250c83611bd9565b8461251685612a9d565b612520919061580a565b11156125625760405162461bcd60e51b81526020600482015260116024820152704d4f52455f5448414e5f42414c414e434560781b6044820152606401610fd3565b600061256c613745565b60e254612579919061580a565b6001600160a01b038516600090815260e7602090815260408083208484529091528120805492935087929091906125b190849061580a565b9250508190555080846001600160a01b0316846001600160a01b03167f21b8e5e36008677ea26efbbc967e568e01b127f731ed0fda0a8685fda37d0d5f8860e2546040516123eb929190918252602082015260400190565b6000338261261682611bd9565b6126209190615870565b61262982612a9d565b11156126475760405162461bcd60e51b8152600401610fd390615a17565b6112788185856140c7565b600054610100900460ff16158080156126725750600054600160ff909116105b8061268c5750303b15801561268c575060005460ff166001145b6126a85760405162461bcd60e51b8152600401610fd390615ab1565b6000805460ff1916600117905580156126cb576000805461ff0019166101001790555b8a516001600160a01b0316158015906126f0575060208b01516001600160a01b031615155b8015612708575060408b01516001600160a01b031615155b8015612720575060608b01516001600160a01b031615155b801561274657508a604001516001600160a01b03168b602001516001600160a01b031614155b801561276c57508a606001516001600160a01b03168b604001516001600160a01b031614155b8015612784575060808b01516001600160a01b031615155b801561279c575060a08b01516001600160a01b031615155b80156127b4575060c08b01516001600160a01b031615155b80156127cc575060e08b01516001600160a01b031615155b80156127e657506101008b0151516001600160a01b031615155b80156127fc575060008b61010001516020015151115b801561281a5750612816600a670de0b6b3a76400006159e0565b8810155b801561282a575086516020880151115b80156128485750612844670de0b6b3a764000060326159b3565b8611155b80156128665750612862670de0b6b3a764000060196159b3565b8511155b801561288457506128806014670de0b6b3a76400006159e0565b8411155b80156128a2575061289e670de0b6b3a7640000600a6159b3565b8311155b80156128c057506128bc670de0b6b3a764000060646159b3565b8210155b6128fb5760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610fd3565b6129058d8d61476f565b8a51612910906147a4565b61291d8b602001516146c0565b60808b015160c980546001600160a01b03199081166001600160a01b039384161790915560a08d015160ca8054831691841691909117905560408d015160cb8054831691841691909117905560608d015160cc8054831691841691909117905560c08d015160cd8054831691841691909117905560e08d015160ce805483169184169190911790556101008d0151805160cf80549093169316929092178155602082015160d0906129ce9082615c5d565b50505060d18a905560d389905560d48890556129ed60d5886002615095565b5060d786905560d885905560d984905560da83905560db829055670de0b6b3a764000060dc55600160e28190554260e3556040805160608101825260038082526002602083015291810192909252612a479160d2916150d3565b508015612a8e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050505050565b60e2546000905b60d2600081548110612ab857612ab8615bf9565b906000526020600020015460e254612ad0919061580a565b8111612b18576001600160a01b038316600090815260e760209081526040808320848452909152902054612b04908361580a565b915080612b1081615be0565b915050612aa4565b50919050565b600083600060dc5411612b435760405162461bcd60e51b8152600401610fd390615b40565b60008111612b635760405162461bcd60e51b8152600401610fd390615b61565b83600060da5411612b865760405162461bcd60e51b8152600401610fd390615d1c565b60d154811015612ba85760405162461bcd60e51b8152600401610fd390615d48565b6301e13380811115612bcc5760405162461bcd60e51b8152600401610fd390615d79565b612bd5846130ea565b861115612c195760405162461bcd60e51b815260206004820152601260248201527109a929ca8be9a9ea48abea890829cbe9a82b60731b6044820152606401610fd3565b6000612c2487612c92565b9050612c8781612c3b612c35613079565b896135ca565b612c4e670de0b6b3a764000060646159b3565b612c58919061580a565b612c6b670de0b6b3a764000060646159b3565b612c7590856159b3565b612c7f91906159e0565b8989896147d4565b979650505050505050565b600061125a826001614259565b600083600060dc5411612cc45760405162461bcd60e51b8152600401610fd390615b40565b60008111612ce45760405162461bcd60e51b8152600401610fd390615b61565b612ced83613458565b851115612d3c5760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d6178006044820152606401610fd3565b6000612d4786611282565b6001600160a01b038516600090815260e76020908152604080832060e2548452909152812080549293508392909190612d81908490615870565b90915550612d93905081876000614574565b612da0338686898561498d565b95945050505050565b60cb546001600160a01b0316336001600160a01b031614612ddc5760405162461bcd60e51b8152600401610fd390615a43565b80516001600160a01b0316612e035760405162461bcd60e51b8152600401610fd3906159f4565b600081602001515111612e425760405162461bcd60e51b8152602060048201526007602482015266042595445535f360cc1b6044820152606401610fd3565b805160cf80546001600160a01b0319166001600160a01b03909216919091178155602082015182919060d090612e789082615c5d565b509050507f2763c7adb1b7018e25499ef5553ec78e35bb46be6384b393861c35d501825dce8160405161152b9190615daa565b600083600060dc5411612ed05760405162461bcd60e51b8152600401610fd390615b40565b60008111612ef05760405162461bcd60e51b8152600401610fd390615b61565b612ef9836137e9565b851115612f485760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d61780000006044820152606401610fd3565b6001600160a01b038316600090815260e76020908152604080832060e254845290915281208054879290612f7d908490615870565b9091555060009050612f8e8661124d565b9050612f9c86826000614574565b612da0338686848a61498d565b600060df54670de0b6b3a7640000610e1c919061580a565b60cb546001600160a01b0316336001600160a01b031614612ff45760405162461bcd60e51b8152600401610fd390615a43565b6130076014670de0b6b3a76400006159e0565b8111156130265760405162461bcd60e51b8152600401610fd390615dd7565b60d9819055604080518181526016918101919091527506d6178476e73537570706c794d696e744461696c79560541b606082015260208101829052600080516020615e8d8339815191529060800161152b565b600080613084612fa9565b905080670de0b6b3a7640000600060dd54136130b85760dd546130a990600019615b82565b6130b3908461580a565b6130c5565b60dd546130c59084615870565b6130d09060646159b3565b6130da91906159b3565b6130e491906159e0565b91505090565b60008060dd54136130fd5760001961125a565b61310c60e554611cc960355490565b60e55461125a9190615870565b600061125a8260006143be565b600060dd54136131735760405162461bcd60e51b81526020600482015260186024820152771393d517d55391115497d0d3d3131055115490531256915160421b6044820152606401610fd3565b600061317e60355490565b9050670de0b6b3a76400008160dd5461319791906159b3565b6131a191906159e0565b8211156131c05760405162461bcd60e51b8152600401610fd390615aff565b6201518060ec54426131d29190615870565b106131e157600060eb554260ec555b60006131eb61134a565b6131fa6402540be400856159b3565b61320491906159e0565b90508060eb6000828254613218919061580a565b925050819055506064670de0b6b3a764000060c960009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561327d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132a19190615777565b60d9546132ae91906159b3565b6132b891906159e0565b6132c291906159e0565b60eb54111561330b5760405162461bcd60e51b8152602060048201526015602482015274105093d59157d253919310551253d397d312535255605a1b6044820152606401610fd3565b3361331f613317614505565b823087614728565b600083613334670de0b6b3a7640000876159b3565b61333e91906159e0565b90508060de60008282546133529190615993565b925050819055508060dd600082825461336b9190615993565b909155506133799050614063565b8460f5600082825461338b919061580a565b925050819055508260f660008282546133a4919061580a565b909155505060c9546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906133db9085908790600401615b27565b600060405180830381600087803b1580156133f557600080fd5b505af1158015613409573d6000803e3d6000fd5b505060408051888152602081018790526001600160a01b03861693507f19aee2c21e4d63823896cb2a77a3e61197dda70b1043a55fca38aa8d75c0edd392500160405180910390a25050505050565b600061125a611626836137e9565b60cb546001600160a01b0316336001600160a01b0316146134995760405162461bcd60e51b8152600401610fd390615a43565b6134ac670de0b6b3a764000060196159b3565b8111156134cb5760405162461bcd60e51b8152600401610fd390615dd7565b60d881905560408051818152600b918101919091526a06c6f737365734275726e560ac1b606082015260208101829052600080516020615e8d8339815191529060800161152b565b60cb546001600160a01b0316336001600160a01b0316146135465760405162461bcd60e51b8152600401610fd390615a43565b613559670de0b6b3a764000060646159b3565b8110156135785760405162461bcd60e51b8152600401610fd390615a69565b60db819055604080518181526015918101919091527406d6178446973636f756e745468726573686f6c645605c1b606082015260208101829052600080516020615e8d8339815191529060800161152b565b60006301e13380826135e5670de0b6b3a764000060646159b3565b8511156136475760db548511156135fd57600061364b565b613610670de0b6b3a764000060646159b3565b60db5461361d9190615870565b8560db5461362b9190615870565b60da5461363891906159b3565b61364291906159e0565b61364b565b60da545b61365591906159b3565b61158991906159e0565b6136676143da565b6001600160a01b03811661368d5760405162461bcd60e51b8152600401610fd3906159f4565b60cd80546001600160a01b0319166001600160a01b03831690811790915560408051818152600a91810191909152693837362430b7323632b960b11b60608201526020810191909152600080516020615ecd8339815191529060800161152b565b6136f66143da565b60d381905560408051818152601291810191909152716d61784163634f70656e506e6c44656c746160701b606082015260208101829052600080516020615e8d8339815191529060800161152b565b600080613750613079565b9050600061376b82611cc9670de0b6b3a764000060646159b3565b6137759083615870565b60d65490915081116137c25760d55481116137ae5760d260008154811061379e5761379e615bf9565b90600052602060002001546137e2565b60d260018154811061379e5761379e615bf9565b60d26002815481106137d6576137d6615bf9565b90600052602060002001545b9250505090565b60ce5460408051632e3fbb9960e21b815290516000926001600160a01b03169163b8feee649160048083019260209291908290030181865afa158015613833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138579190615777565b1561386357600061125a565b6001600160a01b038216600090815260e76020908152604080832060e254845290915290205461125a90600161389860355490565b611cc99190615870565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60cb546001600160a01b0316336001600160a01b0316146139005760405162461bcd60e51b8152600401610fd390615a43565b6001600160a01b0381166139265760405162461bcd60e51b8152600401610fd3906159f4565b6097546001600160a01b03828116911614801590613952575060cb546001600160a01b03828116911614155b61396e5760405162461bcd60e51b8152600401610fd390615a8c565b60cc80546001600160a01b0319166001600160a01b038316908117909155604080518181526005918101919091526430b236b4b760d91b60608201526020810191909152600080516020615ecd8339815191529060800161152b565b6000670de0b6b3a76400006139de60355490565b611485612fa9565b60cd5433906001600160a01b03168114613a3d5760405162461bcd60e51b815260206004820152601860248201527727a7262cafaa2920a224a723afa827262fa420a7222622a960411b6044820152606401610fd3565b6000613a5e670de0b6b3a7640000613a5460355490565b8691906001614004565b90508060de6000828254613a72919061581d565b90915550613a809050612fa9565b60de541315613aa15760405162461bcd60e51b8152600401610fd390615845565b613aa9613c4e565b8060e06000828254613abb919061581d565b909155505060d45460e0541315613b045760405162461bcd60e51b815260206004820152600d60248201526c13505617d11052531657d41393609a1b6044820152606401610fd3565b8360f06000828254613b16919061581d565b925050819055508360ee6000828254613b2f919061581d565b90915550613b3d905061128f565b613b45611908565b613b57613b50614505565b8486614519565b826001600160a01b0316826001600160a01b03167f17ffe64fb2212f31d60284d6471e06abb7db8d66f0a60f9b884b29f1597d05da86604051613b9c91815260200190565b60405180910390a350505050565b613bec6040518060c0016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b50600090815260e96020908152604091829020825160c08101845281546001600160a01b03168152600182015492810192909252600281015492820192909252600382015460608201526004820154608082015260059091015460a082015290565b6201518060e15442613c609190615870565b106119a757600060e08190554260e1556040517fa047de172c12fcf40e0ff45a86ac45befb232ae644862699ef140a8c5f763b419190a1565b600083600060dc5411613cbe5760405162461bcd60e51b8152600401610fd390615b40565b60008111613cde5760405162461bcd60e51b8152600401610fd390615b61565b83600060da5411613d015760405162461bcd60e51b8152600401610fd390615d1c565b60d154811015613d235760405162461bcd60e51b8152600401610fd390615d48565b6301e13380811115613d475760405162461bcd60e51b8152600401610fd390615d79565b6000613d5c670de0b6b3a764000060646159b3565b613d6d613d67613079565b886135ca565b613d80670de0b6b3a764000060646159b3565b613d8a919061580a565b613d9490896159b3565b613d9e91906159e0565b9050613da985611618565b811115613df05760405162461bcd60e51b81526020600482015260156024820152740888aa09ea692a8be9a9ea48abea890829cbe9a82b605b1b6044820152606401610fd3565b612c878188613dfe84613119565b89896147d4565b613e0d6143da565b6001600160a01b038116613e725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610fd3565b60cb546001600160a01b03828116911614801590613e9e575060cc546001600160a01b03828116911614155b613eba5760405162461bcd60e51b8152600401610fd390615a8c565b611347816146c0565b613ecb6143da565b8051602082015111613f0e5760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f56414c55455360a01b6044820152606401610fd3565b613f1b60d5826002615095565b507f8472b50e25b52d8de564f9719bd793b18d83cf59ce4d309e211fb6a4fdc148118160405161152b9190615dfa565b60cb546001600160a01b0316336001600160a01b031614613f7e5760405162461bcd60e51b8152600401610fd390615a43565b613f91670de0b6b3a764000060326159b3565b811115613fb05760405162461bcd60e51b8152600401610fd390615dd7565b60d7819055604080518181526017918101919091527606d6178537570706c79496e6372656173654461696c795604c1b606082015260208101829052600080516020615e8d8339815191529060800161152b565b600080614012868686614a2a565b9050600183600281111561402857614028615e2b565b148015614045575060008480614040576140406159ca565b868809115b156140585761405560018261580a565b90505b90505b949350505050565b61406b6115c9565b600060dd541361407c576000614080565b60dd545b614088612fa9565b6140929190615870565b60dc8190556040519081527f547c25b7a5677a006ff044a0e4b5e699598339825e7b42d3dc645117ceee80509060200161199e565b6001600160a01b03831661412b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610fd3565b6001600160a01b03821661418d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610fd3565b6001600160a01b038316600090815260336020526040902054818110156142055760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610fd3565b6001600160a01b038085166000818152603360205260408082208686039055928616808252908390208054860190559151600080516020615ead83398151915290613b9c9086815260200190565b50505050565b6000600019831480156142765750670de0b6b3a764000060dc5410155b1561428257508161125a565b60dc54611589908490670de0b6b3a764000085614004565b6001600160a01b0383166142fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610fd3565b6001600160a01b03821661435d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610fd3565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60dc54600090611589908490670de0b6b3a76400009085614004565b6097546001600160a01b031633146119a75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610fd3565b600061444084846138a2565b90506000198114614253578181101561449b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610fd3565b614253848484840361429a565b600061a4b14614806144bc575062066eed46145b156145005760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df8573d6000803e3d6000fd5b504390565b6000610e1c6065546001600160a01b031690565b61456f8363a9059cbb60e01b8484604051602401614538929190615b27565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614ad9565b505050565b600061457f60355490565b9050600060de5412156145ca57816145a05761459b8482615870565b6145aa565b6145aa848261580a565b8160de546145b89190615b82565b6145c29190615bb2565b60de5561461f565b600060de54131561461f57816145e2576000196145e5565b60015b8160f054866145f49190615b82565b6145fe9190615bb2565b6146089190615b82565b60f06000828254614619919061581d565b90915550505b81614637578260ed546146329190615870565b614645565b8260ed54614645919061580a565b60ed556142536115c9565b606554614668906001600160a01b0316853085614728565b6146728382614bab565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051613b9c929190918252602082015260400190565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008183106147215781611589565b5090919050565b6040516001600160a01b03808516602483015283166044820152606481018290526142539085906323b872dd60e01b90608401614538565b60008183116147215781611589565b600054610100900460ff166147965760405162461bcd60e51b8152600401610fd390615e41565b6147a08282614c5a565b5050565b600054610100900460ff166147cb5760405162461bcd60e51b8152600401610fd390615e41565b61134781614c9a565b60008486116148135760405162461bcd60e51b815260206004820152600b60248201526a1393d7d11254d0d3d5539560aa1b6044820152606401610fd3565b600060e86000815461482490615be0565b9182905550905060006148378789615870565b600083815260e96020526040902080546001600160a01b0319166001600160a01b0387161781556001808201899055600282018a90556003820183905542600483015560058201889055919250906148929088908a90614574565b3361489f81308b8b614650565b8260f260008282546148b1919061580a565b925050819055508260f160008282546148ca919061580a565b909155505060ca546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906149019089908890600401615b27565b600060405180830381600087803b15801561491b57600080fd5b505af115801561492f573d6000803e3d6000fd5b505083546040516001600160a01b03918216935090841691507f5d26cdffbd8401ba2a961d2094f7f008ee7bd735ac02a949721ee0fd0f0d5afc906149779088908790615883565b60405180910390a3509198975050505050505050565b826001600160a01b0316856001600160a01b0316146149b1576149b1838683614434565b6149bb8382614d1f565b6065546149d2906001600160a01b03168584614519565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db85856040516123eb929190918252602082015260400190565b6000808060001985870985870292508281108382030391505080600003614a6457838281614a5a57614a5a6159ca565b0492505050611589565b808411614a7057600080fd5b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6000614b2e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e419092919063ffffffff16565b80519091501561456f5780806020019051810190614b4c91906157ad565b61456f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610fd3565b6001600160a01b038216614c015760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610fd3565b8060356000828254614c13919061580a565b90915550506001600160a01b038216600081815260336020908152604080832080548601905551848152600080516020615ead833981519152910160405180910390a35050565b600054610100900460ff16614c815760405162461bcd60e51b8152600401610fd390615e41565b6036614c8d8382615c5d565b50603761456f8282615c5d565b600054610100900460ff16614cc15760405162461bcd60e51b8152600401610fd390615e41565b600080614ccd83614e50565b9150915081614cdd576012614cdf565b805b606580546001600160a01b039095166001600160a01b031960ff93909316600160a01b02929092166001600160a81b031990951694909417179092555050565b6001600160a01b038216614d7f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610fd3565b6001600160a01b03821660009081526033602052604090205481811015614df35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610fd3565b6001600160a01b0383166000818152603360209081526040808320868603905560358054879003905551858152919291600080516020615ead833981519152910160405180910390a3505050565b606061405b8484600085614f2c565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b03871691614e9791615901565b600060405180830381855afa9150503d8060008114614ed2576040519150601f19603f3d011682016040523d82523d6000602084013e614ed7565b606091505b5091509150818015614eeb57506020815110155b15614f1f57600081806020019051810190614f069190615777565b905060ff8111614f1d576001969095509350505050565b505b5060009485945092505050565b606082471015614f8d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610fd3565b600080866001600160a01b03168587604051614fa99190615901565b60006040518083038185875af1925050503d8060008114614fe6576040519150601f19603f3d011682016040523d82523d6000602084013e614feb565b606091505b5091509150612c87878383876060831561506657825160000361505f576001600160a01b0385163b61505f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610fd3565b508161405b565b61405b838381511561507b5781518083602001fd5b8060405162461bcd60e51b8152600401610fd391906151cd565b82600281019282156150c3579160200282015b828111156150c35782518255916020019190600101906150a8565b506150cf929150615113565b5090565b8280548282559060005260206000209081019282156150c3579160200282015b828111156150c3578251829060ff169055916020019190600101906150f3565b5b808211156150cf5760008155600101615114565b6001600160a01b038116811461134757600080fd5b803561514881615128565b919050565b6000806040838503121561516057600080fd5b82359150602083013561517281615128565b809150509250929050565b60005b83811015615198578181015183820152602001615180565b50506000910152565b600081518084526151b981602086016020860161517d565b601f01601f19169290920160200192915050565b60208152600061158960208301846151a1565b6000602082840312156151f257600080fd5b5035919050565b6000806040838503121561520c57600080fd5b823561521781615128565b946020939093013593505050565b60006020828403121561523757600080fd5b813561158981615128565b60008060006060848603121561525757600080fd5b833561526281615128565b9250602084013561527281615128565b929592945050506040919091013590565b6001600160a01b038316815260406020820181905260009061405b908301846151a1565b600080604083850312156152ba57600080fd5b50508035926020909101359150565b6000806000606084860312156152de57600080fd5b83359250602084013561527281615128565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715615329576153296152f0565b60405290565b60006001600160401b0380841115615349576153496152f0565b604051601f8501601f19908116603f01168101908282118183101715615371576153716152f0565b8160405280935085815286868601111561538a57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126153b557600080fd5b6115898383356020850161532f565b6000604082840312156153d657600080fd5b604051604081016001600160401b0382821081831117156153f9576153f96152f0565b816040528293508435915061540d82615128565b9082526020840135908082111561542357600080fd5b508301601f8101851361543557600080fd5b6154448582356020840161532f565b6020830152505092915050565b6000610120828403121561546457600080fd5b61546c615306565b90506154778261513d565b81526154856020830161513d565b60208201526154966040830161513d565b60408201526154a76060830161513d565b60608201526154b86080830161513d565b60808201526154c960a0830161513d565b60a08201526154da60c0830161513d565b60c08201526154eb60e0830161513d565b60e0820152610100808301356001600160401b0381111561550b57600080fd5b615517858286016153c4565b82840152505092915050565b600082601f83011261553457600080fd5b604051604081018181106001600160401b0382111715615556576155566152f0565b806040525080604084018581111561556d57600080fd5b845b8181101561558757803583526020928301920161556f565b509195945050505050565b6000806000806000806000806000806000806101a08d8f0312156155b557600080fd5b6001600160401b038d3511156155ca57600080fd5b6155d78e8e358f016153a4565b9b506001600160401b0360208e013511156155f157600080fd5b6156018e60208f01358f016153a4565b9a506001600160401b0360408e0135111561561b57600080fd5b61562b8e60408f01358f01615451565b995060608d0135985060808d0135975060a08d0135965061564f8e60c08f01615523565b95506101008d013594506101208d013593506101408d013592506101608d013591506101808d013590509295989b509295989b509295989b565b60008060006060848603121561569e57600080fd5b833592506020840135915060408401356156b781615128565b809150509250925092565b6000806000606084860312156156d757600080fd5b8335925060208401356156e981615128565b915060408401356156b781615128565b60006020828403121561570b57600080fd5b81356001600160401b0381111561572157600080fd5b61405b848285016153c4565b6000806040838503121561574057600080fd5b823561574b81615128565b9150602083013561517281615128565b60006040828403121561576d57600080fd5b6115898383615523565b60006020828403121561578957600080fd5b5051919050565b6000602082840312156157a257600080fd5b815161158981615128565b6000602082840312156157bf57600080fd5b8151801515811461158957600080fd5b6020808252600b908201526a1393d517d0531313d5d15160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561125a5761125a6157f4565b808201828112600083128015821682158216171561583d5761583d6157f4565b505092915050565b6020808252601190820152704e4f545f454e4f5547485f41535345545360781b604082015260600190565b8181038181111561125a5761125a6157f4565b91825280546001600160a01b03166020830152600181015460408301526002810154606083015260038101546080830152600481015460a08301526005015460c082015260e00190565b600181811c908216806158e157607f821691505b602082108103612b1857634e487b7160e01b600052602260045260246000fd5b6000825161591381846020870161517d565b9190910192915050565b600080835461592b816158cd565b60018281168015615943576001811461595857615987565b60ff1984168752821515830287019450615987565b8760005260208060002060005b8581101561597e5781548a820152908401908201615965565b50505082870194505b50929695505050505050565b8181036000831280158383131683831282161715611bbb57611bbb6157f4565b808202811582820484141761125a5761125a6157f4565b634e487b7160e01b600052601260045260246000fd5b6000826159ef576159ef6159ca565b500490565b6020808252600990820152680414444524553535f360bc1b604082015260600190565b60208082526012908201527114115391125391d7d5d2551211149055d05360721b604082015260600190565b6020808252600c908201526b27a7262cafa6a0a720a3a2a960a11b604082015260600190565b6020808252600990820152682122a627abafa6a4a760b91b604082015260600190565b6020808252600b908201526a57524f4e475f56414c554560a81b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252600e908201526d414d4f554e545f544f4f5f42494760901b604082015260600190565b6001600160a01b03929092168252602082015260400190565b602080825260079082015266050524943455f360cc1b604082015260600190565b602080825260079082015266056414c55455f360cc1b604082015260600190565b80820260008212600160ff1b84141615615b9e57615b9e6157f4565b818105831482151761125a5761125a6157f4565b600082615bc157615bc16159ca565b600160ff1b821460001984141615615bdb57615bdb6157f4565b500590565b600060018201615bf257615bf26157f4565b5060010190565b634e487b7160e01b600052603260045260246000fd5b601f82111561456f57600081815260208120601f850160051c81016020861015615c365750805b601f850160051c820191505b81811015615c5557828155600101615c42565b505050505050565b81516001600160401b03811115615c7657615c766152f0565b615c8a81615c8484546158cd565b84615c0f565b602080601f831160018114615cbf5760008415615ca75750858301515b600019600386901b1c1916600185901b178555615c55565b600085815260208120601f198616915b82811015615cee57888601518255948401946001909101908401615ccf565b5085821015615d0c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252601290820152711393d7d050d512559157d11254d0d3d5539560721b604082015260600190565b6020808252601790820152762122a627abafa6a4a72fa627a1a5afa22aa920aa24a7a760491b604082015260600190565b60208082526017908201527620a127ab22afa6a0ac2fa627a1a5afa22aa920aa24a7a760491b604082015260600190565b602080825282516001600160a01b03168282015282015160408083015260009061405b60608401826151a1565b602080825260099082015268082849eac8abe9a82b60bb1b604082015260600190565b60408101818360005b6002811015615e22578151835260209283019290910190600101615e03565b50505092915050565b634e487b7160e01b600052602160045260246000fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe127735ae9d047cae55da37db2c8ee184c735aacd68cef068d4e70be6a41661d9ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60f89fdb372abe626eac485ef96b2a09f1cfbd7f225dd1e2b491a2b4069c2376a2646970667358221220aafb7c26f659db268e3f2f0d77cbe317a91ab3e58694896912507103987d7d4f64736f6c63430008110033";
2651
+ const isSuperArgs = (xs) => xs.length > 1;
2652
+ class GTokenV6_3_2__factory extends ethers_1.ContractFactory {
2653
+ constructor(...args) {
2654
+ if (isSuperArgs(args)) {
2655
+ super(...args);
2656
+ }
2657
+ else {
2658
+ super(_abi, _bytecode, args[0]);
2659
+ }
2660
+ }
2661
+ deploy(overrides) {
2662
+ return super.deploy(overrides || {});
2663
+ }
2664
+ getDeployTransaction(overrides) {
2665
+ return super.getDeployTransaction(overrides || {});
2666
+ }
2667
+ attach(address) {
2668
+ return super.attach(address);
2669
+ }
2670
+ connect(signer) {
2671
+ return super.connect(signer);
2672
+ }
2673
+ static createInterface() {
2674
+ return new ethers_1.utils.Interface(_abi);
2675
+ }
2676
+ static connect(address, signerOrProvider) {
2677
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
2678
+ }
2679
+ }
2680
+ exports.GTokenV6_3_2__factory = GTokenV6_3_2__factory;
2681
+ GTokenV6_3_2__factory.bytecode = _bytecode;
2682
+ GTokenV6_3_2__factory.abi = _abi;