@towns-protocol/generated 0.0.375 → 0.0.377

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dev/.contracts-hash +1 -1
  2. package/dev/abis/Channels.abi.json +1144 -153
  3. package/dev/abis/Channels.abi.ts +1144 -153
  4. package/dev/abis/EntitlementsManager.abi.json +1001 -10
  5. package/dev/abis/EntitlementsManager.abi.ts +1001 -10
  6. package/dev/abis/IAppInstaller.abi.json +89 -0
  7. package/dev/abis/IAppInstaller.abi.ts +89 -0
  8. package/dev/abis/IAppRegistry.abi.json +0 -87
  9. package/dev/abis/IAppRegistry.abi.ts +0 -87
  10. package/dev/abis/ITipping.abi.json +3 -3
  11. package/dev/abis/ITipping.abi.ts +3 -3
  12. package/dev/abis/ITippingBase.abi.json +3 -3
  13. package/dev/abis/ITippingBase.abi.ts +3 -3
  14. package/dev/abis/MembershipFacet.abi.json +1019 -28
  15. package/dev/abis/MembershipFacet.abi.ts +1019 -28
  16. package/dev/abis/PrepayFacet.abi.json +1012 -21
  17. package/dev/abis/PrepayFacet.abi.ts +1012 -21
  18. package/dev/abis/Roles.abi.json +991 -0
  19. package/dev/abis/Roles.abi.ts +991 -0
  20. package/dev/typings/Channels.ts +676 -0
  21. package/dev/typings/EntitlementsManager.ts +677 -0
  22. package/dev/typings/IAppInstaller.ts +239 -0
  23. package/dev/typings/IAppRegistry.ts +0 -166
  24. package/dev/typings/ITipping.ts +6 -6
  25. package/dev/typings/MembershipFacet.ts +676 -0
  26. package/dev/typings/PrepayFacet.ts +676 -0
  27. package/dev/typings/Roles.ts +676 -0
  28. package/dev/typings/factories/Channels__factory.ts +1146 -155
  29. package/dev/typings/factories/EntitlementsManager__factory.ts +1001 -10
  30. package/dev/typings/factories/IAppInstaller__factory.ts +110 -0
  31. package/dev/typings/factories/IAppRegistry__factory.ts +0 -87
  32. package/dev/typings/factories/ITipping__factory.ts +3 -3
  33. package/dev/typings/factories/MembershipFacet__factory.ts +1019 -28
  34. package/dev/typings/factories/PrepayFacet__factory.ts +1012 -21
  35. package/dev/typings/factories/Roles__factory.ts +992 -1
  36. package/dev/typings/factories/index.ts +1 -0
  37. package/dev/typings/index.ts +2 -0
  38. package/package.json +3 -3
@@ -366,6 +366,671 @@ const _abi = [
366
366
  outputs: [],
367
367
  stateMutability: "nonpayable",
368
368
  },
