@towns-protocol/generated 0.0.375 → 0.0.377

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dev/.contracts-hash +1 -1
  2. package/dev/abis/Channels.abi.json +1144 -153
  3. package/dev/abis/Channels.abi.ts +1144 -153
  4. package/dev/abis/EntitlementsManager.abi.json +1001 -10
  5. package/dev/abis/EntitlementsManager.abi.ts +1001 -10
  6. package/dev/abis/IAppInstaller.abi.json +89 -0
  7. package/dev/abis/IAppInstaller.abi.ts +89 -0
  8. package/dev/abis/IAppRegistry.abi.json +0 -87
  9. package/dev/abis/IAppRegistry.abi.ts +0 -87
  10. package/dev/abis/ITipping.abi.json +3 -3
  11. package/dev/abis/ITipping.abi.ts +3 -3
  12. package/dev/abis/ITippingBase.abi.json +3 -3
  13. package/dev/abis/ITippingBase.abi.ts +3 -3
  14. package/dev/abis/MembershipFacet.abi.json +1019 -28
  15. package/dev/abis/MembershipFacet.abi.ts +1019 -28
  16. package/dev/abis/PrepayFacet.abi.json +1012 -21
  17. package/dev/abis/PrepayFacet.abi.ts +1012 -21
  18. package/dev/abis/Roles.abi.json +991 -0
  19. package/dev/abis/Roles.abi.ts +991 -0
  20. package/dev/typings/Channels.ts +676 -0
  21. package/dev/typings/EntitlementsManager.ts +677 -0
  22. package/dev/typings/IAppInstaller.ts +239 -0
  23. package/dev/typings/IAppRegistry.ts +0 -166
  24. package/dev/typings/ITipping.ts +6 -6
  25. package/dev/typings/MembershipFacet.ts +676 -0
  26. package/dev/typings/PrepayFacet.ts +676 -0
  27. package/dev/typings/Roles.ts +676 -0
  28. package/dev/typings/factories/Channels__factory.ts +1146 -155
  29. package/dev/typings/factories/EntitlementsManager__factory.ts +1001 -10
  30. package/dev/typings/factories/IAppInstaller__factory.ts +110 -0
  31. package/dev/typings/factories/IAppRegistry__factory.ts +0 -87
  32. package/dev/typings/factories/ITipping__factory.ts +3 -3
  33. package/dev/typings/factories/MembershipFacet__factory.ts +1019 -28
  34. package/dev/typings/factories/PrepayFacet__factory.ts +1012 -21
  35. package/dev/typings/factories/Roles__factory.ts +992 -1
  36. package/dev/typings/factories/index.ts +1 -0
  37. package/dev/typings/index.ts +2 -0
  38. package/package.json +3 -3
@@ -233,16 +233,16 @@ const _abi = [
233
233
  },
