-
Notifications
You must be signed in to change notification settings - Fork 0
/
UMintv2.json
15060 lines (15060 loc) · 721 KB
/
UMintv2.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"abi": [
{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" },
{
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"inputs": [],
"outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "claim",
"inputs": [
{ "name": "client", "type": "string", "internalType": "string" },
{ "name": "collection", "type": "string", "internalType": "string" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "claim",
"inputs": [
{ "name": "client", "type": "string", "internalType": "string" },
{ "name": "amount", "type": "uint256", "internalType": "uint256" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "claim",
"inputs": [
{ "name": "client", "type": "string", "internalType": "string" },
{ "name": "collection", "type": "string", "internalType": "string" },
{ "name": "asset", "type": "uint256", "internalType": "uint256" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "claimRole",
"inputs": [],
"outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "computeClientVaultAddress",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" },
{ "name": "bytecode", "type": "bytes", "internalType": "bytes" }
],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "deployClientVault",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" },
{ "name": "bytecode", "type": "bytes", "internalType": "bytes" }
],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getClientVaultAddress",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" }
],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getCollection",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" }
],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct UMintStorageSlot.Collection",
"components": [
{
"name": "token",
"type": "uint8",
"internalType": "enum UMintStorageSlot.Token"
},
{ "name": "addr", "type": "address", "internalType": "address" }
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRoleAdmin",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" }
],
"outputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "grantRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "hasRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "initialize",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "isSupported",
"inputs": [
{ "name": "nft", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "manageCollection",
"inputs": [
{ "name": "name", "type": "string", "internalType": "string" },
{
"name": "token",
"type": "uint8",
"internalType": "enum UMintStorageSlot.Token"
},
{ "name": "asset", "type": "address", "internalType": "address" },
{ "name": "supported", "type": "bool", "internalType": "bool" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "renounceRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "revokeRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [
{ "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" }
],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalClientVaults",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalCollection",
"inputs": [],
"outputs": [
{
"name": "",
"type": "tuple",
"internalType": "struct UMintStorageSlot.TotalCollection",
"components": [
{ "name": "total", "type": "uint64", "internalType": "uint64" },
{ "name": "erc20", "type": "uint64", "internalType": "uint64" },
{ "name": "erc721", "type": "uint64", "internalType": "uint64" },
{ "name": "erc1155", "type": "uint64", "internalType": "uint64" }
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "version",
"inputs": [],
"outputs": [{ "name": "", "type": "uint8", "internalType": "uint8" }],
"stateMutability": "view"
},
{
"type": "event",
"name": "Claim",
"inputs": [
{
"name": "vault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ClaimERC1155",
"inputs": [
{
"name": "vault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "collection",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ClaimERC20",
"inputs": [
{
"name": "vault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "collection",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ClaimERC721",
"inputs": [
{
"name": "vault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "collection",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "recipient",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "ClientVaultDeployment",
"inputs": [
{
"name": "name",
"type": "string",
"indexed": true,
"internalType": "string"
},
{
"name": "addr",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "CollectionAdded",
"inputs": [
{
"name": "name",
"type": "string",
"indexed": true,
"internalType": "string"
},
{
"name": "token",
"type": "uint8",
"indexed": true,
"internalType": "enum UMintStorageSlot.Token"
},
{
"name": "addr",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "CollectionAmended",
"inputs": [
{
"name": "name",
"type": "string",
"indexed": true,
"internalType": "string"
},
{
"name": "token",
"type": "uint8",
"indexed": true,
"internalType": "enum UMintStorageSlot.Token"
},
{
"name": "addr",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "CollectionRemoved",
"inputs": [
{
"name": "name",
"type": "string",
"indexed": true,
"internalType": "string"
},
{
"name": "token",
"type": "uint8",
"indexed": true,
"internalType": "enum UMintStorageSlot.Token"
},
{
"name": "addr",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "Initialized",
"inputs": [
{
"name": "version",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleAdminChanged",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "newAdminRole",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleGranted",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"type": "event",
"name": "RoleRevoked",
"inputs": [
{
"name": "role",
"type": "bytes32",
"indexed": true,
"internalType": "bytes32"
},
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{ "type": "error", "name": "DuplicateClientVault", "inputs": [] },
{ "type": "error", "name": "EOAAddressDetected", "inputs": [] },
{ "type": "error", "name": "IncorrectParametersProvided", "inputs": [] },
{ "type": "error", "name": "InvalidClient", "inputs": [] },
{ "type": "error", "name": "UnsupportedCollection", "inputs": [] },
{ "type": "error", "name": "ZeroAddressDetected", "inputs": [] }
],
"bytecode": {
"object": "0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61232580620000ed6000396000f3fe60806040526004361061012a5760003560e01c806354708bc4116100ab578063a217fddf1161006f578063a217fddf1461043a578063b6893ea21461044f578063c467dda61461046f578063d547741f14610484578063dbc472c4146104a4578063f2d1597c146104c457600080fd5b806354708bc4146103a357806354fd4d50146103c3578063622bfe84146103e55780638129fc1c1461040557806391d148541461041a57600080fd5b80632f2ff15d116100f25780632f2ff15d1461021c57806336568abe1461023c57806342b422401461025c5780634f129c531461033d57806350d7a6fd1461038357600080fd5b806301ffc9a71461012f5780630ff79b33146101645780632240f8aa14610191578063248a9ca3146101bc57806328f1a47e146101fa575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611c3d565b6104d9565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004611c67565b610510565b60405161015b9190611cee565b6101a461019f366004611dda565b6105a2565b6040516001600160a01b03909116815260200161015b565b3480156101c857600080fd5b506101ec6101d7366004611e51565b60009081526065602052604090206001015490565b60405190815260200161015b565b34801561020657600080fd5b5061021a610215366004611e86565b610722565b005b34801561022857600080fd5b5061021a610237366004611f0d565b610942565b34801561024857600080fd5b5061021a610257366004611f0d565b61096c565b34801561026857600080fd5b506102fa6040805160808101825260008082526020820181905291810182905260608101919091527f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f06040805160808101825291546001600160401b038082168452600160401b820481166020850152600160801b8204811692840192909252600160c01b9004166060820152919050565b60405161015b919081516001600160401b039081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b34801561034957600080fd5b5061014f610358366004611f39565b6001600160a01b031660009081526000805160206122b0833981519152602052604090205460ff1690565b34801561038f57600080fd5b5061021a61039e366004611f54565b6109ef565b3480156103af57600080fd5b506101a46103be366004611c67565b610b12565b3480156103cf57600080fd5b5060005460405160ff909116815260200161015b565b3480156103f157600080fd5b5061021a610400366004611fb8565b610b54565b34801561041157600080fd5b5061021a610cbf565b34801561042657600080fd5b5061014f610435366004611f0d565b610d96565b34801561044657600080fd5b506101ec600081565b34801561045b57600080fd5b506101a461046a366004611dda565b610dc1565b34801561047b57600080fd5b506101ec610e5e565b34801561049057600080fd5b5061021a61049f366004611f0d565b610e88565b3480156104b057600080fd5b5061021a6104bf36600461202e565b610ead565b3480156104d057600080fd5b506101ec6111a7565b60006001600160e01b03198216637965db0b60e01b148061050a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60408051808201909152600080825260208201526000805160206122d083398151915260405161054390859085906120ab565b908152604080519182900360200182208282019091528054829060ff16600281111561057157610571611cd8565b600281111561058257610582611cd8565b8152905461010090046001600160a01b0316602090910152905092915050565b6000806105ae816111cf565b60006000805160206122908339815191526040516105cd9087906120df565b908152604051908190036020019020546001600160a01b0316146106045760405163356f230760e11b815260040160405180910390fd5b60008460405160200161061791906120df565b6040516020818303038152906040528051906020012060001c905060008185516020870134f59050803b61064a57600080fd5b806000805160206122908339815191526040516106689089906120df565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790556106be7f128189f296ef4f48a0ec8cb04b32c9ac4a0714d50ad3e23394e6294891ce693690565b80549060006106cc83612111565b9190505550806001600160a01b0316866040516106e991906120df565b604051908190038120907fc7ffcc6ece4b4b965c172e4b412680651704abd4be9b13e1bd9efa308c77574d90600090a395945050505050565b61072a6111a7565b610733816111cf565b60006000805160206122d08339815191526040516107529088906120df565b908152604080519182900360200182208282019091528054829060ff16600281111561078057610780611cd8565b600281111561079157610791611cd8565b815290546001600160a01b03610100909104811660209283015290820151919250166107d057604051630179a91760e01b815260040160405180910390fd5b6002815160028111156107e5576107e5611cd8565b14610803576040516371b9042160e01b815260040160405180910390fd5b6000600080516020612290833981519152604051610822908a906120df565b908152604051908190036020019020546001600160a01b031690508061085b57604051631b528a2560e31b815260040160405180910390fd5b6020820151604051633d7fe79160e01b81526001600160a01b039182166004820152602481018890526044810187905285821660648201528291821690633d7fe79190608401600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167fa572974ed39a66b0c59d71e3271565d0cb0344e15ea00be97c199084822082478a8a60405161092f929190918252602082015260400190565b60405180910390a4505050505050505050565b60008281526065602052604090206001015461095d816111cf565b61096783836111dc565b505050565b6001600160a01b03811633146109e15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6109eb8282611262565b5050565b6109f76111a7565b610a00816111cf565b6000600080516020612290833981519152604051610a1f9087906120df565b908152604051908190036020019020546001600160a01b0316905080610a5857604051631b528a2560e31b815260040160405180910390fd5b60405163b7760c8f60e01b8152600481018590526001600160a01b03848116602483015282919082169063b7760c8f90604401600060405180830381600087803b158015610aa557600080fd5b505af1158015610ab9573d6000803e3d6000fd5b50505050836001600160a01b0316826001600160a01b03167fa8363d922dc171313585ca13972873c5732013dc819db64b51ba8b1aa1a1e3e287604051610b0291815260200190565b60405180910390a3505050505050565b6000600080516020612290833981519152604051610b3390859085906120ab565b908152604051908190036020019020546001600160a01b0316905092915050565b6000610b5f816111cf565b6001600160a01b038316610b8657604051632887dd7560e11b815260040160405180910390fd5b610b8f836112c9565b610bac576040516318d393c760e21b815260040160405180910390fd5b610bb684846112e6565b610bd3576040516371b9042160e01b815260040160405180910390fd5b60006000805160206122d0833981519152604051610bf29088906120df565b908152604080519182900360200182208282019091528054829060ff166002811115610c2057610c20611cd8565b6002811115610c3157610c31611cd8565b8152905461010090046001600160a01b031660209091015290506000805160206122b08339815191526001600160a01b0385166000908152602091909152604090205460ff16610caa5760208101516001600160a01b0316610c9d57610c988686866113cc565b610cb7565b610c98868686868561151b565b610cb7868686868561151b565b505050505050565b600054600290610100900460ff16158015610ce1575060005460ff8083169116105b610d445760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109d8565b6000805461ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008060ff60f81b3085604051602001610ddb91906120df565b60408051601f19818403018152908290528051602091820120875188830120610e3e95949391929091016001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051808303601f190181529190528051602090910120949350505050565b60007f128189f296ef4f48a0ec8cb04b32c9ac4a0714d50ad3e23394e6294891ce69365b54919050565b600082815260656020526040902060010154610ea3816111cf565b6109678383611262565b610eb56111a7565b610ebe816111cf565b60006000805160206122d0833981519152604051610edd9087906120df565b908152604080519182900360200182208282019091528054829060ff166002811115610f0b57610f0b611cd8565b6002811115610f1c57610f1c611cd8565b815290546001600160a01b0361010090910481166020928301529082015191925016610f5b57604051630179a91760e01b815260040160405180910390fd5b600281516002811115610f7057610f70611cd8565b03610f8e576040516371b9042160e01b815260040160405180910390fd5b6000600080516020612290833981519152604051610fad9089906120df565b908152604051908190036020019020546001600160a01b0316905080610fe657604051631b528a2560e31b815260040160405180910390fd5b80600083516002811115610ffc57610ffc611cd8565b036110d15760208301516040516397e10a7960e01b81526001600160a01b039182166004820152602481018890528682166044820152908216906397e10a7990606401600060405180830381600087803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167ff09770ff54f95778eff2b3bed3c2b96206b86bebb355ebee4cf69acfac12b0a8896040516110c491815260200190565b60405180910390a461119d565b60208301516040516332756f7960e21b81526001600160a01b0391821660048201526024810188905286821660448201529082169063c9d5bde490606401600060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167fc0c0b2c4914a4829fc8f04fd89e4c4fb30428719e1ddec316634a0c89fc7cf248960405161119491815260200190565b60405180910390a45b5050505050505050565b60007f912c7b37cd4cbc410efff7b0dd160abb3e922341e761b33c41d5f70b47d86662610e82565b6111d9813361182b565b50565b6111e68282610d96565b6109eb5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561121e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61126c8282610d96565b156109eb5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000813b8082036112dd5750600092915050565b50600192915050565b600060018360028111156112fc576112fc611cd8565b03611378576040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a7906024015b602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611371919061212a565b905061050a565b600283600281111561138c5761138c611cd8565b036113c4576040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401611330565b50600161050a565b60405180604001604052808360028111156113e9576113e9611cd8565b81526001600160a01b0383166020909101526000805160206122d08339815191526040516114189086906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561144557611445611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b031990911617905560016114896000805160206122b083398151915290565b6001600160a01b038316600090815260209190915260409020805460ff19169115159190911790556114bc826001611884565b806001600160a01b03168260028111156114d8576114d8611cd8565b846040516114e691906120df565b604051908190038120907f955b6026fb305b85b6c7e2402c992566de7ae64373f6a731ce94e12a9675b48690600090a4505050565b816115fa576000805160206122d083398151915260405161153d9087906120df565b90815260405190819003602001902080546001600160a81b031916905561156f6000805160206122b083398151915290565b6001600160a01b038416600090815260209190915260408120805460ff1916905561159b908590611884565b826001600160a01b03168460028111156115b7576115b7611cd8565b866040516115c591906120df565b604051908190038120907fee5cb45c4e980ee674346d3fb7323c432cb859968c0a1686832daeb7abdc152290600090a4611824565b60208101516001600160a01b03166116b757604051806040016040528085600281111561162957611629611cd8565b81526001600160a01b0385166020909101526000805160206122d08339815191526040516116589088906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561168557611685611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b03199091161790556117c9565b826001600160a01b031681602001516001600160a01b03161461172757602081810180516001600160a01b0390811660009081526000805160206122b08339815191528085526040808320805460ff19908116909155938916948590529382529093529120805490911660011790555b8084600281111561173a5761173a611cd8565b9081600281111561174d5761174d611cd8565b905250806000805160206122d083398151915260405161176e9088906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561179b5761179b611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b03199091161790555b826001600160a01b03168460028111156117e5576117e5611cd8565b866040516117f391906120df565b604051908190038120907fbcce022a3ddb5aa3f7ad51a588d2a78bb91465dc2753ad35da983be3d7c79ee990600090a45b5050505050565b6118358282610d96565b6109eb5761184281611a89565b61184d836020611a9b565b60405160200161185e929190612147565b60408051601f198184030181529082905262461bcd60e51b82526109d8916004016121bc565b604080516080810182527f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f0546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152811561190d578051816118fc826121ef565b6001600160401b0316905250611926565b80518161191982612215565b6001600160401b03169052505b600083600281111561193a5761193a611cd8565b036119765781156119665760208101805190611955826121ef565b6001600160401b03169052506119e8565b6020810180519061195582612215565b600183600281111561198a5761198a611cd8565b036119b55781156119a55760408101805190611955826121ef565b6040810180519061195582612215565b81156119cb5760608101805190611955826121ef565b606081018051906119db82612215565b6001600160401b03169052505b807f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f081518154602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166fffffffffffffffffffffffffffffffff928216600160401b026fffffffffffffffffffffffffffffffff199094169190941617919091171617919091179055505050565b606061050a6001600160a01b03831660145b60606000611aaa836002612238565b611ab590600261224f565b6001600160401b03811115611acc57611acc611d2f565b6040519080825280601f01601f191660200182016040528015611af6576020820181803683370190505b509050600360fc1b81600081518110611b1157611b11612262565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611b4057611b40612262565b60200101906001600160f81b031916908160001a9053506000611b64846002612238565b611b6f90600161224f565b90505b6001811115611be7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611ba357611ba3612262565b1a60f81b828281518110611bb957611bb9612262565b60200101906001600160f81b031916908160001a90535060049490941c93611be081612278565b9050611b72565b508315611c365760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016109d8565b9392505050565b600060208284031215611c4f57600080fd5b81356001600160e01b031981168114611c3657600080fd5b60008060208385031215611c7a57600080fd5b82356001600160401b0380821115611c9157600080fd5b818501915085601f830112611ca557600080fd5b813581811115611cb457600080fd5b866020828501011115611cc657600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052602160045260246000fd5b8151604082019060038110611d1357634e487b7160e01b600052602160045260246000fd5b82526020928301516001600160a01b0316929091019190915290565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611d5f57611d5f611d2f565b604051601f8501601f19908116603f01168101908282118183101715611d8757611d87611d2f565b81604052809350858152868686011115611da057600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611dcb57600080fd5b611c3683833560208501611d45565b60008060408385031215611ded57600080fd5b82356001600160401b0380821115611e0457600080fd5b611e1086838701611dba565b93506020850135915080821115611e2657600080fd5b508301601f81018513611e3857600080fd5b611e4785823560208401611d45565b9150509250929050565b600060208284031215611e6357600080fd5b5035919050565b80356001600160a01b0381168114611e8157600080fd5b919050565b600080600080600060a08688031215611e9e57600080fd5b85356001600160401b0380821115611eb557600080fd5b611ec189838a01611dba565b96506020880135915080821115611ed757600080fd5b50611ee488828901611dba565b9450506040860135925060608601359150611f0160808701611e6a565b90509295509295909350565b60008060408385031215611f2057600080fd5b82359150611f3060208401611e6a565b90509250929050565b600060208284031215611f4b57600080fd5b611c3682611e6a565b600080600060608486031215611f6957600080fd5b83356001600160401b03811115611f7f57600080fd5b611f8b86828701611dba565b93505060208401359150611fa160408501611e6a565b90509250925092565b80151581146111d957600080fd5b60008060008060808587031215611fce57600080fd5b84356001600160401b03811115611fe457600080fd5b611ff087828801611dba565b94505060208501356003811061200557600080fd5b925061201360408601611e6a565b9150606085013561202381611faa565b939692955090935050565b6000806000806080858703121561204457600080fd5b84356001600160401b038082111561205b57600080fd5b61206788838901611dba565b9550602087013591508082111561207d57600080fd5b5061208a87828801611dba565b935050604085013591506120a060608601611e6a565b905092959194509250565b8183823760009101908152919050565b60005b838110156120d65781810151838201526020016120be565b50506000910152565b600082516120f18184602087016120bb565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600060018201612123576121236120fb565b5060010190565b60006020828403121561213c57600080fd5b8151611c3681611faa565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161217f8160178501602088016120bb565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516121b08160288401602088016120bb565b01602801949350505050565b60208152600082518060208401526121db8160408501602087016120bb565b601f01601f19169190910160400192915050565b60006001600160401b0380831681810361220b5761220b6120fb565b6001019392505050565b60006001600160401b0382168061222e5761222e6120fb565b6000190192915050565b808202811582820484141761050a5761050a6120fb565b8082018082111561050a5761050a6120fb565b634e487b7160e01b600052603260045260246000fd5b600081612287576122876120fb565b50600019019056fe913809dc77207024d42c149a6fc49677f1a7996ddfb76a2ad70c002de11d2165747e8886b87b62f0eade79fdec6b3c3337a6c6564d7c5bb207756ea0c05622b92afd7ced8a1785401fa9d7faea1524b7f175fbee961e055e66c9b7ff9eecad88a26469706673582212203e252de299f4cf411cf2713522eeddc4c8daed7cefcb84cde57dd8a69b5be65a64736f6c63430008120033",
"sourceMap": "1226:16862:44:-:0;;;3432:44;;;;;;;;;-1:-1:-1;3450:22:44;:20;:22::i;:::-;1226:16862;;6083:286:19;6152:13;;;;;;;6151:14;6143:66;;;;-1:-1:-1;;;6143:66:19;;216:2:50;6143:66:19;;;198:21:50;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:50;;;338:37;392:19;;6143:66:19;;;;;;;;6224:12;;6240:15;6224:12;;;:31;6220:142;;6272:12;:30;;-1:-1:-1;;6272:30:19;6287:15;6272:30;;;;;;6322:28;;564:36:50;;;6322:28:19;;552:2:50;537:18;6322:28:19;;;;;;;6220:142;6083:286::o;422:184:50:-;1226:16862:44;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x60806040526004361061012a5760003560e01c806354708bc4116100ab578063a217fddf1161006f578063a217fddf1461043a578063b6893ea21461044f578063c467dda61461046f578063d547741f14610484578063dbc472c4146104a4578063f2d1597c146104c457600080fd5b806354708bc4146103a357806354fd4d50146103c3578063622bfe84146103e55780638129fc1c1461040557806391d148541461041a57600080fd5b80632f2ff15d116100f25780632f2ff15d1461021c57806336568abe1461023c57806342b422401461025c5780634f129c531461033d57806350d7a6fd1461038357600080fd5b806301ffc9a71461012f5780630ff79b33146101645780632240f8aa14610191578063248a9ca3146101bc57806328f1a47e146101fa575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611c3d565b6104d9565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004611c67565b610510565b60405161015b9190611cee565b6101a461019f366004611dda565b6105a2565b6040516001600160a01b03909116815260200161015b565b3480156101c857600080fd5b506101ec6101d7366004611e51565b60009081526065602052604090206001015490565b60405190815260200161015b565b34801561020657600080fd5b5061021a610215366004611e86565b610722565b005b34801561022857600080fd5b5061021a610237366004611f0d565b610942565b34801561024857600080fd5b5061021a610257366004611f0d565b61096c565b34801561026857600080fd5b506102fa6040805160808101825260008082526020820181905291810182905260608101919091527f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f06040805160808101825291546001600160401b038082168452600160401b820481166020850152600160801b8204811692840192909252600160c01b9004166060820152919050565b60405161015b919081516001600160401b039081168252602080840151821690830152604080840151821690830152606092830151169181019190915260800190565b34801561034957600080fd5b5061014f610358366004611f39565b6001600160a01b031660009081526000805160206122b0833981519152602052604090205460ff1690565b34801561038f57600080fd5b5061021a61039e366004611f54565b6109ef565b3480156103af57600080fd5b506101a46103be366004611c67565b610b12565b3480156103cf57600080fd5b5060005460405160ff909116815260200161015b565b3480156103f157600080fd5b5061021a610400366004611fb8565b610b54565b34801561041157600080fd5b5061021a610cbf565b34801561042657600080fd5b5061014f610435366004611f0d565b610d96565b34801561044657600080fd5b506101ec600081565b34801561045b57600080fd5b506101a461046a366004611dda565b610dc1565b34801561047b57600080fd5b506101ec610e5e565b34801561049057600080fd5b5061021a61049f366004611f0d565b610e88565b3480156104b057600080fd5b5061021a6104bf36600461202e565b610ead565b3480156104d057600080fd5b506101ec6111a7565b60006001600160e01b03198216637965db0b60e01b148061050a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60408051808201909152600080825260208201526000805160206122d083398151915260405161054390859085906120ab565b908152604080519182900360200182208282019091528054829060ff16600281111561057157610571611cd8565b600281111561058257610582611cd8565b8152905461010090046001600160a01b0316602090910152905092915050565b6000806105ae816111cf565b60006000805160206122908339815191526040516105cd9087906120df565b908152604051908190036020019020546001600160a01b0316146106045760405163356f230760e11b815260040160405180910390fd5b60008460405160200161061791906120df565b6040516020818303038152906040528051906020012060001c905060008185516020870134f59050803b61064a57600080fd5b806000805160206122908339815191526040516106689089906120df565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790556106be7f128189f296ef4f48a0ec8cb04b32c9ac4a0714d50ad3e23394e6294891ce693690565b80549060006106cc83612111565b9190505550806001600160a01b0316866040516106e991906120df565b604051908190038120907fc7ffcc6ece4b4b965c172e4b412680651704abd4be9b13e1bd9efa308c77574d90600090a395945050505050565b61072a6111a7565b610733816111cf565b60006000805160206122d08339815191526040516107529088906120df565b908152604080519182900360200182208282019091528054829060ff16600281111561078057610780611cd8565b600281111561079157610791611cd8565b815290546001600160a01b03610100909104811660209283015290820151919250166107d057604051630179a91760e01b815260040160405180910390fd5b6002815160028111156107e5576107e5611cd8565b14610803576040516371b9042160e01b815260040160405180910390fd5b6000600080516020612290833981519152604051610822908a906120df565b908152604051908190036020019020546001600160a01b031690508061085b57604051631b528a2560e31b815260040160405180910390fd5b6020820151604051633d7fe79160e01b81526001600160a01b039182166004820152602481018890526044810187905285821660648201528291821690633d7fe79190608401600060405180830381600087803b1580156108bb57600080fd5b505af11580156108cf573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167fa572974ed39a66b0c59d71e3271565d0cb0344e15ea00be97c199084822082478a8a60405161092f929190918252602082015260400190565b60405180910390a4505050505050505050565b60008281526065602052604090206001015461095d816111cf565b61096783836111dc565b505050565b6001600160a01b03811633146109e15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6109eb8282611262565b5050565b6109f76111a7565b610a00816111cf565b6000600080516020612290833981519152604051610a1f9087906120df565b908152604051908190036020019020546001600160a01b0316905080610a5857604051631b528a2560e31b815260040160405180910390fd5b60405163b7760c8f60e01b8152600481018590526001600160a01b03848116602483015282919082169063b7760c8f90604401600060405180830381600087803b158015610aa557600080fd5b505af1158015610ab9573d6000803e3d6000fd5b50505050836001600160a01b0316826001600160a01b03167fa8363d922dc171313585ca13972873c5732013dc819db64b51ba8b1aa1a1e3e287604051610b0291815260200190565b60405180910390a3505050505050565b6000600080516020612290833981519152604051610b3390859085906120ab565b908152604051908190036020019020546001600160a01b0316905092915050565b6000610b5f816111cf565b6001600160a01b038316610b8657604051632887dd7560e11b815260040160405180910390fd5b610b8f836112c9565b610bac576040516318d393c760e21b815260040160405180910390fd5b610bb684846112e6565b610bd3576040516371b9042160e01b815260040160405180910390fd5b60006000805160206122d0833981519152604051610bf29088906120df565b908152604080519182900360200182208282019091528054829060ff166002811115610c2057610c20611cd8565b6002811115610c3157610c31611cd8565b8152905461010090046001600160a01b031660209091015290506000805160206122b08339815191526001600160a01b0385166000908152602091909152604090205460ff16610caa5760208101516001600160a01b0316610c9d57610c988686866113cc565b610cb7565b610c98868686868561151b565b610cb7868686868561151b565b505050505050565b600054600290610100900460ff16158015610ce1575060005460ff8083169116105b610d445760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109d8565b6000805461ffff191660ff83169081176101001761ff0019169091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008060ff60f81b3085604051602001610ddb91906120df565b60408051601f19818403018152908290528051602091820120875188830120610e3e95949391929091016001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff191660018401526015830152603582015260550190565b60408051808303601f190181529190528051602090910120949350505050565b60007f128189f296ef4f48a0ec8cb04b32c9ac4a0714d50ad3e23394e6294891ce69365b54919050565b600082815260656020526040902060010154610ea3816111cf565b6109678383611262565b610eb56111a7565b610ebe816111cf565b60006000805160206122d0833981519152604051610edd9087906120df565b908152604080519182900360200182208282019091528054829060ff166002811115610f0b57610f0b611cd8565b6002811115610f1c57610f1c611cd8565b815290546001600160a01b0361010090910481166020928301529082015191925016610f5b57604051630179a91760e01b815260040160405180910390fd5b600281516002811115610f7057610f70611cd8565b03610f8e576040516371b9042160e01b815260040160405180910390fd5b6000600080516020612290833981519152604051610fad9089906120df565b908152604051908190036020019020546001600160a01b0316905080610fe657604051631b528a2560e31b815260040160405180910390fd5b80600083516002811115610ffc57610ffc611cd8565b036110d15760208301516040516397e10a7960e01b81526001600160a01b039182166004820152602481018890528682166044820152908216906397e10a7990606401600060405180830381600087803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167ff09770ff54f95778eff2b3bed3c2b96206b86bebb355ebee4cf69acfac12b0a8896040516110c491815260200190565b60405180910390a461119d565b60208301516040516332756f7960e21b81526001600160a01b0391821660048201526024810188905286821660448201529082169063c9d5bde490606401600060405180830381600087803b15801561112957600080fd5b505af115801561113d573d6000803e3d6000fd5b50505050846001600160a01b031683602001516001600160a01b0316836001600160a01b03167fc0c0b2c4914a4829fc8f04fd89e4c4fb30428719e1ddec316634a0c89fc7cf248960405161119491815260200190565b60405180910390a45b5050505050505050565b60007f912c7b37cd4cbc410efff7b0dd160abb3e922341e761b33c41d5f70b47d86662610e82565b6111d9813361182b565b50565b6111e68282610d96565b6109eb5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561121e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61126c8282610d96565b156109eb5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000813b8082036112dd5750600092915050565b50600192915050565b600060018360028111156112fc576112fc611cd8565b03611378576040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a7906024015b602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611371919061212a565b905061050a565b600283600281111561138c5761138c611cd8565b036113c4576040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401611330565b50600161050a565b60405180604001604052808360028111156113e9576113e9611cd8565b81526001600160a01b0383166020909101526000805160206122d08339815191526040516114189086906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561144557611445611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b031990911617905560016114896000805160206122b083398151915290565b6001600160a01b038316600090815260209190915260409020805460ff19169115159190911790556114bc826001611884565b806001600160a01b03168260028111156114d8576114d8611cd8565b846040516114e691906120df565b604051908190038120907f955b6026fb305b85b6c7e2402c992566de7ae64373f6a731ce94e12a9675b48690600090a4505050565b816115fa576000805160206122d083398151915260405161153d9087906120df565b90815260405190819003602001902080546001600160a81b031916905561156f6000805160206122b083398151915290565b6001600160a01b038416600090815260209190915260408120805460ff1916905561159b908590611884565b826001600160a01b03168460028111156115b7576115b7611cd8565b866040516115c591906120df565b604051908190038120907fee5cb45c4e980ee674346d3fb7323c432cb859968c0a1686832daeb7abdc152290600090a4611824565b60208101516001600160a01b03166116b757604051806040016040528085600281111561162957611629611cd8565b81526001600160a01b0385166020909101526000805160206122d08339815191526040516116589088906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561168557611685611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b03199091161790556117c9565b826001600160a01b031681602001516001600160a01b03161461172757602081810180516001600160a01b0390811660009081526000805160206122b08339815191528085526040808320805460ff19908116909155938916948590529382529093529120805490911660011790555b8084600281111561173a5761173a611cd8565b9081600281111561174d5761174d611cd8565b905250806000805160206122d083398151915260405161176e9088906120df565b90815260405190819003602001902081518154829060ff1916600183600281111561179b5761179b611cd8565b02179055506020919091015181546001600160a01b0390911661010002610100600160a81b03199091161790555b826001600160a01b03168460028111156117e5576117e5611cd8565b866040516117f391906120df565b604051908190038120907fbcce022a3ddb5aa3f7ad51a588d2a78bb91465dc2753ad35da983be3d7c79ee990600090a45b5050505050565b6118358282610d96565b6109eb5761184281611a89565b61184d836020611a9b565b60405160200161185e929190612147565b60408051601f198184030181529082905262461bcd60e51b82526109d8916004016121bc565b604080516080810182527f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f0546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b90049091166060820152811561190d578051816118fc826121ef565b6001600160401b0316905250611926565b80518161191982612215565b6001600160401b03169052505b600083600281111561193a5761193a611cd8565b036119765781156119665760208101805190611955826121ef565b6001600160401b03169052506119e8565b6020810180519061195582612215565b600183600281111561198a5761198a611cd8565b036119b55781156119a55760408101805190611955826121ef565b6040810180519061195582612215565b81156119cb5760608101805190611955826121ef565b606081018051906119db82612215565b6001600160401b03169052505b807f9b9d9b2d5e3d3f628946658685575dea0ea2e783508206834623a2b8247a44f081518154602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166fffffffffffffffffffffffffffffffff928216600160401b026fffffffffffffffffffffffffffffffff199094169190941617919091171617919091179055505050565b606061050a6001600160a01b03831660145b60606000611aaa836002612238565b611ab590600261224f565b6001600160401b03811115611acc57611acc611d2f565b6040519080825280601f01601f191660200182016040528015611af6576020820181803683370190505b509050600360fc1b81600081518110611b1157611b11612262565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611b4057611b40612262565b60200101906001600160f81b031916908160001a9053506000611b64846002612238565b611b6f90600161224f565b90505b6001811115611be7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611ba357611ba3612262565b1a60f81b828281518110611bb957611bb9612262565b60200101906001600160f81b031916908160001a90535060049490941c93611be081612278565b9050611b72565b508315611c365760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016109d8565b9392505050565b600060208284031215611c4f57600080fd5b81356001600160e01b031981168114611c3657600080fd5b60008060208385031215611c7a57600080fd5b82356001600160401b0380821115611c9157600080fd5b818501915085601f830112611ca557600080fd5b813581811115611cb457600080fd5b866020828501011115611cc657600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052602160045260246000fd5b8151604082019060038110611d1357634e487b7160e01b600052602160045260246000fd5b82526020928301516001600160a01b0316929091019190915290565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611d5f57611d5f611d2f565b604051601f8501601f19908116603f01168101908282118183101715611d8757611d87611d2f565b81604052809350858152868686011115611da057600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611dcb57600080fd5b611c3683833560208501611d45565b60008060408385031215611ded57600080fd5b82356001600160401b0380821115611e0457600080fd5b611e1086838701611dba565b93506020850135915080821115611e2657600080fd5b508301601f81018513611e3857600080fd5b611e4785823560208401611d45565b9150509250929050565b600060208284031215611e6357600080fd5b5035919050565b80356001600160a01b0381168114611e8157600080fd5b919050565b600080600080600060a08688031215611e9e57600080fd5b85356001600160401b0380821115611eb557600080fd5b611ec189838a01611dba565b96506020880135915080821115611ed757600080fd5b50611ee488828901611dba565b9450506040860135925060608601359150611f0160808701611e6a565b90509295509295909350565b60008060408385031215611f2057600080fd5b82359150611f3060208401611e6a565b90509250929050565b600060208284031215611f4b57600080fd5b611c3682611e6a565b600080600060608486031215611f6957600080fd5b83356001600160401b03811115611f7f57600080fd5b611f8b86828701611dba565b93505060208401359150611fa160408501611e6a565b90509250925092565b80151581146111d957600080fd5b60008060008060808587031215611fce57600080fd5b84356001600160401b03811115611fe457600080fd5b611ff087828801611dba565b94505060208501356003811061200557600080fd5b925061201360408601611e6a565b9150606085013561202381611faa565b939692955090935050565b6000806000806080858703121561204457600080fd5b84356001600160401b038082111561205b57600080fd5b61206788838901611dba565b9550602087013591508082111561207d57600080fd5b5061208a87828801611dba565b935050604085013591506120a060608601611e6a565b905092959194509250565b8183823760009101908152919050565b60005b838110156120d65781810151838201526020016120be565b50506000910152565b600082516120f18184602087016120bb565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b600060018201612123576121236120fb565b5060010190565b60006020828403121561213c57600080fd5b8151611c3681611faa565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161217f8160178501602088016120bb565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516121b08160288401602088016120bb565b01602801949350505050565b60208152600082518060208401526121db8160408501602087016120bb565b601f01601f19169190910160400192915050565b60006001600160401b0380831681810361220b5761220b6120fb565b6001019392505050565b60006001600160401b0382168061222e5761222e6120fb565b6000190192915050565b808202811582820484141761050a5761050a6120fb565b8082018082111561050a5761050a6120fb565b634e487b7160e01b600052603260045260246000fd5b600081612287576122876120fb565b50600019019056fe913809dc77207024d42c149a6fc49677f1a7996ddfb76a2ad70c002de11d2165747e8886b87b62f0eade79fdec6b3c3337a6c6564d7c5bb207756ea0c05622b92afd7ced8a1785401fa9d7faea1524b7f175fbee961e055e66c9b7ff9eecad88a26469706673582212203e252de299f4cf411cf2713522eeddc4c8daed7cefcb84cde57dd8a69b5be65a64736f6c63430008120033",
"sourceMap": "1226:16862:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3112:215:17;;;;;;;;;;-1:-1:-1;3112:215:17;;;;;:::i;:::-;;:::i;:::-;;;470:14:50;;463:22;445:41;;433:2;418:18;3112:215:17;;;;;;;;17873:213:44;;;;;;;;;;-1:-1:-1;17873:213:44;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8589:1105::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3568:32:50;;;3550:51;;3538:2;3523:18;8589:1105:44;3404:203:50;4968:131:17;;;;;;;;;;-1:-1:-1;4968:131:17;;;;;:::i;:::-;5042:7;5069:12;;;:6;:12;;;;;:22;;;;4968:131;;;;3943:25:50;;;3931:2;3916:18;4968:131:17;3797:177:50;7259:931:44;;;;;;;;;;-1:-1:-1;7259:931:44;;;;;:::i;:::-;;:::i;:::-;;5409:147:17;;;;;;;;;;-1:-1:-1;5409:147:17;;;;;:::i;:::-;;:::i;6553:218::-;;;;;;;;;;-1:-1:-1;6553:218:17;;;;;:::i;:::-;;:::i;17363:193:44:-;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1944:66:44;17463:89;;;;;;;;;;-1:-1:-1;;;;;17463:89:44;;;;;-1:-1:-1;;;17463:89:44;;;;;;;;-1:-1:-1;;;17463:89:44;;;;;;;;;;;-1:-1:-1;;;17463:89:44;;;;;;;;17363:193;-1:-1:-1;17363:193:44;;;;;;;5450:13:50;;-1:-1:-1;;;;;5446:22:50;;;5428:41;;5529:4;5517:17;;;5511:24;5507:33;;5485:20;;;5478:63;5601:4;5589:17;;;5583:24;5579:33;;5557:20;;;5550:63;5673:4;5661:17;;;5655:24;5651:33;5629:20;;;5622:63;;;;5378:3;5363:19;;5176:515;17611:165:44;;;;;;;;;;-1:-1:-1;17611:165:44;;;;;:::i;:::-;-1:-1:-1;;;;;17686:86:44;17666:4;17686:86;;;-1:-1:-1;;;;;;;;;;;17686:86:44;;;;;;;;;17611:165;3992:466;;;;;;;;;;-1:-1:-1;3992:466:44;;;;;:::i;:::-;;:::i;17028:202::-;;;;;;;;;;-1:-1:-1;17028:202:44;;;;;:::i;:::-;;:::i;16463:86::-;;;;;;;;;;-1:-1:-1;16503:5:44;6566:12:19;16463:86:44;;6566:12:19;;;;6498:36:50;;6486:2;6471:18;16463:86:44;6356:184:50;10265:908:44;;;;;;;;;;-1:-1:-1;10265:908:44;;;;;:::i;:::-;;:::i;11417:48::-;;;;;;;;;;;;;:::i;3419:147:17:-;;;;;;;;;;-1:-1:-1;3419:147:17;;;;;:::i;:::-;;:::i;2513:49::-;;;;;;;;;;-1:-1:-1;2513:49:17;2558:4;2513:49;;16080:326:44;;;;;;;;;;-1:-1:-1;16080:326:44;;;;;:::i;:::-;;:::i;16815:137::-;;;;;;;;;;;;;:::i;5849:149:17:-;;;;;;;;;;-1:-1:-1;5849:149:17;;;;;:::i;:::-;;:::i;5296:1115:44:-;;;;;;;;;;-1:-1:-1;5296:1115:44;;;;;:::i;:::-;;:::i;16627:121::-;;;;;;;;;;;;;:::i;3112:215:17:-;3197:4;-1:-1:-1;;;;;;3221:58:17;;-1:-1:-1;;;3221:58:17;;:98;;-1:-1:-1;;;;;;;;;;1200:51:25;;;3283:36:17;3214:105;3112:215;-1:-1:-1;;3112:215:17:o;17873:213:44:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;17994:88:44;;;;18077:4;;;;17994:88;:::i;:::-;;;;;;;;;;;;;;;17984:98;;;;;;;;17994:88;;17984:98;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17984:98:44;;;;;;;-1:-1:-1;17873:213:44;;;;:::o;8589:1105::-;8721:7;;3004:16:17;8721:7:44;3004:10:17;:16::i;:::-;8850:1:44::1;-1:-1:-1::0;;;;;;;;;;;8742:96:44::1;::::0;::::1;::::0;8833:4;;8742:96:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;;;;;8742:96:44::1;:110;8734:152;;8864:22;;-1:-1:-1::0;;;8864:22:44::1;;;;;;;;;;;8734:152;8890:12;8940:4;8923:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;8913:33;;;;;;8905:42;;8890:57;;8951:13;9387:4;9372:8;9366:15;9355:4;9345:8;9341:19;9324:11;9311:85;9302:94;;9422:5;9410:18;9400:53;;9446:1;9443::::0;9436:12:::1;9400:53;9557:5:::0;-1:-1:-1;;;;;;;;;;;9460:94:44::1;::::0;::::1;::::0;9549:4;;9460:94:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:102;;-1:-1:-1;;;;;9460:102:44;;;::::1;-1:-1:-1::0;;;;;;9460:102:44;;::::1;::::0;;;::::1;::::0;;9566:57:::1;1532:66;2610:4:43::0;2419:204;9566:57:44::1;:65:::0;;;:63:::1;:65;::::0;::::1;:::i;:::-;;;;;;9668:5;-1:-1:-1::0;;;;;9640:34:44::1;9662:4;9640:34;;;;;;:::i;:::-;;::::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;9685:5:::0;8589:1105;-1:-1:-1;;;;;8589:1105:44:o;7259:931::-;7405:11;:9;:11::i;:::-;3004:16:17;3015:4;3004:10;:16::i;:::-;7422:46:44::1;-1:-1:-1::0;;;;;;;;;;;7471:92:44::1;::::0;::::1;::::0;7552:10;;7471:92:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;7422:141;;::::1;::::0;;;;;7471:92;;7422:141:::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;-1:-1:-1;;;;;7422:141:44::1;::::0;;::::1;::::0;::::1;;::::0;;::::1;::::0;7571:16;;::::1;::::0;7422:141;;-1:-1:-1;7571:30:44::1;7567:66;;7610:23;;-1:-1:-1::0;;;7610:23:44::1;;;;;;;;;;;7567:66;7662:30;7641:17:::0;;:51:::1;::::0;::::1;;;;;;:::i;:::-;;7637:96;;7704:29;;-1:-1:-1::0;;;7704:29:44::1;;;;;;;;;;;7637:96;7737:24;-1:-1:-1::0;;;;;;;;;;;7764:96:44::1;::::0;::::1;::::0;7853:6;;7764:96:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;;;;;7764:96:44::1;::::0;-1:-1:-1;7764:96:44;7864:58:::1;;7907:15;;-1:-1:-1::0;;;7907:15:44::1;;;;;;;;;;;7864:58;8025:16;::::0;::::1;::::0;7990:92:::1;::::0;-1:-1:-1;;;7990:92:44;;-1:-1:-1;;;;;9619:15:50;;;7990:92:44::1;::::0;::::1;9601:34:50::0;9651:18;;;9644:34;;;9694:18;;;9687:34;;;9757:15;;;9737:18;;;9730:43;7969:16:44;;7990:30;::::1;::::0;::::1;::::0;9535:19:50;;7990:92:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8173:9;-1:-1:-1::0;;;;;8091:95:44::1;8129:11;:16;;;-1:-1:-1::0;;;;;8091:95:44::1;8108:16;-1:-1:-1::0;;;;;8091:95:44::1;;8150:7;8162:6;8091:95;;;;;;9958:25:50::0;;;10014:2;9999:18;;9992:34;9946:2;9931:18;;9784:248;8091:95:44::1;;;;;;;;7418:772;;;7259:931:::0;;;;;;:::o;5409:147:17:-;5042:7;5069:12;;;:6;:12;;;;;:22;;;3004:16;3015:4;3004:10;:16::i;:::-;5523:25:::1;5534:4;5540:7;5523:10;:25::i;:::-;5409:147:::0;;;:::o;6553:218::-;-1:-1:-1;;;;;6649:23:17;;952:10:23;6649:23:17;6641:83;;;;-1:-1:-1;;;6641:83:17;;10239:2:50;6641:83:17;;;10221:21:50;10278:2;10258:18;;;10251:30;10317:34;10297:18;;;10290:62;-1:-1:-1;;;10368:18:50;;;10361:45;10423:19;;6641:83:17;;;;;;;;;6737:26;6749:4;6755:7;6737:11;:26::i;:::-;6553:218;;:::o;3992:466:44:-;4091:11;:9;:11::i;:::-;3004:16:17;3015:4;3004:10;:16::i;:::-;4108:24:44::1;-1:-1:-1::0;;;;;;;;;;;4135:96:44::1;::::0;::::1;::::0;4224:6;;4135:96:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;;;;;4135:96:44::1;::::0;-1:-1:-1;4135:96:44;4235:58:::1;;4278:15;;-1:-1:-1::0;;;4278:15:44::1;;;;;;;;;;;4235:58;4361:42;::::0;-1:-1:-1;;;4361:42:44;;::::1;::::0;::::1;10627:25:50::0;;;-1:-1:-1;;;;;10688:32:50;;;10668:18;;;10661:60;4340:16:44;;4361:23;;::::1;::::0;::::1;::::0;10600:18:50;;4361:42:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4444:9;-1:-1:-1::0;;;;;4412:42:44::1;4418:16;-1:-1:-1::0;;;;;4412:42:44::1;;4436:6;4412:42;;;;3943:25:50::0;;3931:2;3916:18;;3797:177;4412:42:44::1;;;;;;;;4104:354;;3992:466:::0;;;;:::o;17028:202::-;17107:7;-1:-1:-1;;;;;;;;;;;17130:96:44;;;;17221:4;;;;17130:96;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;17130:96:44;;-1:-1:-1;17028:202:44;;;;:::o;10265:908::-;2558:4:17;3004:16;2558:4;3004:10;:16::i;:::-;-1:-1:-1;;;;;10429:19:44;::::1;10425:53;;10457:21;;-1:-1:-1::0;;;10457:21:44::1;;;;;;;;;;;10425:53;10487:18;10499:5;10487:11;:18::i;:::-;10482:52;;10514:20;;-1:-1:-1::0;;;10514:20:44::1;;;;;;;;;;;10482:52;10543:32;10562:5;10569;10543:18;:32::i;:::-;10538:78;;10587:29;;-1:-1:-1::0;;;10587:29:44::1;;;;;;;;;;;10538:78;10620:46;-1:-1:-1::0;;;;;;;;;;;10669:86:44::1;::::0;::::1;::::0;10750:4;;10669:86:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;10620:135;;::::1;::::0;;;;;10669:86;;10620:135:::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;::::1;::::0;::::1;-1:-1:-1::0;;;;;10620:135:44::1;;::::0;;::::1;::::0;;-1:-1:-1;;;;;;;;;;;;;;;;;10768:88:44;::::1;:81;:88:::0;;;::::1;::::0;;;;;;;;::::1;;10759:411;;10870:16;::::0;::::1;::::0;-1:-1:-1;;;;;10870:30:44::1;10866:190;;10906:37;10924:4;10930:5;10937;10906:17;:37::i;:::-;10759:411;;10866:190;10957:99;10988:4;10999:5;11011;11023:9;11039:11;10957:24;:99::i;10759:411::-;11072:93;11102:4;11112:5;11123;11134:9;11149:11;11072:24;:93::i;:::-;10421:752;10265:908:::0;;;;;:::o;11417:48::-;5001:13:19;;11460:1:44;;5001:13:19;;;;;5000:14;:40;;;;-1:-1:-1;5018:12:19;;:22;;;;:12;;:22;5000:40;4992:99;;;;-1:-1:-1;;;4992:99:19;;10934:2:50;4992:99:19;;;10916:21:50;10973:2;10953:18;;;10946:30;11012:34;10992:18;;;10985:62;-1:-1:-1;;;11063:18:50;;;11056:44;11117:19;;4992:99:19;10732:410:50;4992:99:19;5102:12;:22;;-1:-1:-1;;5135:20:19;5102:22;;;5135:20;;;5102:22;5135:20;-1:-1:-1;;5178:21:19;;;;5215:20;;6498:36:50;;;5215:20:19;;6486:2:50;6471:18;5215:20:19;;;;;;;11417:48:44;:::o;3419:147:17:-;3505:4;3529:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3529:29:17;;;;;;;;;;;;;;;3419:147::o;16080:326:44:-;16186:7;16199:12;16257:4;16250:12;;16276:4;16322;16305:22;;;;;;;;:::i;:::-;;;;-1:-1:-1;;16305:22:44;;;;;;;;;;16295:33;;16305:22;16295:33;;;;16335:19;;;;;;16228:131;;;;16295:33;;16335:19;;16228:131;-1:-1:-1;;;;;;11370:26:50;;;;11358:39;;11434:2;11430:15;;;;-1:-1:-1;;11426:53:50;11422:1;11413:11;;11406:74;11505:2;11496:12;;11489:28;11542:2;11533:12;;11526:28;11579:2;11570:12;;11147:441;16228:131:44;;;;;;;-1:-1:-1;;16228:131:44;;;;;;16214:149;;16228:131;16214:149;;;;;16080:326;-1:-1:-1;;;;16080:326:44:o;16815:137::-;16865:7;1532:66;16885:57;:63;;16815:137;-1:-1:-1;16815:137:44:o;5849:149:17:-;5042:7;5069:12;;;:6;:12;;;;;:22;;;3004:16;3015:4;3004:10;:16::i;:::-;5964:26:::1;5976:4;5982:7;5964:11;:26::i;5296:1115:44:-:0;5422:11;:9;:11::i;:::-;3004:16:17;3015:4;3004:10;:16::i;:::-;5439:46:44::1;-1:-1:-1::0;;;;;;;;;;;5488:92:44::1;::::0;::::1;::::0;5569:10;;5488:92:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;;::::1;::::0;;;5439:141;;::::1;::::0;;;;;5488:92;;5439:141:::1;;;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;::::0;;;;-1:-1:-1;;;;;5439:141:44::1;::::0;;::::1;::::0;::::1;;::::0;;::::1;::::0;5588:16;;::::1;::::0;5439:141;;-1:-1:-1;5588:30:44::1;5584:66;;5627:23;;-1:-1:-1::0;;;5627:23:44::1;;;;;;;;;;;5584:66;5679:30;5658:17:::0;;:51:::1;::::0;::::1;;;;;;:::i;:::-;::::0;5654:96:::1;;5721:29;;-1:-1:-1::0;;;5721:29:44::1;;;;;;;;;;;5654:96;5754:24;-1:-1:-1::0;;;;;;;;;;;5781:96:44::1;::::0;::::1;::::0;5870:6;;5781:96:::1;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;;-1:-1:-1;;;;;5781:96:44::1;::::0;-1:-1:-1;5781:96:44;5881:58:::1;;5924:15;;-1:-1:-1::0;;;5924:15:44::1;;;;;;;;;;;5881:58;5986:16:::0;5943:27:::1;6011:17:::0;;:49:::1;::::0;::::1;;;;;;:::i;:::-;::::0;6007:401:::1;;6096:16;::::0;::::1;::::0;6067:64:::1;::::0;-1:-1:-1;;;6067:64:44;;-1:-1:-1;;;;;11851:15:50;;;6067:64:44::1;::::0;::::1;11833:34:50::0;11883:18;;;11876:34;;;11946:15;;;11926:18;;;11919:43;6067:28:44;;::::1;::::0;::::1;::::0;11768:18:50;;6067:64:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6212:9;-1:-1:-1::0;;;;;6141:85:44::1;6179:11;:16;;;-1:-1:-1::0;;;;;6141:85:44::1;6157:16;-1:-1:-1::0;;;;;6141:85:44::1;;6201:5;6141:85;;;;3943:25:50::0;;3931:2;3916:18;;3797:177;6141:85:44::1;;;;;;;;6007:401;;;6272:16;::::0;::::1;::::0;6242:65:::1;::::0;-1:-1:-1;;;6242:65:44;;-1:-1:-1;;;;;11851:15:50;;;6242:65:44::1;::::0;::::1;11833:34:50::0;11883:18;;;11876:34;;;11946:15;;;11926:18;;;11919:43;6242:29:44;;::::1;::::0;::::1;::::0;11768:18:50;;6242:65:44::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6389:9;-1:-1:-1::0;;;;;6317:86:44::1;6356:11;:16;;;-1:-1:-1::0;;;;;6317:86:44::1;6334:16;-1:-1:-1::0;;;;;6317:86:44::1;;6378:5;6317:86;;;;3943:25:50::0;;3931:2;3916:18;;3797:177;6317:86:44::1;;;;;;;;6007:401;5435:976;;;5296:1115:::0;;;;;:::o;16627:121::-;16669:7;1339:66;16689:49;2419:204:43;3870:105:17;3937:30;3948:4;952:10:23;3937::17;:30::i;:::-;3870:105;:::o;8150:238::-;8234:22;8242:4;8248:7;8234;:22::i;:::-;8229:152;;8273:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8273:29:17;;;;;;;;;:36;;-1:-1:-1;;8273:36:17;8305:4;8273:36;;;8356:12;952:10:23;;872:98;8356:12:17;-1:-1:-1;;;;;8329:40:17;8347:7;-1:-1:-1;;;;;8329:40:17;8341:4;8329:40;;;;;;;;;;8150:238;;:::o;8568:239::-;8652:22;8660:4;8666:7;8652;:22::i;:::-;8648:152;;;8723:5;8691:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8691:29:17;;;;;;;;;;:37;;-1:-1:-1;;8691:37:17;;;8748:40;952:10:23;;8691:12:17;;8748:40;;8723:5;8748:40;8568:239;;:::o;14885:187:44:-;14943:4;14994:17;;15022:12;;;15018:50;;-1:-1:-1;15043:5:44;;14885:187;-1:-1:-1;;14885:187:44:o;15018:50::-;-1:-1:-1;15064:4:44;;14885:187;-1:-1:-1;;14885:187:44:o;15458:373::-;15561:4;15584:29;15575:5;:38;;;;;;;;:::i;:::-;;15571:256;;15627:55;;-1:-1:-1;;;15627:55:44;;-1:-1:-1;;;15627:55:44;;;12135:62:50;-1:-1:-1;;;;;15627:43:44;;;;;12108:18:50;;15627:55:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15620:62;;;;15571:256;15706:30;15697:5;:39;;;;;;;;:::i;:::-;;15693:134;;15750:55;;-1:-1:-1;;;15750:55:44;;-1:-1:-1;;;15750:55:44;;;12135:62:50;-1:-1:-1;;;;;15750:43:44;;;;;12108:18:50;;15750:55:44;11973:230:50;15693:134:44;-1:-1:-1;15823:4:44;15816:11;;12662:454;12865:66;;;;;;;;12905:5;12865:66;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;12865:66:44;;;;;;;-1:-1:-1;;;;;;;;;;;12776:86:44;;;;12857:4;;12776:86;:::i;:::-;;;;;;;;;;;;;;:155;;;;:86;;-1:-1:-1;;12776:155:44;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;12776:155:44;;;;;;;;-1:-1:-1;;;;;12776:155:44;;;;;-1:-1:-1;;;;;;12776:155:44;;;;;;;12935:65;-1:-1:-1;;;;;;;;;;;2610:4:43;2419:204;12935:65:44;-1:-1:-1;;;;;12935:87:44;;:71;:87;;;;;;;;;;;:94;;-1:-1:-1;;12935:94:44;;;;;;;;;;13033:35;13056:5;-1:-1:-1;13033:22:44;:35::i;:::-;13106:5;-1:-1:-1;;;;;13077:35:44;13099:5;13077:35;;;;;;;;:::i;:::-;13093:4;13077:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;12662:454;;;:::o;13562:1219::-;13755:9;13750:1028;;-1:-1:-1;;;;;;;;;;;13778:88:44;;;;13861:4;;13778:88;:::i;:::-;;;;;;;;;;;;;;13771:95;;-1:-1:-1;;;;;;13771:95:44;;;13878:70;-1:-1:-1;;;;;;;;;;;2610:4:43;2419:204;13878:70:44;-1:-1:-1;;;;;13878:88:44;;:81;:88;;;;;;;;;;;13871:95;;-1:-1:-1;;13871:95:44;;;13971:36;;13994:5;;13971:22;:36::i;:::-;14048:5;-1:-1:-1;;;;;14017:37:44;14041:5;14017:37;;;;;;;;:::i;:::-;14035:4;14017:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;13750:1028;;;14074:15;;;;-1:-1:-1;;;;;14074:29:44;14070:657;;14204:72;;;;;;;;14246:5;14204:72;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;14204:72:44;;;;;;;-1:-1:-1;;;;;;;;;;;14111:90:44;;;;14196:4;;14111:90;:::i;:::-;;;;;;;;;;;;;;:165;;;;:90;;-1:-1:-1;;14111:165:44;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;14111:165:44;;;;;;;;-1:-1:-1;;;;;14111:165:44;;;;;-1:-1:-1;;;;;;14111:165:44;;;;;;14070:657;;;14317:5;-1:-1:-1;;;;;14298:24:44;:10;:15;;;-1:-1:-1;;;;;14298:24:44;;14294:289;;14424:15;;;;;;-1:-1:-1;;;;;14338:102:44;;;:85;:102;;;-1:-1:-1;;;;;;;;;;;14338:102:44;;;;;;;14331:109;;-1:-1:-1;;14331:109:44;;;;;;14447:23;;;;;;;14477:92;;;;;;;;:99;;;;;-1:-1:-1;14477:99:44;;;14294:289;14588:10;14607:5;14588:24;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;14711:10:44;-1:-1:-1;;;;;;;;;;;14618:90:44;;;;14703:4;;14618:90;:::i;:::-;;;;;;;;;;;;;;:103;;;;:90;;-1:-1:-1;;14618:103:44;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;14618:103:44;;;;;;;;-1:-1:-1;;;;;14618:103:44;;;;;-1:-1:-1;;;;;;14618:103:44;;;;;;14070:657;14767:5;-1:-1:-1;;;;;14736:37:44;14760:5;14736:37;;;;;;;;:::i;:::-;14754:4;14736:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;13750:1028;13562:1219;;;;;:::o;4265:514:17:-;4354:22;4362:4;4368:7;4354;:22::i;:::-;4349:423;;4542:39;4573:7;4542:30;:39::i;:::-;4654:49;4693:4;4700:2;4654:30;:49::i;:::-;4447:279;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4447:279:17;;;;;;;;;;-1:-1:-1;;;4393:367:17;;;;;;;:::i;11670:776:44:-;11768:141;;;;;;;;1944:66;11768:141;-1:-1:-1;;;;;11768:141:44;;;;;-1:-1:-1;;;11768:141:44;;;;;;;;-1:-1:-1;;;11768:141:44;;;;;;;;;;;-1:-1:-1;;;11768:141:44;;;;;;;;;11913:72;;;;11928:24;;:16;:24;;;:::i;:::-;-1:-1:-1;;;;;11928:24:44;;;-1:-1:-1;11913:72:44;;;11961:24;;:16;:24;;;:::i;:::-;-1:-1:-1;;;;;11961:24:44;;;-1:-1:-1;11913:72:44;12002:28;11993:5;:37;;;;;;;;:::i;:::-;;11989:354;;12041:9;12037:73;;;12052:22;;;:24;;;;;;:::i;:::-;-1:-1:-1;;;;;12052:24:44;;;-1:-1:-1;11989:354:44;;12037:73;12086:22;;;:24;;;;;;:::i;11989:354::-;12134:29;12125:5;:38;;;;;;;;:::i;:::-;;12121:222;;12174:9;12170:75;;;12185:23;;;:25;;;;;;:::i;12170:75::-;12220:23;;;:25;;;;;;:::i;12121:222::-;12265:9;12261:77;;;12276:24;;;:26;;;;;;:::i;12261:77::-;12312:24;;;:26;;;;;;:::i;:::-;-1:-1:-1;;;;;12312:26:44;;;-1:-1:-1;12261:77:44;12426:16;1944:66;12346:96;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12346:96:44;;;-1:-1:-1;;;12346:96:44;-1:-1:-1;;;;;12346:96:44;;;-1:-1:-1;;;12346:96:44;;;;;;;;;-1:-1:-1;;;12346:96:44;-1:-1:-1;;12346:96:44;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11670:776:44:o;2547:151:24:-;2605:13;2638:52;-1:-1:-1;;;;;2650:22:24;;389:2;1943:447;2018:13;2044:19;2076:10;2080:6;2076:1;:10;:::i;:::-;:14;;2089:1;2076:14;:::i;:::-;-1:-1:-1;;;;;2066:25:24;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2066:25:24;;2044:47;;-1:-1:-1;;;2102:6:24;2109:1;2102:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2102:15:24;;;;;;;;;-1:-1:-1;;;2128:6:24;2135:1;2128:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2128:15:24;;;;;;;;-1:-1:-1;2159:9:24;2171:10;2175:6;2171:1;:10;:::i;:::-;:14;;2184:1;2171:14;:::i;:::-;2159:26;;2154:131;2191:1;2187;:5;2154:131;;;-1:-1:-1;;;2235:5:24;2243:3;2235:11;2226:21;;;;;;;:::i;:::-;;;;2214:6;2221:1;2214:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2214:33:24;;;;;;;;-1:-1:-1;2272:1:24;2262:11;;;;;2194:3;;;:::i;:::-;;;2154:131;;;-1:-1:-1;2303:10:24;;2295:55;;;;-1:-1:-1;;;2295:55:24;;15101:2:50;2295:55:24;;;15083:21:50;;;15120:18;;;15113:30;15179:34;15159:18;;;15152:62;15231:18;;2295:55:24;14899:356:50;2295:55:24;2375:6;1943:447;-1:-1:-1;;;1943:447:24:o;14:286:50:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:50;;209:43;;199:71;;266:1;263;256:12;497:592;568:6;576;629:2;617:9;608:7;604:23;600:32;597:52;;;645:1;642;635:12;597:52;685:9;672:23;-1:-1:-1;;;;;755:2:50;747:6;744:14;741:34;;;771:1;768;761:12;741:34;809:6;798:9;794:22;784:32;;854:7;847:4;843:2;839:13;835:27;825:55;;876:1;873;866:12;825:55;916:2;903:16;942:2;934:6;931:14;928:34;;;958:1;955;948:12;928:34;1003:7;998:2;989:6;985:2;981:15;977:24;974:37;971:57;;;1024:1;1021;1014:12;971:57;1055:2;1047:11;;;;;1077:6;;-1:-1:-1;497:592:50;;-1:-1:-1;;;;497:592:50:o;1094:127::-;1155:10;1150:3;1146:20;1143:1;1136:31;1186:4;1183:1;1176:15;1210:4;1207:1;1200:15;1226:501;1440:13;;1418:2;1403:18;;;1479:1;1472:9;;1462:140;;1524:10;1519:3;1515:20;1512:1;1505:31;1559:4;1556:1;1549:15;1587:4;1584:1;1577:15;1462:140;1611:21;;1692:4;1680:17;;;1674:24;-1:-1:-1;;;;;1670:50:50;1648:20;;;;1641:80;;;;1226:501;:::o;1732:127::-;1793:10;1788:3;1784:20;1781:1;1774:31;1824:4;1821:1;1814:15;1848:4;1845:1;1838:15;1864:632;1929:5;-1:-1:-1;;;;;2000:2:50;1992:6;1989:14;1986:40;;;2006:18;;:::i;:::-;2081:2;2075:9;2049:2;2135:15;;-1:-1:-1;;2131:24:50;;;2157:2;2127:33;2123:42;2111:55;;;2181:18;;;2201:22;;;2178:46;2175:72;;;2227:18;;:::i;:::-;2267:10;2263:2;2256:22;2296:6;2287:15;;2326:6;2318;2311:22;2366:3;2357:6;2352:3;2348:16;2345:25;2342:45;;;2383:1;2380;2373:12;2342:45;2433:6;2428:3;2421:4;2413:6;2409:17;2396:44;2488:1;2481:4;2472:6;2464;2460:19;2456:30;2449:41;;;;1864:632;;;;;:::o;2501:222::-;2544:5;2597:3;2590:4;2582:6;2578:17;2574:27;2564:55;;2615:1;2612;2605:12;2564:55;2637:80;2713:3;2704:6;2691:20;2684:4;2676:6;2672:17;2637:80;:::i;2728:671::-;2815:6;2823;2876:2;2864:9;2855:7;2851:23;2847:32;2844:52;;;2892:1;2889;2882:12;2844:52;2932:9;2919:23;-1:-1:-1;;;;;3002:2:50;2994:6;2991:14;2988:34;;;3018:1;3015;3008:12;2988:34;3041:50;3083:7;3074:6;3063:9;3059:22;3041:50;:::i;:::-;3031:60;;3144:2;3133:9;3129:18;3116:32;3100:48;;3173:2;3163:8;3160:16;3157:36;;;3189:1;3186;3179:12;3157:36;-1:-1:-1;3212:24:50;;3267:4;3259:13;;3255:27;-1:-1:-1;3245:55:50;;3296:1;3293;3286:12;3245:55;3319:74;3385:7;3380:2;3367:16;3362:2;3358;3354:11;3319:74;:::i;:::-;3309:84;;;2728:671;;;;;:::o;3612:180::-;3671:6;3724:2;3712:9;3703:7;3699:23;3695:32;3692:52;;;3740:1;3737;3730:12;3692:52;-1:-1:-1;3763:23:50;;3612:180;-1:-1:-1;3612:180:50:o;3979:173::-;4047:20;;-1:-1:-1;;;;;4096:31:50;;4086:42;;4076:70;;4142:1;4139;4132:12;4076:70;3979:173;;;:::o;4157:755::-;4272:6;4280;4288;4296;4304;4357:3;4345:9;4336:7;4332:23;4328:33;4325:53;;;4374:1;4371;4364:12;4325:53;4414:9;4401:23;-1:-1:-1;;;;;4484:2:50;4476:6;4473:14;4470:34;;;4500:1;4497;4490:12;4470:34;4523:50;4565:7;4556:6;4545:9;4541:22;4523:50;:::i;:::-;4513:60;;4626:2;4615:9;4611:18;4598:32;4582:48;;4655:2;4645:8;4642:16;4639:36;;;4671:1;4668;4661:12;4639:36;;4694:52;4738:7;4727:8;4716:9;4712:24;4694:52;:::i;:::-;4684:62;;;4793:2;4782:9;4778:18;4765:32;4755:42;;4844:2;4833:9;4829:18;4816:32;4806:42;;4867:39;4901:3;4890:9;4886:19;4867:39;:::i;:::-;4857:49;;4157:755;;;;;;;;:::o;4917:254::-;4985:6;4993;5046:2;5034:9;5025:7;5021:23;5017:32;5014:52;;;5062:1;5059;5052:12;5014:52;5098:9;5085:23;5075:33;;5127:38;5161:2;5150:9;5146:18;5127:38;:::i;:::-;5117:48;;4917:254;;;;;:::o;5696:186::-;5755:6;5808:2;5796:9;5787:7;5783:23;5779:32;5776:52;;;5824:1;5821;5814:12;5776:52;5847:29;5866:9;5847:29;:::i;5887:464::-;5974:6;5982;5990;6043:2;6031:9;6022:7;6018:23;6014:32;6011:52;;;6059:1;6056;6049:12;6011:52;6099:9;6086:23;-1:-1:-1;;;;;6124:6:50;6121:30;6118:50;;;6164:1;6161;6154:12;6118:50;6187;6229:7;6220:6;6209:9;6205:22;6187:50;:::i;:::-;6177:60;;;6284:2;6273:9;6269:18;6256:32;6246:42;;6307:38;6341:2;6330:9;6326:18;6307:38;:::i;:::-;6297:48;;5887:464;;;;;:::o;6545:118::-;6631:5;6624:13;6617:21;6610:5;6607:32;6597:60;;6653:1;6650;6643:12;6668:687;6772:6;6780;6788;6796;6849:3;6837:9;6828:7;6824:23;6820:33;6817:53;;;6866:1;6863;6856:12;6817:53;6906:9;6893:23;-1:-1:-1;;;;;6931:6:50;6928:30;6925:50;;;6971:1;6968;6961:12;6925:50;6994;7036:7;7027:6;7016:9;7012:22;6994:50;:::i;:::-;6984:60;;;7094:2;7083:9;7079:18;7066:32;7127:1;7120:5;7117:12;7107:40;;7143:1;7140;7133:12;7107:40;7166:5;-1:-1:-1;7190:38:50;7224:2;7209:18;;7190:38;:::i;:::-;7180:48;;7280:2;7269:9;7265:18;7252:32;7293:30;7315:7;7293:30;:::i;:::-;6668:687;;;;-1:-1:-1;6668:687:50;;-1:-1:-1;;6668:687:50:o;7542:686::-;7648:6;7656;7664;7672;7725:3;7713:9;7704:7;7700:23;7696:33;7693:53;;;7742:1;7739;7732:12;7693:53;7782:9;7769:23;-1:-1:-1;;;;;7852:2:50;7844:6;7841:14;7838:34;;;7868:1;7865;7858:12;7838:34;7891:50;7933:7;7924:6;7913:9;7909:22;7891:50;:::i;:::-;7881:60;;7994:2;7983:9;7979:18;7966:32;7950:48;;8023:2;8013:8;8010:16;8007:36;;;8039:1;8036;8029:12;8007:36;;8062:52;8106:7;8095:8;8084:9;8080:24;8062:52;:::i;:::-;8052:62;;;8161:2;8150:9;8146:18;8133:32;8123:42;;8184:38;8218:2;8207:9;8203:18;8184:38;:::i;:::-;8174:48;;7542:686;;;;;;;:::o;8233:273::-;8418:6;8410;8405:3;8392:33;8374:3;8444:16;;8469:13;;;8444:16;8233:273;-1:-1:-1;8233:273:50:o;8511:250::-;8596:1;8606:113;8620:6;8617:1;8614:13;8606:113;;;8696:11;;;8690:18;8677:11;;;8670:39;8642:2;8635:10;8606:113;;;-1:-1:-1;;8753:1:50;8735:16;;8728:27;8511:250::o;8766:289::-;8897:3;8935:6;8929:13;8951:66;9010:6;9005:3;8998:4;8990:6;8986:17;8951:66;:::i;:::-;9033:16;;;;;8766:289;-1:-1:-1;;8766:289:50:o;9060:127::-;9121:10;9116:3;9112:20;9109:1;9102:31;9152:4;9149:1;9142:15;9176:4;9173:1;9166:15;9192:135;9231:3;9252:17;;;9249:43;;9272:18;;:::i;:::-;-1:-1:-1;9319:1:50;9308:13;;9192:135::o;12208:245::-;12275:6;12328:2;12316:9;12307:7;12303:23;12299:32;12296:52;;;12344:1;12341;12334:12;12296:52;12376:9;12370:16;12395:28;12417:5;12395:28;:::i;12693:812::-;13104:25;13099:3;13092:38;13074:3;13159:6;13153:13;13175:75;13243:6;13238:2;13233:3;13229:12;13222:4;13214:6;13210:17;13175:75;:::i;:::-;-1:-1:-1;;;13309:2:50;13269:16;;;13301:11;;;13294:40;13359:13;;13381:76;13359:13;13443:2;13435:11;;13428:4;13416:17;;13381:76;:::i;:::-;13477:17;13496:2;13473:26;;12693:812;-1:-1:-1;;;;12693:812:50:o;13510:396::-;13659:2;13648:9;13641:21;13622:4;13691:6;13685:13;13734:6;13729:2;13718:9;13714:18;13707:34;13750:79;13822:6;13817:2;13806:9;13802:18;13797:2;13789:6;13785:15;13750:79;:::i;:::-;13890:2;13869:15;-1:-1:-1;;13865:29:50;13850:45;;;;13897:2;13846:54;;13510:396;-1:-1:-1;;13510:396:50:o;13911:209::-;13949:3;-1:-1:-1;;;;;14030:2:50;14023:5;14019:14;14057:2;14048:7;14045:15;14042:41;;14063:18;;:::i;:::-;14112:1;14099:15;;13911:209;-1:-1:-1;;;13911:209:50:o;14125:193::-;14163:3;-1:-1:-1;;;;;14200:5:50;14196:30;14245:7;14235:41;;14256:18;;:::i;:::-;-1:-1:-1;;14292:20:50;;14125:193;-1:-1:-1;;14125:193:50:o;14323:168::-;14396:9;;;14427;;14444:15;;;14438:22;;14424:37;14414:71;;14465:18;;:::i;14496:125::-;14561:9;;;14582:10;;;14579:36;;;14595:18;;:::i;14626:127::-;14687:10;14682:3;14678:20;14675:1;14668:31;14718:4;14715:1;14708:15;14742:4;14739:1;14732:15;14758:136;14797:3;14825:5;14815:39;;14834:18;;:::i;:::-;-1:-1:-1;;;14870:18:50;;14758:136::o",
"linkReferences": {}
},
"methodIdentifiers": {
"DEFAULT_ADMIN_ROLE()": "a217fddf",
"claim(string,string,uint256,address)": "dbc472c4",
"claim(string,string,uint256,uint256,address)": "28f1a47e",
"claim(string,uint256,address)": "50d7a6fd",
"claimRole()": "f2d1597c",
"computeClientVaultAddress(string,bytes)": "b6893ea2",
"deployClientVault(string,bytes)": "2240f8aa",
"getClientVaultAddress(string)": "54708bc4",
"getCollection(string)": "0ff79b33",
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"initialize()": "8129fc1c",
"isSupported(address)": "4f129c53",
"manageCollection(string,uint8,address,bool)": "622bfe84",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f",
"supportsInterface(bytes4)": "01ffc9a7",
"totalClientVaults()": "c467dda6",
"totalCollection()": "42b42240",
"version()": "54fd4d50"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DuplicateClientVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EOAAddressDetected\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectParametersProvided\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidClient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedCollection\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddressDetected\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ClaimERC1155\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ClaimERC20\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collection\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ClaimERC721\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"ClientVaultDeployment\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"enum UMintStorageSlot.Token\",\"name\":\"token\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"CollectionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"enum UMintStorageSlot.Token\",\"name\":\"token\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"CollectionAmended\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"enum UMintStorageSlot.Token\",\"name\":\"token\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"CollectionRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"client\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"collection\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"client\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"client\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"collection\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"asset\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimRole\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"name\":\"computeClientVaultAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"name\":\"deployClientVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getClientVaultAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"getCollection\",\"outputs\":[{\"components\":[{\"internalType\":\"enum UMintStorageSlot.Token\",\"name\":\"token\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"internalType\":\"struct UMintStorageSlot.Collection\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nft\",\"type\":\"address\"}],\"name\":\"isSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"enum UMintStorageSlot.Token\",\"name\":\"token\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"name\":\"manageCollection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalClientVaults\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalCollection\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"total\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"erc20\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"erc721\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"erc1155\",\"type\":\"uint64\"}],\"internalType\":\"struct UMintStorageSlot.TotalCollection\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Travis See\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"claim(string,string,uint256,address)\":{\"details\":\"Requirements:- The function initiator must have the claim role- {collection} must be supported by this contract- {collection} must be an ERC20 or ERC721 collection- {client} must have a valid vault deployed- {asset} must be owned by the vault of the Client- {recipient} cannot be a zero address- {recipient} must have the {IERC721ReceiverUpgradeable} interface if it is a smart contractEmits a {Transfer} and {ClaimERC20} or {ClaimERC721} event\",\"params\":{\"asset\":\"The amount of the ERC20 asset or the token id of the ERC721 asset\",\"client\":\"The name of the Client\",\"collection\":\"The name of the collection\",\"recipient\":\"The wallet address of the recipient\"}},\"claim(string,string,uint256,uint256,address)\":{\"details\":\"Requirements:- The function initiator must have the claim role- {collection} must be supported by this contract- {collection} must be an ERC1155 collection- {client} must have a valid vault deployed- At least {amount} of {tokenId} must be owned by the vault of the Client- {recipient} cannot be a zero address- {recipient} must have the {IERC1155ReceiverUpgradeable} interface if it is a smart contractEmits a {TransferSingle} and {ClaimERC1155} event\",\"params\":{\"amount\":\"The amount of the ERC1155 asset\",\"client\":\"The name of the Client\",\"collection\":\"The name of the collection\",\"recipient\":\"The wallet address of the recipient\",\"tokenId\":\"The token id of the ERC1155 asset\"}},\"claim(string,uint256,address)\":{\"details\":\"Requirements:- The function initiator must have the claim role- {client} must have a valid vault deployed- At least {amount} of native asset must be owned by the vault of the Client- {recipient} cannot be a zero addressEmits a {Claim} event\",\"params\":{\"amount\":\"The amount of the native asset\",\"client\":\"The name of the Client\",\"recipient\":\"The wallet address of the recipient\"}},\"computeClientVaultAddress(string,bytes)\":{\"params\":{\"bytecode\":\"The bytecode of the proxy smart contract to be deployed\",\"name\":\"The name of the Client\"},\"returns\":{\"_0\":\"address The computed Client Vault address\"}},\"deployClientVault(string,bytes)\":{\"details\":\"Requirements:- The function initiator must have the default admin role- There must not be a previously deployed Client Vault for `name`Emits a {ClientVaultDeployment} and {Upgraded} event\",\"params\":{\"bytecode\":\"The bytecode of the proxy contract\",\"name\":\"The name of the Client\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize()\":{\"details\":\"Requirements:- The Proxy contract have not been initialized beforeEmits an {Initialized} event\"},\"manageCollection(string,uint8,address,bool)\":{\"details\":\"Requirements:- The function initiator must have the default admin role- {asset} must not be a zero address- {asset} must not be an EOA address- The token standard of {asset} must match {token}Emits a {CollectionAdded}, {CollectionRemoved}, or {CollectionAmended} event\",\"params\":{\"asset\":\"The collection contract address\",\"name\":\"The collection name\",\"supported\":\"Indicate if the collection is supported\",\"token\":\"The collection token standard\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Sample smart contract to test the upgrading ability of the U-Mint smart contract.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"claim(string,string,uint256,address)\":{\"notice\":\"Claim ERC20 assets or an ERC721 asset (Assisted)\"},\"claim(string,string,uint256,uint256,address)\":{\"notice\":\"Claim ERC1155 assets (Assisted)\"},\"claim(string,uint256,address)\":{\"notice\":\"Claim native assets of the chain (Assisted)\"},\"claimRole()\":{\"notice\":\"Return the bytes32 representation of the Claim role.\"},\"computeClientVaultAddress(string,bytes)\":{\"notice\":\"Compute the address of the Client Vault to be deployed\"},\"deployClientVault(string,bytes)\":{\"notice\":\"Deploy a new proxy smart contract for a Client Vault\"},\"getClientVaultAddress(string)\":{\"notice\":\"Return the Client Vault contract address of `name`\"},\"getCollection(string)\":{\"notice\":\"Return the asset type and contract address of `name` if it is supported\"},\"initialize()\":{\"notice\":\"Initialize a Proxy contract and sets the address of the administrative and the CLAIM_ROLE slot\"},\"isSupported(address)\":{\"notice\":\"Return if `addr` is supported\"},\"manageCollection(string,uint8,address,bool)\":{\"notice\":\"Manage an NFT collection\"},\"totalClientVaults()\":{\"notice\":\"Return the total number of Client Vaults.\"},\"totalCollection()\":{\"notice\":\"Return the total number of collections supported along with the breakdown of collections for each asset\"},\"version()\":{\"notice\":\"Return the initialized version.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/UMintTestv2.sol\":\"UMintTestv2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xa808fafa71de8061cf0915442ae39f9dbddcab51fe2891534c766aac5722cd00\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86396fef54bc5f15430e2a766983fce582524bfc5c53eaffc9cc6b80edda125e\",\"dweb:/ipfs/QmajTAkxqB9kzXLWxu2VMMMQ2ML8MHbCBYSnR13umkiHvo\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xa7928e5378890df4ae422b6235e5327180399ae285e95b8bfc9953e8f3bd5ae3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7c547f1b094a5760561138cb29ff25f8b7747df29bf4a2f41dd75b33a6401e0\",\"dweb:/ipfs/QmdccU4DcAJVGoBELKxFpxfrgMRRFsHmF3AB9RWzG7it1n\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0e2b7582a004252f2ce8b56ad90d734c65fe9d48c2cc6209ac1e0ef40e454462\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fcf667170b4bf0a2772f23b2eb15973597b739a9d6b725bfa4cd2ac5b9d74a0\",\"dweb:/ipfs/QmTgFux26s9AV2njmjKCbjWTMBxgytKBXmJeuR4rF9tdXG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/IERC1155ReceiverUpgradeable.sol\":{\"keccak256\":\"0x7f76d23dfdea01918a471c72a36f3189931e75f7284e365448655f2d54a7b8f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1236e134e6cb863952b53f255963198bbffb6434fd1c3241d178f337cc3a6b24\",\"dweb:/ipfs/QmRfQBFsvv3JQZGassF4pLkA5vegqAcUD2cjyzN52vRwxC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xcad00cdc85bd1718e26dc693cf50fefe6c3bd2ca51c95f3ef13cc6d04be4928b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23bf386621578e6d1c2833b82d2d012fcaac8f24abb980a7d2d25b2f57602311\",\"dweb:/ipfs/QmdQqTuzy3FDxzw1yEhAYpZoYMRYs1zffaqswkzjSeQS7K\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0xf0ae2fc5bd5b83dea646191caa80909564bc8d5d6ca74e561f91ba3e64ed2348\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a7051f2cb29e0dffe8623b727d56ced0814897a39d98cebe11ceba956eaf1a0\",\"dweb:/ipfs/QmZRgULCXYSTR9smUsPvWoNKLPEEEQff1XR1NjixDS11fY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x7ca50b2db181b128c3c202f67bbc2fc189628f41a8643027c445facc907a10b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1baa3e4dd802cf1e2ed3634f79f3b1f86397f1bcb819f55811da1a9bf6a6189c\",\"dweb:/ipfs/QmPmiK9Tj3P7fhnroK2REuendr4sjx4vjev7PRQJyxMob5\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x86c96c4da8aadefa2a87cf25b10d5d0db4c03eb3ad84123d3a4f857e51d53ef6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16f54210be334cda63c53b0a08128b1e8c8e9837f1139859da68979a6f72436a\",\"dweb:/ipfs/QmTixoo4UXeAcmBbve1haRvErzwPDtmLgHE2T6BZjPsc1F\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x33686001615c14053a34d85fa60f5495c6461d457abfa93276feaf1ad4582039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcdaff32d4042f6bd902e5621cb7f6220afe0062c1d6f69cc42f4373514ee4c3\",\"dweb:/ipfs/QmWByC8ruKBc25K5LQBLt4eMuF7qo7PaaFpdNMXLvhbvY1\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xa3a86fd8399ff01763901b64ed4603d979787747d7b83f70d6d3c7d4f6b79214\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46c8a582b7c414ed987dfc73de91899493cd62be3a4087b09194cfdc1bbd6bf8\",\"dweb:/ipfs/QmTpZgF3997huy7avP5EyowdwoSUj9FbHESH16wAtAvpkw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x06b6fbb698d9432eba6470a93da3d86cdc08348dfad77c0b6640d1cba43fe560\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7364e84268665d0f5209a1168084f81d4286f956be9ba60da098c53e7f43476\",\"dweb:/ipfs/QmU72P6gNUQPUnAnhnWfTKdmJkTXPNbgnbdMaNyne2AgDP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x3aff4377990dea09fbddd20aac048c5146d0be6af5aedc94448d35713918b7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cb5519c85bb40953269e73341beebc73e160d02eb0a9e0bf911cbb09361295c\",\"dweb:/ipfs/QmWVftvhZ2ktwLBL8wLBKGm6dPWhFbraprjj55613but3Y\"]},\"src/IClientVault.sol\":{\"keccak256\":\"0x45769e4759d092f2ab11abe6569b0e539d90b795afb0ce2913940418a1db6e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb6c75438f68a82e75e5469fe99808654740ecffd09a9aaff63366aae6e0488\",\"dweb:/ipfs/QmNXSqUiP7dZRMTFUkki8WKHAuqYCwerruWL1bceKwAZ6o\"]},\"src/UMintStorageSlot.sol\":{\"keccak256\":\"0x488ae2b9a1074370950c1d2525503e31f12cfa5b26ff5a3563749e99c8851b91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8b052c52ca39764c63c47a39cb2025fe0d917a94fa9992e375ac507294b1a8\",\"dweb:/ipfs/QmXRJcSjeS3eGDu1UPuiUKrrMMmqisTCNWR99zWZkDyvtz\"]},\"src/UMintTestv2.sol\":{\"keccak256\":\"0x9225d0fe86ca5f19f00cfc437533cc06a58c683a2800788fab4aac6aedaa4754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7c6c6791785617fc95039e0918e8022dd92579f05b280950e0be71eed27bbb9\",\"dweb:/ipfs/QmahsnD4QTPrRwjsDiBg6MLwWonETYxjmsqK4e9zDJ2tdk\"]}},\"version\":1}",
"metadata": {
"compiler": { "version": "0.8.18+commit.87f61d96" },
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{ "inputs": [], "type": "error", "name": "DuplicateClientVault" },
{ "inputs": [], "type": "error", "name": "EOAAddressDetected" },
{
"inputs": [],
"type": "error",
"name": "IncorrectParametersProvided"
},
{ "inputs": [], "type": "error", "name": "InvalidClient" },
{ "inputs": [], "type": "error", "name": "UnsupportedCollection" },
{ "inputs": [], "type": "error", "name": "ZeroAddressDetected" },
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "Claim",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "collection",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ClaimERC1155",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "collection",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ClaimERC20",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "vault",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "collection",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": false
},
{
"internalType": "address",
"name": "recipient",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ClaimERC721",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": true
},
{
"internalType": "address",
"name": "addr",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "ClientVaultDeployment",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": true
},
{
"internalType": "enum UMintStorageSlot.Token",
"name": "token",
"type": "uint8",
"indexed": true
},
{
"internalType": "address",
"name": "addr",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "CollectionAdded",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": true
},
{
"internalType": "enum UMintStorageSlot.Token",
"name": "token",
"type": "uint8",
"indexed": true
},
{
"internalType": "address",
"name": "addr",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "CollectionAmended",
"anonymous": false
},
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": true
},
{
"internalType": "enum UMintStorageSlot.Token",
"name": "token",
"type": "uint8",
"indexed": true
},
{
"internalType": "address",
"name": "addr",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "CollectionRemoved",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint8",
"name": "version",
"type": "uint8",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32",
"indexed": true
}
],
"type": "event",
"name": "RoleAdminChanged",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleGranted",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleRevoked",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{ "internalType": "bytes32", "name": "", "type": "bytes32" }
]
},
{
"inputs": [
{ "internalType": "string", "name": "client", "type": "string" },
{
"internalType": "string",
"name": "collection",
"type": "string"
},
{ "internalType": "uint256", "name": "tokenId", "type": "uint256" },
{ "internalType": "uint256", "name": "amount", "type": "uint256" },
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "claim"
},
{
"inputs": [
{ "internalType": "string", "name": "client", "type": "string" },
{ "internalType": "uint256", "name": "amount", "type": "uint256" },
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "claim"
},
{
"inputs": [
{ "internalType": "string", "name": "client", "type": "string" },
{
"internalType": "string",
"name": "collection",
"type": "string"
},
{ "internalType": "uint256", "name": "asset", "type": "uint256" },
{
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "claim"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "claimRole",
"outputs": [
{ "internalType": "bytes32", "name": "", "type": "bytes32" }
]
},
{
"inputs": [
{ "internalType": "string", "name": "name", "type": "string" },
{ "internalType": "bytes", "name": "bytecode", "type": "bytes" }
],
"stateMutability": "view",
"type": "function",
"name": "computeClientVaultAddress",
"outputs": [
{ "internalType": "address", "name": "", "type": "address" }
]
},
{
"inputs": [
{ "internalType": "string", "name": "name", "type": "string" },
{ "internalType": "bytes", "name": "bytecode", "type": "bytes" }
],
"stateMutability": "payable",
"type": "function",
"name": "deployClientVault",
"outputs": [
{ "internalType": "address", "name": "", "type": "address" }
]
},
{
"inputs": [
{ "internalType": "string", "name": "name", "type": "string" }
],