369
+ {
370
+ type: "event",
371
+ name: "AppBanned",
372
+ inputs: [
373
+ {
374
+ name: "app",
375
+ type: "address",
376
+ indexed: true,
377
+ internalType: "address",
378
+ },
379
+ {
380
+ name: "uid",
381
+ type: "bytes32",
382
+ indexed: false,
383
+ internalType: "bytes32",
384
+ },
385
+ ],
386
+ anonymous: false,
387
+ },
388
+ {
389
+ type: "event",
390
+ name: "AppCreated",
391
+ inputs: [
392
+ {
393
+ name: "app",
394
+ type: "address",
395
+ indexed: true,
396
+ internalType: "address",
397
+ },
398
+ {
399
+ name: "uid",
400
+ type: "bytes32",
401
+ indexed: false,
402
+ internalType: "bytes32",
403
+ },
404
+ ],
405
+ anonymous: false,
406
+ },
407
+ {
408
+ type: "event",
409
+ name: "AppInstalled",
410
+ inputs: [
411
+ {
412
+ name: "app",
413
+ type: "address",
414
+ indexed: true,
415
+ internalType: "address",
416
+ },
417
+ {
418
+ name: "account",
419
+ type: "address",
420
+ indexed: true,
421
+ internalType: "address",
422
+ },
423
+ {
424
+ name: "appId",
425
+ type: "bytes32",
426
+ indexed: true,
427
+ internalType: "bytes32",
428
+ },
429
+ ],
430
+ anonymous: false,
431
+ },
432
+ {
433
+ type: "event",
434
+ name: "AppRegistered",
435
+ inputs: [
436
+ {
437
+ name: "app",
438
+ type: "address",
439
+ indexed: true,
440
+ internalType: "address",
441
+ },
442
+ {
443
+ name: "uid",
444
+ type: "bytes32",
445
+ indexed: false,
446
+ internalType: "bytes32",
447
+ },
448
+ ],
449
+ anonymous: false,
450
+ },
451
+ {
452
+ type: "event",
453
+ name: "AppRenewed",
454
+ inputs: [
455
+ {
456
+ name: "app",
457
+ type: "address",
458
+ indexed: true,
459
+ internalType: "address",
460
+ },
461
+ {
462
+ name: "account",
463
+ type: "address",
464
+ indexed: true,
465
+ internalType: "address",
466
+ },
467
+ {
468
+ name: "appId",
469
+ type: "bytes32",
470
+ indexed: true,
471
+ internalType: "bytes32",
472
+ },
473
+ ],
474
+ anonymous: false,
475
+ },
476
+ {
477
+ type: "event",
478
+ name: "AppSchemaSet",
479
+ inputs: [
480
+ {
481
+ name: "uid",
482
+ type: "bytes32",
483
+ indexed: false,
484
+ internalType: "bytes32",
485
+ },
486
+ ],
487
+ anonymous: false,
488
+ },
489
+ {
490
+ type: "event",
491
+ name: "AppUninstalled",
492
+ inputs: [
493
+ {
494
+ name: "app",
495
+ type: "address",
496
+ indexed: true,
497
+ internalType: "address",
498
+ },
499
+ {
500
+ name: "account",
501
+ type: "address",
502
+ indexed: true,
503
+ internalType: "address",
504
+ },
505
+ {
506
+ name: "appId",
507
+ type: "bytes32",
508
+ indexed: true,
509
+ internalType: "bytes32",
510
+ },
511
+ ],
512
+ anonymous: false,
513
+ },
514
+ {
515
+ type: "event",
516
+ name: "AppUnregistered",
517
+ inputs: [
518
+ {
519
+ name: "app",
520
+ type: "address",
521
+ indexed: true,
522
+ internalType: "address",
523
+ },
524
+ {
525
+ name: "uid",
526
+ type: "bytes32",
527
+ indexed: false,
528
+ internalType: "bytes32",
529
+ },
530
+ ],
531
+ anonymous: false,
532
+ },
533
+ {
534
+ type: "event",
535
+ name: "AppUpdated",
536
+ inputs: [
537
+ {
538
+ name: "app",
539
+ type: "address",
540
+ indexed: true,
541
+ internalType: "address",
542
+ },
543
+ {
544
+ name: "uid",
545
+ type: "bytes32",
546
+ indexed: false,
547
+ internalType: "bytes32",
548
+ },
549
+ ],
550
+ anonymous: false,
551
+ },
552
+ {
553
+ type: "event",
554
+ name: "AppUpdated",
555
+ inputs: [
556
+ {
557
+ name: "app",
558
+ type: "address",
559
+ indexed: true,
560
+ internalType: "address",
561
+ },
562
+ {
563
+ name: "account",
564
+ type: "address",
565
+ indexed: true,
566
+ internalType: "address",
567
+ },
568
+ {
569
+ name: "appId",
570
+ type: "bytes32",
571
+ indexed: true,
572
+ internalType: "bytes32",
573
+ },
574
+ ],
575
+ anonymous: false,
576
+ },
577
+ {
578
+ type: "event",
579
+ name: "AppUpgraded",
580
+ inputs: [
581
+ {
582
+ name: "app",
583
+ type: "address",
584
+ indexed: true,
585
+ internalType: "address",
586
+ },
587
+ {
588
+ name: "oldVersionId",
589
+ type: "bytes32",
590
+ indexed: true,
591
+ internalType: "bytes32",
592
+ },
593
+ {
594
+ name: "newVersionId",
595
+ type: "bytes32",
596
+ indexed: true,
597
+ internalType: "bytes32",
598
+ },
599
+ ],
600
+ anonymous: false,
601
+ },
602
+ {
603
+ type: "event",
604
+ name: "ExecutionInstalled",
605
+ inputs: [
606
+ {
607
+ name: "module",
608
+ type: "address",
609
+ indexed: true,
610
+ internalType: "address",
611
+ },
612
+ {
613
+ name: "manifest",
614
+ type: "tuple",
615
+ indexed: false,
616
+ internalType: "struct ExecutionManifest",
617
+ components: [
618
+ {
619
+ name: "executionFunctions",
620
+ type: "tuple[]",
621
+ internalType: "struct ManifestExecutionFunction[]",
622
+ components: [
623
+ {
624
+ name: "executionSelector",
625
+ type: "bytes4",
626
+ internalType: "bytes4",
627
+ },
628
+ {
629
+ name: "skipRuntimeValidation",
630
+ type: "bool",
631
+ internalType: "bool",
632
+ },
633
+ {
634
+ name: "allowGlobalValidation",
635
+ type: "bool",
636
+ internalType: "bool",
637
+ },
638
+ ],
639
+ },
640
+ {
641
+ name: "executionHooks",
642
+ type: "tuple[]",
643
+ internalType: "struct ManifestExecutionHook[]",
644
+ components: [
645
+ {
646
+ name: "executionSelector",
647
+ type: "bytes4",
648
+ internalType: "bytes4",
649
+ },
650
+ {
651
+ name: "entityId",
652
+ type: "uint32",
653
+ internalType: "uint32",
654
+ },
655
+ {
656
+ name: "isPreHook",
657
+ type: "bool",
658
+ internalType: "bool",
659
+ },
660
+ {
661
+ name: "isPostHook",
662
+ type: "bool",
663
+ internalType: "bool",
664
+ },
665
+ ],
666
+ },
667
+ {
668
+ name: "interfaceIds",
669
+ type: "bytes4[]",
670
+ internalType: "bytes4[]",
671
+ },
672
+ ],
673
+ },
674
+ ],
675
+ anonymous: false,
676
+ },
677
+ {
678
+ type: "event",
679
+ name: "ExecutionUninstalled",
680
+ inputs: [
681
+ {
682
+ name: "module",
683
+ type: "address",
684
+ indexed: true,
685
+ internalType: "address",
686
+ },
687
+ {
688
+ name: "success",
689
+ type: "bool",
690
+ indexed: false,
691
+ internalType: "bool",
692
+ },
693
+ {
694
+ name: "manifest",
695
+ type: "tuple",
696
+ indexed: false,
697
+ internalType: "struct ExecutionManifest",
698
+ components: [
699
+ {
700
+ name: "executionFunctions",
701
+ type: "tuple[]",
702
+ internalType: "struct ManifestExecutionFunction[]",
703
+ components: [
704
+ {
705
+ name: "executionSelector",
706
+ type: "bytes4",
707
+ internalType: "bytes4",
708
+ },
709
+ {
710
+ name: "skipRuntimeValidation",
711
+ type: "bool",
712
+ internalType: "bool",
713
+ },
714
+ {
715
+ name: "allowGlobalValidation",
716
+ type: "bool",
717
+ internalType: "bool",
718
+ },
719
+ ],
720
+ },
721
+ {
722
+ name: "executionHooks",
723
+ type: "tuple[]",
724
+ internalType: "struct ManifestExecutionHook[]",
725
+ components: [
726
+ {
727
+ name: "executionSelector",
728
+ type: "bytes4",
729
+ internalType: "bytes4",
730
+ },
731
+ {
732
+ name: "entityId",
733
+ type: "uint32",
734
+ internalType: "uint32",
735
+ },
736
+ {
737
+ name: "isPreHook",
738
+ type: "bool",
739
+ internalType: "bool",
740
+ },
741
+ {
742
+ name: "isPostHook",
743
+ type: "bool",
744
+ internalType: "bool",
745
+ },
746
+ ],
747
+ },
748
+ {
749
+ name: "interfaceIds",
750
+ type: "bytes4[]",
751
+ internalType: "bytes4[]",
752
+ },
753
+ ],
754
+ },
755
+ ],
756
+ anonymous: false,
757
+ },
758
+ {
759
+ type: "event",
760
+ name: "ExecutionUpdated",
761
+ inputs: [
762
+ {
763
+ name: "module",
764
+ type: "address",
765
+ indexed: true,
766
+ internalType: "address",
767
+ },
768
+ {
769
+ name: "manifest",
770
+ type: "tuple",
771
+ indexed: false,
772
+ internalType: "struct ExecutionManifest",
773
+ components: [
774
+ {
775
+ name: "executionFunctions",
776
+ type: "tuple[]",
777
+ internalType: "struct ManifestExecutionFunction[]",
778
+ components: [
779
+ {
780
+ name: "executionSelector",
781
+ type: "bytes4",
782
+ internalType: "bytes4",
783
+ },
784
+ {
785
+ name: "skipRuntimeValidation",
786
+ type: "bool",
787
+ internalType: "bool",
788
+ },
789
+ {
790
+ name: "allowGlobalValidation",
791
+ type: "bool",
792
+ internalType: "bool",
793
+ },
794
+ ],
795
+ },
796
+ {
797
+ name: "executionHooks",
798
+ type: "tuple[]",
799
+ internalType: "struct ManifestExecutionHook[]",
800
+ components: [
801
+ {
802
+ name: "executionSelector",
803
+ type: "bytes4",
804
+ internalType: "bytes4",
805
+ },
806
+ {
807
+ name: "entityId",
808
+ type: "uint32",
809
+ internalType: "uint32",
810
+ },
811
+ {
812
+ name: "isPreHook",
813
+ type: "bool",
814
+ internalType: "bool",
815
+ },
816
+ {
817
+ name: "isPostHook",
818
+ type: "bool",
819
+ internalType: "bool",
820
+ },
821
+ ],
822
+ },
823
+ {
824
+ name: "interfaceIds",
825
+ type: "bytes4[]",
826
+ internalType: "bytes4[]",
827
+ },
828
+ ],
829
+ },
830
+ ],
831
+ anonymous: false,
832
+ },
833
+ {
834
+ type: "event",
835
+ name: "GroupAccessGranted",
836
+ inputs: [
837
+ {
838
+ name: "groupId",
839
+ type: "bytes32",
840
+ indexed: true,
841
+ internalType: "bytes32",
842
+ },
843
+ {
844
+ name: "account",
845
+ type: "address",
846
+ indexed: true,
847
+ internalType: "address",
848
+ },
849
+ {
850
+ name: "delay",
851
+ type: "uint32",
852
+ indexed: false,
853
+ internalType: "uint32",
854
+ },
855
+ {
856
+ name: "since",
857
+ type: "uint48",
858
+ indexed: false,
859
+ internalType: "uint48",
860
+ },
861
+ {
862
+ name: "newMember",
863
+ type: "bool",
864
+ indexed: false,
865
+ internalType: "bool",
866
+ },
867
+ ],
868
+ anonymous: false,
869
+ },
870
+ {
871
+ type: "event",
872
+ name: "GroupAccessRevoked",
873
+ inputs: [
874
+ {
875
+ name: "groupId",
876
+ type: "bytes32",
877
+ indexed: true,
878
+ internalType: "bytes32",
879
+ },
880
+ {
881
+ name: "account",
882
+ type: "address",
883
+ indexed: true,
884
+ internalType: "address",
885
+ },
886
+ {
887
+ name: "revoked",
888
+ type: "bool",
889
+ indexed: false,
890
+ internalType: "bool",
891
+ },
892
+ ],
893
+ anonymous: false,
894
+ },
895
+ {
896
+ type: "event",
897
+ name: "GroupExpirationSet",
898
+ inputs: [
899
+ {
900
+ name: "groupId",
901
+ type: "bytes32",
902
+ indexed: true,
903
+ internalType: "bytes32",
904
+ },
905
+ {
906
+ name: "expiration",
907
+ type: "uint48",
908
+ indexed: false,
909
+ internalType: "uint48",
910
+ },
911
+ ],
912
+ anonymous: false,
913
+ },
914
+ {
915
+ type: "event",
916
+ name: "GroupGrantDelaySet",
917
+ inputs: [
918
+ {
919
+ name: "groupId",
920
+ type: "bytes32",
921
+ indexed: true,
922
+ internalType: "bytes32",
923
+ },
924
+ {
925
+ name: "delay",
926
+ type: "uint32",
927
+ indexed: false,
928
+ internalType: "uint32",
929
+ },
930
+ ],
931
+ anonymous: false,
932
+ },
933
+ {
934
+ type: "event",
935
+ name: "GroupGuardianSet",
936
+ inputs: [
937
+ {
938
+ name: "groupId",
939
+ type: "bytes32",
940
+ indexed: true,
941
+ internalType: "bytes32",
942
+ },
943
+ {
944
+ name: "guardian",
945
+ type: "bytes32",
946
+ indexed: false,
947
+ internalType: "bytes32",
948
+ },
949
+ ],
950
+ anonymous: false,
951
+ },
952
+ {
953
+ type: "event",
954
+ name: "GroupStatusSet",
955
+ inputs: [
956
+ {
957
+ name: "groupId",
958
+ type: "bytes32",
959
+ indexed: true,
960
+ internalType: "bytes32",
961
+ },
962
+ {
963
+ name: "active",
964
+ type: "bool",
965
+ indexed: false,
966
+ internalType: "bool",
967
+ },
968
+ ],
969
+ anonymous: false,
970
+ },
971
+ {
972
+ type: "event",
973
+ name: "OperationCanceled",
974
+ inputs: [
975
+ {
976
+ name: "operationId",
977
+ type: "bytes32",
978
+ indexed: true,
979
+ internalType: "bytes32",
980
+ },
981
+ {
982
+ name: "nonce",
983
+ type: "uint32",
984
+ indexed: false,
985
+ internalType: "uint32",
986
+ },
987
+ ],
988
+ anonymous: false,
989
+ },
990
+ {
991
+ type: "event",
992
+ name: "OperationExecuted",
993
+ inputs: [
994
+ {
995
+ name: "operationId",
996
+ type: "bytes32",
997
+ indexed: true,
998
+ internalType: "bytes32",
999
+ },
1000
+ {
1001
+ name: "nonce",
1002
+ type: "uint32",
1003
+ indexed: false,
1004
+ internalType: "uint32",
1005
+ },
1006
+ ],
1007
+ anonymous: false,
1008
+ },
1009
+ {
1010
+ type: "event",
1011
+ name: "OperationScheduled",
1012
+ inputs: [
1013
+ {
1014
+ name: "operationId",
1015
+ type: "bytes32",
1016
+ indexed: true,
1017
+ internalType: "bytes32",
1018
+ },
1019
+ {
1020
+ name: "timepoint",
1021
+ type: "uint48",
1022
+ indexed: false,
1023
+ internalType: "uint48",
1024
+ },
1025
+ {
1026
+ name: "nonce",
1027
+ type: "uint32",
1028
+ indexed: false,
1029
+ internalType: "uint32",
1030
+ },
1031
+ ],
1032
+ anonymous: false,
1033
+ },
369
1034
  {
370
1035
  type: "event",
371
1036
  name: "OwnershipTransferred",
@@ -517,6 +1182,160 @@ const _abi = [
517
1182
  ],
518
1183
  anonymous: false,
519
1184
  },
