@argonprotocol/testing 1.4.3-dev.1f0d7a33 → 1.4.3-dev.25eec055

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.
@@ -0,0 +1,1691 @@
1
+ {
2
+ "_format": "hh3-artifact-1",
3
+ "contractName": "MintingGateway",
4
+ "sourceName": "contracts/MintingGateway.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "argonTokenAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "argonotTokenAddress",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "ArrayLengthMismatch",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "ECDSAInvalidSignature",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "length",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "ECDSAInvalidSignatureLength",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "bytes32",
47
+ "name": "s",
48
+ "type": "bytes32"
49
+ }
50
+ ],
51
+ "name": "ECDSAInvalidSignatureS",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "EnforcedPause",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "ExpectedPause",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [],
66
+ "name": "GlobalIssuanceCouncilNotBootstrapped",
67
+ "type": "error"
68
+ },
69
+ {
70
+ "inputs": [],
71
+ "name": "GlobalIssuanceCouncilQuorumNotMet",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [
76
+ {
77
+ "internalType": "uint256",
78
+ "name": "authorized",
79
+ "type": "uint256"
80
+ },
81
+ {
82
+ "internalType": "uint256",
83
+ "name": "required",
84
+ "type": "uint256"
85
+ }
86
+ ],
87
+ "name": "InsufficientAuthorizedCollateral",
88
+ "type": "error"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "uint64",
94
+ "name": "expected",
95
+ "type": "uint64"
96
+ },
97
+ {
98
+ "internalType": "uint64",
99
+ "name": "provided",
100
+ "type": "uint64"
101
+ }
102
+ ],
103
+ "name": "InvalidChainId",
104
+ "type": "error"
105
+ },
106
+ {
107
+ "inputs": [
108
+ {
109
+ "internalType": "bytes32",
110
+ "name": "expected",
111
+ "type": "bytes32"
112
+ },
113
+ {
114
+ "internalType": "bytes32",
115
+ "name": "provided",
116
+ "type": "bytes32"
117
+ }
118
+ ],
119
+ "name": "InvalidCurrentCouncilSnapshot",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "index",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "InvalidGlobalIssuanceCouncilMember",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [],
135
+ "name": "InvalidInitialization",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "InvalidMicrogonCollateralForArgonotPayout",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "inputs": [
145
+ {
146
+ "internalType": "address",
147
+ "name": "signingKey",
148
+ "type": "address"
149
+ }
150
+ ],
151
+ "name": "InvalidMintingAuthority",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "address",
158
+ "name": "expectedSigner",
159
+ "type": "address"
160
+ },
161
+ {
162
+ "internalType": "address",
163
+ "name": "recoveredSigner",
164
+ "type": "address"
165
+ }
166
+ ],
167
+ "name": "InvalidMintingAuthorityDeactivationSigner",
168
+ "type": "error"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "internalType": "uint64",
174
+ "name": "expected",
175
+ "type": "uint64"
176
+ },
177
+ {
178
+ "internalType": "uint64",
179
+ "name": "provided",
180
+ "type": "uint64"
181
+ }
182
+ ],
183
+ "name": "InvalidQueueNonce",
184
+ "type": "error"
185
+ },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "uint256",
190
+ "name": "expected",
191
+ "type": "uint256"
192
+ },
193
+ {
194
+ "internalType": "uint256",
195
+ "name": "provided",
196
+ "type": "uint256"
197
+ }
198
+ ],
199
+ "name": "InvalidSignatureCount",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "inputs": [],
204
+ "name": "InvalidSignatureOrder",
205
+ "type": "error"
206
+ },
207
+ {
208
+ "inputs": [
209
+ {
210
+ "internalType": "uint8",
211
+ "name": "kind",
212
+ "type": "uint8"
213
+ }
214
+ ],
215
+ "name": "InvalidUpdateKind",
216
+ "type": "error"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "LatestGatewayUpdateCannotDeactivate",
221
+ "type": "error"
222
+ },
223
+ {
224
+ "inputs": [],
225
+ "name": "MigrationAlreadyCompleted",
226
+ "type": "error"
227
+ },
228
+ {
229
+ "inputs": [
230
+ {
231
+ "internalType": "address",
232
+ "name": "signingKey",
233
+ "type": "address"
234
+ }
235
+ ],
236
+ "name": "MintingAuthorityAlreadyActive",
237
+ "type": "error"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "signingKey",
244
+ "type": "address"
245
+ }
246
+ ],
247
+ "name": "MintingAuthorityTransferCapacityExceeded",
248
+ "type": "error"
249
+ },
250
+ {
251
+ "inputs": [
252
+ {
253
+ "internalType": "address",
254
+ "name": "caller",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "name": "NotGuardianOrOwner",
259
+ "type": "error"
260
+ },
261
+ {
262
+ "inputs": [],
263
+ "name": "NotInitializing",
264
+ "type": "error"
265
+ },
266
+ {
267
+ "inputs": [
268
+ {
269
+ "internalType": "address",
270
+ "name": "owner",
271
+ "type": "address"
272
+ }
273
+ ],
274
+ "name": "OwnableInvalidOwner",
275
+ "type": "error"
276
+ },
277
+ {
278
+ "inputs": [
279
+ {
280
+ "internalType": "address",
281
+ "name": "account",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "OwnableUnauthorizedAccount",
286
+ "type": "error"
287
+ },
288
+ {
289
+ "inputs": [
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "amount",
293
+ "type": "uint256"
294
+ }
295
+ ],
296
+ "name": "RuntimeAmountOverflow",
297
+ "type": "error"
298
+ },
299
+ {
300
+ "inputs": [
301
+ {
302
+ "internalType": "bytes32",
303
+ "name": "transferId",
304
+ "type": "bytes32"
305
+ }
306
+ ],
307
+ "name": "TransferOutOfArgonAlreadyFinalized",
308
+ "type": "error"
309
+ },
310
+ {
311
+ "inputs": [
312
+ {
313
+ "internalType": "uint256",
314
+ "name": "currentBlock",
315
+ "type": "uint256"
316
+ },
317
+ {
318
+ "internalType": "uint256",
319
+ "name": "validUntilBlock",
320
+ "type": "uint256"
321
+ }
322
+ ],
323
+ "name": "TransferOutOfArgonExpired",
324
+ "type": "error"
325
+ },
326
+ {
327
+ "inputs": [
328
+ {
329
+ "internalType": "uint256",
330
+ "name": "currentBlock",
331
+ "type": "uint256"
332
+ },
333
+ {
334
+ "internalType": "uint256",
335
+ "name": "validUntilBlock",
336
+ "type": "uint256"
337
+ }
338
+ ],
339
+ "name": "TransferOutOfArgonNotExpired",
340
+ "type": "error"
341
+ },
342
+ {
343
+ "inputs": [
344
+ {
345
+ "internalType": "bytes32",
346
+ "name": "councilHash",
347
+ "type": "bytes32"
348
+ }
349
+ ],
350
+ "name": "UnknownCouncilHash",
351
+ "type": "error"
352
+ },
353
+ {
354
+ "inputs": [
355
+ {
356
+ "internalType": "address",
357
+ "name": "token",
358
+ "type": "address"
359
+ }
360
+ ],
361
+ "name": "UnsupportedToken",
362
+ "type": "error"
363
+ },
364
+ {
365
+ "inputs": [],
366
+ "name": "ZeroAdminSafe",
367
+ "type": "error"
368
+ },
369
+ {
370
+ "inputs": [],
371
+ "name": "ZeroAmount",
372
+ "type": "error"
373
+ },
374
+ {
375
+ "inputs": [],
376
+ "name": "ZeroGuardian",
377
+ "type": "error"
378
+ },
379
+ {
380
+ "inputs": [],
381
+ "name": "ZeroMicrogonsPerArgonot",
382
+ "type": "error"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "uint256",
388
+ "name": "index",
389
+ "type": "uint256"
390
+ }
391
+ ],
392
+ "name": "ZeroRecipient",
393
+ "type": "error"
394
+ },
395
+ {
396
+ "inputs": [],
397
+ "name": "ZeroSigningKey",
398
+ "type": "error"
399
+ },
400
+ {
401
+ "anonymous": false,
402
+ "inputs": [
403
+ {
404
+ "indexed": true,
405
+ "internalType": "bytes32",
406
+ "name": "councilHash",
407
+ "type": "bytes32"
408
+ }
409
+ ],
410
+ "name": "GlobalIssuanceCouncilBootstrapped",
411
+ "type": "event"
412
+ },
413
+ {
414
+ "anonymous": false,
415
+ "inputs": [
416
+ {
417
+ "indexed": true,
418
+ "internalType": "bytes32",
419
+ "name": "previousCouncilHash",
420
+ "type": "bytes32"
421
+ },
422
+ {
423
+ "indexed": true,
424
+ "internalType": "bytes32",
425
+ "name": "councilHash",
426
+ "type": "bytes32"
427
+ }
428
+ ],
429
+ "name": "GlobalIssuanceCouncilForceUpdated",
430
+ "type": "event"
431
+ },
432
+ {
433
+ "anonymous": false,
434
+ "inputs": [
435
+ {
436
+ "indexed": false,
437
+ "internalType": "bytes32",
438
+ "name": "councilHash",
439
+ "type": "bytes32"
440
+ },
441
+ {
442
+ "indexed": false,
443
+ "internalType": "bytes32",
444
+ "name": "relayerArgonAccountId",
445
+ "type": "bytes32"
446
+ },
447
+ {
448
+ "components": [
449
+ {
450
+ "internalType": "uint64",
451
+ "name": "gatewayActivityNonce",
452
+ "type": "uint64"
453
+ },
454
+ {
455
+ "internalType": "uint64",
456
+ "name": "argonApprovalsNonce",
457
+ "type": "uint64"
458
+ },
459
+ {
460
+ "internalType": "uint128",
461
+ "name": "argonCirculation",
462
+ "type": "uint128"
463
+ },
464
+ {
465
+ "internalType": "uint128",
466
+ "name": "argonotCirculation",
467
+ "type": "uint128"
468
+ }
469
+ ],
470
+ "indexed": false,
471
+ "internalType": "struct MintingGateway.GatewayActivityState",
472
+ "name": "gatewayState",
473
+ "type": "tuple"
474
+ }
475
+ ],
476
+ "name": "GlobalIssuanceCouncilRotated",
477
+ "type": "event"
478
+ },
479
+ {
480
+ "anonymous": false,
481
+ "inputs": [
482
+ {
483
+ "indexed": true,
484
+ "internalType": "address",
485
+ "name": "previousGuardian",
486
+ "type": "address"
487
+ },
488
+ {
489
+ "indexed": true,
490
+ "internalType": "address",
491
+ "name": "newGuardian",
492
+ "type": "address"
493
+ }
494
+ ],
495
+ "name": "GuardianUpdated",
496
+ "type": "event"
497
+ },
498
+ {
499
+ "anonymous": false,
500
+ "inputs": [
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint64",
504
+ "name": "version",
505
+ "type": "uint64"
506
+ }
507
+ ],
508
+ "name": "Initialized",
509
+ "type": "event"
510
+ },
511
+ {
512
+ "anonymous": false,
513
+ "inputs": [
514
+ {
515
+ "indexed": false,
516
+ "internalType": "uint256",
517
+ "name": "argonRecipientCount",
518
+ "type": "uint256"
519
+ },
520
+ {
521
+ "indexed": false,
522
+ "internalType": "uint256",
523
+ "name": "argonTotalAmount",
524
+ "type": "uint256"
525
+ },
526
+ {
527
+ "indexed": false,
528
+ "internalType": "uint256",
529
+ "name": "argonotRecipientCount",
530
+ "type": "uint256"
531
+ },
532
+ {
533
+ "indexed": false,
534
+ "internalType": "uint256",
535
+ "name": "argonotTotalAmount",
536
+ "type": "uint256"
537
+ }
538
+ ],
539
+ "name": "MigrationCompleted",
540
+ "type": "event"
541
+ },
542
+ {
543
+ "anonymous": false,
544
+ "inputs": [
545
+ {
546
+ "indexed": true,
547
+ "internalType": "address",
548
+ "name": "signingKey",
549
+ "type": "address"
550
+ },
551
+ {
552
+ "indexed": false,
553
+ "internalType": "uint128",
554
+ "name": "microgonCollateral",
555
+ "type": "uint128"
556
+ },
557
+ {
558
+ "indexed": false,
559
+ "internalType": "uint128",
560
+ "name": "micronotCollateral",
561
+ "type": "uint128"
562
+ },
563
+ {
564
+ "indexed": false,
565
+ "internalType": "uint32",
566
+ "name": "coactivationCount",
567
+ "type": "uint32"
568
+ },
569
+ {
570
+ "indexed": false,
571
+ "internalType": "uint32",
572
+ "name": "sharedSignatureCount",
573
+ "type": "uint32"
574
+ },
575
+ {
576
+ "indexed": false,
577
+ "internalType": "bytes32",
578
+ "name": "relayerArgonAccountId",
579
+ "type": "bytes32"
580
+ },
581
+ {
582
+ "components": [
583
+ {
584
+ "internalType": "uint64",
585
+ "name": "gatewayActivityNonce",
586
+ "type": "uint64"
587
+ },
588
+ {
589
+ "internalType": "uint64",
590
+ "name": "argonApprovalsNonce",
591
+ "type": "uint64"
592
+ },
593
+ {
594
+ "internalType": "uint128",
595
+ "name": "argonCirculation",
596
+ "type": "uint128"
597
+ },
598
+ {
599
+ "internalType": "uint128",
600
+ "name": "argonotCirculation",
601
+ "type": "uint128"
602
+ }
603
+ ],
604
+ "indexed": false,
605
+ "internalType": "struct MintingGateway.GatewayActivityState",
606
+ "name": "gatewayState",
607
+ "type": "tuple"
608
+ }
609
+ ],
610
+ "name": "MintingAuthorityActivated",
611
+ "type": "event"
612
+ },
613
+ {
614
+ "anonymous": false,
615
+ "inputs": [
616
+ {
617
+ "indexed": true,
618
+ "internalType": "address",
619
+ "name": "signingKey",
620
+ "type": "address"
621
+ },
622
+ {
623
+ "indexed": false,
624
+ "internalType": "uint128",
625
+ "name": "microgonCollateral",
626
+ "type": "uint128"
627
+ },
628
+ {
629
+ "indexed": false,
630
+ "internalType": "uint128",
631
+ "name": "micronotCollateral",
632
+ "type": "uint128"
633
+ },
634
+ {
635
+ "indexed": false,
636
+ "internalType": "bytes32",
637
+ "name": "relayerArgonAccountId",
638
+ "type": "bytes32"
639
+ },
640
+ {
641
+ "components": [
642
+ {
643
+ "internalType": "uint64",
644
+ "name": "gatewayActivityNonce",
645
+ "type": "uint64"
646
+ },
647
+ {
648
+ "internalType": "uint64",
649
+ "name": "argonApprovalsNonce",
650
+ "type": "uint64"
651
+ },
652
+ {
653
+ "internalType": "uint128",
654
+ "name": "argonCirculation",
655
+ "type": "uint128"
656
+ },
657
+ {
658
+ "internalType": "uint128",
659
+ "name": "argonotCirculation",
660
+ "type": "uint128"
661
+ }
662
+ ],
663
+ "indexed": false,
664
+ "internalType": "struct MintingGateway.GatewayActivityState",
665
+ "name": "gatewayState",
666
+ "type": "tuple"
667
+ }
668
+ ],
669
+ "name": "MintingAuthorityDeactivated",
670
+ "type": "event"
671
+ },
672
+ {
673
+ "anonymous": false,
674
+ "inputs": [
675
+ {
676
+ "indexed": true,
677
+ "internalType": "address",
678
+ "name": "previousOwner",
679
+ "type": "address"
680
+ },
681
+ {
682
+ "indexed": true,
683
+ "internalType": "address",
684
+ "name": "newOwner",
685
+ "type": "address"
686
+ }
687
+ ],
688
+ "name": "OwnershipTransferred",
689
+ "type": "event"
690
+ },
691
+ {
692
+ "anonymous": false,
693
+ "inputs": [
694
+ {
695
+ "indexed": false,
696
+ "internalType": "address",
697
+ "name": "account",
698
+ "type": "address"
699
+ }
700
+ ],
701
+ "name": "Paused",
702
+ "type": "event"
703
+ },
704
+ {
705
+ "anonymous": false,
706
+ "inputs": [
707
+ {
708
+ "indexed": false,
709
+ "internalType": "bytes32",
710
+ "name": "transferId",
711
+ "type": "bytes32"
712
+ },
713
+ {
714
+ "components": [
715
+ {
716
+ "internalType": "uint64",
717
+ "name": "gatewayActivityNonce",
718
+ "type": "uint64"
719
+ },
720
+ {
721
+ "internalType": "uint64",
722
+ "name": "argonApprovalsNonce",
723
+ "type": "uint64"
724
+ },
725
+ {
726
+ "internalType": "uint128",
727
+ "name": "argonCirculation",
728
+ "type": "uint128"
729
+ },
730
+ {
731
+ "internalType": "uint128",
732
+ "name": "argonotCirculation",
733
+ "type": "uint128"
734
+ }
735
+ ],
736
+ "indexed": false,
737
+ "internalType": "struct MintingGateway.GatewayActivityState",
738
+ "name": "gatewayState",
739
+ "type": "tuple"
740
+ }
741
+ ],
742
+ "name": "TransferOutOfArgonCanceled",
743
+ "type": "event"
744
+ },
745
+ {
746
+ "anonymous": false,
747
+ "inputs": [
748
+ {
749
+ "indexed": false,
750
+ "internalType": "bytes32",
751
+ "name": "transferId",
752
+ "type": "bytes32"
753
+ },
754
+ {
755
+ "indexed": false,
756
+ "internalType": "address",
757
+ "name": "token",
758
+ "type": "address"
759
+ },
760
+ {
761
+ "indexed": false,
762
+ "internalType": "uint128",
763
+ "name": "amount",
764
+ "type": "uint128"
765
+ },
766
+ {
767
+ "components": [
768
+ {
769
+ "internalType": "address",
770
+ "name": "signingKey",
771
+ "type": "address"
772
+ },
773
+ {
774
+ "internalType": "uint128",
775
+ "name": "microgonCollateral",
776
+ "type": "uint128"
777
+ },
778
+ {
779
+ "internalType": "uint128",
780
+ "name": "micronotCollateral",
781
+ "type": "uint128"
782
+ }
783
+ ],
784
+ "indexed": false,
785
+ "internalType": "struct MintingGateway.MintingAuthorityCollateral[]",
786
+ "name": "mintingCollateral",
787
+ "type": "tuple[]"
788
+ },
789
+ {
790
+ "components": [
791
+ {
792
+ "internalType": "uint64",
793
+ "name": "gatewayActivityNonce",
794
+ "type": "uint64"
795
+ },
796
+ {
797
+ "internalType": "uint64",
798
+ "name": "argonApprovalsNonce",
799
+ "type": "uint64"
800
+ },
801
+ {
802
+ "internalType": "uint128",
803
+ "name": "argonCirculation",
804
+ "type": "uint128"
805
+ },
806
+ {
807
+ "internalType": "uint128",
808
+ "name": "argonotCirculation",
809
+ "type": "uint128"
810
+ }
811
+ ],
812
+ "indexed": false,
813
+ "internalType": "struct MintingGateway.GatewayActivityState",
814
+ "name": "gatewayState",
815
+ "type": "tuple"
816
+ }
817
+ ],
818
+ "name": "TransferOutOfArgonFinalized",
819
+ "type": "event"
820
+ },
821
+ {
822
+ "anonymous": false,
823
+ "inputs": [
824
+ {
825
+ "indexed": true,
826
+ "internalType": "address",
827
+ "name": "from",
828
+ "type": "address"
829
+ },
830
+ {
831
+ "indexed": true,
832
+ "internalType": "address",
833
+ "name": "token",
834
+ "type": "address"
835
+ },
836
+ {
837
+ "indexed": false,
838
+ "internalType": "uint128",
839
+ "name": "amount",
840
+ "type": "uint128"
841
+ },
842
+ {
843
+ "indexed": false,
844
+ "internalType": "bytes32",
845
+ "name": "argonAccountId",
846
+ "type": "bytes32"
847
+ },
848
+ {
849
+ "components": [
850
+ {
851
+ "internalType": "uint64",
852
+ "name": "gatewayActivityNonce",
853
+ "type": "uint64"
854
+ },
855
+ {
856
+ "internalType": "uint64",
857
+ "name": "argonApprovalsNonce",
858
+ "type": "uint64"
859
+ },
860
+ {
861
+ "internalType": "uint128",
862
+ "name": "argonCirculation",
863
+ "type": "uint128"
864
+ },
865
+ {
866
+ "internalType": "uint128",
867
+ "name": "argonotCirculation",
868
+ "type": "uint128"
869
+ }
870
+ ],
871
+ "indexed": false,
872
+ "internalType": "struct MintingGateway.GatewayActivityState",
873
+ "name": "gatewayState",
874
+ "type": "tuple"
875
+ }
876
+ ],
877
+ "name": "TransferToArgonStarted",
878
+ "type": "event"
879
+ },
880
+ {
881
+ "anonymous": false,
882
+ "inputs": [
883
+ {
884
+ "indexed": false,
885
+ "internalType": "address",
886
+ "name": "account",
887
+ "type": "address"
888
+ }
889
+ ],
890
+ "name": "Unpaused",
891
+ "type": "event"
892
+ },
893
+ {
894
+ "inputs": [],
895
+ "name": "RUNTIME_DECIMALS",
896
+ "outputs": [
897
+ {
898
+ "internalType": "uint8",
899
+ "name": "",
900
+ "type": "uint8"
901
+ }
902
+ ],
903
+ "stateMutability": "view",
904
+ "type": "function"
905
+ },
906
+ {
907
+ "inputs": [],
908
+ "name": "RUNTIME_TO_ERC20_SCALE",
909
+ "outputs": [
910
+ {
911
+ "internalType": "uint256",
912
+ "name": "",
913
+ "type": "uint256"
914
+ }
915
+ ],
916
+ "stateMutability": "view",
917
+ "type": "function"
918
+ },
919
+ {
920
+ "inputs": [],
921
+ "name": "TOKEN_DECIMALS",
922
+ "outputs": [
923
+ {
924
+ "internalType": "uint8",
925
+ "name": "",
926
+ "type": "uint8"
927
+ }
928
+ ],
929
+ "stateMutability": "view",
930
+ "type": "function"
931
+ },
932
+ {
933
+ "inputs": [
934
+ {
935
+ "internalType": "uint64",
936
+ "name": "locatorIndex",
937
+ "type": "uint64"
938
+ }
939
+ ],
940
+ "name": "activityBlockLocators",
941
+ "outputs": [
942
+ {
943
+ "internalType": "uint64",
944
+ "name": "blockNumber",
945
+ "type": "uint64"
946
+ },
947
+ {
948
+ "internalType": "uint64",
949
+ "name": "startGatewayActivityNonce",
950
+ "type": "uint64"
951
+ },
952
+ {
953
+ "internalType": "uint64",
954
+ "name": "endGatewayActivityNonce",
955
+ "type": "uint64"
956
+ }
957
+ ],
958
+ "stateMutability": "view",
959
+ "type": "function"
960
+ },
961
+ {
962
+ "inputs": [
963
+ {
964
+ "components": [
965
+ {
966
+ "internalType": "address[]",
967
+ "name": "signers",
968
+ "type": "address[]"
969
+ },
970
+ {
971
+ "internalType": "uint256[]",
972
+ "name": "weights",
973
+ "type": "uint256[]"
974
+ }
975
+ ],
976
+ "internalType": "struct MintingGateway.CouncilSnapshot",
977
+ "name": "currentCouncil",
978
+ "type": "tuple"
979
+ },
980
+ {
981
+ "components": [
982
+ {
983
+ "internalType": "uint64",
984
+ "name": "queueNonce",
985
+ "type": "uint64"
986
+ },
987
+ {
988
+ "internalType": "enum MintingGateway.GatewayUpdateKind",
989
+ "name": "kind",
990
+ "type": "uint8"
991
+ },
992
+ {
993
+ "internalType": "bytes",
994
+ "name": "payload",
995
+ "type": "bytes"
996
+ },
997
+ {
998
+ "internalType": "bytes[]",
999
+ "name": "signatures",
1000
+ "type": "bytes[]"
1001
+ }
1002
+ ],
1003
+ "internalType": "struct MintingGateway.GatewayUpdate[]",
1004
+ "name": "updates",
1005
+ "type": "tuple[]"
1006
+ },
1007
+ {
1008
+ "internalType": "bytes32",
1009
+ "name": "relayerArgonAccountId",
1010
+ "type": "bytes32"
1011
+ }
1012
+ ],
1013
+ "name": "applyGatewayUpdates",
1014
+ "outputs": [],
1015
+ "stateMutability": "nonpayable",
1016
+ "type": "function"
1017
+ },
1018
+ {
1019
+ "inputs": [],
1020
+ "name": "argonApprovalsHash",
1021
+ "outputs": [
1022
+ {
1023
+ "internalType": "bytes32",
1024
+ "name": "",
1025
+ "type": "bytes32"
1026
+ }
1027
+ ],
1028
+ "stateMutability": "view",
1029
+ "type": "function"
1030
+ },
1031
+ {
1032
+ "inputs": [],
1033
+ "name": "argonApprovalsNonce",
1034
+ "outputs": [
1035
+ {
1036
+ "internalType": "uint64",
1037
+ "name": "",
1038
+ "type": "uint64"
1039
+ }
1040
+ ],
1041
+ "stateMutability": "view",
1042
+ "type": "function"
1043
+ },
1044
+ {
1045
+ "inputs": [],
1046
+ "name": "argonCirculation",
1047
+ "outputs": [
1048
+ {
1049
+ "internalType": "uint128",
1050
+ "name": "",
1051
+ "type": "uint128"
1052
+ }
1053
+ ],
1054
+ "stateMutability": "view",
1055
+ "type": "function"
1056
+ },
1057
+ {
1058
+ "inputs": [],
1059
+ "name": "argonToken",
1060
+ "outputs": [
1061
+ {
1062
+ "internalType": "address",
1063
+ "name": "",
1064
+ "type": "address"
1065
+ }
1066
+ ],
1067
+ "stateMutability": "view",
1068
+ "type": "function"
1069
+ },
1070
+ {
1071
+ "inputs": [],
1072
+ "name": "argonotCirculation",
1073
+ "outputs": [
1074
+ {
1075
+ "internalType": "uint128",
1076
+ "name": "",
1077
+ "type": "uint128"
1078
+ }
1079
+ ],
1080
+ "stateMutability": "view",
1081
+ "type": "function"
1082
+ },
1083
+ {
1084
+ "inputs": [],
1085
+ "name": "argonotToken",
1086
+ "outputs": [
1087
+ {
1088
+ "internalType": "address",
1089
+ "name": "",
1090
+ "type": "address"
1091
+ }
1092
+ ],
1093
+ "stateMutability": "view",
1094
+ "type": "function"
1095
+ },
1096
+ {
1097
+ "inputs": [
1098
+ {
1099
+ "components": [
1100
+ {
1101
+ "internalType": "bytes32",
1102
+ "name": "argonAccountId",
1103
+ "type": "bytes32"
1104
+ },
1105
+ {
1106
+ "internalType": "uint64",
1107
+ "name": "argonTransferNonce",
1108
+ "type": "uint64"
1109
+ },
1110
+ {
1111
+ "internalType": "uint64",
1112
+ "name": "chainId",
1113
+ "type": "uint64"
1114
+ },
1115
+ {
1116
+ "internalType": "bytes32",
1117
+ "name": "councilHash",
1118
+ "type": "bytes32"
1119
+ },
1120
+ {
1121
+ "internalType": "address",
1122
+ "name": "recipient",
1123
+ "type": "address"
1124
+ },
1125
+ {
1126
+ "internalType": "uint64",
1127
+ "name": "validUntilBlock",
1128
+ "type": "uint64"
1129
+ },
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "token",
1133
+ "type": "address"
1134
+ },
1135
+ {
1136
+ "internalType": "uint128",
1137
+ "name": "amount",
1138
+ "type": "uint128"
1139
+ },
1140
+ {
1141
+ "internalType": "uint128",
1142
+ "name": "finalizationTip",
1143
+ "type": "uint128"
1144
+ }
1145
+ ],
1146
+ "internalType": "struct MintingGateway.TransferOutOfArgonRequest",
1147
+ "name": "request",
1148
+ "type": "tuple"
1149
+ }
1150
+ ],
1151
+ "name": "cancelTransferOutOfArgon",
1152
+ "outputs": [],
1153
+ "stateMutability": "nonpayable",
1154
+ "type": "function"
1155
+ },
1156
+ {
1157
+ "inputs": [
1158
+ {
1159
+ "components": [
1160
+ {
1161
+ "internalType": "bytes32",
1162
+ "name": "argonAccountId",
1163
+ "type": "bytes32"
1164
+ },
1165
+ {
1166
+ "internalType": "uint64",
1167
+ "name": "argonTransferNonce",
1168
+ "type": "uint64"
1169
+ },
1170
+ {
1171
+ "internalType": "uint64",
1172
+ "name": "chainId",
1173
+ "type": "uint64"
1174
+ },
1175
+ {
1176
+ "internalType": "bytes32",
1177
+ "name": "councilHash",
1178
+ "type": "bytes32"
1179
+ },
1180
+ {
1181
+ "internalType": "address",
1182
+ "name": "recipient",
1183
+ "type": "address"
1184
+ },
1185
+ {
1186
+ "internalType": "uint64",
1187
+ "name": "validUntilBlock",
1188
+ "type": "uint64"
1189
+ },
1190
+ {
1191
+ "internalType": "address",
1192
+ "name": "token",
1193
+ "type": "address"
1194
+ },
1195
+ {
1196
+ "internalType": "uint128",
1197
+ "name": "amount",
1198
+ "type": "uint128"
1199
+ },
1200
+ {
1201
+ "internalType": "uint128",
1202
+ "name": "finalizationTip",
1203
+ "type": "uint128"
1204
+ }
1205
+ ],
1206
+ "internalType": "struct MintingGateway.TransferOutOfArgonRequest",
1207
+ "name": "request",
1208
+ "type": "tuple"
1209
+ },
1210
+ {
1211
+ "components": [
1212
+ {
1213
+ "components": [
1214
+ {
1215
+ "internalType": "uint128",
1216
+ "name": "microgonCollateral",
1217
+ "type": "uint128"
1218
+ },
1219
+ {
1220
+ "internalType": "uint128",
1221
+ "name": "micronotCollateral",
1222
+ "type": "uint128"
1223
+ },
1224
+ {
1225
+ "internalType": "bytes",
1226
+ "name": "signature",
1227
+ "type": "bytes"
1228
+ }
1229
+ ],
1230
+ "internalType": "struct MintingGateway.MintingAuthorization[]",
1231
+ "name": "authorizations",
1232
+ "type": "tuple[]"
1233
+ }
1234
+ ],
1235
+ "internalType": "struct MintingGateway.TransferOutOfArgonProof",
1236
+ "name": "proof",
1237
+ "type": "tuple"
1238
+ }
1239
+ ],
1240
+ "name": "finalizeTransferOutOfArgon",
1241
+ "outputs": [],
1242
+ "stateMutability": "nonpayable",
1243
+ "type": "function"
1244
+ },
1245
+ {
1246
+ "inputs": [
1247
+ {
1248
+ "internalType": "bytes32",
1249
+ "name": "transferId",
1250
+ "type": "bytes32"
1251
+ }
1252
+ ],
1253
+ "name": "finalizedTransferOutOfArgonIds",
1254
+ "outputs": [
1255
+ {
1256
+ "internalType": "bool",
1257
+ "name": "isFinalized",
1258
+ "type": "bool"
1259
+ }
1260
+ ],
1261
+ "stateMutability": "view",
1262
+ "type": "function"
1263
+ },
1264
+ {
1265
+ "inputs": [
1266
+ {
1267
+ "components": [
1268
+ {
1269
+ "internalType": "address[]",
1270
+ "name": "signers",
1271
+ "type": "address[]"
1272
+ },
1273
+ {
1274
+ "internalType": "uint256[]",
1275
+ "name": "weights",
1276
+ "type": "uint256[]"
1277
+ }
1278
+ ],
1279
+ "internalType": "struct MintingGateway.CouncilSnapshot",
1280
+ "name": "nextCouncil",
1281
+ "type": "tuple"
1282
+ }
1283
+ ],
1284
+ "name": "forceUpdateActiveCouncil",
1285
+ "outputs": [],
1286
+ "stateMutability": "nonpayable",
1287
+ "type": "function"
1288
+ },
1289
+ {
1290
+ "inputs": [],
1291
+ "name": "gatewayActivityNonce",
1292
+ "outputs": [
1293
+ {
1294
+ "internalType": "uint64",
1295
+ "name": "",
1296
+ "type": "uint64"
1297
+ }
1298
+ ],
1299
+ "stateMutability": "view",
1300
+ "type": "function"
1301
+ },
1302
+ {
1303
+ "inputs": [],
1304
+ "name": "globalIssuanceCouncil",
1305
+ "outputs": [
1306
+ {
1307
+ "internalType": "uint256",
1308
+ "name": "totalWeight",
1309
+ "type": "uint256"
1310
+ },
1311
+ {
1312
+ "internalType": "uint256",
1313
+ "name": "memberCount",
1314
+ "type": "uint256"
1315
+ },
1316
+ {
1317
+ "internalType": "bytes32",
1318
+ "name": "councilHash",
1319
+ "type": "bytes32"
1320
+ },
1321
+ {
1322
+ "internalType": "uint128",
1323
+ "name": "epochMicrogonsPerArgonot",
1324
+ "type": "uint128"
1325
+ }
1326
+ ],
1327
+ "stateMutability": "view",
1328
+ "type": "function"
1329
+ },
1330
+ {
1331
+ "inputs": [],
1332
+ "name": "guardian",
1333
+ "outputs": [
1334
+ {
1335
+ "internalType": "address",
1336
+ "name": "",
1337
+ "type": "address"
1338
+ }
1339
+ ],
1340
+ "stateMutability": "view",
1341
+ "type": "function"
1342
+ },
1343
+ {
1344
+ "inputs": [
1345
+ {
1346
+ "internalType": "address",
1347
+ "name": "adminSafe",
1348
+ "type": "address"
1349
+ },
1350
+ {
1351
+ "internalType": "address",
1352
+ "name": "guardianAddress",
1353
+ "type": "address"
1354
+ },
1355
+ {
1356
+ "internalType": "bytes32",
1357
+ "name": "councilHash",
1358
+ "type": "bytes32"
1359
+ },
1360
+ {
1361
+ "internalType": "uint256",
1362
+ "name": "councilMemberCount",
1363
+ "type": "uint256"
1364
+ },
1365
+ {
1366
+ "internalType": "uint256",
1367
+ "name": "councilTotalWeight",
1368
+ "type": "uint256"
1369
+ },
1370
+ {
1371
+ "internalType": "uint128",
1372
+ "name": "initialMicrogonsPerArgonot",
1373
+ "type": "uint128"
1374
+ }
1375
+ ],
1376
+ "name": "initialize",
1377
+ "outputs": [],
1378
+ "stateMutability": "nonpayable",
1379
+ "type": "function"
1380
+ },
1381
+ {
1382
+ "inputs": [],
1383
+ "name": "latestActivityBlockLocatorIndex",
1384
+ "outputs": [
1385
+ {
1386
+ "internalType": "uint64",
1387
+ "name": "",
1388
+ "type": "uint64"
1389
+ }
1390
+ ],
1391
+ "stateMutability": "view",
1392
+ "type": "function"
1393
+ },
1394
+ {
1395
+ "inputs": [
1396
+ {
1397
+ "components": [
1398
+ {
1399
+ "internalType": "address[]",
1400
+ "name": "recipients",
1401
+ "type": "address[]"
1402
+ },
1403
+ {
1404
+ "internalType": "uint256[]",
1405
+ "name": "amounts",
1406
+ "type": "uint256[]"
1407
+ }
1408
+ ],
1409
+ "internalType": "struct MintingGateway.MigrationAssetDistribution",
1410
+ "name": "argonMigration",
1411
+ "type": "tuple"
1412
+ },
1413
+ {
1414
+ "components": [
1415
+ {
1416
+ "internalType": "address[]",
1417
+ "name": "recipients",
1418
+ "type": "address[]"
1419
+ },
1420
+ {
1421
+ "internalType": "uint256[]",
1422
+ "name": "amounts",
1423
+ "type": "uint256[]"
1424
+ }
1425
+ ],
1426
+ "internalType": "struct MintingGateway.MigrationAssetDistribution",
1427
+ "name": "argonotMigration",
1428
+ "type": "tuple"
1429
+ }
1430
+ ],
1431
+ "name": "migrate",
1432
+ "outputs": [],
1433
+ "stateMutability": "nonpayable",
1434
+ "type": "function"
1435
+ },
1436
+ {
1437
+ "inputs": [],
1438
+ "name": "migrationCompleted",
1439
+ "outputs": [
1440
+ {
1441
+ "internalType": "bool",
1442
+ "name": "",
1443
+ "type": "bool"
1444
+ }
1445
+ ],
1446
+ "stateMutability": "view",
1447
+ "type": "function"
1448
+ },
1449
+ {
1450
+ "inputs": [
1451
+ {
1452
+ "internalType": "address",
1453
+ "name": "signingKey",
1454
+ "type": "address"
1455
+ }
1456
+ ],
1457
+ "name": "mintingAuthorityCollateralRemaining",
1458
+ "outputs": [
1459
+ {
1460
+ "internalType": "uint128",
1461
+ "name": "microgonCollateral",
1462
+ "type": "uint128"
1463
+ },
1464
+ {
1465
+ "internalType": "uint128",
1466
+ "name": "micronotCollateral",
1467
+ "type": "uint128"
1468
+ }
1469
+ ],
1470
+ "stateMutability": "view",
1471
+ "type": "function"
1472
+ },
1473
+ {
1474
+ "inputs": [],
1475
+ "name": "owner",
1476
+ "outputs": [
1477
+ {
1478
+ "internalType": "address",
1479
+ "name": "",
1480
+ "type": "address"
1481
+ }
1482
+ ],
1483
+ "stateMutability": "view",
1484
+ "type": "function"
1485
+ },
1486
+ {
1487
+ "inputs": [],
1488
+ "name": "pause",
1489
+ "outputs": [],
1490
+ "stateMutability": "nonpayable",
1491
+ "type": "function"
1492
+ },
1493
+ {
1494
+ "inputs": [],
1495
+ "name": "paused",
1496
+ "outputs": [
1497
+ {
1498
+ "internalType": "bool",
1499
+ "name": "",
1500
+ "type": "bool"
1501
+ }
1502
+ ],
1503
+ "stateMutability": "view",
1504
+ "type": "function"
1505
+ },
1506
+ {
1507
+ "inputs": [],
1508
+ "name": "previousGlobalIssuanceCouncilHash",
1509
+ "outputs": [
1510
+ {
1511
+ "internalType": "bytes32",
1512
+ "name": "",
1513
+ "type": "bytes32"
1514
+ }
1515
+ ],
1516
+ "stateMutability": "view",
1517
+ "type": "function"
1518
+ },
1519
+ {
1520
+ "inputs": [],
1521
+ "name": "previousMicrogonsPerArgonot",
1522
+ "outputs": [
1523
+ {
1524
+ "internalType": "uint128",
1525
+ "name": "",
1526
+ "type": "uint128"
1527
+ }
1528
+ ],
1529
+ "stateMutability": "view",
1530
+ "type": "function"
1531
+ },
1532
+ {
1533
+ "inputs": [],
1534
+ "name": "renounceOwnership",
1535
+ "outputs": [],
1536
+ "stateMutability": "nonpayable",
1537
+ "type": "function"
1538
+ },
1539
+ {
1540
+ "inputs": [
1541
+ {
1542
+ "internalType": "address",
1543
+ "name": "guardianAddress",
1544
+ "type": "address"
1545
+ }
1546
+ ],
1547
+ "name": "setGuardian",
1548
+ "outputs": [],
1549
+ "stateMutability": "nonpayable",
1550
+ "type": "function"
1551
+ },
1552
+ {
1553
+ "inputs": [
1554
+ {
1555
+ "internalType": "address",
1556
+ "name": "token",
1557
+ "type": "address"
1558
+ },
1559
+ {
1560
+ "internalType": "uint128",
1561
+ "name": "amount",
1562
+ "type": "uint128"
1563
+ },
1564
+ {
1565
+ "internalType": "bytes32",
1566
+ "name": "argonAccountId",
1567
+ "type": "bytes32"
1568
+ },
1569
+ {
1570
+ "internalType": "uint256",
1571
+ "name": "deadline",
1572
+ "type": "uint256"
1573
+ },
1574
+ {
1575
+ "internalType": "uint8",
1576
+ "name": "v",
1577
+ "type": "uint8"
1578
+ },
1579
+ {
1580
+ "internalType": "bytes32",
1581
+ "name": "r",
1582
+ "type": "bytes32"
1583
+ },
1584
+ {
1585
+ "internalType": "bytes32",
1586
+ "name": "s",
1587
+ "type": "bytes32"
1588
+ }
1589
+ ],
1590
+ "name": "startTransferToArgon",
1591
+ "outputs": [],
1592
+ "stateMutability": "nonpayable",
1593
+ "type": "function"
1594
+ },
1595
+ {
1596
+ "inputs": [
1597
+ {
1598
+ "internalType": "uint128",
1599
+ "name": "amount",
1600
+ "type": "uint128"
1601
+ }
1602
+ ],
1603
+ "name": "toTokenAmount",
1604
+ "outputs": [
1605
+ {
1606
+ "internalType": "uint256",
1607
+ "name": "",
1608
+ "type": "uint256"
1609
+ }
1610
+ ],
1611
+ "stateMutability": "pure",
1612
+ "type": "function"
1613
+ },
1614
+ {
1615
+ "inputs": [
1616
+ {
1617
+ "internalType": "address",
1618
+ "name": "newOwner",
1619
+ "type": "address"
1620
+ }
1621
+ ],
1622
+ "name": "transferOwnership",
1623
+ "outputs": [],
1624
+ "stateMutability": "nonpayable",
1625
+ "type": "function"
1626
+ },
1627
+ {
1628
+ "inputs": [],
1629
+ "name": "unpause",
1630
+ "outputs": [],
1631
+ "stateMutability": "nonpayable",
1632
+ "type": "function"
1633
+ }
1634
+ ],
1635
+ "bytecode": "0x60c060405234801562000010575f80fd5b50604051620044e7380380620044e7833981016040819052620000339162000128565b6001600160a01b03808316608052811660a0526200005062000058565b50506200015e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b80516001600160a01b038116811462000123575f80fd5b919050565b5f80604083850312156200013a575f80fd5b62000145836200010c565b915062000155602084016200010c565b90509250929050565b60805160a051614328620001bf5f395f81816102ac0152818161106f01528181611131015281816119ed0152611a7f01525f81816104170152818161084901528181610d400152818161102c015281816119bc0152611a4201526143285ff3fe608060405234801561000f575f80fd5b50600436106101fd575f3560e01c806378d350e011610114578063905d031f116100a9578063d68d631111610079578063d68d6311146104e6578063e52580a6146104f9578063ecec10a414610561578063f2fde38b14610574578063fd3d912314610587575f80fd5b8063905d031f1461046f578063a3eb8961146104c2578063beabb591146104cb578063c017c902146104d3575f80fd5b80638456cb59116100e45780638456cb591461043957806389d6b82a146104415780638a0dac4a146104545780638da5cb5b14610467575f80fd5b806378d350e0146103df5780637c9afa67146103e75780637e6f72b71461040957806383a4d59114610412575f80fd5b80633f4ba83a116101955780635c975abb116101655780635c975abb146103875780636c8f3e2c1461039e5780636e2c7769146103b15780636e888c46146103c4578063715018a6146103d7575f80fd5b80633f4ba83a1461034b578063452a93201461035357806359b23872146103655780635b7f415c1461036d575f80fd5b80631e07f89e116101d05780631e07f89e146102a75780632ceeddf5146102e65780632ef29f3b146103065780633167798014610327575f80fd5b806318a8f1f01461020157806318cabf39146102165780631a5d93fd146102295780631c1eeae114610276575b5f80fd5b61021461020f3660046136bf565b61059a565b005b610214610224366004613742565b61071f565b600454600554600654600754610248939291906001600160801b031684565b604080519485526020850193909352918301526001600160801b031660608201526080015b60405180910390f35b5f5461028f90600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161026d565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b6102ee610843565b6040516001600160801b03909116815260200161026d565b610319610314366004613773565b6108d1565b60405190815260200161026d565b60035461033b90600160401b900460ff1681565b604051901515815260200161026d565b610214610902565b5f546102ce906001600160a01b031681565b610319610914565b610375601281565b60405160ff909116815260200161026d565b5f805160206142d38339815191525460ff1661033b565b6102146103ac36600461379d565b61092e565b60015461028f906001600160401b031681565b6102146103d23660046137f0565b610feb565b61021461111a565b6102ee61112b565b61033b6103f536600461384f565b600b6020525f908152604090205460ff1681565b61031960085481565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b61021461118b565b61021461044f366004613866565b6111e6565b610214610462366004613881565b611322565b6102ce6113a0565b6104a261047d366004613881565b600a6020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026d565b61031960025481565b610375600681565b6102146104e136600461389a565b6113ce565b60035461028f906001600160401b031681565b6105376105073660046138f5565b600c6020525f90815260409020546001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161026d565b61021461056f36600461391b565b6115e8565b610214610582366004613881565b61191b565b6009546102ee906001600160801b031681565b6105a2611958565b6105ab87611988565b856001600160801b03165f036105d457604051631f2a200560e01b815260040160405180910390fd5b5f6105de876108d1565b60405163d505accf60e01b8152336004820152306024820152604481018290526064810187905260ff8616608482015260a4810185905260c481018490529091506001600160a01b0389169063d505accf9060e4015f604051808303815f87803b15801561064a575f80fd5b505af115801561065c573d5f803e3d5ffd5b505060405163079cc67960e41b8152336004820152602481018490526001600160a01b038b1692506379cc679091506044015f604051808303815f87803b1580156106a5575f80fd5b505af11580156106b7573d5f803e3d5ffd5b505050505f6106c4611add565b90506001600160a01b038916337f3ab970a848f33363427e47cfbd7a627af0c6e72757f150137e38cef3cee24d938a8a6106fd86611b2d565b60405161070c939291906139f4565b60405180910390a3505050505050505050565b610727611ba2565b5f80806107b86107378580613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610775925050506020870187613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506007546001600160801b03169150611bd49050565b6040805160808101825260045481526005546020820152600654918101919091526007546001600160801b0316606082015292955090935091506107fa611cf2565b61080a8484848460600151611d16565b8381604001517f33e53e90d61fdc868629a6234670f92c4445196f3f98ebd71935bbc76c7d915360405160405180910390a35050505050565b5f6108cc7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c79190613a64565b611d7c565b905090565b5f6108de60066012613a8f565b6108e990600a613b88565b6108fc906001600160801b038416613b96565b92915050565b61090a611ba2565b610912611dcc565b565b61092060066012613a8f565b61092b90600a613b88565b81565b610936611958565b61093f82611e2b565b61095761095260e0840160c08501613881565b611988565b610968610100830160e08401613773565b6001600160801b03165f0361099057604051631f2a200560e01b815260040160405180910390fd5b6109a060c0830160a084016138f5565b6001600160401b03164311156109f157436109c160c0840160a085016138f5565b604051635728c7dd60e11b815260048101929092526001600160401b031660248201526044015b60405180910390fd5b5f6109fb83611e95565b9050610a0681611f93565b5f610a148460600135611fc5565b90505f808080610a248780613a18565b90506001600160401b03811115610a3d57610a3d613bad565b604051908082528060200260200182016040528015610a8657816020015b604080516060810182525f80825260208083018290529282015282525f19909201910181610a5b5790505b5090505f5b610a958880613a18565b9050811015610d355736610aa98980613a18565b83818110610ab957610ab9613bc1565b9050602002810190610acb9190613bd5565b90505f610b11610aff610afa8d610ae56020870187613773565b610af56040880160208901613773565b612017565b6120a4565b610b0c6040850185613bf3565b6120d6565b9050846001600160a01b0316816001600160a01b031611610b45576040516309cf9e4960e11b815260040160405180910390fd5b6001600160a01b0381165f908152600a6020908152604090912090610b6c90840184613773565b81546001600160801b0391821691161080610bac5750610b926040840160208501613773565b81546001600160801b03918216600160801b909104909116105b15610bd5576040516364fc3cd160e11b81526001600160a01b03831660048201526024016109e8565b610be26020840184613773565b815482905f90610bfc9084906001600160801b0316613c35565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550826020016020810190610c339190613773565b81548290601090610c55908490600160801b90046001600160801b0316613c35565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550825f016020810190610c8b9190613773565b610c959089613c5c565b9750610ca76040840160208501613773565b610cb19088613c5c565b96506040518060600160405280836001600160a01b03168152602001845f016020810190610cdf9190613773565b6001600160801b03168152602001846020016020810190610d009190613773565b6001600160801b0316815250858581518110610d1e57610d1e613bc1565b602090810291909101015250935050600101610a8b565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610d7060e08a0160c08b01613881565b6001600160a01b031603610e27575f610d8b6006600a613b88565b610da16001600160801b03808916908716613b96565b610dab9190613c7c565b90505f610dc1826001600160801b038816613c9b565b9050610dd46101008b0160e08c01613773565b6001600160801b0316811015610e205780610df66101008c0160e08d01613773565b60405162f9825560e61b815260048101929092526001600160801b031660248201526044016109e8565b5050610eb6565b6001600160801b03841615610e4f57604051630994a0f360e11b815260040160405180910390fd5b610e60610100890160e08a01613773565b6001600160801b0316836001600160801b03161015610eb65782610e8b6101008a0160e08b01613773565b60405162f9825560e61b81526001600160801b039283166004820152911660248201526044016109e8565b610ed4865f908152600b60205260409020805460ff19166001179055565b610ee460e0890160c08a01613881565b6001600160a01b03166340c10f19610f0260a08b0160808c01613881565b610f166103146101008d0160e08e01613773565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015610f59575f80fd5b505af1158015610f6b573d5f803e3d5ffd5b505050505f610f78611add565b90507f64d79900ed82270f744ae62db527f4e328e336d8b51e77bc72601391fe779d0687610fac60e08c0160c08d01613881565b610fbd6101008d0160e08e01613773565b85610fc786611b2d565b604051610fd8959493929190613cae565b60405180910390a1505050505050505050565b610ff3611ba2565b610ffb611958565b600354600160401b900460ff161561102657604051633dbff3b560e01b815260040160405180910390fd5b5f6110677f00000000000000000000000000000000000000000000000000000000000000006110558580613a18565b6110626020880188613a18565b612100565b90505f6110987f00000000000000000000000000000000000000000000000000000000000000006110558580613a18565b6003805460ff60401b1916600160401b17905590507fc255ddc45163282f24909556f7475ab4ec8eb1d51763b25a4560cee9f43d06456110d88580613a18565b9050836110e58680613a18565b60405161110c94939250869093845260208401929092526040830152606082015260800190565b60405180910390a150505050565b611122611ba2565b6109125f61223f565b5f6108cc7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b5f546001600160a01b031633148015906111be57506111a86113a0565b6001600160a01b0316336001600160a01b031614155b156111de5760405163354de03160e21b81523360048201526024016109e8565b6109126122af565b6111ee611958565b6111f781611e2b565b61120a61095260e0830160c08401613881565b61121b610100820160e08301613773565b6001600160801b03165f0361124357604051631f2a200560e01b815260040160405180910390fd5b61125360c0820160a083016138f5565b6001600160401b0316431161129e574361127360c0830160a084016138f5565b6040516374276dcf60e11b815260048101929092526001600160401b031660248201526044016109e8565b5f6112a882611e95565b90506112b381611f93565b6112d1815f908152600b60205260409020805460ff19166001179055565b5f6112da611add565b90507f3cb8789e9bf6f532eec2bc8ffee9b622fc0d6e6daefb7fb6bb2e2f7b2d62e4528261130783611b2d565b604051611315929190613d46565b60405180910390a1505050565b61132a611ba2565b6001600160a01b0381166113515760405163a91f6a8960e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad9099190a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f6113d76122f7565b805490915060ff600160401b82041615906001600160401b03165f811580156113fd5750825b90505f826001600160401b031660011480156114185750303b155b905081158015611426575080155b156114445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561146e57845460ff60401b1916600160401b1785555b6001600160a01b038b16611495576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b038a166114bc5760405163a91f6a8960e01b815260040160405180910390fd5b8815806114c7575087155b806114d0575086155b156114f05760405163665c282b60e01b81525f60048201526024016109e8565b856001600160801b03165f0361151957604051632440a7dd60e01b815260040160405180910390fd5b6115228b61231f565b61152a612330565b5f80546001600160a01b0319166001600160a01b038c1617905561155089888a89611d16565b600980546001600160801b0319166001600160801b03881617905560405189907fac3566d46c25f65b48d269870da4b9349704c79de13ad49b115532834d7e7ed1905f90a283156115db57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b6115f0611958565b811580159061164e575060028383611609600182613d6e565b81811061161857611618613bc1565b905060200281019061162a9190613d81565b61163b906040810190602001613d95565b600281111561164c5761164c613d5a565b145b1561166c5760405163bf3d210b60e01b815260040160405180910390fd5b60065461168c57604051632c1dfd4f60e11b815260040160405180910390fd5b5f61169685612338565b6002549091505f846001600160401b038111156116b5576116b5613bad565b6040519080825280602002602001820160405280156116de578160200160208202803683370190505b5090505f856001600160401b038111156116fa576116fa613bad565b604051908082528060200260200182016040528015611723578160200160208202803683370190505b5090505f611733888885856124ba565b90505f5b8781101561190f573689898381811061175257611752613bc1565b90506020028101906117649190613d81565b600180549192505f91611782916001600160401b0390911690613db3565b90506001600160401b03811661179b60208401846138f5565b6001600160401b0316146117e357806117b760208401846138f5565b604051635efa452960e11b81526001600160401b039283166004820152911660248201526044016109e8565b60026117f56040840160208501613d95565b600281111561180657611806613d5a565b0361181d5761181682888b612721565b9650611905565b5f61182e6040840160208501613d95565b600281111561183f5761183f613d5a565b0361185a576118508289898c61290a565b9098509650611905565b600161186c6040840160208501613d95565b600281111561187d5761187d613d5a565b036118c5576118168289898787148a888151811061189d5761189d613bc1565b60200260200101518a89815181106118b7576118b7613bc1565b60200260200101518f612adb565b6118d56040830160208401613d95565b60028111156118e6576118e6613d5a565b60405163b99607f960e01b815260ff90911660048201526024016109e8565b5050600101611737565b50505050505050505050565b611923611ba2565b6001600160a01b03811661194c57604051631e4fbdf760e01b81525f60048201526024016109e8565b6119558161223f565b50565b5f805160206142d38339815191525460ff16156109125760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0381166119ba57604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580611a1757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b15611a4057604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015611ab457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b1561195557604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b5f8054611afb90600160a01b90046001600160401b03166001613db3565b5f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021790559050611b2a81612d6d565b90565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182526001600160401b038085168252600154166020820152908101611b7b610843565b6001600160801b03168152602001611b9161112b565b6001600160801b0316905292915050565b33611bab6113a0565b6001600160a01b0316146109125760405163118cdaa760e01b81523360048201526024016109e8565b5f805f85515f03611bfa5760405163665c282b60e01b81525f60048201526024016109e8565b8451865114611c1c5760405163512509d360e11b815260040160405180910390fd5b5f805b8751811015611cd6575f888281518110611c3b57611c3b613bc1565b602002602001015190505f888381518110611c5857611c58613bc1565b602002602001015190505f6001600160a01b0316826001600160a01b03161480611c80575080155b80611c9d5750836001600160a01b0316826001600160a01b031611155b15611cbe5760405163665c282b60e01b8152600481018490526024016109e8565b611cc88187613c9b565b955090925050600101611c1f565b5086519150611ce6878787612f36565b93505093509350939050565b600754600980546001600160801b0319166001600160801b03909216919091179055565b6006548015611d255780611d27565b845b6008555060408051608081018252848152602081018490529081018590526001600160801b039091166060909101819052600492909255600555600691909155600780546001600160801b0319169091179055565b5f80611d8a60066012613a8f565b611d9590600a613b88565b611d9f9084613c7c565b90506001600160801b038111156108fc57604051639940a77560e01b8152600481018290526024016109e8565b611dd4612f4c565b5f805160206142d3833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b466001600160401b038116611e4660608401604085016138f5565b6001600160401b031614611e915780611e6560608401604085016138f5565b6040516332e3634d60e21b81526001600160401b039283166004820152911660248201526044016109e8565b5050565b5f8135611ea860408401602085016138f5565b611eb860608501604086016138f5565b6060850135611ecd60a0870160808801613881565b611edd60c0880160a089016138f5565b611eed60e0890160c08a01613881565b611efe6101008a0160e08b01613773565b611f106101208b016101008c01613773565b60408051602081019a909a526001600160401b03988916908a0152958716606089015260808801949094526001600160a01b0392831660a0880152941660c086015290921660e08401526001600160801b039182166101008401521661012082015261014001604051602081830303815290604052805190602001209050919050565b5f818152600b602052604090205460ff161561195557604051632910aca360e01b8152600481018290526024016109e8565b6006545f908203611fe15750506007546001600160801b031690565b6008548203611ffb5750506009546001600160801b031690565b60405163d3f2a9df60e01b8152600481018390526024016109e8565b5f7f28bf99522b0d2f26a76cdeda71578156383bbae91175ca503165cfdbbd1ff34a463061204487611e95565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b0380851660a0830152831660c082015260e0015b6040516020818303038152906040528051906020012090505b9392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b5f805f806120e5878787612f7b565b9250925092506120f58282612fc2565b509095945050505050565b5f8382146121215760405163512509d360e11b815260040160405180910390fd5b5f5b84811015612235575f86868381811061213e5761213e613bc1565b90506020020160208101906121539190613881565b90505f85858481811061216857612168613bc1565b60200291909101359150506001600160a01b03821661219d57604051633bca2f5160e21b8152600481018490526024016109e8565b805f036121bd57604051631f2a200560e01b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390528a16906340c10f19906044015f604051808303815f87803b158015612204575f80fd5b505af1158015612216573d5f803e3d5ffd5b5050505080846122269190613c9b565b93505050806001019050612123565b5095945050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6122b7611958565b5f805160206142d3833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611e0d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108fc565b61232761307a565b6119558161309f565b61091261307a565b61236a6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f80806123b861237a8680613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610775925050506020880188613a18565b925092509250600460020154831415806123d457506004548214155b806123e157506005548114155b1561240d57600654604051633b21437560e21b81526004810191909152602481018490526044016109e8565b6040805160a08101909152806124238780613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060209081019061246890880188613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505050908252506020810194909452604084019290925260609092019190915292915050565b825f816001600160401b038111156124d4576124d4613bad565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b5090505f80865b801561256f5761251381613dd3565b9050600289898381811061252957612529613bc1565b905060200281019061253b9190613d81565b61254c906040810190602001613d95565b600281111561255d5761255d613d5a565b1461256a5780945061256f565b612504565b505f5b87811015612715575f89898381811061258d5761258d613bc1565b905060200281019061259f9190613d81565b6125b0906040810190602001613d95565b905060018160028111156125c6576125c6613d5a565b036126055781858563ffffffff16815181106125e4576125e4613bc1565b63ffffffff9092166020928302919091019091015261260284613de8565b93505b5f81600281111561261857612618613d5a565b148061262357508582145b1561270c5789898381811061263a5761263a613bc1565b905060200281019061264c9190613d81565b61265a906060810190613a18565b612665915084613e0a565b925063ffffffff84161561270c575f5b8463ffffffff16811015612704575f86828151811061269657612696613bc1565b602002602001015163ffffffff169050858a82815181106126b9576126b9613bc1565b602002602001019063ffffffff16908163ffffffff1681525050848982815181106126e6576126e6613bc1565b63ffffffff9092166020928302919091019091015250600101612675565b505f93505f92505b50600101612572565b50505050949350505050565b5f806127306040860186613bf3565b81019061273d9190613e7f565b905061274c6060860186613a18565b90506001146127875760016127646060870187613a18565b604051636b01174760e11b815260048101939093526024830152506044016109e8565b61279f61279760208701876138f5565b8251866130a7565b91505f6127dd6127ae846120a4565b6127bb6060890189613a18565b5f8181106127cb576127cb613bc1565b9050602002810190610b0c9190613bf3565b9050815f01516001600160a01b0316816001600160a01b03161461282a578151604051630be4b0e160e01b81526001600160a01b03918216600482015290821660248201526044016109e8565b81516001600160a01b039081165f908152600a602090815260408083208054875190951684529083209290925590916001600160801b0380821692600160801b909204169061287b908a018a6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028690555f6128aa611add565b86519091506001600160a01b03167ff92f117a698345a1b681cf04280fb5da65a05a9ac88aaacad3e9ee273ce570fd84848b6128e586611b2d565b6040516128f59493929190613ec6565b60405180910390a25050505050509392505050565b61293c6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f8061294b6040880188613bf3565b8101906129589190613f89565b905080602001516001600160801b03165f0361298757604051632440a7dd60e01b815260040160405180910390fd5b5f805f6129a6845f01515f0151855f0151602001518660200151611bd4565b919450925090506129d96129bd60208c018c6138f5565b60408b015186518051602091820151918901519091908d61310e565b9450612a0b856129ec60608d018d613a18565b6129f5916140a6565b8b5160208d015160608e015160808f0151613143565b612a13611cf2565b612a238383838760200151611d16565b612a3060208b018b6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028590555f612a5f611add565b90507fb3dbfeab9c5013403dc2f2300318b92643b1cb9323077d549b4f93bbddded9638489612a8d84611b2d565b604051612a9c93929190614165565b60405180910390a1506040805160a081018252855151815294516020908101519086015284019290925260608301526080820152915094509492505050565b5f80612aea60408a018a613bf3565b810190612af79190614180565b60408101519091506001600160a01b0316612b255760405163611b32ab60e01b815260040160405180910390fd5b80516001600160801b0316158015612b48575060208101516001600160801b0316155b15612b77576040808201519051632edcd91760e21b81526001600160a01b0390911660048201526024016109e8565b63ffffffff85161580612b8e575063ffffffff8416155b15612bbd576040808201519051632edcd91760e21b81526001600160a01b0390911660048201526024016109e8565b6040808201516001600160a01b03165f908152600a6020522080546001600160801b0316151580612bfe57508054600160801b90046001600160801b031615155b15612c2d57604080830151905163cb96603760e01b81526001600160a01b0390911660048201526024016109e8565b612c56612c3d60208c018c6138f5565b8a60400151845f0151856020015186604001518d613188565b92508615612c6f57612c6f836129ec60608d018d613a18565b60408051808201825283516001600160801b0390811682526020808601518216818401908152868501516001600160a01b03165f908152600a835294909420925193518216600160801b0293909116929092179055612cd0908b018b6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028390555f612cff611add565b905082604001516001600160a01b03167fc0f81072946eba75f62302dad0fe56dd420d0b9d311e15b61bbe6e056c29908d845f015185602001518a8a8a612d4588611b2d565b604051612d57969594939291906141e9565b60405180910390a2505050979650505050505050565b60035443906001600160401b03165f03612e2f576003805467ffffffffffffffff19166001908117909155604080516060810182526001600160401b03938416815293831660208086018281529286019182525f93909352600c90925292517fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5c8054945192518416600160801b0267ffffffffffffffff60801b19938516600160401b026001600160801b031990961692909416919091179390931716179055565b6003546001600160401b039081165f908152600c6020526040902080549091838116911603612e855780546001600160401b03909316600160801b0267ffffffffffffffff60801b199093169290921790915550565b6003545f90612e9e906001600160401b03166001613db3565b600380546001600160401b0392831667ffffffffffffffff19909116811790915560408051606081018252958316865295821660208087018281528789019283525f938452600c9091529690912094518554965191518316600160801b0267ffffffffffffffff60801b19928416600160401b026001600160801b031990981691909316179590951794909416939093179091555050565b5f8383836040516020016120849392919061422a565b5f805160206142d38339815191525460ff1661091257604051638dfc202b60e01b815260040160405180910390fd5b5f80806041849003612faf578435602086013560408701355f1a612fa1898285856131b6565b955095509550505050612fb9565b505f915060029050825b93509350939050565b5f826003811115612fd557612fd5613d5a565b03612fde575050565b6001826003811115612ff257612ff2613d5a565b036130105760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561302457613024613d5a565b036130455760405163fce698f760e01b8152600481018290526024016109e8565b600382600381111561305957613059613d5a565b03611e91576040516335e2f38360e21b8152600481018290526024016109e8565b61308261327e565b61091257604051631afcd79f60e31b815260040160405180910390fd5b61192361307a565b604080517fad7e1df8fff16b907a93b4116c7590060dfa3b9c396a8b815e8290b0dff45cba602082015246918101919091523060608201526001600160401b03841660808201526001600160a01b03831660a082015260c081018290525f9060e001612084565b5f8061311b868686612f36565b905061313588885f8461312f8b8b8b613297565b88613302565b9150505b9695505050505050565b5f80613151888888886133b4565b9150915061316182828686613527565b61317e5760405163079842ab60e41b815260040160405180910390fd5b5050505050505050565b5f6131ab878760016001600160a01b0387166131a58a8a8a61358b565b87613302565b979650505050505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156131ef57505f91506003905082613274565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613240573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661326b57505f925060019150829050613274565b92505f91508190505b9450945094915050565b5f6132876122f7565b54600160401b900460ff16919050565b5f7f82ce6440aa5dde11f3613892819b630b62342bacf93e16a292d5c8783aafa4c346306132c6878787612f36565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b03831660a082015260c001612084565b5f7f41936771719a172aa959076ca6aafb826eaf332dd0c9e7860901c398ef42da054630898989600281111561333a5761333a613d5a565b6040805160208101979097528601949094526001600160a01b0390921660608501526001600160401b0316608084015260a083015260ff1660c082015260e0810185905261010081018490526101208101839052610140016040516020818303038152906040528051906020012090509695505050505050565b5f805f806133c1886120a4565b90505f805b885181101561351a575f6133f3848b84815181106133e6576133e6613bc1565b60200260200101516135e7565b9050846001600160a01b0316816001600160a01b031611613427576040516309cf9e4960e11b815260040160405180910390fd5b8851831080156134615750806001600160a01b031689848151811061344e5761344e613bc1565b60200260200101516001600160a01b0316105b156134765761346f836142ba565b9250613427565b88518314806134b05750806001600160a01b031689848151811061349c5761349c613bc1565b60200260200101516001600160a01b031614155b156134d15760405163665c282b60e01b8152600481018390526024016109e8565b6134da876142ba565b96508783815181106134ee576134ee613bc1565b6020026020010151866135019190613c9b565b955093508361350f836142ba565b9250506001016133c6565b5050505094509492505050565b5f806135338684613d6e565b905061354084605a613b96565b61354b866064613b96565b1061355a576001915050613583565b6002811115801561357f5750613571846050613b96565b61357c866064613b96565b10155b9150505b949350505050565b5f7f1cd7f89e34f6154d6f8387a08ffafc689e347b8d5809913b07c58a42995dff6646306135ba87878761360f565b6040805160208101959095528401929092526001600160a01b03166060830152608082015260a001612084565b5f805f806135f58686613645565b9250925092506136058282612fc2565b5090949350505050565b604080516001600160801b0380861660208301528416918101919091526001600160a01b03821660608201525f90608001612084565b5f805f835160410361367c576020840151604085015160608601515f1a61366e888285856131b6565b955095509550505050613687565b505081515f91506002905b9250925092565b80356001600160a01b03811681146136a4575f80fd5b919050565b80356001600160801b03811681146136a4575f80fd5b5f805f805f805f60e0888a0312156136d5575f80fd5b6136de8861368e565b96506136ec602089016136a9565b95506040880135945060608801359350608088013560ff8116811461370f575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f6040828403121561373c575f80fd5b50919050565b5f60208284031215613752575f80fd5b81356001600160401b03811115613767575f80fd5b6135838482850161372c565b5f60208284031215613783575f80fd5b61209d826136a9565b5f610120828403121561373c575f80fd5b5f8061014083850312156137af575f80fd5b6137b9848461378c565b91506101208301356001600160401b038111156137d4575f80fd5b8301602081860312156137e5575f80fd5b809150509250929050565b5f8060408385031215613801575f80fd5b82356001600160401b0380821115613817575f80fd5b6138238683870161372c565b93506020850135915080821115613838575f80fd5b506138458582860161372c565b9150509250929050565b5f6020828403121561385f575f80fd5b5035919050565b5f6101208284031215613877575f80fd5b61209d838361378c565b5f60208284031215613891575f80fd5b61209d8261368e565b5f805f805f8060c087890312156138af575f80fd5b6138b88761368e565b95506138c66020880161368e565b94506040870135935060608701359250608087013591506138e960a088016136a9565b90509295509295509295565b5f60208284031215613905575f80fd5b81356001600160401b038116811461209d575f80fd5b5f805f806060858703121561392e575f80fd5b84356001600160401b0380821115613944575f80fd5b6139508883890161372c565b95506020870135915080821115613965575f80fd5b818701915087601f830112613978575f80fd5b813581811115613986575f80fd5b8860208260051b850101111561399a575f80fd5b95986020929092019750949560400135945092505050565b6001600160401b038082511683528060208301511660208401525060408101516001600160801b03808216604085015280606084015116606085015250505050565b6001600160801b03841681526020810183905260c0810161358360408301846139b2565b5f808335601e19843603018112613a2d575f80fd5b8301803591506001600160401b03821115613a46575f80fd5b6020019150600581901b3603821315613a5d575f80fd5b9250929050565b5f60208284031215613a74575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156108fc576108fc613a7b565b600181815b80851115613ae257815f1904821115613ac857613ac8613a7b565b80851615613ad557918102915b93841c9390800290613aad565b509250929050565b5f82613af8575060016108fc565b81613b0457505f6108fc565b8160018114613b1a5760028114613b2457613b40565b60019150506108fc565b60ff841115613b3557613b35613a7b565b50506001821b6108fc565b5060208310610133831016604e8410600b8410161715613b63575081810a6108fc565b613b6d8383613aa8565b805f1904821115613b8057613b80613a7b565b029392505050565b5f61209d60ff841683613aea565b80820281158282048414176108fc576108fc613a7b565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613be9575f80fd5b9190910192915050565b5f808335601e19843603018112613c08575f80fd5b8301803591506001600160401b03821115613c21575f80fd5b602001915036819003821315613a5d575f80fd5b6001600160801b03828116828216039080821115613c5557613c55613a7b565b5092915050565b6001600160801b03818116838216019080821115613c5557613c55613a7b565b5f82613c9657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108fc576108fc613a7b565b5f610100808301888452602060018060a01b03808a16602087015260406001600160801b03808b16604089015260608660608a01528596508a518087526101208a01975060208c0196505f5b81811015613d2d578751805187168a52878101518516888b01528501518416858a01529782019796860196600101613cfa565b50505050505050508091505061313960808301846139b2565b82815260a0810161209d60208301846139b2565b634e487b7160e01b5f52602160045260245ffd5b818103818111156108fc576108fc613a7b565b5f8235607e19833603018112613be9575f80fd5b5f60208284031215613da5575f80fd5b81356003811061209d575f80fd5b6001600160401b03818116838216019080821115613c5557613c55613a7b565b5f81613de157613de1613a7b565b505f190190565b5f63ffffffff808316818103613e0057613e00613a7b565b6001019392505050565b63ffffffff818116838216019080821115613c5557613c55613a7b565b604080519081016001600160401b0381118282101715613e4957613e49613bad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613e7757613e77613bad565b604052919050565b5f60208284031215613e8f575f80fd5b604051602081018181106001600160401b0382111715613eb157613eb1613bad565b604052613ebd8361368e565b81529392505050565b6001600160801b038581168252841660208201526040810183905260e08101613ef260608301846139b2565b95945050505050565b5f6001600160401b03821115613f1357613f13613bad565b5060051b60200190565b5f82601f830112613f2c575f80fd5b81356020613f41613f3c83613efb565b613e4f565b8083825260208201915060208460051b870101935086841115613f62575f80fd5b602086015b84811015613f7e5780358352918301918301613f67565b509695505050505050565b5f6020808385031215613f9a575f80fd5b82356001600160401b0380821115613fb0575f80fd5b9084019060408287031215613fc3575f80fd5b613fcb613e27565b823582811115613fd9575f80fd5b830160408189031215613fea575f80fd5b613ff2613e27565b813584811115614000575f80fd5b8201601f81018a13614010575f80fd5b803561401e613f3c82613efb565b81815260059190911b8201880190888101908c83111561403c575f80fd5b928901925b82841015614061576140528461368e565b82529289019290890190614041565b84525050508186013584811115614076575f80fd5b6140828a828501613f1d565b82880152508252506140958385016136a9565b848201528094505050505092915050565b5f6140b3613f3c84613efb565b80848252602080830192508560051b8501368111156140d0575f80fd5b855b818110156141595780356001600160401b03808211156140f0575f80fd5b90880190601f3681840112614103575f80fd5b82358281111561411557614115613bad565b614126818301601f19168801613e4f565b9250808352368782860101111561413b575f80fd5b80878501888501375f908301870152508652509382019382016140d2565b50919695505050505050565b8381526020810183905260c0810161358360408301846139b2565b5f60608284031215614190575f80fd5b604051606081018181106001600160401b03821117156141b2576141b2613bad565b6040526141be836136a9565b81526141cc602084016136a9565b60208201526141dd6040840161368e565b60408201529392505050565b6001600160801b0387811682528616602082015263ffffffff8581166040830152841660608201526080810183905261012081016131ab60a08301846139b2565b606080825284519082018190525f906020906080840190828801845b8281101561426b5781516001600160a01b031684529284019290840190600101614246565b505050838103828501528551808252868301918301905f5b8181101561429f57835183529284019291840191600101614283565b50506001600160801b03861660408601529250613583915050565b5f600182016142cb576142cb613a7b565b506001019056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220ba13b15a2b042652410a27461d594bc934f02554ab157ddd8a5d3afad2d1857364736f6c63430008180033",
1636
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106101fd575f3560e01c806378d350e011610114578063905d031f116100a9578063d68d631111610079578063d68d6311146104e6578063e52580a6146104f9578063ecec10a414610561578063f2fde38b14610574578063fd3d912314610587575f80fd5b8063905d031f1461046f578063a3eb8961146104c2578063beabb591146104cb578063c017c902146104d3575f80fd5b80638456cb59116100e45780638456cb591461043957806389d6b82a146104415780638a0dac4a146104545780638da5cb5b14610467575f80fd5b806378d350e0146103df5780637c9afa67146103e75780637e6f72b71461040957806383a4d59114610412575f80fd5b80633f4ba83a116101955780635c975abb116101655780635c975abb146103875780636c8f3e2c1461039e5780636e2c7769146103b15780636e888c46146103c4578063715018a6146103d7575f80fd5b80633f4ba83a1461034b578063452a93201461035357806359b23872146103655780635b7f415c1461036d575f80fd5b80631e07f89e116101d05780631e07f89e146102a75780632ceeddf5146102e65780632ef29f3b146103065780633167798014610327575f80fd5b806318a8f1f01461020157806318cabf39146102165780631a5d93fd146102295780631c1eeae114610276575b5f80fd5b61021461020f3660046136bf565b61059a565b005b610214610224366004613742565b61071f565b600454600554600654600754610248939291906001600160801b031684565b604080519485526020850193909352918301526001600160801b031660608201526080015b60405180910390f35b5f5461028f90600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161026d565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026d565b6102ee610843565b6040516001600160801b03909116815260200161026d565b610319610314366004613773565b6108d1565b60405190815260200161026d565b60035461033b90600160401b900460ff1681565b604051901515815260200161026d565b610214610902565b5f546102ce906001600160a01b031681565b610319610914565b610375601281565b60405160ff909116815260200161026d565b5f805160206142d38339815191525460ff1661033b565b6102146103ac36600461379d565b61092e565b60015461028f906001600160401b031681565b6102146103d23660046137f0565b610feb565b61021461111a565b6102ee61112b565b61033b6103f536600461384f565b600b6020525f908152604090205460ff1681565b61031960085481565b6102ce7f000000000000000000000000000000000000000000000000000000000000000081565b61021461118b565b61021461044f366004613866565b6111e6565b610214610462366004613881565b611322565b6102ce6113a0565b6104a261047d366004613881565b600a6020525f90815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b0393841681529290911660208301520161026d565b61031960025481565b610375600681565b6102146104e136600461389a565b6113ce565b60035461028f906001600160401b031681565b6105376105073660046138f5565b600c6020525f90815260409020546001600160401b0380821691600160401b8104821691600160801b9091041683565b604080516001600160401b039485168152928416602084015292169181019190915260600161026d565b61021461056f36600461391b565b6115e8565b610214610582366004613881565b61191b565b6009546102ee906001600160801b031681565b6105a2611958565b6105ab87611988565b856001600160801b03165f036105d457604051631f2a200560e01b815260040160405180910390fd5b5f6105de876108d1565b60405163d505accf60e01b8152336004820152306024820152604481018290526064810187905260ff8616608482015260a4810185905260c481018490529091506001600160a01b0389169063d505accf9060e4015f604051808303815f87803b15801561064a575f80fd5b505af115801561065c573d5f803e3d5ffd5b505060405163079cc67960e41b8152336004820152602481018490526001600160a01b038b1692506379cc679091506044015f604051808303815f87803b1580156106a5575f80fd5b505af11580156106b7573d5f803e3d5ffd5b505050505f6106c4611add565b90506001600160a01b038916337f3ab970a848f33363427e47cfbd7a627af0c6e72757f150137e38cef3cee24d938a8a6106fd86611b2d565b60405161070c939291906139f4565b60405180910390a3505050505050505050565b610727611ba2565b5f80806107b86107378580613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610775925050506020870187613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250506007546001600160801b03169150611bd49050565b6040805160808101825260045481526005546020820152600654918101919091526007546001600160801b0316606082015292955090935091506107fa611cf2565b61080a8484848460600151611d16565b8381604001517f33e53e90d61fdc868629a6234670f92c4445196f3f98ebd71935bbc76c7d915360405160405180910390a35050505050565b5f6108cc7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c79190613a64565b611d7c565b905090565b5f6108de60066012613a8f565b6108e990600a613b88565b6108fc906001600160801b038416613b96565b92915050565b61090a611ba2565b610912611dcc565b565b61092060066012613a8f565b61092b90600a613b88565b81565b610936611958565b61093f82611e2b565b61095761095260e0840160c08501613881565b611988565b610968610100830160e08401613773565b6001600160801b03165f0361099057604051631f2a200560e01b815260040160405180910390fd5b6109a060c0830160a084016138f5565b6001600160401b03164311156109f157436109c160c0840160a085016138f5565b604051635728c7dd60e11b815260048101929092526001600160401b031660248201526044015b60405180910390fd5b5f6109fb83611e95565b9050610a0681611f93565b5f610a148460600135611fc5565b90505f808080610a248780613a18565b90506001600160401b03811115610a3d57610a3d613bad565b604051908082528060200260200182016040528015610a8657816020015b604080516060810182525f80825260208083018290529282015282525f19909201910181610a5b5790505b5090505f5b610a958880613a18565b9050811015610d355736610aa98980613a18565b83818110610ab957610ab9613bc1565b9050602002810190610acb9190613bd5565b90505f610b11610aff610afa8d610ae56020870187613773565b610af56040880160208901613773565b612017565b6120a4565b610b0c6040850185613bf3565b6120d6565b9050846001600160a01b0316816001600160a01b031611610b45576040516309cf9e4960e11b815260040160405180910390fd5b6001600160a01b0381165f908152600a6020908152604090912090610b6c90840184613773565b81546001600160801b0391821691161080610bac5750610b926040840160208501613773565b81546001600160801b03918216600160801b909104909116105b15610bd5576040516364fc3cd160e11b81526001600160a01b03831660048201526024016109e8565b610be26020840184613773565b815482905f90610bfc9084906001600160801b0316613c35565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550826020016020810190610c339190613773565b81548290601090610c55908490600160801b90046001600160801b0316613c35565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550825f016020810190610c8b9190613773565b610c959089613c5c565b9750610ca76040840160208501613773565b610cb19088613c5c565b96506040518060600160405280836001600160a01b03168152602001845f016020810190610cdf9190613773565b6001600160801b03168152602001846020016020810190610d009190613773565b6001600160801b0316815250858581518110610d1e57610d1e613bc1565b602090810291909101015250935050600101610a8b565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610d7060e08a0160c08b01613881565b6001600160a01b031603610e27575f610d8b6006600a613b88565b610da16001600160801b03808916908716613b96565b610dab9190613c7c565b90505f610dc1826001600160801b038816613c9b565b9050610dd46101008b0160e08c01613773565b6001600160801b0316811015610e205780610df66101008c0160e08d01613773565b60405162f9825560e61b815260048101929092526001600160801b031660248201526044016109e8565b5050610eb6565b6001600160801b03841615610e4f57604051630994a0f360e11b815260040160405180910390fd5b610e60610100890160e08a01613773565b6001600160801b0316836001600160801b03161015610eb65782610e8b6101008a0160e08b01613773565b60405162f9825560e61b81526001600160801b039283166004820152911660248201526044016109e8565b610ed4865f908152600b60205260409020805460ff19166001179055565b610ee460e0890160c08a01613881565b6001600160a01b03166340c10f19610f0260a08b0160808c01613881565b610f166103146101008d0160e08e01613773565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015610f59575f80fd5b505af1158015610f6b573d5f803e3d5ffd5b505050505f610f78611add565b90507f64d79900ed82270f744ae62db527f4e328e336d8b51e77bc72601391fe779d0687610fac60e08c0160c08d01613881565b610fbd6101008d0160e08e01613773565b85610fc786611b2d565b604051610fd8959493929190613cae565b60405180910390a1505050505050505050565b610ff3611ba2565b610ffb611958565b600354600160401b900460ff161561102657604051633dbff3b560e01b815260040160405180910390fd5b5f6110677f00000000000000000000000000000000000000000000000000000000000000006110558580613a18565b6110626020880188613a18565b612100565b90505f6110987f00000000000000000000000000000000000000000000000000000000000000006110558580613a18565b6003805460ff60401b1916600160401b17905590507fc255ddc45163282f24909556f7475ab4ec8eb1d51763b25a4560cee9f43d06456110d88580613a18565b9050836110e58680613a18565b60405161110c94939250869093845260208401929092526040830152606082015260800190565b60405180910390a150505050565b611122611ba2565b6109125f61223f565b5f6108cc7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108a3573d5f803e3d5ffd5b5f546001600160a01b031633148015906111be57506111a86113a0565b6001600160a01b0316336001600160a01b031614155b156111de5760405163354de03160e21b81523360048201526024016109e8565b6109126122af565b6111ee611958565b6111f781611e2b565b61120a61095260e0830160c08401613881565b61121b610100820160e08301613773565b6001600160801b03165f0361124357604051631f2a200560e01b815260040160405180910390fd5b61125360c0820160a083016138f5565b6001600160401b0316431161129e574361127360c0830160a084016138f5565b6040516374276dcf60e11b815260048101929092526001600160401b031660248201526044016109e8565b5f6112a882611e95565b90506112b381611f93565b6112d1815f908152600b60205260409020805460ff19166001179055565b5f6112da611add565b90507f3cb8789e9bf6f532eec2bc8ffee9b622fc0d6e6daefb7fb6bb2e2f7b2d62e4528261130783611b2d565b604051611315929190613d46565b60405180910390a1505050565b61132a611ba2565b6001600160a01b0381166113515760405163a91f6a8960e01b815260040160405180910390fd5b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad9099190a35050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b5f6113d76122f7565b805490915060ff600160401b82041615906001600160401b03165f811580156113fd5750825b90505f826001600160401b031660011480156114185750303b155b905081158015611426575080155b156114445760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561146e57845460ff60401b1916600160401b1785555b6001600160a01b038b16611495576040516314030c0360e11b815260040160405180910390fd5b6001600160a01b038a166114bc5760405163a91f6a8960e01b815260040160405180910390fd5b8815806114c7575087155b806114d0575086155b156114f05760405163665c282b60e01b81525f60048201526024016109e8565b856001600160801b03165f0361151957604051632440a7dd60e01b815260040160405180910390fd5b6115228b61231f565b61152a612330565b5f80546001600160a01b0319166001600160a01b038c1617905561155089888a89611d16565b600980546001600160801b0319166001600160801b03881617905560405189907fac3566d46c25f65b48d269870da4b9349704c79de13ad49b115532834d7e7ed1905f90a283156115db57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b6115f0611958565b811580159061164e575060028383611609600182613d6e565b81811061161857611618613bc1565b905060200281019061162a9190613d81565b61163b906040810190602001613d95565b600281111561164c5761164c613d5a565b145b1561166c5760405163bf3d210b60e01b815260040160405180910390fd5b60065461168c57604051632c1dfd4f60e11b815260040160405180910390fd5b5f61169685612338565b6002549091505f846001600160401b038111156116b5576116b5613bad565b6040519080825280602002602001820160405280156116de578160200160208202803683370190505b5090505f856001600160401b038111156116fa576116fa613bad565b604051908082528060200260200182016040528015611723578160200160208202803683370190505b5090505f611733888885856124ba565b90505f5b8781101561190f573689898381811061175257611752613bc1565b90506020028101906117649190613d81565b600180549192505f91611782916001600160401b0390911690613db3565b90506001600160401b03811661179b60208401846138f5565b6001600160401b0316146117e357806117b760208401846138f5565b604051635efa452960e11b81526001600160401b039283166004820152911660248201526044016109e8565b60026117f56040840160208501613d95565b600281111561180657611806613d5a565b0361181d5761181682888b612721565b9650611905565b5f61182e6040840160208501613d95565b600281111561183f5761183f613d5a565b0361185a576118508289898c61290a565b9098509650611905565b600161186c6040840160208501613d95565b600281111561187d5761187d613d5a565b036118c5576118168289898787148a888151811061189d5761189d613bc1565b60200260200101518a89815181106118b7576118b7613bc1565b60200260200101518f612adb565b6118d56040830160208401613d95565b60028111156118e6576118e6613d5a565b60405163b99607f960e01b815260ff90911660048201526024016109e8565b5050600101611737565b50505050505050505050565b611923611ba2565b6001600160a01b03811661194c57604051631e4fbdf760e01b81525f60048201526024016109e8565b6119558161223f565b50565b5f805160206142d38339815191525460ff16156109125760405163d93c066560e01b815260040160405180910390fd5b6001600160a01b0381166119ba57604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161580611a1757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316155b15611a4057604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614158015611ab457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b1561195557604051635f8b555b60e11b81526001600160a01b03821660048201526024016109e8565b5f8054611afb90600160a01b90046001600160401b03166001613db3565b5f805467ffffffffffffffff60a01b1916600160a01b6001600160401b038416021790559050611b2a81612d6d565b90565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182526001600160401b038085168252600154166020820152908101611b7b610843565b6001600160801b03168152602001611b9161112b565b6001600160801b0316905292915050565b33611bab6113a0565b6001600160a01b0316146109125760405163118cdaa760e01b81523360048201526024016109e8565b5f805f85515f03611bfa5760405163665c282b60e01b81525f60048201526024016109e8565b8451865114611c1c5760405163512509d360e11b815260040160405180910390fd5b5f805b8751811015611cd6575f888281518110611c3b57611c3b613bc1565b602002602001015190505f888381518110611c5857611c58613bc1565b602002602001015190505f6001600160a01b0316826001600160a01b03161480611c80575080155b80611c9d5750836001600160a01b0316826001600160a01b031611155b15611cbe5760405163665c282b60e01b8152600481018490526024016109e8565b611cc88187613c9b565b955090925050600101611c1f565b5086519150611ce6878787612f36565b93505093509350939050565b600754600980546001600160801b0319166001600160801b03909216919091179055565b6006548015611d255780611d27565b845b6008555060408051608081018252848152602081018490529081018590526001600160801b039091166060909101819052600492909255600555600691909155600780546001600160801b0319169091179055565b5f80611d8a60066012613a8f565b611d9590600a613b88565b611d9f9084613c7c565b90506001600160801b038111156108fc57604051639940a77560e01b8152600481018290526024016109e8565b611dd4612f4c565b5f805160206142d3833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b466001600160401b038116611e4660608401604085016138f5565b6001600160401b031614611e915780611e6560608401604085016138f5565b6040516332e3634d60e21b81526001600160401b039283166004820152911660248201526044016109e8565b5050565b5f8135611ea860408401602085016138f5565b611eb860608501604086016138f5565b6060850135611ecd60a0870160808801613881565b611edd60c0880160a089016138f5565b611eed60e0890160c08a01613881565b611efe6101008a0160e08b01613773565b611f106101208b016101008c01613773565b60408051602081019a909a526001600160401b03988916908a0152958716606089015260808801949094526001600160a01b0392831660a0880152941660c086015290921660e08401526001600160801b039182166101008401521661012082015261014001604051602081830303815290604052805190602001209050919050565b5f818152600b602052604090205460ff161561195557604051632910aca360e01b8152600481018290526024016109e8565b6006545f908203611fe15750506007546001600160801b031690565b6008548203611ffb5750506009546001600160801b031690565b60405163d3f2a9df60e01b8152600481018390526024016109e8565b5f7f28bf99522b0d2f26a76cdeda71578156383bbae91175ca503165cfdbbd1ff34a463061204487611e95565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b0380851660a0830152831660c082015260e0015b6040516020818303038152906040528051906020012090505b9392505050565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b5f805f806120e5878787612f7b565b9250925092506120f58282612fc2565b509095945050505050565b5f8382146121215760405163512509d360e11b815260040160405180910390fd5b5f5b84811015612235575f86868381811061213e5761213e613bc1565b90506020020160208101906121539190613881565b90505f85858481811061216857612168613bc1565b60200291909101359150506001600160a01b03821661219d57604051633bca2f5160e21b8152600481018490526024016109e8565b805f036121bd57604051631f2a200560e01b815260040160405180910390fd5b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390528a16906340c10f19906044015f604051808303815f87803b158015612204575f80fd5b505af1158015612216573d5f803e3d5ffd5b5050505080846122269190613c9b565b93505050806001019050612123565b5095945050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6122b7611958565b5f805160206142d3833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611e0d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006108fc565b61232761307a565b6119558161309f565b61091261307a565b61236a6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f80806123b861237a8680613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250610775925050506020880188613a18565b925092509250600460020154831415806123d457506004548214155b806123e157506005548114155b1561240d57600654604051633b21437560e21b81526004810191909152602481018490526044016109e8565b6040805160a08101909152806124238780613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050509082525060209081019061246890880188613a18565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505050908252506020810194909452604084019290925260609092019190915292915050565b825f816001600160401b038111156124d4576124d4613bad565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b5090505f80865b801561256f5761251381613dd3565b9050600289898381811061252957612529613bc1565b905060200281019061253b9190613d81565b61254c906040810190602001613d95565b600281111561255d5761255d613d5a565b1461256a5780945061256f565b612504565b505f5b87811015612715575f89898381811061258d5761258d613bc1565b905060200281019061259f9190613d81565b6125b0906040810190602001613d95565b905060018160028111156125c6576125c6613d5a565b036126055781858563ffffffff16815181106125e4576125e4613bc1565b63ffffffff9092166020928302919091019091015261260284613de8565b93505b5f81600281111561261857612618613d5a565b148061262357508582145b1561270c5789898381811061263a5761263a613bc1565b905060200281019061264c9190613d81565b61265a906060810190613a18565b612665915084613e0a565b925063ffffffff84161561270c575f5b8463ffffffff16811015612704575f86828151811061269657612696613bc1565b602002602001015163ffffffff169050858a82815181106126b9576126b9613bc1565b602002602001019063ffffffff16908163ffffffff1681525050848982815181106126e6576126e6613bc1565b63ffffffff9092166020928302919091019091015250600101612675565b505f93505f92505b50600101612572565b50505050949350505050565b5f806127306040860186613bf3565b81019061273d9190613e7f565b905061274c6060860186613a18565b90506001146127875760016127646060870187613a18565b604051636b01174760e11b815260048101939093526024830152506044016109e8565b61279f61279760208701876138f5565b8251866130a7565b91505f6127dd6127ae846120a4565b6127bb6060890189613a18565b5f8181106127cb576127cb613bc1565b9050602002810190610b0c9190613bf3565b9050815f01516001600160a01b0316816001600160a01b03161461282a578151604051630be4b0e160e01b81526001600160a01b03918216600482015290821660248201526044016109e8565b81516001600160a01b039081165f908152600a602090815260408083208054875190951684529083209290925590916001600160801b0380821692600160801b909204169061287b908a018a6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028690555f6128aa611add565b86519091506001600160a01b03167ff92f117a698345a1b681cf04280fb5da65a05a9ac88aaacad3e9ee273ce570fd84848b6128e586611b2d565b6040516128f59493929190613ec6565b60405180910390a25050505050509392505050565b61293c6040518060a0016040528060608152602001606081526020015f80191681526020015f81526020015f81525090565b5f8061294b6040880188613bf3565b8101906129589190613f89565b905080602001516001600160801b03165f0361298757604051632440a7dd60e01b815260040160405180910390fd5b5f805f6129a6845f01515f0151855f0151602001518660200151611bd4565b919450925090506129d96129bd60208c018c6138f5565b60408b015186518051602091820151918901519091908d61310e565b9450612a0b856129ec60608d018d613a18565b6129f5916140a6565b8b5160208d015160608e015160808f0151613143565b612a13611cf2565b612a238383838760200151611d16565b612a3060208b018b6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028590555f612a5f611add565b90507fb3dbfeab9c5013403dc2f2300318b92643b1cb9323077d549b4f93bbddded9638489612a8d84611b2d565b604051612a9c93929190614165565b60405180910390a1506040805160a081018252855151815294516020908101519086015284019290925260608301526080820152915094509492505050565b5f80612aea60408a018a613bf3565b810190612af79190614180565b60408101519091506001600160a01b0316612b255760405163611b32ab60e01b815260040160405180910390fd5b80516001600160801b0316158015612b48575060208101516001600160801b0316155b15612b77576040808201519051632edcd91760e21b81526001600160a01b0390911660048201526024016109e8565b63ffffffff85161580612b8e575063ffffffff8416155b15612bbd576040808201519051632edcd91760e21b81526001600160a01b0390911660048201526024016109e8565b6040808201516001600160a01b03165f908152600a6020522080546001600160801b0316151580612bfe57508054600160801b90046001600160801b031615155b15612c2d57604080830151905163cb96603760e01b81526001600160a01b0390911660048201526024016109e8565b612c56612c3d60208c018c6138f5565b8a60400151845f0151856020015186604001518d613188565b92508615612c6f57612c6f836129ec60608d018d613a18565b60408051808201825283516001600160801b0390811682526020808601518216818401908152868501516001600160a01b03165f908152600a835294909420925193518216600160801b0293909116929092179055612cd0908b018b6138f5565b6001805467ffffffffffffffff19166001600160401b039290921691909117905560028390555f612cff611add565b905082604001516001600160a01b03167fc0f81072946eba75f62302dad0fe56dd420d0b9d311e15b61bbe6e056c29908d845f015185602001518a8a8a612d4588611b2d565b604051612d57969594939291906141e9565b60405180910390a2505050979650505050505050565b60035443906001600160401b03165f03612e2f576003805467ffffffffffffffff19166001908117909155604080516060810182526001600160401b03938416815293831660208086018281529286019182525f93909352600c90925292517fd421a5181c571bba3f01190c922c3b2a896fc1d84e86c9f17ac10e67ebef8b5c8054945192518416600160801b0267ffffffffffffffff60801b19938516600160401b026001600160801b031990961692909416919091179390931716179055565b6003546001600160401b039081165f908152600c6020526040902080549091838116911603612e855780546001600160401b03909316600160801b0267ffffffffffffffff60801b199093169290921790915550565b6003545f90612e9e906001600160401b03166001613db3565b600380546001600160401b0392831667ffffffffffffffff19909116811790915560408051606081018252958316865295821660208087018281528789019283525f938452600c9091529690912094518554965191518316600160801b0267ffffffffffffffff60801b19928416600160401b026001600160801b031990981691909316179590951794909416939093179091555050565b5f8383836040516020016120849392919061422a565b5f805160206142d38339815191525460ff1661091257604051638dfc202b60e01b815260040160405180910390fd5b5f80806041849003612faf578435602086013560408701355f1a612fa1898285856131b6565b955095509550505050612fb9565b505f915060029050825b93509350939050565b5f826003811115612fd557612fd5613d5a565b03612fde575050565b6001826003811115612ff257612ff2613d5a565b036130105760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561302457613024613d5a565b036130455760405163fce698f760e01b8152600481018290526024016109e8565b600382600381111561305957613059613d5a565b03611e91576040516335e2f38360e21b8152600481018290526024016109e8565b61308261327e565b61091257604051631afcd79f60e31b815260040160405180910390fd5b61192361307a565b604080517fad7e1df8fff16b907a93b4116c7590060dfa3b9c396a8b815e8290b0dff45cba602082015246918101919091523060608201526001600160401b03841660808201526001600160a01b03831660a082015260c081018290525f9060e001612084565b5f8061311b868686612f36565b905061313588885f8461312f8b8b8b613297565b88613302565b9150505b9695505050505050565b5f80613151888888886133b4565b9150915061316182828686613527565b61317e5760405163079842ab60e41b815260040160405180910390fd5b5050505050505050565b5f6131ab878760016001600160a01b0387166131a58a8a8a61358b565b87613302565b979650505050505050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156131ef57505f91506003905082613274565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613240573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b03811661326b57505f925060019150829050613274565b92505f91508190505b9450945094915050565b5f6132876122f7565b54600160401b900460ff16919050565b5f7f82ce6440aa5dde11f3613892819b630b62342bacf93e16a292d5c8783aafa4c346306132c6878787612f36565b6040805160208101959095528401929092526001600160a01b0316606083015260808201526001600160801b03831660a082015260c001612084565b5f7f41936771719a172aa959076ca6aafb826eaf332dd0c9e7860901c398ef42da054630898989600281111561333a5761333a613d5a565b6040805160208101979097528601949094526001600160a01b0390921660608501526001600160401b0316608084015260a083015260ff1660c082015260e0810185905261010081018490526101208101839052610140016040516020818303038152906040528051906020012090509695505050505050565b5f805f806133c1886120a4565b90505f805b885181101561351a575f6133f3848b84815181106133e6576133e6613bc1565b60200260200101516135e7565b9050846001600160a01b0316816001600160a01b031611613427576040516309cf9e4960e11b815260040160405180910390fd5b8851831080156134615750806001600160a01b031689848151811061344e5761344e613bc1565b60200260200101516001600160a01b0316105b156134765761346f836142ba565b9250613427565b88518314806134b05750806001600160a01b031689848151811061349c5761349c613bc1565b60200260200101516001600160a01b031614155b156134d15760405163665c282b60e01b8152600481018390526024016109e8565b6134da876142ba565b96508783815181106134ee576134ee613bc1565b6020026020010151866135019190613c9b565b955093508361350f836142ba565b9250506001016133c6565b5050505094509492505050565b5f806135338684613d6e565b905061354084605a613b96565b61354b866064613b96565b1061355a576001915050613583565b6002811115801561357f5750613571846050613b96565b61357c866064613b96565b10155b9150505b949350505050565b5f7f1cd7f89e34f6154d6f8387a08ffafc689e347b8d5809913b07c58a42995dff6646306135ba87878761360f565b6040805160208101959095528401929092526001600160a01b03166060830152608082015260a001612084565b5f805f806135f58686613645565b9250925092506136058282612fc2565b5090949350505050565b604080516001600160801b0380861660208301528416918101919091526001600160a01b03821660608201525f90608001612084565b5f805f835160410361367c576020840151604085015160608601515f1a61366e888285856131b6565b955095509550505050613687565b505081515f91506002905b9250925092565b80356001600160a01b03811681146136a4575f80fd5b919050565b80356001600160801b03811681146136a4575f80fd5b5f805f805f805f60e0888a0312156136d5575f80fd5b6136de8861368e565b96506136ec602089016136a9565b95506040880135945060608801359350608088013560ff8116811461370f575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f6040828403121561373c575f80fd5b50919050565b5f60208284031215613752575f80fd5b81356001600160401b03811115613767575f80fd5b6135838482850161372c565b5f60208284031215613783575f80fd5b61209d826136a9565b5f610120828403121561373c575f80fd5b5f8061014083850312156137af575f80fd5b6137b9848461378c565b91506101208301356001600160401b038111156137d4575f80fd5b8301602081860312156137e5575f80fd5b809150509250929050565b5f8060408385031215613801575f80fd5b82356001600160401b0380821115613817575f80fd5b6138238683870161372c565b93506020850135915080821115613838575f80fd5b506138458582860161372c565b9150509250929050565b5f6020828403121561385f575f80fd5b5035919050565b5f6101208284031215613877575f80fd5b61209d838361378c565b5f60208284031215613891575f80fd5b61209d8261368e565b5f805f805f8060c087890312156138af575f80fd5b6138b88761368e565b95506138c66020880161368e565b94506040870135935060608701359250608087013591506138e960a088016136a9565b90509295509295509295565b5f60208284031215613905575f80fd5b81356001600160401b038116811461209d575f80fd5b5f805f806060858703121561392e575f80fd5b84356001600160401b0380821115613944575f80fd5b6139508883890161372c565b95506020870135915080821115613965575f80fd5b818701915087601f830112613978575f80fd5b813581811115613986575f80fd5b8860208260051b850101111561399a575f80fd5b95986020929092019750949560400135945092505050565b6001600160401b038082511683528060208301511660208401525060408101516001600160801b03808216604085015280606084015116606085015250505050565b6001600160801b03841681526020810183905260c0810161358360408301846139b2565b5f808335601e19843603018112613a2d575f80fd5b8301803591506001600160401b03821115613a46575f80fd5b6020019150600581901b3603821315613a5d575f80fd5b9250929050565b5f60208284031215613a74575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156108fc576108fc613a7b565b600181815b80851115613ae257815f1904821115613ac857613ac8613a7b565b80851615613ad557918102915b93841c9390800290613aad565b509250929050565b5f82613af8575060016108fc565b81613b0457505f6108fc565b8160018114613b1a5760028114613b2457613b40565b60019150506108fc565b60ff841115613b3557613b35613a7b565b50506001821b6108fc565b5060208310610133831016604e8410600b8410161715613b63575081810a6108fc565b613b6d8383613aa8565b805f1904821115613b8057613b80613a7b565b029392505050565b5f61209d60ff841683613aea565b80820281158282048414176108fc576108fc613a7b565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f8235605e19833603018112613be9575f80fd5b9190910192915050565b5f808335601e19843603018112613c08575f80fd5b8301803591506001600160401b03821115613c21575f80fd5b602001915036819003821315613a5d575f80fd5b6001600160801b03828116828216039080821115613c5557613c55613a7b565b5092915050565b6001600160801b03818116838216019080821115613c5557613c55613a7b565b5f82613c9657634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156108fc576108fc613a7b565b5f610100808301888452602060018060a01b03808a16602087015260406001600160801b03808b16604089015260608660608a01528596508a518087526101208a01975060208c0196505f5b81811015613d2d578751805187168a52878101518516888b01528501518416858a01529782019796860196600101613cfa565b50505050505050508091505061313960808301846139b2565b82815260a0810161209d60208301846139b2565b634e487b7160e01b5f52602160045260245ffd5b818103818111156108fc576108fc613a7b565b5f8235607e19833603018112613be9575f80fd5b5f60208284031215613da5575f80fd5b81356003811061209d575f80fd5b6001600160401b03818116838216019080821115613c5557613c55613a7b565b5f81613de157613de1613a7b565b505f190190565b5f63ffffffff808316818103613e0057613e00613a7b565b6001019392505050565b63ffffffff818116838216019080821115613c5557613c55613a7b565b604080519081016001600160401b0381118282101715613e4957613e49613bad565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613e7757613e77613bad565b604052919050565b5f60208284031215613e8f575f80fd5b604051602081018181106001600160401b0382111715613eb157613eb1613bad565b604052613ebd8361368e565b81529392505050565b6001600160801b038581168252841660208201526040810183905260e08101613ef260608301846139b2565b95945050505050565b5f6001600160401b03821115613f1357613f13613bad565b5060051b60200190565b5f82601f830112613f2c575f80fd5b81356020613f41613f3c83613efb565b613e4f565b8083825260208201915060208460051b870101935086841115613f62575f80fd5b602086015b84811015613f7e5780358352918301918301613f67565b509695505050505050565b5f6020808385031215613f9a575f80fd5b82356001600160401b0380821115613fb0575f80fd5b9084019060408287031215613fc3575f80fd5b613fcb613e27565b823582811115613fd9575f80fd5b830160408189031215613fea575f80fd5b613ff2613e27565b813584811115614000575f80fd5b8201601f81018a13614010575f80fd5b803561401e613f3c82613efb565b81815260059190911b8201880190888101908c83111561403c575f80fd5b928901925b82841015614061576140528461368e565b82529289019290890190614041565b84525050508186013584811115614076575f80fd5b6140828a828501613f1d565b82880152508252506140958385016136a9565b848201528094505050505092915050565b5f6140b3613f3c84613efb565b80848252602080830192508560051b8501368111156140d0575f80fd5b855b818110156141595780356001600160401b03808211156140f0575f80fd5b90880190601f3681840112614103575f80fd5b82358281111561411557614115613bad565b614126818301601f19168801613e4f565b9250808352368782860101111561413b575f80fd5b80878501888501375f908301870152508652509382019382016140d2565b50919695505050505050565b8381526020810183905260c0810161358360408301846139b2565b5f60608284031215614190575f80fd5b604051606081018181106001600160401b03821117156141b2576141b2613bad565b6040526141be836136a9565b81526141cc602084016136a9565b60208201526141dd6040840161368e565b60408201529392505050565b6001600160801b0387811682528616602082015263ffffffff8581166040830152841660608201526080810183905261012081016131ab60a08301846139b2565b606080825284519082018190525f906020906080840190828801845b8281101561426b5781516001600160a01b031684529284019290840190600101614246565b505050838103828501528551808252868301918301905f5b8181101561429f57835183529284019291840191600101614283565b50506001600160801b03861660408601529250613583915050565b5f600182016142cb576142cb613a7b565b506001019056fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220ba13b15a2b042652410a27461d594bc934f02554ab157ddd8a5d3afad2d1857364736f6c63430008180033",
1637
+ "linkReferences": {},
1638
+ "deployedLinkReferences": {},
1639
+ "immutableReferences": {
1640
+ "10415": [
1641
+ {
1642
+ "length": 32,
1643
+ "start": 1047
1644
+ },
1645
+ {
1646
+ "length": 32,
1647
+ "start": 2121
1648
+ },
1649
+ {
1650
+ "length": 32,
1651
+ "start": 3392
1652
+ },
1653
+ {
1654
+ "length": 32,
1655
+ "start": 4140
1656
+ },
1657
+ {
1658
+ "length": 32,
1659
+ "start": 6588
1660
+ },
1661
+ {
1662
+ "length": 32,
1663
+ "start": 6722
1664
+ }
1665
+ ],
1666
+ "10418": [
1667
+ {
1668
+ "length": 32,
1669
+ "start": 684
1670
+ },
1671
+ {
1672
+ "length": 32,
1673
+ "start": 4207
1674
+ },
1675
+ {
1676
+ "length": 32,
1677
+ "start": 4401
1678
+ },
1679
+ {
1680
+ "length": 32,
1681
+ "start": 6637
1682
+ },
1683
+ {
1684
+ "length": 32,
1685
+ "start": 6783
1686
+ }
1687
+ ]
1688
+ },
1689
+ "inputSourceName": "project/contracts/MintingGateway.sol",
1690
+ "buildInfoId": "solc-0_8_24-60efd9e6b353bf690c975d53f5b2d6dedfc311a3"
1691
+ }