234
234
  {
235
235
  type: "event",
236
- name: "ChannelCreated",
236
+ name: "AppBanned",
237
237
  inputs: [
238
238
  {
239
- name: "caller",
239
+ name: "app",
240
240
  type: "address",
241
241
  indexed: true,
242
242
  internalType: "address",
243
243
  },
244
244
  {
245
- name: "channelId",
245
+ name: "uid",
246
246
  type: "bytes32",
247
247
  indexed: false,
248
248
  internalType: "bytes32",
@@ -252,16 +252,16 @@ const _abi = [
252
252
  },
253
253
  {
254
254
  type: "event",
255
- name: "ChannelRemoved",
255
+ name: "AppCreated",
256
256
  inputs: [
257
257
  {
258
- name: "caller",
258
+ name: "app",
259
259
  type: "address",
260
260
  indexed: true,
261
261
  internalType: "address",
262
262
  },
263
263
  {
264
- name: "channelId",
264
+ name: "uid",
265
265
  type: "bytes32",
266
266
  indexed: false,
267
267
  internalType: "bytes32",
@@ -271,68 +271,68 @@ const _abi = [
271
271
  },
272
272
  {
273
273
  type: "event",
274
- name: "ChannelRoleAdded",
274
+ name: "AppInstalled",
275
275
  inputs: [
276
276
  {
277
- name: "caller",
277
+ name: "app",
278
278
  type: "address",
279
279
  indexed: true,
280
280
  internalType: "address",
281
281
  },
282
282
  {
283
- name: "channelId",
284
- type: "bytes32",
285
- indexed: false,
286
- internalType: "bytes32",
283
+ name: "account",
284
+ type: "address",
285
+ indexed: true,
286
+ internalType: "address",
287
287
  },
288
288
  {
289
- name: "roleId",
290
- type: "uint256",
291
- indexed: false,
292
- internalType: "uint256",
289
+ name: "appId",
290
+ type: "bytes32",
291
+ indexed: true,
292
+ internalType: "bytes32",
293
293
  },
294
294
  ],
295
295
  anonymous: false,
296
296
  },
297
297
  {
298
298
  type: "event",
299
- name: "ChannelRoleRemoved",
299
+ name: "AppRegistered",
300
300
  inputs: [
301
301
  {
302
- name: "caller",
302
+ name: "app",
303
303
  type: "address",
304
304
  indexed: true,
305
305
  internalType: "address",
306
306
  },
307
307
  {
308
- name: "channelId",
308
+ name: "uid",
309
309
  type: "bytes32",
310
310
  indexed: false,
311
311
  internalType: "bytes32",
312
312
  },
313
- {
314
- name: "roleId",
315
- type: "uint256",
316
- indexed: false,
317
- internalType: "uint256",
318
- },
319
313
  ],
320
314
  anonymous: false,
321
315
  },
322
316
  {
323
317
  type: "event",
324
- name: "ChannelUpdated",
318
+ name: "AppRenewed",
325
319
  inputs: [
326
320
  {
327
- name: "caller",
321
+ name: "app",
328
322
  type: "address",
329
323
  indexed: true,
330
324
  internalType: "address",
331
325
  },
332
326
  {
333
- name: "channelId",
327
+ name: "account",
328
+ type: "address",
329
+ indexed: true,
330
+ internalType: "address",
331
+ },
332
+ {
333
+ name: "appId",
334
334
  type: "bytes32",
335
- indexed: false,
335
+ indexed: true,
336
336
  internalType: "bytes32",
337
337
  },
338
338
  ],
@@ -340,80 +340,98 @@ const _abi = [
340
340
  },
341
341
  {
342
342
  type: "event",
343
- name: "Initialized",
343
+ name: "AppSchemaSet",
344
344
  inputs: [
345
345
  {
346
- name: "version",
347
- type: "uint32",
346
+ name: "uid",
347
+ type: "bytes32",
348
348
  indexed: false,
349
- internalType: "uint32",
349
+ internalType: "bytes32",
350
350
  },
351
351
  ],
352
352
  anonymous: false,
353
353
  },
354
354
  {
355
355
  type: "event",
356
- name: "InterfaceAdded",
356
+ name: "AppUninstalled",
357
357
  inputs: [
358
358
  {
359
- name: "interfaceId",
360
- type: "bytes4",
359
+ name: "app",
360
+ type: "address",
361
361
  indexed: true,
362
- internalType: "bytes4",
362
+ internalType: "address",
363
+ },
364
+ {
365
+ name: "account",
366
+ type: "address",
367
+ indexed: true,
368
+ internalType: "address",
369
+ },
370
+ {
371
+ name: "appId",
372
+ type: "bytes32",
373
+ indexed: true,
374
+ internalType: "bytes32",
363
375
  },
364
376
  ],
365
377
  anonymous: false,
366
378
  },
367
379
  {
368
380
  type: "event",
369
- name: "InterfaceRemoved",
381
+ name: "AppUnregistered",
370
382
  inputs: [
371
383
  {
372
- name: "interfaceId",
373
- type: "bytes4",
384
+ name: "app",
385
+ type: "address",
374
386
  indexed: true,
375
- internalType: "bytes4",
387
+ internalType: "address",
388
+ },
389
+ {
390
+ name: "uid",
391
+ type: "bytes32",
392
+ indexed: false,
393
+ internalType: "bytes32",
376
394
  },
377
395
  ],
378
396
  anonymous: false,
379
397
  },
380
398
  {
381
399
  type: "event",
382
- name: "OwnershipTransferred",
400
+ name: "AppUpdated",
383
401
  inputs: [
384
402
  {
385
- name: "previousOwner",
403
+ name: "app",
386
404
  type: "address",
387
405
  indexed: true,
388
406
  internalType: "address",
389
407
  },
390
408
  {
391
- name: "newOwner",
392
- type: "address",
393
- indexed: true,
394
- internalType: "address",
409
+ name: "uid",
410
+ type: "bytes32",
411
+ indexed: false,
412
+ internalType: "bytes32",
395
413
  },
396
414
  ],
397
415
  anonymous: false,
398
416
  },
399
417
  {
400
418
  type: "event",
401
- name: "PermissionsAddedToChannelRole",
419
+ name: "AppUpdated",
402
420
  inputs: [
403
421
  {
404
- name: "updater",
422
+ name: "app",
405
423
  type: "address",
406
424
  indexed: true,
407
425
  internalType: "address",
408
426
  },
409
427
  {
410
- name: "roleId",
411
- type: "uint256",
428
+ name: "account",
429
+ type: "address",
412
430
  indexed: true,
413
- internalType: "uint256",
431
+ internalType: "address",
414
432
  },
415
433
  {
416
- name: "channelId",
434
+ name: "appId",
417
435
  type: "bytes32",
418
436
  indexed: true,
419
437
  internalType: "bytes32",
@@ -423,22 +441,22 @@ const _abi = [
423
441
  },
424
442
  {
425
443
  type: "event",
426
- name: "PermissionsRemovedFromChannelRole",
444
+ name: "AppUpgraded",
427
445
  inputs: [
428
446
  {
429
- name: "updater",
447
+ name: "app",
430
448
  type: "address",
431
449
  indexed: true,
432
450
  internalType: "address",
433
451
  },
434
452
  {
435
- name: "roleId",
436
- type: "uint256",
453
+ name: "oldVersionId",
454
+ type: "bytes32",
437
455
  indexed: true,
438
- internalType: "uint256",
456
+ internalType: "bytes32",
439
457
  },
440
458
  {
441
- name: "channelId",
459
+ name: "newVersionId",
442
460
  type: "bytes32",
443
461
  indexed: true,
444
462
  internalType: "bytes32",
@@ -448,24 +466,37 @@ const _abi = [
448
466
  },
449
467
  {
450
468
  type: "event",
451
- name: "PermissionsUpdatedForChannelRole",
469
+ name: "ChannelCreated",
452
470
  inputs: [
453
471
  {
454
- name: "updater",
472
+ name: "caller",
455
473
  type: "address",
456
474
  indexed: true,
457
475
  internalType: "address",
458
476
  },
459
477
  {
460
- name: "roleId",
461
- type: "uint256",
478
+ name: "channelId",
479
+ type: "bytes32",
480
+ indexed: false,
481
+ internalType: "bytes32",
482
+ },
483
+ ],
484
+ anonymous: false,
485
+ },
486
+ {
487
+ type: "event",
488
+ name: "ChannelRemoved",
489
+ inputs: [
490
+ {
491
+ name: "caller",
492
+ type: "address",
462
493
  indexed: true,
463
- internalType: "uint256",
494
+ internalType: "address",
464
495
  },
465
496
  {
466
497
  name: "channelId",
467
498
  type: "bytes32",
468
- indexed: true,
499
+ indexed: false,
469
500
  internalType: "bytes32",
470
501
  },
471
502
  ],
@@ -473,18 +504,24 @@ const _abi = [
473
504
  },
474
505
  {
475
506
  type: "event",
476
- name: "RoleCreated",
507
+ name: "ChannelRoleAdded",
477
508
  inputs: [
478
509
  {
479
- name: "creator",
510
+ name: "caller",
480
511
  type: "address",
481
512
  indexed: true,
482
513
  internalType: "address",
483
514
  },
515
+ {
516
+ name: "channelId",
517
+ type: "bytes32",
518
+ indexed: false,
519
+ internalType: "bytes32",
520
+ },
484
521
  {
485
522
  name: "roleId",
486
523
  type: "uint256",
487
- indexed: true,
524
+ indexed: false,
488
525
  internalType: "uint256",
489
526
  },
490
527
  ],
@@ -492,18 +529,24 @@ const _abi = [
492
529
  },
493
530
  {
494
531
  type: "event",
495
- name: "RoleRemoved",
532
+ name: "ChannelRoleRemoved",
496
533
  inputs: [
497
534
  {
498
- name: "remover",
535
+ name: "caller",
499
536
  type: "address",
500
537
  indexed: true,
501
538
  internalType: "address",
502
539
  },
540
+ {
541
+ name: "channelId",
542
+ type: "bytes32",
543
+ indexed: false,
544
+ internalType: "bytes32",
545
+ },
503
546
  {
504
547
  name: "roleId",
505
548
  type: "uint256",
506
- indexed: true,
549
+ indexed: false,
507
550
  internalType: "uint256",
508
551
  },
509
552
  ],
@@ -511,109 +554,1021 @@ const _abi = [
511
554
  },
512
555
  {
513
556
  type: "event",
514
- name: "RoleUpdated",
557
+ name: "ChannelUpdated",
515
558
  inputs: [
516
559
  {
517
- name: "updater",
560
+ name: "caller",
518
561
  type: "address",
519
562
  indexed: true,
520
563
  internalType: "address",
521
564
  },
522
565
  {
523
- name: "roleId",
524
- type: "uint256",
525
- indexed: true,
526
- internalType: "uint256",
566
+ name: "channelId",
567
+ type: "bytes32",
568
+ indexed: false,
569
+ internalType: "bytes32",
527
570
  },
528
571
  ],
529
572
  anonymous: false,
530
573
  },
531
574
  {
532
- type: "error",
533
- name: "ChannelService__ChannelAlreadyExists",
534
- inputs: [],
535
- },
536
- {
537
- type: "error",
538
- name: "ChannelService__ChannelDisabled",
539
- inputs: [],
540
- },
541
- {
542
- type: "error",
543
- name: "ChannelService__ChannelDoesNotExist",
544
- inputs: [],
545
- },
546
- {
547
- type: "error",
548
- name: "ChannelService__RoleAlreadyExists",
549
- inputs: [],
550
- },
551
- {
552
- type: "error",
553
- name: "ChannelService__RoleDoesNotExist",
554
- inputs: [],
555
- },
556
- {
557
- type: "error",
558
- name: "Entitlement__InvalidValue",
559
- inputs: [],
560
- },
561
- {
562
- type: "error",
563
- name: "Entitlement__NotAllowed",
564
- inputs: [],
565
- },
566
- {
567
- type: "error",
568
- name: "Entitlement__NotMember",
569
- inputs: [],
570
- },
571
- {
572
- type: "error",
573
- name: "Entitlement__ValueAlreadyExists",
574
- inputs: [],
575
- },
576
- {
577
- type: "error",
578
- name: "Initializable_InInitializingState",
579
- inputs: [],
580
- },
581
- {
582
- type: "error",
583
- name: "Introspection_AlreadySupported",
584
- inputs: [],
585
- },
586
- {
587
- type: "error",
588
- name: "Introspection_NotSupported",
589
- inputs: [],
590
- },
591
- {
592
- type: "error",
593
- name: "Ownable__NotOwner",
575
+ type: "event",
576
+ name: "ExecutionInstalled",
594
577
  inputs: [
595
578
  {
596
- name: "account",
579
+ name: "module",
597
580
  type: "address",
581
+ indexed: true,
598
582
  internalType: "address",
599
583
  },
584
+ {
585
+ name: "manifest",
586
+ type: "tuple",
587
+ indexed: false,
588
+ internalType: "struct ExecutionManifest",
589
+ components: [
590
+ {
591
+ name: "executionFunctions",
592
+ type: "tuple[]",
593
+ internalType: "struct ManifestExecutionFunction[]",
594
+ components: [
595
+ {
596
+ name: "executionSelector",
597
+ type: "bytes4",
598
+ internalType: "bytes4",
599
+ },
600
+ {
601
+ name: "skipRuntimeValidation",
602
+ type: "bool",
603
+ internalType: "bool",
604
+ },
605
+ {
606
+ name: "allowGlobalValidation",
607
+ type: "bool",
608
+ internalType: "bool",
609
+ },
610
+ ],
611
+ },
612
+ {
613
+ name: "executionHooks",
614
+ type: "tuple[]",
615
+ internalType: "struct ManifestExecutionHook[]",
616
+ components: [
617
+ {
618
+ name: "executionSelector",
619
+ type: "bytes4",
620
+ internalType: "bytes4",
621
+ },
622
+ {
623
+ name: "entityId",
624
+ type: "uint32",
625
+ internalType: "uint32",
626
+ },
627
+ {
628
+ name: "isPreHook",
629
+ type: "bool",
630
+ internalType: "bool",
631
+ },
632
+ {
633
+ name: "isPostHook",
634
+ type: "bool",
635
+ internalType: "bool",
636
+ },
637
+ ],
638
+ },
639
+ {
640
+ name: "interfaceIds",
641
+ type: "bytes4[]",
642
+ internalType: "bytes4[]",
643
+ },
644
+ ],
645
+ },
600
646
  ],
647
+ anonymous: false,
601
648
  },
602
649
  {
603
- type: "error",
604
- name: "Ownable__ZeroAddress",
605
- inputs: [],
606
- },
607
- {
608
- type: "error",
609
- name: "OwnerQueryForNonexistentToken",
610
- inputs: [],
611
- },
612
- {
613
- type: "error",
614
- name: "Roles__EntitlementAlreadyExists",
615
- inputs: [],
616
- },
650
+ type: "event",
651
+ name: "ExecutionUninstalled",
652
+ inputs: [
653
+ {
654
+ name: "module",
655
+ type: "address",
656
+ indexed: true,
657
+ internalType: "address",
658
+ },
659
+ {
660
+ name: "success",
661
+ type: "bool",
662
+ indexed: false,
663
+ internalType: "bool",
664
+ },
665
+ {
666
+ name: "manifest",
667
+ type: "tuple",
668
+ indexed: false,
669
+ internalType: "struct ExecutionManifest",
670
+ components: [
671
+ {
672
+ name: "executionFunctions",
673
+ type: "tuple[]",
674
+ internalType: "struct ManifestExecutionFunction[]",
675
+ components: [
676
+ {
677
+ name: "executionSelector",
678
+ type: "bytes4",
679
+ internalType: "bytes4",
680
+ },
681
+ {
682
+ name: "skipRuntimeValidation",
683
+ type: "bool",
684
+ internalType: "bool",
685
+ },
686
+ {
687
+ name: "allowGlobalValidation",
688
+ type: "bool",
689
+ internalType: "bool",
690
+ },
691
+ ],
692
+ },
693
+ {
694
+ name: "executionHooks",
695
+ type: "tuple[]",
696
+ internalType: "struct ManifestExecutionHook[]",
697
+ components: [
698
+ {
699
+ name: "executionSelector",
700
+ type: "bytes4",
701
+ internalType: "bytes4",
702
+ },
703
+ {
704
+ name: "entityId",
705
+ type: "uint32",
706
+ internalType: "uint32",
707
+ },
708
+ {
709
+ name: "isPreHook",
710
+ type: "bool",
711
+ internalType: "bool",
712
+ },
713
+ {
714
+ name: "isPostHook",
715
+ type: "bool",
716
+ internalType: "bool",
717
+ },
718
+ ],
719
+ },
720
+ {
721
+ name: "interfaceIds",
722
+ type: "bytes4[]",
723
+ internalType: "bytes4[]",
724
+ },
725
+ ],
726
+ },
727
+ ],
728
+ anonymous: false,
729
+ },
730
+ {
731
+ type: "event",
732
+ name: "ExecutionUpdated",
733
+ inputs: [
734
+ {
735
+ name: "module",
736
+ type: "address",
737
+ indexed: true,
738
+ internalType: "address",
739
+ },
740
+ {
741
+ name: "manifest",
742
+ type: "tuple",
743
+ indexed: false,
744
+ internalType: "struct ExecutionManifest",
745
+ components: [
746
+ {
747
+ name: "executionFunctions",
748
+ type: "tuple[]",
749
+ internalType: "struct ManifestExecutionFunction[]",
750
+ components: [
751
+ {
752
+ name: "executionSelector",
753
+ type: "bytes4",
754
+ internalType: "bytes4",
755
+ },
756
+ {
757
+ name: "skipRuntimeValidation",
758
+ type: "bool",
759
+ internalType: "bool",
760
+ },
761
+ {
762
+ name: "allowGlobalValidation",
763
+ type: "bool",
764
+ internalType: "bool",
765
+ },
766
+ ],
767
+ },
768
+ {
769
+ name: "executionHooks",
770
+ type: "tuple[]",
771
+ internalType: "struct ManifestExecutionHook[]",
772
+ components: [
773
+ {
774
+ name: "executionSelector",
775
+ type: "bytes4",
776
+ internalType: "bytes4",
777
+ },
778
+ {
779
+ name: "entityId",
780
+ type: "uint32",
781
+ internalType: "uint32",
782
+ },
783
+ {
784
+ name: "isPreHook",
785
+ type: "bool",
786
+ internalType: "bool",
787
+ },
788
+ {
789
+ name: "isPostHook",
790
+ type: "bool",
791
+ internalType: "bool",
792
+ },
793
+ ],
794
+ },
795
+ {
796
+ name: "interfaceIds",
797
+ type: "bytes4[]",
798
+ internalType: "bytes4[]",
799
+ },
800
+ ],
801
+ },
802
+ ],
803
+ anonymous: false,
804
+ },
805
+ {
806
+ type: "event",
807
+ name: "GroupAccessGranted",
808
+ inputs: [
809
+ {
810
+ name: "groupId",
811
+ type: "bytes32",
812
+ indexed: true,
813
+ internalType: "bytes32",
814
+ },
815
+ {
816
+ name: "account",
817
+ type: "address",
818
+ indexed: true,
819
+ internalType: "address",
820
+ },
821
+ {
822
+ name: "delay",
823
+ type: "uint32",
824
+ indexed: false,
825
+ internalType: "uint32",
826
+ },
827
+ {
828
+ name: "since",
829
+ type: "uint48",
830
+ indexed: false,
831
+ internalType: "uint48",
832
+ },
833
+ {
834
+ name: "newMember",
835
+ type: "bool",
836
+ indexed: false,
837
+ internalType: "bool",
838
+ },
839
+ ],
840
+ anonymous: false,
841
+ },
842
+ {
843
+ type: "event",
844
+ name: "GroupAccessRevoked",
845
+ inputs: [
846
+ {
847
+ name: "groupId",
848
+ type: "bytes32",
849
+ indexed: true,
850
+ internalType: "bytes32",
851
+ },
852
+ {
853
+ name: "account",
854
+ type: "address",
855
+ indexed: true,
856
+ internalType: "address",
857
+ },
858
+ {
859
+ name: "revoked",
860
+ type: "bool",
861
+ indexed: false,
862
+ internalType: "bool",
863
+ },
864
+ ],
865
+ anonymous: false,
866
+ },
867
+ {
868
+ type: "event",
869
+ name: "GroupExpirationSet",
870
+ inputs: [
871
+ {
872
+ name: "groupId",
873
+ type: "bytes32",
874
+ indexed: true,
875
+ internalType: "bytes32",
876
+ },
877
+ {
878
+ name: "expiration",
879
+ type: "uint48",
880
+ indexed: false,
881
+ internalType: "uint48",
882
+ },
883
+ ],
884
+ anonymous: false,
885
+ },
886
+ {
887
+ type: "event",
888
+ name: "GroupGrantDelaySet",
889
+ inputs: [
890
+ {
891
+ name: "groupId",
892
+ type: "bytes32",
893
+ indexed: true,
894
+ internalType: "bytes32",
895
+ },
896
+ {
897
+ name: "delay",
898
+ type: "uint32",
899
+ indexed: false,
900
+ internalType: "uint32",
901
+ },
902
+ ],
903
+ anonymous: false,
904
+ },
905
+ {
906
+ type: "event",
907
+ name: "GroupGuardianSet",
908
+ inputs: [
909
+ {
910
+ name: "groupId",
911
+ type: "bytes32",
912
+ indexed: true,
913
+ internalType: "bytes32",
914
+ },
915
+ {
916
+ name: "guardian",
917
+ type: "bytes32",
918
+ indexed: false,
919
+ internalType: "bytes32",
920
+ },
921
+ ],
922
+ anonymous: false,
923
+ },
924
+ {
925
+ type: "event",
926
+ name: "GroupStatusSet",
927
+ inputs: [
928
+ {
929
+ name: "groupId",
930
+ type: "bytes32",
931
+ indexed: true,
932
+ internalType: "bytes32",
933
+ },
934
+ {
935
+ name: "active",
936
+ type: "bool",
937
+ indexed: false,
938
+ internalType: "bool",
939
+ },
940
+ ],
941
+ anonymous: false,
942
+ },
943
+ {
944
+ type: "event",
945
+ name: "Initialized",
946
+ inputs: [
947
+ {
948
+ name: "version",
949
+ type: "uint32",
950
+ indexed: false,
951
+ internalType: "uint32",
952
+ },
953
+ ],
954
+ anonymous: false,
955
+ },
956
+ {
957
+ type: "event",
958
+ name: "InterfaceAdded",
959
+ inputs: [
960
+ {
961
+ name: "interfaceId",
962
+ type: "bytes4",
963
+ indexed: true,
964
+ internalType: "bytes4",
965
+ },
966
+ ],
967
+ anonymous: false,
968
+ },
969
+ {
970
+ type: "event",
971
+ name: "InterfaceRemoved",
972
+ inputs: [
973
+ {
974
+ name: "interfaceId",
975
+ type: "bytes4",
976
+ indexed: true,
977
+ internalType: "bytes4",
978
+ },
979
+ ],
980
+ anonymous: false,
981
+ },
982
+ {
983
+ type: "event",
984
+ name: "OperationCanceled",
985
+ inputs: [
986
+ {
987
+ name: "operationId",
988
+ type: "bytes32",
989
+ indexed: true,
990
+ internalType: "bytes32",
991
+ },
992
+ {
993
+ name: "nonce",
994
+ type: "uint32",
995
+ indexed: false,
996
+ internalType: "uint32",
997
+ },
998
+ ],
999
+ anonymous: false,
1000
+ },
1001
+ {
1002
+ type: "event",
1003
+ name: "OperationExecuted",
1004
+ inputs: [
1005
+ {
1006
+ name: "operationId",
1007
+ type: "bytes32",
1008
+ indexed: true,
1009
+ internalType: "bytes32",
1010
+ },
1011
+ {
1012
+ name: "nonce",
1013
+ type: "uint32",
1014
+ indexed: false,
1015
+ internalType: "uint32",
1016
+ },
1017
+ ],
1018
+ anonymous: false,
1019
+ },
1020
+ {
1021
+ type: "event",
1022
+ name: "OperationScheduled",
1023
+ inputs: [
1024
+ {
1025
+ name: "operationId",
1026
+ type: "bytes32",
1027
+ indexed: true,
1028
+ internalType: "bytes32",
1029
+ },
1030
+ {
1031
+ name: "timepoint",
1032
+ type: "uint48",
1033
+ indexed: false,
1034
+ internalType: "uint48",
1035
+ },
1036
+ {
1037
+ name: "nonce",
1038
+ type: "uint32",
1039
+ indexed: false,
1040
+ internalType: "uint32",
1041
+ },
1042
+ ],
1043
+ anonymous: false,
1044
+ },
1045
+ {
1046
+ type: "event",
1047
+ name: "OwnershipTransferred",
1048
+ inputs: [
1049
+ {
1050
+ name: "previousOwner",
1051
+ type: "address",
1052
+ indexed: true,
1053
+ internalType: "address",
1054
+ },
1055
+ {
1056
+ name: "newOwner",
1057
+ type: "address",
1058
+ indexed: true,
1059
+ internalType: "address",
1060
+ },
1061
+ ],
1062
+ anonymous: false,
1063
+ },
1064
+ {
1065
+ type: "event",
1066
+ name: "PermissionsAddedToChannelRole",
1067
+ inputs: [
1068
+ {
1069
+ name: "updater",
1070
+ type: "address",
1071
+ indexed: true,
1072
+ internalType: "address",
1073
+ },
1074
+ {
1075
+ name: "roleId",
1076
+ type: "uint256",
1077
+ indexed: true,
1078
+ internalType: "uint256",
1079
+ },
1080
+ {
1081
+ name: "channelId",
1082
+ type: "bytes32",
1083
+ indexed: true,
1084
+ internalType: "bytes32",
1085
+ },
1086
+ ],
1087
+ anonymous: false,
1088
+ },
1089
+ {
1090
+ type: "event",
1091
+ name: "PermissionsRemovedFromChannelRole",
1092
+ inputs: [
1093
+ {
1094
+ name: "updater",
1095
+ type: "address",
1096
+ indexed: true,
1097
+ internalType: "address",
1098
+ },
1099
+ {
1100
+ name: "roleId",
1101
+ type: "uint256",
1102
+ indexed: true,
1103
+ internalType: "uint256",
1104
+ },
1105
+ {
1106
+ name: "channelId",
1107
+ type: "bytes32",
1108
+ indexed: true,
1109
+ internalType: "bytes32",
1110
+ },
1111
+ ],
1112
+ anonymous: false,
1113
+ },
1114
+ {
1115
+ type: "event",
1116
+ name: "PermissionsUpdatedForChannelRole",
1117
+ inputs: [
1118
+ {
1119
+ name: "updater",
1120
+ type: "address",
1121
+ indexed: true,
1122
+ internalType: "address",
1123
+ },
1124
+ {
1125
+ name: "roleId",
1126
+ type: "uint256",
1127
+ indexed: true,
1128
+ internalType: "uint256",
1129
+ },
1130
+ {
1131
+ name: "channelId",
1132
+ type: "bytes32",
1133
+ indexed: true,
1134
+ internalType: "bytes32",
1135
+ },
1136
+ ],
1137
+ anonymous: false,
1138
+ },
1139
+ {
1140
+ type: "event",
1141
+ name: "RoleCreated",
1142
+ inputs: [
1143
+ {
1144
+ name: "creator",
1145
+ type: "address",
1146
+ indexed: true,
1147
+ internalType: "address",
1148
+ },
1149
+ {
1150
+ name: "roleId",
1151
+ type: "uint256",
1152
+ indexed: true,
1153
+ internalType: "uint256",
1154
+ },
1155
+ ],
1156
+ anonymous: false,
1157
+ },
1158
+ {
1159
+ type: "event",
1160
+ name: "RoleRemoved",
1161
+ inputs: [
1162
+ {
1163
+ name: "remover",
1164
+ type: "address",
1165
+ indexed: true,
1166
+ internalType: "address",
1167
+ },
1168
+ {
1169
+ name: "roleId",
1170
+ type: "uint256",
1171
+ indexed: true,
1172
+ internalType: "uint256",
1173
+ },
1174
+ ],
1175
+ anonymous: false,
1176
+ },
1177
+ {
1178
+ type: "event",
1179
+ name: "RoleUpdated",
1180
+ inputs: [
1181
+ {
1182
+ name: "updater",
1183
+ type: "address",
1184
+ indexed: true,
1185
+ internalType: "address",
1186
+ },
1187
+ {
1188
+ name: "roleId",
1189
+ type: "uint256",
1190
+ indexed: true,
1191
+ internalType: "uint256",
1192
+ },
1193
+ ],
1194
+ anonymous: false,
1195
+ },
1196
+ {
1197
+ type: "event",
1198
+ name: "TargetDisabledSet",
1199
+ inputs: [
1200
+ {
1201
+ name: "target",
1202
+ type: "address",
1203
+ indexed: true,
1204
+ internalType: "address",
1205
+ },
1206
+ {
1207
+ name: "disabled",
1208
+ type: "bool",
1209
+ indexed: false,
1210
+ internalType: "bool",
1211
+ },
1212
+ ],
1213
+ anonymous: false,
1214
+ },
1215
+ {
1216
+ type: "event",
1217
+ name: "TargetFunctionDelaySet",
1218
+ inputs: [
1219
+ {
1220
+ name: "target",
1221
+ type: "address",
1222
+ indexed: true,
1223
+ internalType: "address",
1224
+ },
1225
+ {
1226
+ name: "newDelay",
1227
+ type: "uint32",
1228
+ indexed: false,
1229
+ internalType: "uint32",
1230
+ },
1231
+ {
1232
+ name: "minSetback",
1233
+ type: "uint32",
1234
+ indexed: false,
1235
+ internalType: "uint32",
1236
+ },
1237
+ ],
1238
+ anonymous: false,
1239
+ },
1240
+ {
1241
+ type: "event",
1242
+ name: "TargetFunctionDisabledSet",
1243
+ inputs: [
1244
+ {
1245
+ name: "target",
1246
+ type: "address",
1247
+ indexed: true,
1248
+ internalType: "address",
1249
+ },
1250
+ {
1251
+ name: "selector",
1252
+ type: "bytes4",
1253
+ indexed: true,
1254
+ internalType: "bytes4",
1255
+ },
1256
+ {
1257
+ name: "disabled",
1258
+ type: "bool",
1259
+ indexed: false,
1260
+ internalType: "bool",
1261
+ },
1262
+ ],
1263
+ anonymous: false,
1264
+ },
1265
+ {
1266
+ type: "event",
1267
+ name: "TargetFunctionGroupSet",
1268
+ inputs: [
1269
+ {
1270
+ name: "target",
1271
+ type: "address",
1272
+ indexed: true,
1273
+ internalType: "address",
1274
+ },
1275
+ {
1276
+ name: "selector",
1277
+ type: "bytes4",
1278
+ indexed: true,
1279
+ internalType: "bytes4",
1280
+ },
1281
+ {
1282
+ name: "groupId",
1283
+ type: "bytes32",
1284
+ indexed: true,
1285
+ internalType: "bytes32",
1286
+ },
1287
+ ],
1288
+ anonymous: false,
1289
+ },
1290
+ {
1291
+ type: "error",
1292
+ name: "AlreadyScheduled",
1293
+ inputs: [],
1294
+ },
1295
+ {
1296
+ type: "error",
1297
+ name: "AppAlreadyInstalled",
1298
+ inputs: [],
1299
+ },
1300
+ {
1301
+ type: "error",
1302
+ name: "AppAlreadyRegistered",
1303
+ inputs: [],
1304
+ },
1305
+ {
1306
+ type: "error",
1307
+ name: "AppDoesNotImplementInterface",
1308
+ inputs: [],
1309
+ },
1310
+ {
1311
+ type: "error",
1312
+ name: "AppNotInstalled",
1313
+ inputs: [],
1314
+ },
1315
+ {
1316
+ type: "error",
1317
+ name: "AppNotRegistered",
1318
+ inputs: [],
1319
+ },
1320
+ {
1321
+ type: "error",
1322
+ name: "AppRevoked",
1323
+ inputs: [],
1324
+ },
1325
+ {
1326
+ type: "error",
1327
+ name: "BannedApp",
1328
+ inputs: [],
1329
+ },
1330
+ {
1331
+ type: "error",
1332
+ name: "CallerAlreadyRegistered",
1333
+ inputs: [],
1334
+ },
1335
+ {
1336
+ type: "error",
1337
+ name: "CallerNotRegistered",
1338
+ inputs: [],
1339
+ },
1340
+ {
1341
+ type: "error",
1342
+ name: "ChannelService__ChannelAlreadyExists",
1343
+ inputs: [],
1344
+ },
1345
+ {
1346
+ type: "error",
1347
+ name: "ChannelService__ChannelDisabled",
1348
+ inputs: [],
1349
+ },
1350
+ {
1351
+ type: "error",
1352
+ name: "ChannelService__ChannelDoesNotExist",
1353
+ inputs: [],
1354
+ },
1355
+ {
1356
+ type: "error",
1357
+ name: "ChannelService__RoleAlreadyExists",
1358
+ inputs: [],
1359
+ },
1360
+ {
1361
+ type: "error",
1362
+ name: "ChannelService__RoleDoesNotExist",
1363
+ inputs: [],
1364
+ },
1365
+ {
1366
+ type: "error",
1367
+ name: "ClientAlreadyRegistered",
1368
+ inputs: [],
1369
+ },
1370
+ {
1371
+ type: "error",
1372
+ name: "ClientNotRegistered",
1373
+ inputs: [],
1374
+ },
1375
+ {
1376
+ type: "error",
1377
+ name: "Entitlement__InvalidValue",
1378
+ inputs: [],
1379
+ },
1380
+ {
1381
+ type: "error",
1382
+ name: "Entitlement__NotAllowed",
1383
+ inputs: [],
1384
+ },
1385
+ {
1386
+ type: "error",
1387
+ name: "Entitlement__NotMember",
1388
+ inputs: [],
1389
+ },
1390
+ {
1391
+ type: "error",
1392
+ name: "Entitlement__ValueAlreadyExists",
1393
+ inputs: [],
1394
+ },
1395
+ {
1396
+ type: "error",
1397
+ name: "ExecutionAlreadyRegistered",
1398
+ inputs: [],
1399
+ },
1400
+ {
1401
+ type: "error",
1402
+ name: "ExecutionFunctionAlreadySet",
1403
+ inputs: [],
1404
+ },
1405
+ {
1406
+ type: "error",
1407
+ name: "ExecutionHookAlreadySet",
1408
+ inputs: [],
1409
+ },
1410
+ {
1411
+ type: "error",
1412
+ name: "ExecutionNotFound",
1413
+ inputs: [],
1414
+ },
1415
+ {
1416
+ type: "error",
1417
+ name: "ExecutionNotRegistered",
1418
+ inputs: [],
1419
+ },
1420
+ {
1421
+ type: "error",
1422
+ name: "ExecutorCallFailed",
1423
+ inputs: [],
1424
+ },
1425
+ {
1426
+ type: "error",
1427
+ name: "Expired",
1428
+ inputs: [],
1429
+ },
1430
+ {
1431
+ type: "error",
1432
+ name: "Initializable_InInitializingState",
1433
+ inputs: [],
1434
+ },
1435
+ {
1436
+ type: "error",
1437
+ name: "InsufficientPayment",
1438
+ inputs: [],
1439
+ },
1440
+ {
1441
+ type: "error",
1442
+ name: "Introspection_AlreadySupported",
1443
+ inputs: [],
1444
+ },
1445
+ {
1446
+ type: "error",
1447
+ name: "Introspection_NotSupported",
1448
+ inputs: [],
1449
+ },
1450
+ {
1451
+ type: "error",
1452
+ name: "InvalidAddressInput",
1453
+ inputs: [],
1454
+ },
1455
+ {
1456
+ type: "error",
1457
+ name: "InvalidAppAddress",
1458
+ inputs: [
1459
+ {
1460
+ name: "app",
1461
+ type: "address",
1462
+ internalType: "address",
1463
+ },
1464
+ ],
1465
+ },
1466
+ {
1467
+ type: "error",
1468
+ name: "InvalidAppId",
1469
+ inputs: [],
1470
+ },
1471
+ {
1472
+ type: "error",
1473
+ name: "InvalidAppName",
1474
+ inputs: [],
1475
+ },
1476
+ {
1477
+ type: "error",
1478
+ name: "InvalidArrayInput",
1479
+ inputs: [],
1480
+ },
1481
+ {
1482
+ type: "error",
1483
+ name: "InvalidCaller",
1484
+ inputs: [],
1485
+ },
1486
+ {
1487
+ type: "error",
1488
+ name: "InvalidDataLength",
1489
+ inputs: [],
1490
+ },
1491
+ {
1492
+ type: "error",
1493
+ name: "InvalidDuration",
1494
+ inputs: [],
1495
+ },
1496
+ {
1497
+ type: "error",
1498
+ name: "InvalidExpiration",
1499
+ inputs: [],
1500
+ },
1501
+ {
1502
+ type: "error",
1503
+ name: "InvalidManifest",
1504
+ inputs: [],
1505
+ },
1506
+ {
1507
+ type: "error",
1508
+ name: "InvalidPrice",
1509
+ inputs: [],
1510
+ },
1511
+ {
1512
+ type: "error",
1513
+ name: "ModuleInstallCallbackFailed",
1514
+ inputs: [],
1515
+ },
1516
+ {
1517
+ type: "error",
1518
+ name: "NotAllowed",
1519
+ inputs: [],
1520
+ },
1521
+ {
1522
+ type: "error",
1523
+ name: "NotAppOwner",
1524
+ inputs: [],
1525
+ },
1526
+ {
1527
+ type: "error",
1528
+ name: "NotEnoughEth",
1529
+ inputs: [],
1530
+ },
1531
+ {
1532
+ type: "error",
1533
+ name: "NotReady",
1534
+ inputs: [],
1535
+ },
1536
+ {
1537
+ type: "error",
1538
+ name: "NotScheduled",
1539
+ inputs: [],
1540
+ },
1541
+ {
1542
+ type: "error",
1543
+ name: "NullModule",
1544
+ inputs: [],
1545
+ },
1546
+ {
1547
+ type: "error",
1548
+ name: "Ownable__NotOwner",
1549
+ inputs: [
1550
+ {
1551
+ name: "account",
1552
+ type: "address",
1553
+ internalType: "address",
1554
+ },
1555
+ ],
1556
+ },
1557
+ {
1558
+ type: "error",
1559
+ name: "Ownable__ZeroAddress",
1560
+ inputs: [],
1561
+ },
1562
+ {
1563
+ type: "error",
1564
+ name: "OwnerQueryForNonexistentToken",
1565
+ inputs: [],
1566
+ },
1567
+ {
1568
+ type: "error",
1569
+ name: "Roles__EntitlementAlreadyExists",
1570
+ inputs: [],
1571
+ },
617
1572
  {
618
1573
  type: "error",
619
1574
  name: "Roles__EntitlementDoesNotExist",
@@ -665,10 +1620,46 @@ const _abi = [
665
1620
  },
666
1621
  ],
667
1622
  },
1623
+ {
1624
+ type: "error",
1625
+ name: "UnauthorizedApp",
1626
+ inputs: [
1627
+ {
1628
+ name: "app",
1629
+ type: "address",
1630
+ internalType: "address",
1631
+ },
1632
+ ],
1633
+ },
1634
+ {
1635
+ type: "error",
1636
+ name: "UnauthorizedCall",
1637
+ inputs: [],
1638
+ },
1639
+ {
1640
+ type: "error",
1641
+ name: "UnauthorizedCancel",
1642
+ inputs: [],
1643
+ },
1644
+ {
1645
+ type: "error",
1646
+ name: "UnauthorizedRenounce",
1647
+ inputs: [],
1648
+ },
1649
+ {
1650
+ type: "error",
1651
+ name: "UnauthorizedSelector",
1652
+ inputs: [],
1653
+ },
1654
+ {
1655
+ type: "error",
1656
+ name: "UnauthorizedTarget",
1657
+ inputs: [],
1658
+ },
668
1659
  ] as const;
669
1660
 
670
1661
  const _bytecode =
671
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613718806100ca5f395ff3fe608060405234801561000f575f5ffd5b506004361061009f575f3560e01c8063921f7175116100725780639935218311610058578063993521831461012f578063b9de61591461014f578063ef86d69614610162575f5ffd5b8063921f7175146101075780639575f6ac1461011a575f5ffd5b806302da0e51146100a357806337644cf7146100b85780635a2dce7a146100cb578063831c2b82146100de575b5f5ffd5b6100b66100b1366004612909565b610175565b005b6100b66100c6366004612920565b6101bf565b6100b66100d93660046129c6565b61020b565b6100f16100ec366004612909565b61036d565b6040516100fe9190612af9565b60405180910390f35b6100b66101153660046129c6565b6103a7565b61012261042a565b6040516100fe9190612b0b565b61014261013d366004612909565b610439565b6040516100fe9190612b8c565b6100b661015d366004612920565b610444565b6100b6610170366004612bdb565b61048c565b6101b36040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6101bc81610589565b50565b6101fd6040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b61020782826105ca565b5050565b6102496040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b5f8167ffffffffffffffff81111561026357610263612c36565b60405190808252806020026020018201604052801561028c578160200160208202803683370190505b5090505f5b828110156102e5578383828181106102ab576102ab612c63565b90506020028101906102bd9190612c90565b5f01358282815181106102d2576102d2612c63565b6020908102919091010152600101610291565b506102f286868684610614565b5f5b828110156103645761035c84848381811061031157610311612c63565b90506020028101906103239190612c90565b358886868581811061033757610337612c63565b90506020028101906103499190612c90565b610357906020810190612ccc565b610667565b6001016102f4565b50505050505050565b61039860405180608001604052805f81526020015f1515815260200160608152602001606081525090565b6103a1826107de565b92915050565b6103e56040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6104238585858585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061061492505050565b5050505050565b606061043461083e565b905090565b60606103a182610967565b6104826040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6102078282610972565b6104ca6040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6104d6848484846109b4565b50505050565b336104e56109f2565b73ffffffffffffffffffffffffffffffffffffffff16036105035750565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16610560575f61053682612d30565b90506105423383610ab2565b1561054b575050565b6105553382610acd565b1561055e575050565b505b6101bc7f338e692c00000000000000000000000000000000000000000000000000000000610bc2565b61059281610bca565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6105d48282610c64565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b61061f83835f610d06565b61062b84848484610d3c565b60405184815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a250505050565b8080156107d45761067785610e53565b61068084610eaa565b5f8581527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832087845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906106e281610f03565b5f5b838110156107845761071886868381811061070157610701612c63565b90506020028101906107139190612d72565b610feb565b61077b86868381811061072d5761072d612c63565b905060200281019061073f9190612d72565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250869392505061101c9050565b506001016106e4565b505f878152600483016020526040902061079e9087611072565b506040518690889033907f38ef31503bf60258feeceab5e2c3778cf74be2a8fbcc150d209ca96cd3c98553905f90a45050610423565b610423858561107d565b61080960405180608001604052805f81526020015f1515815260200160608152602001606081525090565b5f5f6108148461113f565b92509250505f61082385611242565b60608501525060408301919091521515602082015290815290565b60605f6108496112a4565b9050805167ffffffffffffffff81111561086557610865612c36565b6040519080825280602002602001820160405280156108c157816020015b6108ae60405180608001604052805f81526020015f1515815260200160608152602001606081525090565b8152602001906001900390816108835790505b5091505f5b8151811015610962575f5f5f6108f48585815181106108e7576108e7612c63565b602002602001015161113f565b9250925092505f61091d86868151811061091057610910612c63565b6020026020010151611242565b90505f87868151811061093257610932612c63565b602090810291909101810151606081019390935260408301949094525090151591810191909152526001016108c6565b505090565b60606103a182611242565b61097c82826112d0565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db3039561299101610608565b6109c084848484611371565b60405184815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610659565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610a88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aac9190612dfb565b91505090565b5f610ac68184610ac185612d30565b6114ff565b9392505050565b5f73ffffffffffffffffffffffffffffffffffffffff8316610af057505f6103a1565b5f610af96117b9565b6040517f75dfa34200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291909116906375dfa34290602401602060405180830381865afa158015610b65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b899190612dfb565b905073ffffffffffffffffffffffffffffffffffffffff8116610baf575f9150506103a1565b610bba818585611804565b949350505050565b805f5260045ffd5b610bd381610eaa565b7f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610bfe81836118a8565b505f8281526002808301602052604082208281556001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559190610c4a90830182612822565b50505f8281526003820160205260409020610207906118b3565b610c6d82610eaa565b610c76826118bc565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430090610cce818461191d565b15610cfc57610cfc7f2369ff3000000000000000000000000000000000000000000000000000000000610bc2565b6104238184611072565b80821015610d3757610d377f947d5a8400000000000000000000000000000000000000000000000000000000610bc2565b505050565b610d4584611934565b7f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610d708186611072565b505f858152600280830160205260408220918791879187918591908201610d98848683612ea3565b50509290925550505f8681526003830160205260408120905b8451811015610e4957610de6858281518110610dcf57610dcf612c63565b60200260200101518361191d90919063ffffffff16565b15610e1457610e147f2369ff3000000000000000000000000000000000000000000000000000000000610bc2565b610e40858281518110610e2957610e29612c63565b60200260200101518361107290919063ffffffff16565b50600101610db1565b5050505050505050565b610e7d7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd018261191d565b6101bc576101bc7fa3f70f7b00000000000000000000000000000000000000000000000000000000610bc2565b610ed6817f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043005b9061191d565b6101bc576101bc7fac16968200000000000000000000000000000000000000000000000000000000610bc2565b805481905f5b81811015610fe3575f84815260208120820190505f610fcf86835f018054610f3090612e14565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5c90612e14565b8015610fa75780601f10610f7e57610100808354040283529160200191610fa7565b820191905f5260205f20905b815481529060010190602001808311610f8a57829003601f168201915b5050505050805180820160209081018051600195909501815291810192019190912091905290565b55610fda815f612822565b50600101610f09565b50505f905550565b5f819003610207576102077f0ce76c1000000000000000000000000000000000000000000000000000000000610bc2565b80516020818301810180516001860182529282019184019190912091905280541590811561106b578354600181018086555f868152602090208692919082016110658782612fb9565b50835550505b5092915050565b5f610ac6838361198c565b61108682610e53565b61108f81610eaa565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832084845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906110f181610f03565b5f848152600483016020526040902061110a90846118a8565b506040518390859033907f07439707c74b686d8e4d3f3226348eac82205e6dffd780ac4c555a4c2dc9d86c905f90a450505050565b5f60605f61114c84610eaa565b5f8481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902080546002820180549195507f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430092916111af90612e14565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612e14565b80156112265780601f106111fd57610100808354040283529160200191611226565b820191905f5260205f20905b81548152906001019060200180831161120957829003601f168201915b50505060019093015496989197505060ff909516949350505050565b606061124d82610eaa565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430090610ac6906119d8565b60607f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610aac816119d8565b6112d982610eaa565b6112e2826118bc565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043009061133a818461191d565b611367576113677f6796073e00000000000000000000000000000000000000000000000000000000610bc2565b61042381846118a8565b61137a84610eaa565b5f8481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043009083158015906114a0575061149e8160020180546113e490612e14565b80601f016020809104026020016040519081016040528092919081815260200182805461141090612e14565b801561145b5780601f106114325761010080835404028352916020019161145b565b820191905f5260205f20905b81548152906001019060200180831161143e57829003601f168201915b505050505086868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525092939250506119e49050565b155b156114b657600281016114b4858783612ea3565b505b600181015460ff161515831515146114f7576001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415151790555b505050505050565b5f5f61150a846119fa565b905080515f0361151d575f915050610ac6565b5f6115266109f2565b90505f5b8251811015611593578173ffffffffffffffffffffffffffffffffffffffff1683828151811061155c5761155c612c63565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361158b5760019350505050610ac6565b60010161152a565b5061159d82611c6e565b156115ac575f92505050610ac6565b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f6115f77fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016119d8565b80519091505f5b818110156117aa575f845f015f85848151811061161d5761161d612c63565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ef91906130d0565b15801561178c57506040517f0cf0b53300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630cf0b5339061174d908e908b908e906004016130eb565b602060405180830381865afa158015611768573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178c91906130d0565b156117a1576001975050505050505050610ac6565b506001016115fe565b505f9998505050505050505050565b5f6104347fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6007f4170705265676973747279000000000000000000000000000000000000000000611e9e565b5f5f61180f85611f33565b8051909150611821575f915050610ac6565b5f5f611830835f01518761202b565b9250509150811580611840575080155b15611850575f9350505050610ac6565b6080830151515f5b8181101561189a57868560800151828151811061187757611877612c63565b60200260200101510361189257600195505050505050610ac6565b600101611858565b505f98975050505050505050565b5f610ac683836120e9565b6101bc816121cc565b5f8181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460ff16156101bc576101bc7fd9c0051200000000000000000000000000000000000000000000000000000000610bc2565b5f8181526001830160205260408120541515610ac6565b61195e817f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610ed0565b156101bc576101bc7f8c93df6400000000000000000000000000000000000000000000000000000000610bc2565b5f8181526001830160205260408120546119d157508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556103a1565b505f6103a1565b60605f610ac683612225565b8051602091820120825192909101919091201490565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015611a91573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611ad69190810190613237565b905080515f03611c47576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015611b4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b719190612dfb565b905073ffffffffffffffffffffffffffffffffffffffff811615611c45576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015611bfd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611c429190810190613237565b91505b505b611c508161227e565b92506001835101835283604051526020604051016040525050919050565b5f7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf0081611c9a826119d8565b905080515f03611cad57505f9392505050565b5f815167ffffffffffffffff811115611cc857611cc8612c36565b604051908082528060200260200182016040528015611cf1578160200160208202803683370190505b5090505f5b8251811015611d6157611d225f848381518110611d1557611d15612c63565b602002602001015161228f565b828281518110611d3457611d34612c63565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611cf6565b50611d6b8161229a565b611d74816122a3565b5f815186510167ffffffffffffffff811115611d9257611d92612c36565b604051908082528060200260200182016040528015611dbb578160200160208202803683370190505b5090505f5b8651811015611e2257868181518110611ddb57611ddb612c63565b6020026020010151828281518110611df557611df5612c63565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611dc0565b505f5b8251811015611e8a57828181518110611e4057611e40612c63565b6020026020010151828289510181518110611e5d57611e5d612c63565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611e25565b50611e94816122ac565b9695505050505050565b60068201546040517f44ab6680000000000000000000000000000000000000000000000000000000008152600481018390525f9173ffffffffffffffffffffffffffffffffffffffff169081906344ab668090602401602060405180830381865afa158015611f0f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bba9190612dfb565b611f3b612859565b73ffffffffffffffffffffffffffffffffffffffff82165f9081527f5203018779d8301358307033923a3bd0a3a759f1f58591c01f878744c0f8c201602052604090205480611f8a5750919050565b611f926117b9565b73ffffffffffffffffffffffffffffffffffffffff1663fb609045826040518263ffffffff1660e01b8152600401611fcc91815260200190565b5f60405180830381865afa158015611fe6573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610ac691908101906135ce565b5f5f5f5f612062865f9081527fb7e2813a9de15ce5ee4c1718778708cd70fd7ee3d196d203c0f40369a8d4a6026020526040902090565b905061206e81866122b6565b600383015491955093506e010000000000000000000000000000900460ff1680156120df575060038101546f01000000000000000000000000000000900465ffffffffffff1615806120df57506003810154426f0100000000000000000000000000000090910465ffffffffffff16115b9150509250925092565b5f81815260018301602052604081205480156121c3575f61210b6001836136b3565b85549091505f9061211e906001906136b3565b905080821461217d575f865f01828154811061213c5761213c612c63565b905f5260205f200154905080875f01848154811061215c5761215c612c63565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061218e5761218e6136eb565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506103a1565b5f9150506103a1565b5f6121d5825490565b90505f5b8181101561221e57826001015f845f0183815481106121fa576121fa612c63565b905f5260205f20015481526020019081526020015f205f90558060010190506121d9565b50505f9055565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561227257602002820191905f5260205f20905b81548152602001906001019080831161225e575b50505050509050919050565b60606103a161228c8361234c565b90565b5f610ac6838361237b565b6101bc816124b6565b6101bc8161263c565b5f6103a182612685565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120805482919065ffffffffffff81169061230e90660100000000000090046dffffffffffffffffffffffffffff16612751565b509093505065ffffffffffff811615801590612341575061232d612772565b65ffffffffffff168165ffffffffffff1611155b935050509250929050565b604051815160051b8101602001818084035b80820151825281602001915082820361235e575060405250919050565b5f81831161248457505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361248257815f0361247c578054831061243b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f8181526004840160205260409020549092909150811561243c575b506103a1565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125ae565b61018082840311612518576020820180518351106124dc5780518351825283525b5b6020018381116104d657805182820180518281116124fd575050506124dd565b5b6020820152830180518281116124fe5750602001526124dd565b81601f1683830160061c60051b018251815180821061253357905b85518082106125485790818310612548579091905b865282528352518390835b5b6020018051821161255457825b84018051831061256157925082811015612582578051835182528352612553565b505083602082011461259c5761259c8460208301846124bb565b8281146104d6576104d68184846124bb565b80516002811061020757601f19602083018260051b8401805b805181850151116125d95783016125c7565b8281116125e857505050505050565b50805b805181850151106125fd5783016125eb565b828111612626575b82518251845282526020909201919083019081831061260557505050505050565b505f85526126358183856124bb565b5050509052565b60028151106101bc576020810160408201600183510160051b83015b815183511461266c57602083019250815183525b60208201915080820361265857505081900360051c9052565b5f81516002811061274b576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060308302600181901c17600281901c17600481901c17600881901c17601081901c178116806020013684378360051b86015b60bc197001000000000000000000000000000000518251095b8281168501805161271257829052612732565b825181515103612729576001975088925050612732565b506020016126ff565b5082018087106126e6575050505080601f1c1561274b57fe5b50919050565b5f5f5f61276584612760612772565b61277c565b9250925092509193909250565b5f610434426127cf565b69ffffffffffffffffffff602083901c166dffffffffffffffffffffffffffff831665ffffffffffff604085901c81169084168111156127be578282826127c2565b815f5f5b9250925092509250925092565b5f65ffffffffffff82111561281e576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152603060048201526024810183905260440160405180910390fd5b5090565b50805461282e90612e14565b5f825580601f1061283d575050565b601f0160209004905f5260205f20908101906101bc91906128f5565b6040518060e001604052805f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff1681526020015f73ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016128e960405180606001604052806060815260200160608152602001606081525090565b81525f60209091015290565b5b8082111561281e575f81556001016128f6565b5f60208284031215612919575f5ffd5b5035919050565b5f5f60408385031215612931575f5ffd5b50508035926020909101359150565b5f5f83601f840112612950575f5ffd5b50813567ffffffffffffffff811115612967575f5ffd5b60208301915083602082850101111561297e575f5ffd5b9250929050565b5f5f83601f840112612995575f5ffd5b50813567ffffffffffffffff8111156129ac575f5ffd5b6020830191508360208260051b850101111561297e575f5ffd5b5f5f5f5f5f606086880312156129da575f5ffd5b85359450602086013567ffffffffffffffff8111156129f7575f5ffd5b612a0388828901612940565b909550935050604086013567ffffffffffffffff811115612a22575f5ffd5b612a2e88828901612985565b969995985093965092949392505050565b805182526020810151151560208301525f6040820151608060408501528051806080860152806020830160a087015e5f60a082870101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116850191505060a08101606084015160a086840301606087015281815180845260c0850191506020830194505f93505b80841015612aee5784518252602082019150602085019450600184019350612acb565b509695505050505050565b602081525f610ac66020830184612a3f565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b80577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452612b6b858351612a3f565b94506020938401939190910190600101612b31565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612bc3578351835260209384019390920191600101612ba5565b509095945050505050565b80151581146101bc575f5ffd5b5f5f5f5f60608587031215612bee575f5ffd5b84359350602085013567ffffffffffffffff811115612c0b575f5ffd5b612c1787828801612940565b9094509250506040850135612c2b81612bce565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612cc2575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612cff575f5ffd5b83018035915067ffffffffffffffff821115612d19575f5ffd5b6020019150600581901b360382131561297e575f5ffd5b8051602080830151919081101561274b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612da5575f5ffd5b83018035915067ffffffffffffffff821115612dbf575f5ffd5b60200191503681900382131561297e575f5ffd5b805173ffffffffffffffffffffffffffffffffffffffff81168114612df6575f5ffd5b919050565b5f60208284031215612e0b575f5ffd5b610ac682612dd3565b600181811c90821680612e2857607f821691505b60208210810361274b577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f821115610d3757805f5260205f20601f840160051c81016020851015612e845750805b601f840160051c820191505b81811015610423575f8155600101612e90565b67ffffffffffffffff831115612ebb57612ebb612c36565b612ecf83612ec98354612e14565b83612e5f565b5f601f841160018114612f1f575f8515612ee95750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610423565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b82811015612f6c5786850135825560209485019460019092019101612f4c565b5086821015612fa7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff811115612fd357612fd3612c36565b612fe781612fe18454612e14565b84612e5f565b6020601f821160018114613038575f83156130025750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610423565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156130855787850151825560209485019460019092019101613065565b50848210156130c157868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156130e0575f5ffd5b8151610ac681612bce565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561314257835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161310e565b505060409390930193909352509392505050565b6040516080810167ffffffffffffffff8111828210171561317957613179612c36565b60405290565b6040516060810167ffffffffffffffff8111828210171561317957613179612c36565b60405160e0810167ffffffffffffffff8111828210171561317957613179612c36565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561320c5761320c612c36565b604052919050565b5f67ffffffffffffffff82111561322d5761322d612c36565b5060051b60200190565b5f60208284031215613247575f5ffd5b815167ffffffffffffffff81111561325d575f5ffd5b8201601f8101841361326d575f5ffd5b805161328061327b82613214565b6131c5565b8082825260208201915060208360051b8501019250868311156132a1575f5ffd5b6020840193505b82841015611e94576132b984612dd3565b8252602093840193909101906132a8565b5f82601f8301126132d9575f5ffd5b81516132e761327b82613214565b8082825260208201915060208360051b860101925085831115613308575f5ffd5b602085015b8381101561332557805183526020928301920161330d565b5095945050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114612df6575f5ffd5b5f82601f83011261336d575f5ffd5b815161337b61327b82613214565b8082825260208201915060208360071b86010192508583111561339c575f5ffd5b602085015b8381101561332557608081880312156133b8575f5ffd5b6133c0613156565b6133c98261332f565b8152602082015163ffffffff811681146133e1575f5ffd5b602082015260408201516133f481612bce565b6040820152606082015161340781612bce565b606082015283526020909201916080016133a1565b5f82601f83011261342b575f5ffd5b815161343961327b82613214565b8082825260208201915060208360051b86010192508583111561345a575f5ffd5b602085015b83811015613325576134708161332f565b83526020928301920161345f565b5f6060828403121561348e575f5ffd5b61349661317f565b9050815167ffffffffffffffff8111156134ae575f5ffd5b8201601f810184136134be575f5ffd5b80516134cc61327b82613214565b808282526020820191506020606084028501019250868311156134ed575f5ffd5b6020840193505b82841015613558576060848803121561350b575f5ffd5b61351361317f565b61351c8561332f565b8152602085015161352c81612bce565b6020820152604085015161353f81612bce565b60408201528252606093909301926020909101906134f4565b8452505050602082015167ffffffffffffffff811115613576575f5ffd5b6135828482850161335e565b602083015250604082015167ffffffffffffffff8111156135a1575f5ffd5b6135ad8482850161341c565b60408301525092915050565b805165ffffffffffff81168114612df6575f5ffd5b5f602082840312156135de575f5ffd5b815167ffffffffffffffff8111156135f4575f5ffd5b820160e08185031215613605575f5ffd5b61360d6131a2565b8151815261361d60208301612dd3565b602082015261362e60408301612dd3565b604082015261363f60608301612dd3565b6060820152608082015167ffffffffffffffff81111561365d575f5ffd5b613669868285016132ca565b60808301525060a082015167ffffffffffffffff811115613688575f5ffd5b6136948682850161347e565b60a0830152506136a660c083016135b9565b60c0820152949350505050565b818103818111156103a1577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd";
1662
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613727806100ca5f395ff3fe608060405234801561000f575f5ffd5b506004361061009f575f3560e01c8063921f7175116100725780639935218311610058578063993521831461012f578063b9de61591461014f578063ef86d69614610162575f5ffd5b8063921f7175146101075780639575f6ac1461011a575f5ffd5b806302da0e51146100a357806337644cf7146100b85780635a2dce7a146100cb578063831c2b82146100de575b5f5ffd5b6100b66100b1366004612918565b610175565b005b6100b66100c636600461292f565b6101bf565b6100b66100d93660046129d5565b61020b565b6100f16100ec366004612918565b61036d565b6040516100fe9190612b08565b60405180910390f35b6100b66101153660046129d5565b6103a7565b61012261042a565b6040516100fe9190612b1a565b61014261013d366004612918565b610439565b6040516100fe9190612b9b565b6100b661015d36600461292f565b610444565b6100b6610170366004612bea565b61048c565b6101b36040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6101bc81610589565b50565b6101fd6040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b61020782826105ca565b5050565b6102496040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b5f8167ffffffffffffffff81111561026357610263612c45565b60405190808252806020026020018201604052801561028c578160200160208202803683370190505b5090505f5b828110156102e5578383828181106102ab576102ab612c72565b90506020028101906102bd9190612c9f565b5f01358282815181106102d2576102d2612c72565b6020908102919091010152600101610291565b506102f286868684610614565b5f5b828110156103645761035c84848381811061031157610311612c72565b90506020028101906103239190612c9f565b358886868581811061033757610337612c72565b90506020028101906103499190612c9f565b610357906020810190612cdb565b610667565b6001016102f4565b50505050505050565b61039860405180608001604052805f81526020015f1515815260200160608152602001606081525090565b6103a1826107de565b92915050565b6103e56040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6104238585858585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061061492505050565b5050505050565b606061043461083e565b905090565b60606103a182610967565b6104826040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6102078282610972565b6104ca6040518060400160405280601181526020017f41646452656d6f76654368616e6e656c730000000000000000000000000000008152506104dc565b6104d6848484846109b4565b50505050565b336104e56109f2565b73ffffffffffffffffffffffffffffffffffffffff16036105035750565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16610560575f61053682612d3f565b90506105423383610ab2565b1561054b575050565b6105553382610acd565b1561055e575050565b505b6101bc7f338e692c00000000000000000000000000000000000000000000000000000000610bc2565b61059281610bca565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6105d48282610c64565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b61061f83835f610d06565b61062b84848484610d3c565b60405184815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a250505050565b8080156107d45761067785610e53565b61068084610eaa565b5f8581527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832087845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906106e281610f03565b5f5b838110156107845761071886868381811061070157610701612c72565b90506020028101906107139190612d81565b610feb565b61077b86868381811061072d5761072d612c72565b905060200281019061073f9190612d81565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250869392505061101c9050565b506001016106e4565b505f878152600483016020526040902061079e9087611072565b506040518690889033907f38ef31503bf60258feeceab5e2c3778cf74be2a8fbcc150d209ca96cd3c98553905f90a45050610423565b610423858561107d565b61080960405180608001604052805f81526020015f1515815260200160608152602001606081525090565b5f5f6108148461113f565b92509250505f61082385611242565b60608501525060408301919091521515602082015290815290565b60605f6108496112a4565b9050805167ffffffffffffffff81111561086557610865612c45565b6040519080825280602002602001820160405280156108c157816020015b6108ae60405180608001604052805f81526020015f1515815260200160608152602001606081525090565b8152602001906001900390816108835790505b5091505f5b8151811015610962575f5f5f6108f48585815181106108e7576108e7612c72565b602002602001015161113f565b9250925092505f61091d86868151811061091057610910612c72565b6020026020010151611242565b90505f87868151811061093257610932612c72565b602090810291909101810151606081019390935260408301949094525090151591810191909152526001016108c6565b505090565b60606103a182611242565b61097c82826112d0565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db3039561299101610608565b6109c084848484611371565b60405184815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610659565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610a88573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aac9190612e0a565b91505090565b5f610ac68184610ac185612d3f565b6114ff565b9392505050565b5f73ffffffffffffffffffffffffffffffffffffffff8316610af057505f6103a1565b5f610af96117b9565b6040517f75dfa34200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291909116906375dfa34290602401602060405180830381865afa158015610b65573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b899190612e0a565b905073ffffffffffffffffffffffffffffffffffffffff8116610baf575f9150506103a1565b610bba818585611804565b949350505050565b805f5260045ffd5b610bd381610eaa565b7f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610bfe8183611a50565b505f8281526002808301602052604082208281556001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690559190610c4a908301826128d2565b50505f828152600382016020526040902061020790611a5b565b610c6d82610eaa565b610c7682611a64565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430090610cce8184611ac5565b15610cfc57610cfc7f2369ff3000000000000000000000000000000000000000000000000000000000610bc2565b6104238184611072565b80821015610d3757610d377f947d5a8400000000000000000000000000000000000000000000000000000000610bc2565b505050565b610d4584611adc565b7f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610d708186611072565b505f858152600280830160205260408220918791879187918591908201610d98848683612eb2565b50509290925550505f8681526003830160205260408120905b8451811015610e4957610de6858281518110610dcf57610dcf612c72565b602002602001015183611ac590919063ffffffff16565b15610e1457610e147f2369ff3000000000000000000000000000000000000000000000000000000000610bc2565b610e40858281518110610e2957610e29612c72565b60200260200101518361107290919063ffffffff16565b50600101610db1565b5050505050505050565b610e7d7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611ac5565b6101bc576101bc7fa3f70f7b00000000000000000000000000000000000000000000000000000000610bc2565b610ed6817f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043005b90611ac5565b6101bc576101bc7fac16968200000000000000000000000000000000000000000000000000000000610bc2565b805481905f5b81811015610fe3575f84815260208120820190505f610fcf86835f018054610f3090612e23565b80601f0160208091040260200160405190810160405280929190818152602001828054610f5c90612e23565b8015610fa75780601f10610f7e57610100808354040283529160200191610fa7565b820191905f5260205f20905b815481529060010190602001808311610f8a57829003601f168201915b5050505050805180820160209081018051600195909501815291810192019190912091905290565b55610fda815f6128d2565b50600101610f09565b50505f905550565b5f819003610207576102077f0ce76c1000000000000000000000000000000000000000000000000000000000610bc2565b80516020818301810180516001860182529282019184019190912091905280541590811561106b578354600181018086555f868152602090208692919082016110658782612fc8565b50835550505b5092915050565b5f610ac68383611b34565b61108682610e53565b61108f81610eaa565b5f8281527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd056020908152604080832084845290915290207f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00906110f181610f03565b5f848152600483016020526040902061110a9084611a50565b506040518390859033907f07439707c74b686d8e4d3f3226348eac82205e6dffd780ac4c555a4c2dc9d86c905f90a450505050565b5f60605f61114c84610eaa565b5f8481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902080546002820180549195507f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430092916111af90612e23565b80601f01602080910402602001604051908101604052809291908181526020018280546111db90612e23565b80156112265780601f106111fd57610100808354040283529160200191611226565b820191905f5260205f20905b81548152906001019060200180831161120957829003601f168201915b50505060019093015496989197505060ff909516949350505050565b606061124d82610eaa565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430090610ac690611b80565b60607f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610aac81611b80565b6112d982610eaa565b6112e282611a64565b5f8281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504303602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043009061133a8184611ac5565b611367576113677f6796073e00000000000000000000000000000000000000000000000000000000610bc2565b6104238184611a50565b61137a84610eaa565b5f8481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090207f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043009083158015906114a0575061149e8160020180546113e490612e23565b80601f016020809104026020016040519081016040528092919081815260200182805461141090612e23565b801561145b5780601f106114325761010080835404028352916020019161145b565b820191905f5260205f20905b81548152906001019060200180831161143e57829003601f168201915b505050505086868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152509293925050611b8c9050565b155b156114b657600281016114b4858783612eb2565b505b600181015460ff161515831515146114f7576001810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168415151790555b505050505050565b5f5f61150a84611ba2565b905080515f0361151d575f915050610ac6565b5f6115266109f2565b90505f5b8251811015611593578173ffffffffffffffffffffffffffffffffffffffff1683828151811061155c5761155c612c72565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361158b5760019350505050610ac6565b60010161152a565b5061159d82611e16565b156115ac575f92505050610ac6565b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931005f6115f77fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c93101611b80565b80519091505f5b818110156117aa575f845f015f85848151811061161d5761161d612c72565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116cb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ef91906130df565b15801561178c57506040517f0cf0b53300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821690630cf0b5339061174d908e908b908e906004016130fa565b602060405180830381865afa158015611768573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178c91906130df565b156117a1576001975050505050505050610ac6565b506001016115fe565b505f9998505050505050505050565b5f6104347fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6007f4170705265676973747279000000000000000000000000000000000000000000612046565b73ffffffffffffffffffffffffffffffffffffffff83165f9081527f5203018779d8301358307033923a3bd0a3a759f1f58591c01f878744c0f8c201602052604081205480611856575f915050610ac6565b5f61185f6117b9565b6040517f8c2a729a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015291925090821690638c2a729a90602401602060405180830381865afa1580156118cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f191906130df565b15611900575f92505050610ac6565b6040517ffb609045000000000000000000000000000000000000000000000000000000008152600481018390525f9073ffffffffffffffffffffffffffffffffffffffff83169063fb609045906024015f60405180830381865afa15801561196a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526119af919081019061354f565b80519091506119c3575f9350505050610ac6565b5f5f6119d2835f0151896120db565b92505091508115806119e2575080155b156119f4575f95505050505050610ac6565b6080830151515f5b81811015611a40578885608001518281518110611a1b57611a1b612c72565b602002602001015103611a38576001975050505050505050610ac6565b6001016119fc565b505f9a9950505050505050505050565b5f610ac68383612199565b6101bc8161227c565b5f8181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460ff16156101bc576101bc7fd9c0051200000000000000000000000000000000000000000000000000000000610bc2565b5f8181526001830160205260408120541515610ac6565b611b06817f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300610ed0565b156101bc576101bc7f8c93df6400000000000000000000000000000000000000000000000000000000610bc2565b5f818152600183016020526040812054611b7957508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556103a1565b505f6103a1565b60605f610ac6836122d5565b8051602091820120825192909101919091201490565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015611c39573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611c7e9190810190613634565b905080515f03611def576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015611cf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d199190612e0a565b905073ffffffffffffffffffffffffffffffffffffffff811615611ded576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015611da5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611dea9190810190613634565b91505b505b611df88161232e565b92506001835101835283604051526020604051016040525050919050565b5f7f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf0081611e4282611b80565b905080515f03611e5557505f9392505050565b5f815167ffffffffffffffff811115611e7057611e70612c45565b604051908082528060200260200182016040528015611e99578160200160208202803683370190505b5090505f5b8251811015611f0957611eca5f848381518110611ebd57611ebd612c72565b602002602001015161233f565b828281518110611edc57611edc612c72565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611e9e565b50611f138161234a565b611f1c81612353565b5f815186510167ffffffffffffffff811115611f3a57611f3a612c45565b604051908082528060200260200182016040528015611f63578160200160208202803683370190505b5090505f5b8651811015611fca57868181518110611f8357611f83612c72565b6020026020010151828281518110611f9d57611f9d612c72565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611f68565b505f5b825181101561203257828181518110611fe857611fe8612c72565b602002602001015182828951018151811061200557612005612c72565b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611fcd565b5061203c8161235c565b9695505050505050565b60068201546040517f44ab6680000000000000000000000000000000000000000000000000000000008152600481018390525f9173ffffffffffffffffffffffffffffffffffffffff169081906344ab668090602401602060405180830381865afa1580156120b7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bba9190612e0a565b5f5f5f5f612112865f9081527fb7e2813a9de15ce5ee4c1718778708cd70fd7ee3d196d203c0f40369a8d4a6026020526040902090565b905061211e8186612366565b600383015491955093506e010000000000000000000000000000900460ff16801561218f575060038101546f01000000000000000000000000000000900465ffffffffffff16158061218f57506003810154426f0100000000000000000000000000000090910465ffffffffffff16115b9150509250925092565b5f8181526001830160205260408120548015612273575f6121bb6001836136c2565b85549091505f906121ce906001906136c2565b905080821461222d575f865f0182815481106121ec576121ec612c72565b905f5260205f200154905080875f01848154811061220c5761220c612c72565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061223e5761223e6136fa565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506103a1565b5f9150506103a1565b5f612285825490565b90505f5b818110156122ce57826001015f845f0183815481106122aa576122aa612c72565b905f5260205f20015481526020019081526020015f205f9055806001019050612289565b50505f9055565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561232257602002820191905f5260205f20905b81548152602001906001019080831161230e575b50505050509050919050565b60606103a161233c836123fc565b90565b5f610ac6838361242b565b6101bc81612566565b6101bc816126ec565b5f6103a182612735565b73ffffffffffffffffffffffffffffffffffffffff81165f9081526001830160205260408120805482919065ffffffffffff8116906123be90660100000000000090046dffffffffffffffffffffffffffff16612801565b509093505065ffffffffffff8116158015906123f157506123dd612822565b65ffffffffffff168165ffffffffffff1611155b935050509250929050565b604051815160051b8101602001818084035b80820151825281602001915082820361240e575060405250919050565b5f81831161253457505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361253257815f0361252c57805483106124eb576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f818152600484016020526040902054909290915081156124ec575b506103a1565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61265e565b610180828403116125c85760208201805183511061258c5780518351825283525b5b6020018381116104d657805182820180518281116125ad5750505061258d565b5b6020820152830180518281116125ae57506020015261258d565b81601f1683830160061c60051b01825181518082106125e357905b85518082106125f857908183106125f8579091905b865282528352518390835b5b6020018051821161260457825b84018051831061261157925082811015612632578051835182528352612603565b505083602082011461264c5761264c84602083018461256b565b8281146104d6576104d681848461256b565b80516002811061020757601f19602083018260051b8401805b80518185015111612689578301612677565b82811161269857505050505050565b50805b805181850151106126ad57830161269b565b8281116126d6575b8251825184528252602090920191908301908183106126b557505050505050565b505f85526126e581838561256b565b5050509052565b60028151106101bc576020810160408201600183510160051b83015b815183511461271c57602083019250815183525b60208201915080820361270857505081900360051c9052565b5f8151600281106127fb576040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060308302600181901c17600281901c17600481901c17600881901c17601081901c178116806020013684378360051b86015b60bc197001000000000000000000000000000000518251095b828116850180516127c2578290526127e2565b8251815151036127d95760019750889250506127e2565b506020016127af565b508201808710612796575050505080601f1c156127fb57fe5b50919050565b5f5f5f61281584612810612822565b61282c565b9250925092509193909250565b5f6104344261287f565b69ffffffffffffffffffff602083901c166dffffffffffffffffffffffffffff831665ffffffffffff604085901c811690841681111561286e57828282612872565b815f5f5b9250925092509250925092565b5f65ffffffffffff8211156128ce576040517f6dfcc650000000000000000000000000000000000000000000000000000000008152603060048201526024810183905260440160405180910390fd5b5090565b5080546128de90612e23565b5f825580601f106128ed575050565b601f0160209004905f5260205f20908101906101bc91905b808211156128ce575f8155600101612905565b5f60208284031215612928575f5ffd5b5035919050565b5f5f60408385031215612940575f5ffd5b50508035926020909101359150565b5f5f83601f84011261295f575f5ffd5b50813567ffffffffffffffff811115612976575f5ffd5b60208301915083602082850101111561298d575f5ffd5b9250929050565b5f5f83601f8401126129a4575f5ffd5b50813567ffffffffffffffff8111156129bb575f5ffd5b6020830191508360208260051b850101111561298d575f5ffd5b5f5f5f5f5f606086880312156129e9575f5ffd5b85359450602086013567ffffffffffffffff811115612a06575f5ffd5b612a128882890161294f565b909550935050604086013567ffffffffffffffff811115612a31575f5ffd5b612a3d88828901612994565b969995985093965092949392505050565b805182526020810151151560208301525f6040820151608060408501528051806080860152806020830160a087015e5f60a082870101527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116850191505060a08101606084015160a086840301606087015281815180845260c0850191506020830194505f93505b80841015612afd5784518252602082019150602085019450600184019350612ada565b509695505050505050565b602081525f610ac66020830184612a4e565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612b8f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452612b7a858351612a4e565b94506020938401939190910190600101612b40565b50929695505050505050565b602080825282518282018190525f918401906040840190835b81811015612bd2578351835260209384019390920191600101612bb4565b509095945050505050565b80151581146101bc575f5ffd5b5f5f5f5f60608587031215612bfd575f5ffd5b84359350602085013567ffffffffffffffff811115612c1a575f5ffd5b612c268782880161294f565b9094509250506040850135612c3a81612bdd565b939692955090935050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612cd1575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612d0e575f5ffd5b83018035915067ffffffffffffffff821115612d28575f5ffd5b6020019150600581901b360382131561298d575f5ffd5b805160208083015191908110156127fb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612db4575f5ffd5b83018035915067ffffffffffffffff821115612dce575f5ffd5b60200191503681900382131561298d575f5ffd5b805173ffffffffffffffffffffffffffffffffffffffff81168114612e05575f5ffd5b919050565b5f60208284031215612e1a575f5ffd5b610ac682612de2565b600181811c90821680612e3757607f821691505b6020821081036127fb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f821115610d3757805f5260205f20601f840160051c81016020851015612e935750805b601f840160051c820191505b81811015610423575f8155600101612e9f565b67ffffffffffffffff831115612eca57612eca612c45565b612ede83612ed88354612e23565b83612e6e565b5f601f841160018114612f2e575f8515612ef85750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610423565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b82811015612f7b5786850135825560209485019460019092019101612f5b565b5086821015612fb6577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b815167ffffffffffffffff811115612fe257612fe2612c45565b612ff681612ff08454612e23565b84612e6e565b6020601f821160018114613047575f83156130115750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455610423565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156130945787850151825560209485019460019092019101613074565b50848210156130d057868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156130ef575f5ffd5b8151610ac681612bdd565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561315157835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161311d565b505060409390930193909352509392505050565b6040516080810167ffffffffffffffff8111828210171561318857613188612c45565b60405290565b6040516060810167ffffffffffffffff8111828210171561318857613188612c45565b60405160e0810167ffffffffffffffff8111828210171561318857613188612c45565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561321b5761321b612c45565b604052919050565b5f67ffffffffffffffff82111561323c5761323c612c45565b5060051b60200190565b5f82601f830112613255575f5ffd5b815161326861326382613223565b6131d4565b8082825260208201915060208360051b860101925085831115613289575f5ffd5b602085015b838110156132a657805183526020928301920161328e565b5095945050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114612e05575f5ffd5b5f82601f8301126132ee575f5ffd5b81516132fc61326382613223565b8082825260208201915060208360071b86010192508583111561331d575f5ffd5b602085015b838110156132a65760808188031215613339575f5ffd5b613341613165565b61334a826132b0565b8152602082015163ffffffff81168114613362575f5ffd5b6020820152604082015161337581612bdd565b6040820152606082015161338881612bdd565b60608201528352602090920191608001613322565b5f82601f8301126133ac575f5ffd5b81516133ba61326382613223565b8082825260208201915060208360051b8601019250858311156133db575f5ffd5b602085015b838110156132a6576133f1816132b0565b8352602092830192016133e0565b5f6060828403121561340f575f5ffd5b61341761318e565b9050815167ffffffffffffffff81111561342f575f5ffd5b8201601f8101841361343f575f5ffd5b805161344d61326382613223565b8082825260208201915060206060840285010192508683111561346e575f5ffd5b6020840193505b828410156134d9576060848803121561348c575f5ffd5b61349461318e565b61349d856132b0565b815260208501516134ad81612bdd565b602082015260408501516134c081612bdd565b6040820152825260609390930192602090910190613475565b8452505050602082015167ffffffffffffffff8111156134f7575f5ffd5b613503848285016132df565b602083015250604082015167ffffffffffffffff811115613522575f5ffd5b61352e8482850161339d565b60408301525092915050565b805165ffffffffffff81168114612e05575f5ffd5b5f6020828403121561355f575f5ffd5b815167ffffffffffffffff811115613575575f5ffd5b820160e08185031215613586575f5ffd5b61358e6131b1565b8151815261359e60208301612de2565b60208201526135af60408301612de2565b60408201526135c060608301612de2565b6060820152608082015167ffffffffffffffff8111156135de575f5ffd5b6135ea86828501613246565b60808301525060a082015167ffffffffffffffff811115613609575f5ffd5b613615868285016133ff565b60a08301525061362760c0830161353a565b60c0820152949350505050565b5f60208284031215613644575f5ffd5b815167ffffffffffffffff81111561365a575f5ffd5b8201601f8101841361366a575f5ffd5b805161367861326382613223565b8082825260208201915060208360051b850101925086831115613699575f5ffd5b6020840193505b8284101561203c576136b184612de2565b8252602093840193909101906136a0565b818103818111156103a1577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd";
672
1663
 
673
1664
  type ChannelsConstructorParams =
674
1665
  | [signer?: Signer]