1185
+ {
1186
+ type: "event",
1187
+ name: "TargetDisabledSet",
1188
+ inputs: [
1189
+ {
1190
+ name: "target",
1191
+ type: "address",
1192
+ indexed: true,
1193
+ internalType: "address",
1194
+ },
1195
+ {
1196
+ name: "disabled",
1197
+ type: "bool",
1198
+ indexed: false,
1199
+ internalType: "bool",
1200
+ },
1201
+ ],
1202
+ anonymous: false,
1203
+ },
1204
+ {
1205
+ type: "event",
1206
+ name: "TargetFunctionDelaySet",
1207
+ inputs: [
1208
+ {
1209
+ name: "target",
1210
+ type: "address",
1211
+ indexed: true,
1212
+ internalType: "address",
1213
+ },
1214
+ {
1215
+ name: "newDelay",
1216
+ type: "uint32",
1217
+ indexed: false,
1218
+ internalType: "uint32",
1219
+ },
1220
+ {
1221
+ name: "minSetback",
1222
+ type: "uint32",
1223
+ indexed: false,
1224
+ internalType: "uint32",
1225
+ },
1226
+ ],
1227
+ anonymous: false,
1228
+ },
1229
+ {
1230
+ type: "event",
1231
+ name: "TargetFunctionDisabledSet",
1232
+ inputs: [
1233
+ {
1234
+ name: "target",
1235
+ type: "address",
1236
+ indexed: true,
1237
+ internalType: "address",
1238
+ },
1239
+ {
1240
+ name: "selector",
1241
+ type: "bytes4",
1242
+ indexed: true,
1243
+ internalType: "bytes4",
1244
+ },
1245
+ {
1246
+ name: "disabled",
1247
+ type: "bool",
1248
+ indexed: false,
1249
+ internalType: "bool",
1250
+ },
1251
+ ],
1252
+ anonymous: false,
1253
+ },
1254
+ {
1255
+ type: "event",
1256
+ name: "TargetFunctionGroupSet",
1257
+ inputs: [
1258
+ {
1259
+ name: "target",
1260
+ type: "address",
1261
+ indexed: true,
1262
+ internalType: "address",
1263
+ },
1264
+ {
1265
+ name: "selector",
1266
+ type: "bytes4",
1267
+ indexed: true,
1268
+ internalType: "bytes4",
1269
+ },
1270
+ {
1271
+ name: "groupId",
1272
+ type: "bytes32",
1273
+ indexed: true,
1274
+ internalType: "bytes32",
1275
+ },
1276
+ ],
1277
+ anonymous: false,
1278
+ },
1279
+ {
1280
+ type: "error",
1281
+ name: "AlreadyScheduled",
1282
+ inputs: [],
1283
+ },
1284
+ {
1285
+ type: "error",
1286
+ name: "AppAlreadyInstalled",
1287
+ inputs: [],
1288
+ },
1289
+ {
1290
+ type: "error",
1291
+ name: "AppAlreadyRegistered",
1292
+ inputs: [],
1293
+ },
1294
+ {
1295
+ type: "error",
1296
+ name: "AppDoesNotImplementInterface",
1297
+ inputs: [],
1298
+ },
1299
+ {
1300
+ type: "error",
1301
+ name: "AppNotInstalled",
1302
+ inputs: [],
1303
+ },
1304
+ {
1305
+ type: "error",
1306
+ name: "AppNotRegistered",
1307
+ inputs: [],
1308
+ },
1309
+ {
1310
+ type: "error",
1311
+ name: "AppRevoked",
1312
+ inputs: [],
1313
+ },
1314
+ {
1315
+ type: "error",
1316
+ name: "BannedApp",
1317
+ inputs: [],
1318
+ },
1319
+ {
1320
+ type: "error",
1321
+ name: "CallerAlreadyRegistered",
1322
+ inputs: [],
1323
+ },
1324
+ {
1325
+ type: "error",
1326
+ name: "CallerNotRegistered",
1327
+ inputs: [],
1328
+ },
1329
+ {
1330
+ type: "error",
1331
+ name: "ClientAlreadyRegistered",
1332
+ inputs: [],
1333
+ },
1334
+ {
1335
+ type: "error",
1336
+ name: "ClientNotRegistered",
1337
+ inputs: [],
1338
+ },
520
1339
  {
521
1340
  type: "error",
522
1341
  name: "Entitlement__InvalidValue",
@@ -552,6 +1371,142 @@ const _abi = [
552
1371
  name: "EntitlementsService__InvalidEntitlementInterface",
553
1372
  inputs: [],
554
1373
  },
1374
+ {
1375
+ type: "error",
1376
+ name: "ExecutionAlreadyRegistered",
1377
+ inputs: [],
1378
+ },
1379
+ {
1380
+ type: "error",
1381
+ name: "ExecutionFunctionAlreadySet",
1382
+ inputs: [],
1383
+ },
1384
+ {
1385
+ type: "error",
1386
+ name: "ExecutionHookAlreadySet",
1387
+ inputs: [],
1388
+ },
1389
+ {
1390
+ type: "error",
1391
+ name: "ExecutionNotFound",
1392
+ inputs: [],
1393
+ },
1394
+ {
1395
+ type: "error",
1396
+ name: "ExecutionNotRegistered",
1397
+ inputs: [],
1398
+ },
1399
+ {
1400
+ type: "error",
1401
+ name: "ExecutorCallFailed",
1402
+ inputs: [],
1403
+ },
1404
+ {
1405
+ type: "error",
1406
+ name: "Expired",
1407
+ inputs: [],
1408
+ },
1409
+ {
1410
+ type: "error",
1411
+ name: "InsufficientPayment",
1412
+ inputs: [],
1413
+ },
1414
+ {
1415
+ type: "error",
1416
+ name: "InvalidAddressInput",
1417
+ inputs: [],
1418
+ },
1419
+ {
1420
+ type: "error",
1421
+ name: "InvalidAppAddress",
1422
+ inputs: [
1423
+ {
1424
+ name: "app",
1425
+ type: "address",
1426
+ internalType: "address",
1427
+ },
1428
+ ],
1429
+ },
1430
+ {
1431
+ type: "error",
1432
+ name: "InvalidAppId",
1433
+ inputs: [],
1434
+ },
1435
+ {
1436
+ type: "error",
1437
+ name: "InvalidAppName",
1438
+ inputs: [],
1439
+ },
1440
+ {
1441
+ type: "error",
1442
+ name: "InvalidArrayInput",
1443
+ inputs: [],
1444
+ },
1445
+ {
1446
+ type: "error",
1447
+ name: "InvalidCaller",
1448
+ inputs: [],
1449
+ },
1450
+ {
1451
+ type: "error",
1452
+ name: "InvalidDataLength",
1453
+ inputs: [],
1454
+ },
1455
+ {
1456
+ type: "error",
1457
+ name: "InvalidDuration",
1458
+ inputs: [],
1459
+ },
1460
+ {
1461
+ type: "error",
1462
+ name: "InvalidExpiration",
1463
+ inputs: [],
1464
+ },
1465
+ {
1466
+ type: "error",
1467
+ name: "InvalidManifest",
1468
+ inputs: [],
1469
+ },
1470
+ {
1471
+ type: "error",
1472
+ name: "InvalidPrice",
1473
+ inputs: [],
1474
+ },
1475
+ {
1476
+ type: "error",
1477
+ name: "ModuleInstallCallbackFailed",
1478
+ inputs: [],
1479
+ },
1480
+ {
1481
+ type: "error",
1482
+ name: "NotAllowed",
1483
+ inputs: [],
1484
+ },
1485
+ {
1486
+ type: "error",
1487
+ name: "NotAppOwner",
1488
+ inputs: [],
1489
+ },
1490
+ {
1491
+ type: "error",
1492
+ name: "NotEnoughEth",
1493
+ inputs: [],
1494
+ },
1495
+ {
1496
+ type: "error",
1497
+ name: "NotReady",
1498
+ inputs: [],
1499
+ },
1500
+ {
1501
+ type: "error",
1502
+ name: "NotScheduled",
1503
+ inputs: [],
1504
+ },
1505
+ {
1506
+ type: "error",
1507
+ name: "NullModule",
1508
+ inputs: [],
1509
+ },
555
1510
  {
556
1511
  type: "error",
557
1512
  name: "Ownable__NotOwner",
@@ -629,10 +1584,46 @@ const _abi = [
629
1584
  },
630
1585
  ],
631
1586
  },
1587
+ {
1588
+ type: "error",
1589
+ name: "UnauthorizedApp",
1590
+ inputs: [
1591
+ {
1592
+ name: "app",
1593
+ type: "address",
1594
+ internalType: "address",
1595
+ },
1596
+ ],
1597
+ },
1598
+ {
1599
+ type: "error",
1600
+ name: "UnauthorizedCall",
1601
+ inputs: [],
1602
+ },
1603
+ {
1604
+ type: "error",
1605
+ name: "UnauthorizedCancel",
1606
+ inputs: [],
1607
+ },
1608
+ {
1609
+ type: "error",
1610
+ name: "UnauthorizedRenounce",
1611
+ inputs: [],
1612
+ },
1613
+ {
1614
+ type: "error",
1615
+ name: "UnauthorizedSelector",
1616
+ inputs: [],
1617
+ },
1618
+ {
1619
+ type: "error",
1620
+ name: "UnauthorizedTarget",
1621
+ inputs: [],
1622
+ },
632
1623
  ] as const;
633
1624
 
634
1625
  const _bytecode =
