@towns-protocol/generated 0.0.376 → 0.0.378

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