635
- "0x6080604052348015600e575f5ffd5b506148158061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80639a8e4c3e11610088578063ba201ba811610063578063ba201ba8146101be578063bd9af74a146101d1578063d2dea2b9146101e4578063dba81864146101f7575f5ffd5b80639a8e4c3e14610185578063b426423314610198578063b7515761146101ab575f5ffd5b8063784c872b116100b8578063784c872b146101315780638fcd793d146101515780639269182114610172575f5ffd5b80634d8b50a2146100de57806365634a48146100f3578063710613981461011c575b5f5ffd5b6100f16100ec366004613758565b61020a565b005b610106610101366004613800565b610260565b604051610113919061386c565b60405180910390f35b610124610275565b6040516101139190613a08565b61014461013f366004613a7d565b610284565b6040516101139190613a94565b61016461015f366004613aa6565b6102c8565b604051908152602001610113565b6100f1610180366004613a7d565b610320565b6100f1610193366004613b45565b61036a565b6101066101a6366004613a7d565b6103ed565b6100f16101b9366004613b45565b610428565b6100f16101cc366004613b8d565b6104a6565b6100f16101df366004613bd7565b6104f2565b6100f16101f2366004613800565b610542565b6100f1610205366004613b8d565b61058a565b6102486040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6102578787878787878761067f565b50505050505050565b606061026c8383610a35565b90505b92915050565b606061027f610a89565b905090565b6102b66040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b6102bf82610bc4565b61026f82610c1b565b5f6103076040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b610315878787878787610c90565b979650505050505050565b61035e6040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61036781610e48565b50565b6103a86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6103b183610bc4565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e8908383610f73565b505050565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040902060609061026f906002016110c7565b6104666040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61046f83610bc4565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e890838361119e565b6104e46040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee828261126f565b5050565b6105306040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61053c848484846112f2565b50505050565b6105806040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee828261144e565b6105c86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee8282611510565b336105db611586565b73ffffffffffffffffffffffffffffffffffffffff16036105f95750565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16610656575f61062c82613c26565b90506106383383611646565b15610641575050565b61064b338261165a565b15610654575050565b505b6103677f338e692c0000000000000000000000000000000000000000000000000000000061174f565b61068887610bc4565b5f8781527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260409020600181015460ff16156106ea576106ea7f497dbeb10000000000000000000000000000000000000000000000000000000061174f565b5f6106f482611757565b8051909150835f8167ffffffffffffffff81111561071457610714613c68565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b5090505f5b828110156107d2575f88888381811061075d5761075d613c95565b905060200281019061076f9190613cc2565b61077d906020810190613d1f565b90506107888161176d565b610791816118eb565b808383815181106107a4576107a4613c95565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250600101610742565b5089156107e757846107e58b8d83613dc9565b505b8715610804576107f98560020161196c565b610804858a8a61119e565b815f03610815575050505050610257565b5f5b838110156108535761084b85828151811061083457610834613c95565b602002602001015187611a5490919063ffffffff16565b600101610817565b505f5b828110156108925761088a82828151811061087357610873613c95565b602002602001015187611a9b90919063ffffffff16565b600101610856565b505f5b83811015610987575f8582815181106108b0576108b0613c95565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16631eee07b28f6040518263ffffffff1660e01b81526004016108f291815260200190565b5f60405180830381865afa15801561090c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109519190810190613f9d565b80519091501561097e5761097e86838151811061097057610970613c95565b60200260200101518f611ae3565b50600101610895565b505f5b828110156109fa57368888838181106109a5576109a5613c95565b90506020028101906109b79190613cc2565b90506109ce6109c9602083018361404f565b611b6b565b6109f16109de6020830183613d1f565b8f6109ec602085018561404f565b611b9c565b5060010161098a565b506040518c9033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e6905f90a3505050505050505050505050565b6060610a4083610bc4565b610a4982611c2e565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0560209081526040808320858452909152902061026c906110c7565b60605f610a94611c85565b80519091508067ffffffffffffffff811115610ab257610ab2613c68565b604051908082528060200260200182016040528015610b1557816020015b610b026040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081610ad05790505b5092505f5b81811015610bbe575f5f5f5f610b48878681518110610b3b57610b3b613c95565b6020026020010151611cb0565b93509350935093506040518060a00160405280888781518110610b6d57610b6d613c95565b60200260200101518152602001858152602001841515815260200183815260200182815250888681518110610ba457610ba4613c95565b602002602001018190525050505050806001019050610b1a565b50505090565b610bee7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611d9c565b610367576103677fa3f70f7b0000000000000000000000000000000000000000000000000000000061174f565b610c4d6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b5f5f5f5f610c5a86611cb0565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b5f610c9d87876002611db3565b815f8167ffffffffffffffff811115610cb857610cb8613c68565b604051908082528060200260200182016040528015610ce1578160200160208202803683370190505b507f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0080549192509081905f90610d16906140dd565b918290555093505f5b83811015610ddd5736878783818110610d3a57610d3a613c95565b9050602002810190610d4c9190613cc2565b9050610d63610d5e6020830183613d1f565b61176d565b610d706020820182613d1f565b848381518110610d8257610d82613c95565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101820152610db6906109c99083018361404f565b610dd4610dc66020830183613d1f565b876109ec602085018561404f565b50600101610d1f565b50610deb6001820185611de4565b505f848152600382016020526040812090610e0e9082908d908d908d8d89611def565b604051859033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b147905f90a3505050509695505050505050565b610e5181610bc4565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0091610ea882611757565b9050610eb382611eed565b610ec06001840185611f4a565b505f610ecb85611f55565b80519091505f5b81811015610f0557610efd838281518110610eef57610eef613c95565b60200260200101518861203a565b600101610ed2565b5082515f5b81811015610f3d57610f35858281518110610f2757610f27613c95565b602002602001015189611ae3565b600101610f0a565b50604051879033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d055905f90a350505050505050565b805f5b818110156110c057610faa848483818110610f9357610f93613c95565b9050602002810190610fa5919061404f565b6120db565b611025848483818110610fbf57610fbf613c95565b9050602002810190610fd1919061404f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050825160208185018101805160038d01825292820191909501209352505054151590565b611052576110527f3e2b02610000000000000000000000000000000000000000000000000000000061174f565b6110b784848381811061106757611067613c95565b9050602002810190611079919061404f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050600289019291505061210c565b50600101610f76565b5050505050565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015611193578382905f5260205f2001805461110890613d3a565b80601f016020809104026020016040519081016040528092919081815260200182805461113490613d3a565b801561117f5780601f106111565761010080835404028352916020019161117f565b820191905f5260205f20905b81548152906001019060200180831161116257829003601f168201915b5050505050815260200190600101906110eb565b505050509050919050565b805f5b818110156110c0576111be848483818110610f9357610f93613c95565b6111d3848483818110610fbf57610fbf613c95565b15611201576112017fb0ab68210000000000000000000000000000000000000000000000000000000061174f565b61126684848381811061121657611216613c95565b9050602002810190611228919061404f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050600289019291505061225c565b506001016111a1565b61127882610bc4565b61128d6112886020830183613d1f565b6118eb565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906112d4906112cd90840184613d1f565b8290611a9b565b6103e86112e46020840184613d1f565b846109ec602086018661404f565b8080156114485761130285610bc4565b61130b84611c2e565b5f8581527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832087845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009061136d8161196c565b5f5b838110156113f85761138c868683818110610f9357610f93613c95565b6113ef8686838181106113a1576113a1613c95565b90506020028101906113b3919061404f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250869392505061225c9050565b5060010161136f565b505f87815260048301602052604090206114129087611de4565b506040518690889033907f38ef31503bf60258feeceab5e2c3778cf74be2a8fbcc150d209ca96cd3c98553905f90a450506110c0565b6110c085855b61145782610bc4565b61146081611c2e565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832084845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906114c28161196c565b5f84815260048301602052604090206114db9084611f4a565b506040518390859033907f07439707c74b686d8e4d3f3226348eac82205e6dffd780ac4c555a4c2dc9d86c905f90a450505050565b61151982610bc4565b6115296112886020830183613d1f565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906115709061156990840184613d1f565b8290611a54565b6103e86115806020840184613d1f565b84611ae3565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561161c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116409190614124565b91505090565b5f61026c818461165585613c26565b6122b2565b5f73ffffffffffffffffffffffffffffffffffffffff831661167d57505f61026f565b5f61168661256c565b6040517f75dfa34200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291909116906375dfa34290602401602060405180830381865afa1580156116f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190614124565b905073ffffffffffffffffffffffffffffffffffffffff811661173c575f91505061026f565b6117478185856125b7565b949350505050565b805f5260045ffd5b60605f6117668360040161265b565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166117ba576040517fe0dc2ae000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527ff785968a00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa92505050801561187e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261187b9181019061414e565b60015b6118b4576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806104ee576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006119367fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183612667565b6104ee576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805481905f5b81811015611a4c575f84815260208120820190505f611a3886835f01805461199990613d3a565b80601f01602080910402602001604051908101604052809291908181526020018280546119c590613d3a565b8015611a105780601f106119e757610100808354040283529160200191611a10565b820191905f5260205f20905b8154815290600101906020018083116119f357829003601f168201915b5050505050805180820160209081018051600195909501815291810192019190912091905290565b55611a43815f6135eb565b50600101611972565b50505f905550565b611a616004830182612667565b611a8e57611a8e7f480a52fa0000000000000000000000000000000000000000000000000000000061174f565b6103e86004830182612695565b611aa86004830182612667565b15611ad657611ad67ffb5584f10000000000000000000000000000000000000000000000000000000061174f565b6103e860048301826126b6565b611aec826118eb565b6040517ff0c111f90000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff83169063f0c111f9906024015f604051808303815f87803b158015611b51575f5ffd5b505af1158015611b63573d5f5f3e3d5ffd5b505050505050565b5f8190036104ee576104ee7f947d5a840000000000000000000000000000000000000000000000000000000061174f565b611ba5846118eb565b6040517fef8be57400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063ef8be57490611bfb90869086908690600401614167565b5f604051808303815f87803b158015611c12575f5ffd5b505af1158015611c24573d5f5f3e3d5ffd5b5050505050505050565b611c587f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430082611d9c565b610367576103677fac1696820000000000000000000000000000000000000000000000000000000061174f565b606061027f7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0161265b565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190611cf290613d3a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90613d3a565b8015611d695780601f10611d4057610100808354040283529160200191611d69565b820191905f5260205f20905b815481529060010190602001808311611d4c57829003601f168201915b5050505060018301549196505060ff169350611d87600282016110c7565b9250611d9281611757565b9150509193509193565b5f818152600183016020526040812054151561026c565b808210156103e8576103e87f947d5a840000000000000000000000000000000000000000000000000000000061174f565b5f61026c83836126d3565b86611dfb868883613dc9565b506001870180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515179055611e3587848461119e565b5f5b8151811015611c24575f73ffffffffffffffffffffffffffffffffffffffff16828281518110611e6957611e69613c95565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611eb557611eb57f7442429b0000000000000000000000000000000000000000000000000000000061174f565b611ee4828281518110611eca57611eca613c95565b6020026020010151896004016126b690919063ffffffff16565b50600101611e37565b60408051602081019091525f81528190611f0790826141ba565b506001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055611f3e6002820161196c565b6103678160040161271f565b5f61026c8383612728565b60607f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043005f611f828261280b565b90505f8167ffffffffffffffff811115611f9e57611f9e613c68565b604051908082528060200260200182016040528015611fc7578160200160208202803683370190505b5093505f5b8281101561202f575f611fdf8583612814565b5f8181526003870160205260409020909150611ffb9088611d9c565b15612026578086848060010195508151811061201957612019613c95565b6020026020010181815250505b50600101611fcc565b508352509092915050565b61204382611c2e565b61204c8261281f565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300906120a48184611d9c565b6120d1576120d17f6796073e0000000000000000000000000000000000000000000000000000000061174f565b6110c08184611f4a565b5f8190036104ee576104ee7f0ce76c100000000000000000000000000000000000000000000000000000000061174f565b8051602081830181018051600186018252928201918401919091209190528054801580159291906122545784545f868152602090208691907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80830191830101848314612241575f815f01805461218290613d3a565b80601f01602080910402602001604051908101604052809291908181526020018280546121ae90613d3a565b80156121f95780601f106121d0576101008083540402835291602001916121f9565b820191905f5260205f20905b8154815290600101906020018083116121dc57829003601f168201915b50505050509050806122168b600189035f91825260209091200190565b9061222190826141ba565b50805160208183018101805160018e018252928201919093012091528590555b61224b815f6135eb565b50909155505f82555b505092915050565b8051602081830181018051600186018252928201918401919091209190528054159081156122ab578354600181018086555f868152602090208692919082016122a587826141ba565b50835550505b5092915050565b5f5f6122bd84612880565b905080515f036122d0575f915050611766565b5f6122d9611586565b90505f5b8251811015612346578173ffffffffffffffffffffffffffffffffffffffff1683828151811061230f5761230f613c95565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361233e5760019350505050611766565b6001016122dd565b5061235082612af4565b1561235f575f92505050611766565b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f6123aa7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310161265b565b80519091505f5b8181101561255d575f845f015f8584815181106123d0576123d0613c95565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561247e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124a2919061414e565b15801561253f57506040517f0cf0b53300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630cf0b53390612500908e908b908e906004016142d1565b602060405180830381865afa15801561251b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253f919061414e565b15612554576001975050505050505050611766565b506001016123b1565b505f9998505050505050505050565b5f61027f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6007f4170705265676973747279000000000000000000000000000000000000000000612d24565b5f5f6125c285612db9565b80519091506125d4575f915050611766565b5f5f6125e3835f015187612eb1565b92505091508115806125f3575080155b15612603575f9350505050611766565b6080830151515f5b8181101561264d57868560800151828151811061262a5761262a613c95565b60200260200101510361264557600195505050505050611766565b60010161260b565b505f98975050505050505050565b60605f61176683612f6f565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600183016020526040812054151561026c565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff8416612728565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff84165b5f81815260018301602052604081205461271857508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561026f565b505f61026f565b61036781612fc8565b5f8181526001830160205260408120548015612802575f61274a60018361433c565b85549091505f9061275d9060019061433c565b90508082146127bc575f865f01828154811061277b5761277b613c95565b905f5260205f200154905080875f01848154811061279b5761279b613c95565b5f918252602080832090910192909255918252600188019052604090208390555b85548690806127cd576127cd61434f565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061026f565b5f91505061026f565b5f61026f825490565b5f61026c8383613021565b5f8181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460ff1615610367576103677fd9c005120000000000000000000000000000000000000000000000000000000061174f565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015612917573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261295c919081019061439f565b905080515f03612acd576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa1580156129d3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f79190614124565b905073ffffffffffffffffffffffffffffffffffffffff811615612acb576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015612a83573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612ac8919081019061439f565b91505b505b612ad681613047565b92506001835101835283604051526020604051016040525050919050565b5f7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf0081612b208261265b565b905080515f03612b3357505f9392505050565b5f815167ffffffffffffffff811115612b4e57612b4e613c68565b604051908082528060200260200182016040528015612b77578160200160208202803683370190505b5090505f5b8251811015612be757612ba85f848381518110612b9b57612b9b613c95565b6020026020010151613058565b828281518110612bba57612bba613c95565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612b7c565b50612bf181613063565b612bfa8161306c565b5f815186510167ffffffffffffffff811115612c1857612c18613c68565b604051908082528060200260200182016040528015612c41578160200160208202803683370190505b5090505f5b8651811015612ca857868181518110612c6157612c61613c95565b6020026020010151828281518110612c7b57612c7b613c95565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612c46565b505f5b8251811015612d1057828181518110612cc657612cc6613c95565b6020026020010151828289510181518110612ce357612ce3613c95565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612cab565b50612d1a81613075565b9695505050505050565b60068201546040517f44ab6680000000000000000000000000000000000000000000000000000000008152600481018390525f9173ffffffffffffffffffffffffffffffffffffffff169081906344ab668090602401602060405180830381865afa158015612d95573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117479190614124565b612dc1613622565b73ffffffffffffffffffffffffffffffffffffffff82165f9081527f5203018779d8301358307033923a3bd0a3a759f1f58591c01f878744c0f8c201602052604090205480612e105750919050565b612e1861256c565b73ffffffffffffffffffffffffffffffffffffffff1663fb609045826040518263ffffffff1660e01b8152600401612e5291815260200190565b5f60405180830381865afa158015612e6c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526117669190810190614730565b5f5f5f5f612ee8865f9081527fb7e2813a9de15ce5ee4c1718778708cd70fd7ee3d196d203c0f40369a8d4a6026020526040902090565b9050612ef4818661307f565b600383015491955093506e010000000000000000000000000000900460ff168015612f65575060038101546f01000000000000000000000000000000900465ffffffffffff161580612f6557506003810154426f0100000000000000000000000000000090910465ffffffffffff16115b9150509250925092565b6060815f01805480602002602001604051908101604052809291908181526020018280548015612fbc57602002820191905f5260205f20905b815481526020019060010190808311612fa8575b50505050509050919050565b5f612fd1825490565b90505f5b8181101561301a57826001015f845f018381548110612ff657612ff6613c95565b905f5260205f20015481526020019081526020015f205f9055806001019050612fd5565b50505f9055565b5f825f01828154811061303657613036613c95565b905f5260205f200154905092915050565b606061026f61305583613115565b90565b5f61026c8383613144565b6103678161327f565b61036781613405565b5f61026f8261344e565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120805482919065ffffffffffff8116906130d790660100000000000090046dffffffffffffffffffffffffffff1661351a565b509093505065ffffffffffff81161580159061310a57506130f661353b565b65ffffffffffff168165ffffffffffff1611155b935050509250929050565b604051815160051b8101602001818084035b808201518252816020019150828203613127575060405250919050565b5f81831161324d57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361324b57815f036132455780548310613204576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613205575b5061026f565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613377565b610180828403116132e1576020820180518351106132a55780518351825283525b5b60200183811161053c57805182820180518281116132c6575050506132a6565b5b6020820152830180518281116132c75750602001526132a6565b81601f1683830160061c60051b01825181518082106132fc57905b85518082106133115790818310613311579091905b865282528352518390835b5b6020018051821161331d57825b84018051831061332a5792508281101561334b57805183518252835261331c565b505083602082011461336557613365846020830184613284565b82811461053c5761053c818484613284565b8051600281106104ee57601f19602083018260051b8401805b805181850151116133a2578301613390565b8281116133b157505050505050565b50805b805181850151106133c65783016133b4565b8281116133ef575b8251825184528252602090920191908301908183106133ce57505050505050565b505f85526133fe818385613284565b5050509052565b6002815110610367576020810160408201600183510160051b83015b815183511461343557602083019250815183525b60208201915080820361342157505081900360051c9052565b5f815160028110613514576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060308302600181901c17600281901c17600481901c17600881901c17601081901c178116806020013684378360051b86015b60bc197001000000000000000000000000000000518251095b828116850180516134db578290526134fb565b8251815151036134f25760019750889250506134fb565b506020016134c8565b5082018087106134af575050505080601f1c1561351457fe5b50919050565b5f5f5f61352e8461352961353b565b613545565b9250925092509193909250565b5f61027f42613598565b69ffffffffffffffffffff602083901c166dffffffffffffffffffffffffffff831665ffffffffffff604085901c81169084168111156135875782828261358b565b815f5f5b9250925092509250925092565b5f65ffffffffffff8211156135e7576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152603060048201526024810183905260440160405180910390fd5b5090565b5080546135f790613d3a565b5f825580601f10613606575050565b601f0160209004905f5260205f209081019061036791906136be565b6040518060e001604052805f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016136b260405180606001604052806060815260200160608152602001606081525090565b81525f60209091015290565b5b808211156135e7575f81556001016136bf565b5f5f83601f8401126136e2575f5ffd5b50813567ffffffffffffffff8111156136f9575f5ffd5b602083019150836020828501011115613710575f5ffd5b9250929050565b5f5f83601f840112613727575f5ffd5b50813567ffffffffffffffff81111561373e575f5ffd5b6020830191508360208260051b8501011115613710575f5ffd5b5f5f5f5f5f5f5f6080888a03121561376e575f5ffd5b87359650602088013567ffffffffffffffff81111561378b575f5ffd5b6137978a828b016136d2565b909750955050604088013567ffffffffffffffff8111156137b6575f5ffd5b6137c28a828b01613717565b909550935050606088013567ffffffffffffffff8111156137e1575f5ffd5b6137ed8a828b01613717565b989b979a50959850939692959293505050565b5f5f60408385031215613811575f5ffd5b50508035926020909101359150565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156138e1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526138cc858351613820565b94506020938401939190910190600101613892565b50929695505050505050565b5f8151808452602084019350602083015f5b8281101561393357815173ffffffffffffffffffffffffffffffffffffffff168652602095860195909101906001016138ff565b5093949350505050565b805182525f602082015160a0602085015261395b60a0850182613820565b90506040830151151560408501526060830151848203606086015281815180845260208401915060208160051b8501016020840193505f5b828110156139e2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08683030184526139cd828651613820565b60209586019594909401939150600101613993565b506080870151945087810360808901526139fc81866138ed565b98975050505050505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156138e1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452613a6885835161393d565b94506020938401939190910190600101613a2e565b5f60208284031215613a8d575f5ffd5b5035919050565b602081525f61026c602083018461393d565b5f5f5f5f5f5f60608789031215613abb575f5ffd5b863567ffffffffffffffff811115613ad1575f5ffd5b613add89828a016136d2565b909750955050602087013567ffffffffffffffff811115613afc575f5ffd5b613b0889828a01613717565b909550935050604087013567ffffffffffffffff811115613b27575f5ffd5b613b3389828a01613717565b979a9699509497509295939492505050565b5f5f5f60408486031215613b57575f5ffd5b83359250602084013567ffffffffffffffff811115613b74575f5ffd5b613b8086828701613717565b9497909650939450505050565b5f5f60408385031215613b9e575f5ffd5b82359150602083013567ffffffffffffffff811115613bbb575f5ffd5b830160408186031215613bcc575f5ffd5b809150509250929050565b5f5f5f5f60608587031215613bea575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613c0e575f5ffd5b613c1a87828801613717565b95989497509550505050565b80516020808301519190811015613514577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613cf4575f5ffd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610367575f5ffd5b5f60208284031215613d2f575f5ffd5b813561176681613cfe565b600181811c90821680613d4e57607f821691505b602082108103613514577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156103e857805f5260205f20601f840160051c81016020851015613daa5750805b601f840160051c820191505b818110156110c0575f8155600101613db6565b67ffffffffffffffff831115613de157613de1613c68565b613df583613def8354613d3a565b83613d85565b5f601f841160018114613e45575f8515613e0f5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556110c0565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b82811015613e925786850135825560209485019460019092019101613e72565b5086821015613ecd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040516080810167ffffffffffffffff81118282101715613f0257613f02613c68565b60405290565b6040516060810167ffffffffffffffff81118282101715613f0257613f02613c68565b60405160e0810167ffffffffffffffff81118282101715613f0257613f02613c68565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613f9557613f95613c68565b604052919050565b5f60208284031215613fad575f5ffd5b815167ffffffffffffffff811115613fc3575f5ffd5b8201601f81018413613fd3575f5ffd5b805167ffffffffffffffff811115613fed57613fed613c68565b61401e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613f4e565b818152856020838501011115614032575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614082575f5ffd5b83018035915067ffffffffffffffff82111561409c575f5ffd5b602001915036819003821315613710575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361410d5761410d6140b0565b5060010190565b805161411f81613cfe565b919050565b5f60208284031215614134575f5ffd5b815161176681613cfe565b8051801515811461411f575f5ffd5b5f6020828403121561415e575f5ffd5b61026c8261413f565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b815167ffffffffffffffff8111156141d4576141d4613c68565b6141e8816141e28454613d3a565b84613d85565b6020601f821160018114614239575f83156142035750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556110c0565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156142865787850151825560209485019460019092019101614266565b50848210156142c257868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561432857835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016142f4565b505060409390930193909352509392505050565b8181038181111561026f5761026f6140b0565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f67ffffffffffffffff82111561439557614395613c68565b5060051b60200190565b5f602082840312156143af575f5ffd5b815167ffffffffffffffff8111156143c5575f5ffd5b8201601f810184136143d5575f5ffd5b80516143e86143e38261437c565b613f4e565b8082825260208201915060208360051b850101925086831115614409575f5ffd5b6020840193505b82841015612d1a57835161442381613cfe565b825260209384019390910190614410565b5f82601f830112614443575f5ffd5b81516144516143e38261437c565b8082825260208201915060208360051b860101925085831115614472575f5ffd5b602085015b8381101561448f578051835260209283019201614477565b5095945050505050565b80517fffffffff000000000000000000000000000000000000000000000000000000008116811461411f575f5ffd5b5f82601f8301126144d7575f5ffd5b81516144e56143e38261437c565b8082825260208201915060208360071b860101925085831115614506575f5ffd5b602085015b8381101561448f5760808188031215614522575f5ffd5b61452a613edf565b61453382614499565b8152602082015163ffffffff8116811461454b575f5ffd5b602082015261455c6040830161413f565b604082015261456d6060830161413f565b6060820152835260209092019160800161450b565b5f82601f830112614591575f5ffd5b815161459f6143e38261437c565b8082825260208201915060208360051b8601019250858311156145c0575f5ffd5b602085015b8381101561448f576145d681614499565b8352602092830192016145c5565b5f606082840312156145f4575f5ffd5b6145fc613f08565b9050815167ffffffffffffffff811115614614575f5ffd5b8201601f81018413614624575f5ffd5b80516146326143e38261437c565b80828252602082019150602060608402850101925086831115614653575f5ffd5b6020840193505b828410156146ba5760608488031215614671575f5ffd5b614679613f08565b61468285614499565b81526146906020860161413f565b60208201526146a16040860161413f565b604082015282526060939093019260209091019061465a565b8452505050602082015167ffffffffffffffff8111156146d8575f5ffd5b6146e4848285016144c8565b602083015250604082015167ffffffffffffffff811115614703575f5ffd5b61470f84828501614582565b60408301525092915050565b805165ffffffffffff8116811461411f575f5ffd5b5f60208284031215614740575f5ffd5b815167ffffffffffffffff811115614756575f5ffd5b820160e08185031215614767575f5ffd5b61476f613f2b565b8151815261477f60208301614114565b602082015261479060408301614114565b60408201526147a160608301614114565b6060820152608082015167ffffffffffffffff8111156147bf575f5ffd5b6147cb86828501614434565b60808301525060a082015167ffffffffffffffff8111156147ea575f5ffd5b6147f6868285016145e4565b60a08301525061480860c0830161471b565b60c082015294935050505056";
1626
+ "0x6080604052348015600e575f5ffd5b506148248061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80639a8e4c3e11610088578063ba201ba811610063578063ba201ba8146101be578063bd9af74a146101d1578063d2dea2b9146101e4578063dba81864146101f7575f5ffd5b80639a8e4c3e14610185578063b426423314610198578063b7515761146101ab575f5ffd5b8063784c872b116100b8578063784c872b146101315780638fcd793d146101515780639269182114610172575f5ffd5b80634d8b50a2146100de57806365634a48146100f3578063710613981461011c575b5f5ffd5b6100f16100ec366004613767565b61020a565b005b61010661010136600461380f565b610260565b604051610113919061387b565b60405180910390f35b610124610275565b6040516101139190613a17565b61014461013f366004613a8c565b610284565b6040516101139190613aa3565b61016461015f366004613ab5565b6102c8565b604051908152602001610113565b6100f1610180366004613a8c565b610320565b6100f1610193366004613b54565b61036a565b6101066101a6366004613a8c565b6103ed565b6100f16101b9366004613b54565b610428565b6100f16101cc366004613b9c565b6104a6565b6100f16101df366004613be6565b6104f2565b6100f16101f236600461380f565b610542565b6100f1610205366004613b9c565b61058a565b6102486040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6102578787878787878761067f565b50505050505050565b606061026c8383610a35565b90505b92915050565b606061027f610a89565b905090565b6102b66040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b6102bf82610bc4565b61026f82610c1b565b5f6103076040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b610315878787878787610c90565b979650505050505050565b61035e6040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61036781610e48565b50565b6103a86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6103b183610bc4565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e8908383610f73565b505050565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040902060609061026f906002016110c7565b6104666040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61046f83610bc4565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604090206103e890838361119e565b6104e46040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee828261126f565b5050565b6105306040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b61053c848484846112f2565b50505050565b6105806040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee828261144e565b6105c86040518060400160405280601381526020017f4d6f64696679537061636553657474696e6773000000000000000000000000008152506105d2565b6104ee8282611510565b336105db611586565b73ffffffffffffffffffffffffffffffffffffffff16036105f95750565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16610656575f61062c82613c35565b90506106383383611646565b15610641575050565b61064b338261165a565b15610654575050565b505b6103677f338e692c0000000000000000000000000000000000000000000000000000000061174f565b61068887610bc4565b5f8781527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260409020600181015460ff16156106ea576106ea7f497dbeb10000000000000000000000000000000000000000000000000000000061174f565b5f6106f482611757565b8051909150835f8167ffffffffffffffff81111561071457610714613c77565b60405190808252806020026020018201604052801561073d578160200160208202803683370190505b5090505f5b828110156107d2575f88888381811061075d5761075d613ca4565b905060200281019061076f9190613cd1565b61077d906020810190613d2e565b90506107888161176d565b610791816118eb565b808383815181106107a4576107a4613ca4565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015250600101610742565b5089156107e757846107e58b8d83613dd8565b505b8715610804576107f98560020161196c565b610804858a8a61119e565b815f03610815575050505050610257565b5f5b838110156108535761084b85828151811061083457610834613ca4565b602002602001015187611a5490919063ffffffff16565b600101610817565b505f5b828110156108925761088a82828151811061087357610873613ca4565b602002602001015187611a9b90919063ffffffff16565b600101610856565b505f5b83811015610987575f8582815181106108b0576108b0613ca4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16631eee07b28f6040518263ffffffff1660e01b81526004016108f291815260200190565b5f60405180830381865afa15801561090c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526109519190810190613fac565b80519091501561097e5761097e86838151811061097057610970613ca4565b60200260200101518f611ae3565b50600101610895565b505f5b828110156109fa57368888838181106109a5576109a5613ca4565b90506020028101906109b79190613cd1565b90506109ce6109c9602083018361405e565b611b6b565b6109f16109de6020830183613d2e565b8f6109ec602085018561405e565b611b9c565b5060010161098a565b506040518c9033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e6905f90a3505050505050505050505050565b6060610a4083610bc4565b610a4982611c2e565b5f8381527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0560209081526040808320858452909152902061026c906110c7565b60605f610a94611c85565b80519091508067ffffffffffffffff811115610ab257610ab2613c77565b604051908082528060200260200182016040528015610b1557816020015b610b026040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081610ad05790505b5092505f5b81811015610bbe575f5f5f5f610b48878681518110610b3b57610b3b613ca4565b6020026020010151611cb0565b93509350935093506040518060a00160405280888781518110610b6d57610b6d613ca4565b60200260200101518152602001858152602001841515815260200183815260200182815250888681518110610ba457610ba4613ca4565b602002602001018190525050505050806001019050610b1a565b50505090565b610bee7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611d9c565b610367576103677fa3f70f7b0000000000000000000000000000000000000000000000000000000061174f565b610c4d6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b5f5f5f5f610c5a86611cb0565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b5f610c9d87876002611db3565b815f8167ffffffffffffffff811115610cb857610cb8613c77565b604051908082528060200260200182016040528015610ce1578160200160208202803683370190505b507f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0080549192509081905f90610d16906140ec565b918290555093505f5b83811015610ddd5736878783818110610d3a57610d3a613ca4565b9050602002810190610d4c9190613cd1565b9050610d63610d5e6020830183613d2e565b61176d565b610d706020820182613d2e565b848381518110610d8257610d82613ca4565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101820152610db6906109c99083018361405e565b610dd4610dc66020830183613d2e565b876109ec602085018561405e565b50600101610d1f565b50610deb6001820185611de4565b505f848152600382016020526040812090610e0e9082908d908d908d8d89611def565b604051859033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b147905f90a3505050509695505050505050565b610e5181610bc4565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0091610ea882611757565b9050610eb382611eed565b610ec06001840185611f4a565b505f610ecb85611f55565b80519091505f5b81811015610f0557610efd838281518110610eef57610eef613ca4565b60200260200101518861203a565b600101610ed2565b5082515f5b81811015610f3d57610f35858281518110610f2757610f27613ca4565b602002602001015189611ae3565b600101610f0a565b50604051879033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d055905f90a350505050505050565b805f5b818110156110c057610faa848483818110610f9357610f93613ca4565b9050602002810190610fa5919061405e565b6120db565b611025848483818110610fbf57610fbf613ca4565b9050602002810190610fd1919061405e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050825160208185018101805160038d01825292820191909501209352505054151590565b611052576110527f3e2b02610000000000000000000000000000000000000000000000000000000061174f565b6110b784848381811061106757611067613ca4565b9050602002810190611079919061405e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050600289019291505061210c565b50600101610f76565b5050505050565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015611193578382905f5260205f2001805461110890613d49565b80601f016020809104026020016040519081016040528092919081815260200182805461113490613d49565b801561117f5780601f106111565761010080835404028352916020019161117f565b820191905f5260205f20905b81548152906001019060200180831161116257829003601f168201915b5050505050815260200190600101906110eb565b505050509050919050565b805f5b818110156110c0576111be848483818110610f9357610f93613ca4565b6111d3848483818110610fbf57610fbf613ca4565b15611201576112017fb0ab68210000000000000000000000000000000000000000000000000000000061174f565b61126684848381811061121657611216613ca4565b9050602002810190611228919061405e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050600289019291505061225c565b506001016111a1565b61127882610bc4565b61128d6112886020830183613d2e565b6118eb565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906112d4906112cd90840184613d2e565b8290611a9b565b6103e86112e46020840184613d2e565b846109ec602086018661405e565b8080156114485761130285610bc4565b61130b84611c2e565b5f8581527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832087845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009061136d8161196c565b5f5b838110156113f85761138c868683818110610f9357610f93613ca4565b6113ef8686838181106113a1576113a1613ca4565b90506020028101906113b3919061405e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250869392505061225c9050565b5060010161136f565b505f87815260048301602052604090206114129087611de4565b506040518690889033907f38ef31503bf60258feeceab5e2c3778cf74be2a8fbcc150d209ca96cd3c98553905f90a450506110c0565b6110c085855b61145782610bc4565b61146081611c2e565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832084845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906114c28161196c565b5f84815260048301602052604090206114db9084611f4a565b506040518390859033907f07439707c74b686d8e4d3f3226348eac82205e6dffd780ac4c555a4c2dc9d86c905f90a450505050565b61151982610bc4565b6115296112886020830183613d2e565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360209081526040909120906115709061156990840184613d2e565b8290611a54565b6103e86115806020840184613d2e565b84611ae3565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801561161c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116409190614133565b91505090565b5f61026c818461165585613c35565b6122b2565b5f73ffffffffffffffffffffffffffffffffffffffff831661167d57505f61026f565b5f61168661256c565b6040517f75dfa34200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291909116906375dfa34290602401602060405180830381865afa1580156116f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117169190614133565b905073ffffffffffffffffffffffffffffffffffffffff811661173c575f91505061026f565b6117478185856125b7565b949350505050565b805f5260045ffd5b60605f61176683600401612803565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff81166117ba576040517fe0dc2ae000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527ff785968a00000000000000000000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa92505050801561187e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261187b9181019061415d565b60015b6118b4576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806104ee576040517ff58a5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006119367fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931018361280f565b6104ee576040517fbd599b8000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805481905f5b81811015611a4c575f84815260208120820190505f611a3886835f01805461199990613d49565b80601f01602080910402602001604051908101604052809291908181526020018280546119c590613d49565b8015611a105780601f106119e757610100808354040283529160200191611a10565b820191905f5260205f20905b8154815290600101906020018083116119f357829003601f168201915b5050505050805180820160209081018051600195909501815291810192019190912091905290565b55611a43815f61369b565b50600101611972565b50505f905550565b611a61600483018261280f565b611a8e57611a8e7f480a52fa0000000000000000000000000000000000000000000000000000000061174f565b6103e8600483018261283d565b611aa8600483018261280f565b15611ad657611ad67ffb5584f10000000000000000000000000000000000000000000000000000000061174f565b6103e8600483018261285e565b611aec826118eb565b6040517ff0c111f90000000000000000000000000000000000000000000000000000000081526004810182905273ffffffffffffffffffffffffffffffffffffffff83169063f0c111f9906024015f604051808303815f87803b158015611b51575f5ffd5b505af1158015611b63573d5f5f3e3d5ffd5b505050505050565b5f8190036104ee576104ee7f947d5a840000000000000000000000000000000000000000000000000000000061174f565b611ba5846118eb565b6040517fef8be57400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063ef8be57490611bfb90869086908690600401614176565b5f604051808303815f87803b158015611c12575f5ffd5b505af1158015611c24573d5f5f3e3d5ffd5b5050505050505050565b611c587f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430082611d9c565b610367576103677fac1696820000000000000000000000000000000000000000000000000000000061174f565b606061027f7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01612803565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190611cf290613d49565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1e90613d49565b8015611d695780601f10611d4057610100808354040283529160200191611d69565b820191905f5260205f20905b815481529060010190602001808311611d4c57829003601f168201915b5050505060018301549196505060ff169350611d87600282016110c7565b9250611d9281611757565b9150509193509193565b5f818152600183016020526040812054151561026c565b808210156103e8576103e87f947d5a840000000000000000000000000000000000000000000000000000000061174f565b5f61026c838361287b565b86611dfb868883613dd8565b506001870180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016851515179055611e3587848461119e565b5f5b8151811015611c24575f73ffffffffffffffffffffffffffffffffffffffff16828281518110611e6957611e69613ca4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603611eb557611eb57f7442429b0000000000000000000000000000000000000000000000000000000061174f565b611ee4828281518110611eca57611eca613ca4565b60200260200101518960040161285e90919063ffffffff16565b50600101611e37565b60408051602081019091525f81528190611f0790826141c9565b506001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055611f3e6002820161196c565b610367816004016128c7565b5f61026c83836128d0565b60607f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043005f611f82826129b3565b90505f8167ffffffffffffffff811115611f9e57611f9e613c77565b604051908082528060200260200182016040528015611fc7578160200160208202803683370190505b5093505f5b8281101561202f575f611fdf85836129bc565b5f8181526003870160205260409020909150611ffb9088611d9c565b15612026578086848060010195508151811061201957612019613ca4565b6020026020010181815250505b50600101611fcc565b508352509092915050565b61204382611c2e565b61204c826129c7565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300906120a48184611d9c565b6120d1576120d17f6796073e0000000000000000000000000000000000000000000000000000000061174f565b6110c08184611f4a565b5f8190036104ee576104ee7f0ce76c100000000000000000000000000000000000000000000000000000000061174f565b8051602081830181018051600186018252928201918401919091209190528054801580159291906122545784545f868152602090208691907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80830191830101848314612241575f815f01805461218290613d49565b80601f01602080910402602001604051908101604052809291908181526020018280546121ae90613d49565b80156121f95780601f106121d0576101008083540402835291602001916121f9565b820191905f5260205f20905b8154815290600101906020018083116121dc57829003601f168201915b50505050509050806122168b600189035f91825260209091200190565b9061222190826141c9565b50805160208183018101805160018e018252928201919093012091528590555b61224b815f61369b565b50909155505f82555b505092915050565b8051602081830181018051600186018252928201918401919091209190528054159081156122ab578354600181018086555f868152602090208692919082016122a587826141c9565b50835550505b5092915050565b5f5f6122bd84612a28565b905080515f036122d0575f915050611766565b5f6122d9611586565b90505f5b8251811015612346578173ffffffffffffffffffffffffffffffffffffffff1683828151811061230f5761230f613ca4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361233e5760019350505050611766565b6001016122dd565b5061235082612c9c565b1561235f575f92505050611766565b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f6123aa7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93101612803565b80519091505f5b8181101561255d575f845f015f8584815181106123d0576123d0613ca4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561247e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124a2919061415d565b15801561253f57506040517f0cf0b53300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630cf0b53390612500908e908b908e906004016142e0565b602060405180830381865afa15801561251b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253f919061415d565b15612554576001975050505050505050611766565b506001016123b1565b505f9998505050505050505050565b5f61027f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6007f4170705265676973747279000000000000000000000000000000000000000000612ecc565b73ffffffffffffffffffffffffffffffffffffffff83165f9081527f5203018779d8301358307033923a3bd0a3a759f1f58591c01f878744c0f8c201602052604081205480612609575f915050611766565b5f61261261256c565b6040517f8c2a729a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925090821690638c2a729a90602401602060405180830381865afa158015612680573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126a4919061415d565b156126b3575f92505050611766565b6040517ffb609045000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff83169063fb609045906024015f60405180830381865afa15801561271d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612762919081019061466f565b8051909150612776575f9350505050611766565b5f5f612785835f015189612f61565b9250509150811580612795575080155b156127a7575f95505050505050611766565b6080830151515f5b818110156127f35788856080015182815181106127ce576127ce613ca4565b6020026020010151036127eb576001975050505050505050611766565b6001016127af565b505f9a9950505050505050505050565b60605f6117668361301f565b73ffffffffffffffffffffffffffffffffffffffff81165f908152600183016020526040812054151561026c565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff84166128d0565b5f61026c8373ffffffffffffffffffffffffffffffffffffffff84165b5f8181526001830160205260408120546128c057508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561026f565b505f61026f565b61036781613078565b5f81815260018301602052604081205480156129aa575f6128f2600183614754565b85549091505f9061290590600190614754565b9050808214612964575f865f01828154811061292357612923613ca4565b905f5260205f200154905080875f01848154811061294357612943613ca4565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061297557612975614767565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061026f565b5f91505061026f565b5f61026f825490565b5f61026c83836130d1565b5f8181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460ff1615610367576103677fd9c005120000000000000000000000000000000000000000000000000000000061174f565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015612abf573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612b049190810190614794565b905080515f03612c75576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015612b7b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b9f9190614133565b905073ffffffffffffffffffffffffffffffffffffffff811615612c73576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015612c2b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612c709190810190614794565b91505b505b612c7e816130f7565b92506001835101835283604051526020604051016040525050919050565b5f7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf0081612cc882612803565b905080515f03612cdb57505f9392505050565b5f815167ffffffffffffffff811115612cf657612cf6613c77565b604051908082528060200260200182016040528015612d1f578160200160208202803683370190505b5090505f5b8251811015612d8f57612d505f848381518110612d4357612d43613ca4565b6020026020010151613108565b828281518110612d6257612d62613ca4565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612d24565b50612d9981613113565b612da28161311c565b5f815186510167ffffffffffffffff811115612dc057612dc0613c77565b604051908082528060200260200182016040528015612de9578160200160208202803683370190505b5090505f5b8651811015612e5057868181518110612e0957612e09613ca4565b6020026020010151828281518110612e2357612e23613ca4565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612dee565b505f5b8251811015612eb857828181518110612e6e57612e6e613ca4565b6020026020010151828289510181518110612e8b57612e8b613ca4565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612e53565b50612ec281613125565b9695505050505050565b60068201546040517f44ab6680000000000000000000000000000000000000000000000000000000008152600481018390525f9173ffffffffffffffffffffffffffffffffffffffff169081906344ab668090602401602060405180830381865afa158015612f3d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117479190614133565b5f5f5f5f612f98865f9081527fb7e2813a9de15ce5ee4c1718778708cd70fd7ee3d196d203c0f40369a8d4a6026020526040902090565b9050612fa4818661312f565b600383015491955093506e010000000000000000000000000000900460ff168015613015575060038101546f01000000000000000000000000000000900465ffffffffffff16158061301557506003810154426f0100000000000000000000000000000090910465ffffffffffff16115b9150509250925092565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561306c57602002820191905f5260205f20905b815481526020019060010190808311613058575b50505050509050919050565b5f613081825490565b90505f5b818110156130ca57826001015f845f0183815481106130a6576130a6613ca4565b905f5260205f20015481526020019081526020015f205f9055806001019050613085565b50505f9055565b5f825f0182815481106130e6576130e6613ca4565b905f5260205f200154905092915050565b606061026f613105836131c5565b90565b5f61026c83836131f4565b6103678161332f565b610367816134b5565b5f61026f826134fe565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120805482919065ffffffffffff81169061318790660100000000000090046dffffffffffffffffffffffffffff166135ca565b509093505065ffffffffffff8116158015906131ba57506131a66135eb565b65ffffffffffff168165ffffffffffff1611155b935050509250929050565b604051815160051b8101602001818084035b8082015182528160200191508282036131d7575060405250919050565b5f8183116132fd57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c0100000000000000000000000000000000000000000000000000000000831690036132fb57815f036132f557805483106132b4576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f818152600484016020526040902054909290915081156132b5575b5061026f565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613427565b61018082840311613391576020820180518351106133555780518351825283525b5b60200183811161053c578051828201805182811161337657505050613356565b5b602082015283018051828111613377575060200152613356565b81601f1683830160061c60051b01825181518082106133ac57905b85518082106133c157908183106133c1579091905b865282528352518390835b5b602001805182116133cd57825b8401805183106133da579250828110156133fb5780518351825283526133cc565b505083602082011461341557613415846020830184613334565b82811461053c5761053c818484613334565b8051600281106104ee57601f19602083018260051b8401805b80518185015111613452578301613440565b82811161346157505050505050565b50805b80518185015110613476578301613464565b82811161349f575b82518251845282526020909201919083019081831061347e57505050505050565b505f85526134ae818385613334565b5050509052565b6002815110610367576020810160408201600183510160051b83015b81518351146134e557602083019250815183525b6020820191508082036134d157505081900360051c9052565b5f8151600281106135c4576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060308302600181901c17600281901c17600481901c17600881901c17601081901c178116806020013684378360051b86015b60bc197001000000000000000000000000000000518251095b8281168501805161358b578290526135ab565b8251815151036135a25760019750889250506135ab565b50602001613578565b50820180871061355f575050505080601f1c156135c457fe5b50919050565b5f5f5f6135de846135d96135eb565b6135f5565b9250925092509193909250565b5f61027f42613648565b69ffffffffffffffffffff602083901c166dffffffffffffffffffffffffffff831665ffffffffffff604085901c81169084168111156136375782828261363b565b815f5f5b9250925092509250925092565b5f65ffffffffffff821115613697576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152603060048201526024810183905260440160405180910390fd5b5090565b5080546136a790613d49565b5f825580601f106136b6575050565b601f0160209004905f5260205f209081019061036791905b80821115613697575f81556001016136ce565b5f5f83601f8401126136f1575f5ffd5b50813567ffffffffffffffff811115613708575f5ffd5b60208301915083602082850101111561371f575f5ffd5b9250929050565b5f5f83601f840112613736575f5ffd5b50813567ffffffffffffffff81111561374d575f5ffd5b6020830191508360208260051b850101111561371f575f5ffd5b5f5f5f5f5f5f5f6080888a03121561377d575f5ffd5b87359650602088013567ffffffffffffffff81111561379a575f5ffd5b6137a68a828b016136e1565b909750955050604088013567ffffffffffffffff8111156137c5575f5ffd5b6137d18a828b01613726565b909550935050606088013567ffffffffffffffff8111156137f0575f5ffd5b6137fc8a828b01613726565b989b979a50959850939692959293505050565b5f5f60408385031215613820575f5ffd5b50508035926020909101359150565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156138f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184526138db85835161382f565b945060209384019391909101906001016138a1565b50929695505050505050565b5f8151808452602084019350602083015f5b8281101561394257815173ffffffffffffffffffffffffffffffffffffffff1686526020958601959091019060010161390e565b5093949350505050565b805182525f602082015160a0602085015261396a60a085018261382f565b90506040830151151560408501526060830151848203606086015281815180845260208401915060208160051b8501016020840193505f5b828110156139f1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08683030184526139dc82865161382f565b602095860195949094019391506001016139a2565b50608087015194508781036080890152613a0b81866138fc565b98975050505050505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156138f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452613a7785835161394c565b94506020938401939190910190600101613a3d565b5f60208284031215613a9c575f5ffd5b5035919050565b602081525f61026c602083018461394c565b5f5f5f5f5f5f60608789031215613aca575f5ffd5b863567ffffffffffffffff811115613ae0575f5ffd5b613aec89828a016136e1565b909750955050602087013567ffffffffffffffff811115613b0b575f5ffd5b613b1789828a01613726565b909550935050604087013567ffffffffffffffff811115613b36575f5ffd5b613b4289828a01613726565b979a9699509497509295939492505050565b5f5f5f60408486031215613b66575f5ffd5b83359250602084013567ffffffffffffffff811115613b83575f5ffd5b613b8f86828701613726565b9497909650939450505050565b5f5f60408385031215613bad575f5ffd5b82359150602083013567ffffffffffffffff811115613bca575f5ffd5b830160408186031215613bdb575f5ffd5b809150509250929050565b5f5f5f5f60608587031215613bf9575f5ffd5b8435935060208501359250604085013567ffffffffffffffff811115613c1d575f5ffd5b613c2987828801613726565b95989497509550505050565b805160208083015191908110156135c4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613d03575f5ffd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610367575f5ffd5b5f60208284031215613d3e575f5ffd5b813561176681613d0d565b600181811c90821680613d5d57607f821691505b6020821081036135c4577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f8211156103e857805f5260205f20601f840160051c81016020851015613db95750805b601f840160051c820191505b818110156110c0575f8155600101613dc5565b67ffffffffffffffff831115613df057613df0613c77565b613e0483613dfe8354613d49565b83613d94565b5f601f841160018114613e54575f8515613e1e5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556110c0565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b82811015613ea15786850135825560209485019460019092019101613e81565b5086821015613edc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040516080810167ffffffffffffffff81118282101715613f1157613f11613c77565b60405290565b6040516060810167ffffffffffffffff81118282101715613f1157613f11613c77565b60405160e0810167ffffffffffffffff81118282101715613f1157613f11613c77565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613fa457613fa4613c77565b604052919050565b5f60208284031215613fbc575f5ffd5b815167ffffffffffffffff811115613fd2575f5ffd5b8201601f81018413613fe2575f5ffd5b805167ffffffffffffffff811115613ffc57613ffc613c77565b61402d60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613f5d565b818152856020838501011115614041575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614091575f5ffd5b83018035915067ffffffffffffffff8211156140ab575f5ffd5b60200191503681900382131561371f575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361411c5761411c6140bf565b5060010190565b805161412e81613d0d565b919050565b5f60208284031215614143575f5ffd5b815161176681613d0d565b8051801515811461412e575f5ffd5b5f6020828403121561416d575f5ffd5b61026c8261414e565b83815260406020820152816040820152818360608301375f818301606090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016010192915050565b815167ffffffffffffffff8111156141e3576141e3613c77565b6141f7816141f18454613d49565b84613d94565b6020601f821160018114614248575f83156142125750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556110c0565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156142955787850151825560209485019460019092019101614275565b50848210156142d157868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561433757835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614303565b505060409390930193909352509392505050565b5f67ffffffffffffffff82111561436457614364613c77565b5060051b60200190565b5f82601f83011261437d575f5ffd5b815161439061438b8261434b565b613f5d565b8082825260208201915060208360051b8601019250858311156143b1575f5ffd5b602085015b838110156143ce5780518352602092830192016143b6565b5095945050505050565b80517fffffffff000000000000000000000000000000000000000000000000000000008116811461412e575f5ffd5b5f82601f830112614416575f5ffd5b815161442461438b8261434b565b8082825260208201915060208360071b860101925085831115614445575f5ffd5b602085015b838110156143ce5760808188031215614461575f5ffd5b614469613eee565b614472826143d8565b8152602082015163ffffffff8116811461448a575f5ffd5b602082015261449b6040830161414e565b60408201526144ac6060830161414e565b6060820152835260209092019160800161444a565b5f82601f8301126144d0575f5ffd5b81516144de61438b8261434b565b8082825260208201915060208360051b8601019250858311156144ff575f5ffd5b602085015b838110156143ce57614515816143d8565b835260209283019201614504565b5f60608284031215614533575f5ffd5b61453b613f17565b9050815167ffffffffffffffff811115614553575f5ffd5b8201601f81018413614563575f5ffd5b805161457161438b8261434b565b80828252602082019150602060608402850101925086831115614592575f5ffd5b6020840193505b828410156145f957606084880312156145b0575f5ffd5b6145b8613f17565b6145c1856143d8565b81526145cf6020860161414e565b60208201526145e06040860161414e565b6040820152825260609390930192602090910190614599565b8452505050602082015167ffffffffffffffff811115614617575f5ffd5b61462384828501614407565b602083015250604082015167ffffffffffffffff811115614642575f5ffd5b61464e848285016144c1565b60408301525092915050565b805165ffffffffffff8116811461412e575f5ffd5b5f6020828403121561467f575f5ffd5b815167ffffffffffffffff811115614695575f5ffd5b820160e081850312156146a6575f5ffd5b6146ae613f3a565b815181526146be60208301614123565b60208201526146cf60408301614123565b60408201526146e060608301614123565b6060820152608082015167ffffffffffffffff8111156146fe575f5ffd5b61470a8682850161436e565b60808301525060a082015167ffffffffffffffff811115614729575f5ffd5b61473586828501614523565b60a08301525061474760c0830161465a565b60c0820152949350505050565b8181038181111561026f5761026f6140bf565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f602082840312156147a4575f5ffd5b815167ffffffffffffffff8111156147ba575f5ffd5b8201601f810184136147ca575f5ffd5b80516147d861438b8261434b565b8082825260208201915060208360051b8501019250868311156147f9575f5ffd5b6020840193505b82841015612ec257835161481381613d0d565b82526020938401939091019061480056";
636
1627
 
637
1628
  type RolesConstructorParams =
638
1629
  | [signer?: Signer]