mnemonica 0.9.99780 → 0.9.99781

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.
package/README.md CHANGED
@@ -43,6 +43,7 @@
43
43
  - [Symbols & Constants](#symbols--constants)
44
44
  - [Configuration Options](#configuration-options)
45
45
  - [AI Agent Usage Guide](#ai-agent-usage-guide)
46
+ - [Usage with TypeØmatica](#usage-with-typeomatica)
46
47
  - [Examples](#examples)
47
48
 
48
49
  ---
@@ -77,7 +78,7 @@ Think of it as a mathematical function `f(x) => y` where `this` is your persiste
77
78
  npm install mnemonica
78
79
  ```
79
80
 
80
- **Requirements:** Node.js >=16 <24
81
+ **Requirements:** Node.js >=18 <24
81
82
 
82
83
  ---
83
84
 
@@ -262,6 +263,20 @@ import {
262
263
  ApplyFunction, // apply(entity, Ctor, args) => S
263
264
  CallFunction, // call(entity, Ctor, ...args) => S
264
265
  BindFunction, // bind(entity, Ctor) => (...args) => S
266
+
267
+ // createTypesCollection types
268
+ CreateTypesCollectionFunction, // (config?: constructorOptions) => TypesCollection
269
+ TypesCollection, // Interface returned by createTypesCollection
270
+
271
+ // Configuration helper types
272
+ HideInstanceMethodsOptions, // constructorOptions & { exposeInstanceMethods: true }
273
+ IsHidingMethods<Config>, // Conditional type for exposeInstanceMethods: false detection
274
+
275
+ // Utility types
276
+ Proto<P, T>, // Merges parent P and child T types
277
+ SN, // String-Name map for nested constructors
278
+ SubtypesMap, // Map<string, TypeClass>
279
+ TypeAbsorber, // Main define() function interface with overloads
265
280
  } from 'mnemonica';
266
281
  ```
267
282
 
@@ -373,28 +388,62 @@ const subInstance = createSub('arg1', 'arg2');
373
388
 
374
389
  TypeScript decorator for class-based definitions.
375
390
 
391
+ **Usage Patterns:**
392
+
376
393
  ```typescript
377
394
  import { decorate } from 'mnemonica';
378
395
 
396
+ // 1. Basic decoration
379
397
  @decorate()
380
398
  class MyClass {
381
399
  field: number = 123;
382
400
  }
383
401
 
384
- // With configuration
385
- @decorate({ strictChain: false })
402
+ // 2. With configuration
403
+ @decorate({ strictChain: false, blockErrors: true })
386
404
  class ConfiguredClass {
387
- // ...
405
+ field: number = 123;
388
406
  }
389
407
 
390
- // Nested decoration
408
+ // 3. Nested decoration (define as subtype)
391
409
  @decorate()
392
- class ParentClass {}
410
+ class ParentClass {
411
+ parentField: string = 'parent';
412
+ }
393
413
 
394
414
  @decorate(ParentClass)
395
- class ChildClass {}
415
+ class ChildClass {
416
+ childField: string = 'child';
417
+ }
418
+
419
+ // Create parent instance, then child from it
420
+ const parent = new ParentClass();
421
+ const child = new parent.ChildClass();
422
+
423
+ // 4. Parent with configuration
424
+ @decorate(ParentClass, { strictChain: false })
425
+ class ConfiguredChildClass {
426
+ field: number = 123;
427
+ }
428
+
429
+ // 5. Using decorated class as decorator (advanced)
430
+ // After a class is decorated with @decorate(), it can be used
431
+ // as a decorator for nested types
432
+ @decorate()
433
+ class BaseDecorator {
434
+ baseField: number = 100;
435
+ }
436
+
437
+ // Use BaseDecorator as a decorator
438
+ // @ts-ignore - TypeScript limitation with callable class types
439
+ @BaseDecorator()
440
+ class ExtendedClass {
441
+ extField: number = 200;
442
+ }
396
443
  ```
397
444
 
445
+ **Note:** When using decorated classes as decorators (pattern 5), TypeScript may require `@ts-ignore` due to type checking limitations with callable class types.
446
+
398
447
  #### `registerHook(Constructor, hookType, callback)`
399
448
 
400
449
  Registers a hook for a specific constructor.
@@ -456,6 +505,61 @@ const myCollection = createTypesCollection();
456
505
  const MyType = myCollection.define('MyType', function () {});
457
506
  ```
458
507
 
508
+ **`TypesCollection` Interface:**
509
+
510
+ `createTypesCollection()` returns a `TypesCollection` object with the following interface:
511
+
512
+ ```typescript
513
+ interface TypesCollection {
514
+ // Define a new type in this collection
515
+ define: TypeAbsorber;
516
+
517
+ // Look up a type by its nested path (e.g., 'TypeName.SubType')
518
+ lookup: (path: string) => TypeClass | undefined;
519
+
520
+ // Register a hook for all types in this collection
521
+ registerHook(hookType: hooksTypes, callback: hook): void;
522
+
523
+ // Invoke hooks manually (advanced usage)
524
+ invokeHook(hookType: hooksTypes, opts: hooksOpts): void;
525
+
526
+ // Register a flow checker that runs before hooks
527
+ registerFlowChecker(callback: () => unknown): void;
528
+
529
+ // Map of all types defined in this collection
530
+ subtypes: Map<string, TypeClass>;
531
+
532
+ // Registered hooks for this collection
533
+ hooks: Record<string, hook[]>;
534
+ }
535
+ ```
536
+
537
+ **Example with full configuration:**
538
+
539
+ ```js
540
+ const { createTypesCollection } = require('mnemonica');
541
+
542
+ // Create isolated collection with custom config
543
+ const myCollection = createTypesCollection({
544
+ strictChain: false,
545
+ blockErrors: false,
546
+ exposeInstanceMethods: false // Hide instance methods for cleaner API
547
+ });
548
+
549
+ // Define types in isolation
550
+ const MyType = myCollection.define('MyType', function (data) {
551
+ Object.assign(this, data);
552
+ });
553
+
554
+ // Collection-level hooks
555
+ myCollection.registerHook('preCreation', (opts) => {
556
+ console.log('Creating in myCollection:', opts.TypeName);
557
+ });
558
+
559
+ // Look up types within the collection
560
+ const FoundType = myCollection.lookup('MyType');
561
+ ```
562
+
459
563
  #### `getProps(instance)` / `setProps(instance, values)`
460
564
 
461
565
  Get or set internal properties of an instance.
@@ -476,6 +580,8 @@ setProps(instance, { __timestamp__: Date.now() });
476
580
 
477
581
  All mnemonica instances have the following methods:
478
582
 
583
+ > **Note:** You can disable instance methods by setting `exposeInstanceMethods: false` in the type configuration. When disabled, these methods are still accessible via `getProps(instance).__self__` or the standalone `utils` export.
584
+
479
585
  #### `.extract()`
480
586
 
481
587
  Extracts all inherited properties into a single flat object.
@@ -564,7 +670,7 @@ All instances have non-enumerable internal properties:
564
670
  | `.__stack__` | `string` | Stack trace (if `submitStack: true` in config) |
565
671
  | `.__creator__` | `TypeDef` | Instance creator reference |
566
672
  | `.__timestamp__` | `number` | Creation timestamp (ms since epoch) |
567
- | `.__self__` | `object` | Self reference to the instance |
673
+ | `.__self__` | `object` | Self reference to the instance (useful when `exposeInstanceMethods: false`) |
568
674
 
569
675
  ---
570
676
 
@@ -758,15 +864,60 @@ Pass options as the third argument to `define()`:
758
864
 
759
865
  ```js
760
866
  define('SomeType', function () {}, {
761
- strictChain: true, // Only allow sub-instances from current type
762
- blockErrors: true, // Disallow construction if error in prototype chain
763
- submitStack: false, // Collect stack trace as __stack__ property
764
- awaitReturn: true, // Ensure await new Constructor() returns value
867
+ strictChain: true, // Only allow sub-instances from current type
868
+ blockErrors: true, // Disallow construction if error in prototype chain
869
+ submitStack: false, // Collect stack trace as __stack__ property
870
+ awaitReturn: true, // Ensure await new Constructor() returns value
765
871
  ModificationConstructor: fn, // Custom modification constructor
766
- asClass: false // Force class mode (auto-detected by default)
872
+ asClass: false, // Force class mode (auto-detected by default)
873
+ exposeInstanceMethods: true // Expose instance methods (default: true for backward compatibility)
767
874
  });
768
875
  ```
769
876
 
877
+ ### Configuration Option Details
878
+
879
+ | Option | Type | Default | Description |
880
+ |--------|------|---------|-------------|
881
+ | `strictChain` | `boolean` | `true` | If `true`, only direct subtypes can be instantiated. If `false`, allows using subtypes from parent chains. |
882
+ | `blockErrors` | `boolean` | `true` | If `true`, prevents construction when errors exist in the prototype chain. |
883
+ | `submitStack` | `boolean` | `false` | If `true`, collects stack trace and stores as `__stack__` property on instances. |
884
+ | `awaitReturn` | `boolean` | `true` | For async constructors, ensures `await new Constructor()` returns the instance. |
885
+ | `asClass` | `boolean` | `auto` | Force class mode detection. Usually auto-detected from constructor syntax. |
886
+ | `exposeInstanceMethods` | `boolean` | `true` | Expose instance methods on the instance. Set to `false` to hide from TypeScript types. See details below. |
887
+ | `ModificationConstructor` | `Function` | - | Custom constructor function for internal instance modification. |
888
+
889
+ ### `exposeInstanceMethods` Option
890
+
891
+ Controls whether instance methods (`extract()`, `pick()`, `parent()`, `clone`, `fork()`, `exception()`, `sibling()`) are exposed on the instance type.
892
+
893
+ | Value | Behavior |
894
+ |-------|----------|
895
+ | `true` (default) | All instance methods are available directly on instances |
896
+ | `false` | Methods are hidden from TypeScript types but still accessible via prototype chain |
897
+
898
+ **Use Case:** Set to `false` when you want a cleaner public API and don't want internal mnemonica methods cluttering autocomplete/IntelliSense.
899
+
900
+ ```typescript
901
+ import { define, getProps, utils } from 'mnemonica';
902
+
903
+ // With exposeInstanceMethods: false
904
+ const CleanType = define('CleanType', function (data) {
905
+ Object.assign(this, data);
906
+ }, { exposeInstanceMethods: false });
907
+
908
+ const instance = new CleanType({ value: 42 });
909
+
910
+ // Methods not available directly on instance (TypeScript error)
911
+ // instance.extract(); // Error!
912
+
913
+ // But still accessible via getProps
914
+ const props = getProps(instance);
915
+ props.__self__.extract(); // Works!
916
+
917
+ // Or using utils
918
+ utils.extract(instance); // Works!
919
+ ```
920
+
770
921
  ### Override Default Config for Collection
771
922
 
772
923
  ```js
@@ -777,6 +928,32 @@ defaultTypes[SymbolConfig].blockErrors = false;
777
928
 
778
929
  ---
779
930
 
931
+ ## Usage with TypeØmatica
932
+
933
+ TypeØmatica is a companion library that provides strict runtime type checking using JavaScript Proxies. It enforces types at runtime exactly as TypeScript expects at compile time.
934
+
935
+ ```typescript
936
+ import { BaseClass } from 'typeomatica';
937
+ import { decorate } from 'mnemonica';
938
+
939
+ @decorate()
940
+ class User extends BaseClass {
941
+ name: string = 'default';
942
+ age: number = 0;
943
+ }
944
+
945
+ const user = new User();
946
+ user.name = 'John'; // ✓ Works - string to string
947
+ user.age = 25; // ✓ Works - number to number
948
+
949
+ // @ts-ignore
950
+ user.age = '25'; // ✗ TypeError: Type Mismatch at runtime!
951
+ ```
952
+
953
+ For complete documentation including integration patterns, error handling, and advanced usage, see [TypeØmatica.md](TypeØmatica.md).
954
+
955
+ ---
956
+
780
957
  ## AI Agent Usage Guide
781
958
 
782
959
  This section helps AI agents understand and work with mnemonica programmatically.
@@ -8,7 +8,7 @@ const errors_2 = require("../errors");
8
8
  const utils_1 = require("../../utils");
9
9
  const { parse } = utils_1.utils;
10
10
  const utils_2 = require("../utils");
11
- const { makeFakeModificatorType } = utils_2.default;
11
+ const { makeErrorModificatorType } = utils_2.default;
12
12
  const InstanceModificator_1 = require("../types/InstanceModificator");
13
13
  const Props_1 = require("../types/Props");
14
14
  const checkThrowArgs = (instance, target, error, args) => {
@@ -102,7 +102,7 @@ const prepareException = function (target, error, ...args) {
102
102
  ExceptionCreator.config = Object.assign({}, __creator__.config);
103
103
  ExceptionCreator.config.blockErrors = false;
104
104
  ExceptionCreator.existentInstance = error;
105
- ExceptionCreator.ModificatorType = makeFakeModificatorType(TypeName, function () {
105
+ ExceptionCreator.ModificatorType = makeErrorModificatorType(TypeName, function () {
106
106
  return exceptionConsctructHandler.call(this, {
107
107
  instance,
108
108
  TypeName,
@@ -115,4 +115,4 @@ const prepareException = function (target, error, ...args) {
115
115
  return new ExceptionCreator.InstanceModificator();
116
116
  };
117
117
  exports.default = prepareException;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uQ29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Vycm9ycy9leGNlcHRpb25Db25zdHJ1Y3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsK0NBQTRDO0FBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHFEQUF1RDtBQUN2RCxNQUFNLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixHQUFHLG9CQUFXLENBQUM7QUFFaEIsc0NBQW1EO0FBRW5ELHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLEdBQUcsYUFBSyxDQUFDO0FBRVYsb0NBQWtDO0FBRWxDLE1BQU0sRUFDTCx1QkFBdUIsRUFDdkIsR0FBRyxlQUFVLENBQUM7QUFFZixzRUFBdUU7QUFFdkUsMENBQWtEO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsS0FBWSxFQUFFLElBQWUsRUFBRyxFQUFFO0lBRTlGLElBQUksVUFBVSxDQUFDO0lBV2YsSUFBSyxDQUFDLE1BQU0sRUFBRyxDQUFDO1FBQ2YsTUFBTSxJQUFJLHlCQUF5QixDQUFFLDJDQUEyQyxDQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ25DLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFFLGdDQUFnQyxDQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLFVBQVUsWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ3hDLE9BQU87SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7UUFDNUIsR0FBRztZQUNGLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7S0FDRCxDQUFFLENBQUM7SUFFSixHQUFHLENB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USxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFFLENBQUM7SUFFaEQsTUFBTSxLQUFLLEdBQUcsSUFBQSxpQkFBUyxFQUFDLFFBQVEsQ0FBVSxDQUFDO0lBRTNDLE1BQU0sRUFDTCxRQUFRLEVBQ1IsV0FBVyxFQUNYLEdBQUcsS0FBSyxDQUFDO0lBR1YsTUFBTSxFQUNMLEtBQUssRUFBRSxTQUFTLEVBQ2hCLFFBQVEsRUFDUixHQUFHLFFBQVEsQ0FBQztJQVViLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBRSxXQUFXLENBQUUsQ0FBQztJQUN0RCxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBRSxDQUFDO0lBQ2xFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRTVDLGdCQUFnQixDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUUxQyxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUUsUUFBUSxFQUFFO1FBQ3JFLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFFLElBQUksRUFBRTtZQUM3QyxRQUFRO1lBQ1IsUUFBUTtZQUNSLFNBQVM7WUFDVCxJQUFJO1lBQ0osS0FBSztTQUNMLENBQUUsQ0FBQztJQUNMLENBQUMsQ0FBRSxDQUFDO0lBRUosZ0JBQWdCLENBQUMsbUJBQW1CLEdBQUcsSUFBQSw2Q0FBdUIsRUFBRSxnQkFBZ0IsQ0FBRSxDQUFDO0lBRW5GLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLGtCQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3QgeyBvZHAgfSA9IGNvbnN0YW50cztcblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRXUk9OR19BUkdVTUVOVFNfVVNFRCxcblx0V1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcblxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCB7XG5cdHBhcnNlXG59ID0gdXRpbHM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcblxuY29uc3Qge1xuXHRtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgUHJvcHMgfSBmcm9tICcuLi90eXBlcy9Qcm9wcyc7XG5cbmNvbnN0IGNoZWNrVGhyb3dBcmdzID0gKCBpbnN0YW5jZTogdW5rbm93biwgdGFyZ2V0OiB1bmtub3duLCBlcnJvcjogRXJyb3IsIGFyZ3M6IHVua25vd25bXSApID0+IHtcblxuXHRsZXQgd3JvbmdUaHJvdztcblxuXHQvKiB1bnJlYWNoZWJsZSwgY3VzIGluc3RhbmNlIGJvdW5kIGluc2lkZSBvZiBNbmVtb3N5bmVcblx0aWYgKGluc3RhbmNlICE9PSBPYmplY3QoaW5zdGFuY2UpKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCgnXCJ0aGlzXCIgbXVzdCBiZSBhbiBvYmplY3QnKTtcblx0fVxuXHRpZiAoaW5zdGFuY2UuY29uc3RydWN0b3JbU3ltYm9sQ29uc3RydWN0b3JOYW1lXSAhPT0gaW5zdGFuY2UuY29uc3RydWN0b3IubmFtZSkge1xuXHRcdHdyb25nVGhyb3cgPSBuZXcgV1JPTkdfQVJHVU1FTlRTX1VTRUQoJ1widGhpc1wiIG11c3QgYmUgYW4gb2JqZWN0Jyk7XG5cdH1cblx0Ki9cblxuXHRpZiAoICF0YXJnZXQgKSB7XG5cdFx0dGhyb3cgbmV3IFdST05HX0lOU1RBTkNFX0lOVk9DQVRJT04oICdleGNlcHRpb24gc2hvdWxkIGJlIG1hZGUgd2l0aCBuZXcga2V5d29yZCcgKTtcblx0fVxuXG5cdGlmICggISggZXJyb3IgaW5zdGFuY2VvZiBFcnJvciApICkge1xuXHRcdHdyb25nVGhyb3cgPSBuZXcgV1JPTkdfQVJHVU1FTlRTX1VTRUQoICdlcnJvciBtdXN0IGJlIGluc3RhbmNlb2YgRXJyb3InICk7XG5cdH1cblxuXHRpZiAoICEoIHdyb25nVGhyb3cgaW5zdGFuY2VvZiBFcnJvciApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdG9kcCggd3JvbmdUaHJvdywgJ2luc3RhbmNlJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gaW5zdGFuY2U7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCB3cm9uZ1Rocm93LCAnZXJyb3InLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBlcnJvcjtcblx0XHR9XG5cdH0gKTtcblxuXHRvZHAoIHdyb25nVGhyb3csICdhcmdzJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gYXJncztcblx0XHR9XG5cdH0gKTtcblxuXHR0aHJvdyB3cm9uZ1Rocm93O1xuXG59O1xuXG5jb25zdCBleGNlcHRpb25Db25zY3RydWN0SGFuZGxlciA9IGZ1bmN0aW9uICggdGhpczogRXJyb3IsIG9wdHM6IHsgWyBpbmRleDogc3RyaW5nIF06IHVua25vd24gfSApIHtcblxuXHRjb25zdCB7XG5cdFx0aW5zdGFuY2UsXG5cdFx0VHlwZU5hbWUsXG5cdFx0dHlwZVN0YWNrLFxuXHRcdGFyZ3MsXG5cdFx0ZXJyb3Jcblx0fSA9IG9wdHMgYXMge1xuXHRcdGluc3RhbmNlOiB7IGV4dHJhY3Q6ICgpID0+IHVua25vd24gfTtcblx0XHRUeXBlTmFtZTogc3RyaW5nO1xuXHRcdHR5cGVTdGFjazogc3RyaW5nW107XG5cdFx0YXJnczogdW5rbm93bltdO1xuXHRcdGVycm9yOiBFcnJvcjtcblx0fTtcblxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRjb25zdCBleGNlcHRpb24gPSB0aGlzO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnYXJncycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdvcmlnaW5hbEVycm9yJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXJyb3I7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdpbnN0YW5jZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnZXh0cmFjdCcsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGluc3RhbmNlLmV4dHJhY3QoKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdwYXJzZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlKCBpbnN0YW5jZSApO1xuXHRcdFx0fTtcblx0XHR9XG5cdH0gKTtcblxuXHQvLyByZWFsIGVycm9yIHN0YWNrXG5cdGNvbnN0IGVycm9yU3RhY2sgPSBleGNlcHRpb24uc3RhY2shLnNwbGl0KCAnXFxuJyApO1xuXG5cdGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBsaWZlY3ljbGUgb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXG5cdGdldFN0YWNrLmNhbGwoIGV4Y2VwdGlvbiwgdGl0bGUsIFtdLCBwcmVwYXJlRXhjZXB0aW9uICk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuXHQvLyBAdHMtaWdub3JlXG5cdHN0YWNrLnB1c2goIC4uLmV4Y2VwdGlvbi5zdGFjayApO1xuXG5cdHN0YWNrLnB1c2goICc8LS0gd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yIC0tPicgKTtcblxuXHRlcnJvclN0YWNrLmZvckVhY2goICggbGluZTogc3RyaW5nICkgPT4ge1xuXHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRzdGFjay5wdXNoKCBsaW5lICk7XG5cdFx0fVxuXHR9ICk7XG5cblx0c3RhY2sucHVzaCggJ1xcbjwtLSBvZiBjb25zdHJ1Y3RvciBkZWZpbml0aW9ucyBzdGFjayAtLT4nICk7XG5cdHN0YWNrLnB1c2goIC4uLnR5cGVTdGFjayApO1xuXG5cdGNvbnN0IGV4Y2VwdGlvblN0YWNrID0gY2xlYW51cFN0YWNrKCBzdGFjayApLmpvaW4oICdcXG4nICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblN0YWNrO1xuXHRcdH1cblx0fSk7XG5cblx0cmV0dXJuIGV4Y2VwdGlvbjtcblxuXG59O1xuXG5jb25zdCBwcmVwYXJlRXhjZXB0aW9uID0gZnVuY3Rpb24gKCB0aGlzOiBvYmplY3QsIHRhcmdldDogdW5rbm93biwgZXJyb3I6IEVycm9yLCAuLi5hcmdzOiB1bmtub3duW10gKSB7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IGluc3RhbmNlID0gdGhpcztcblxuXHRjaGVja1Rocm93QXJncyggaW5zdGFuY2UsIHRhcmdldCwgZXJyb3IsIGFyZ3MgKTtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fLFxuXHRcdF9fY3JlYXRvcl9fXG5cdH0gPSBwcm9wcztcblxuXG5cdGNvbnN0IHtcblx0XHRzdGFjazogdHlwZVN0YWNrLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSBfX3R5cGVfXztcblxuXHQvKiBzaG9ydCB3YXksIG1ha2VzIGhvb2tzIGNhbGxzLCB3aWxsIG5vdCB1c2VcblxuXHRjb25zdCB0eXBlID0gT2JqZWN0LmNyZWF0ZShfX3R5cGVfXyk7XG5cdHR5cGUuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0bGV0IGVycm9yZWQgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIGVycm9yLCBhcmdzKTtcblx0Ki9cblxuXHRjb25zdCBFeGNlcHRpb25DcmVhdG9yID0gT2JqZWN0LmNyZWF0ZSggX19jcmVhdG9yX18gKTtcblx0RXhjZXB0aW9uQ3JlYXRvci5jb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgX19jcmVhdG9yX18uY29uZmlnICk7XG5cdEV4Y2VwdGlvbkNyZWF0b3IuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5leGlzdGVudEluc3RhbmNlID0gZXJyb3I7XG5cdCBcblx0RXhjZXB0aW9uQ3JlYXRvci5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUsIGZ1bmN0aW9uICh0aGlzOiBFcnJvcikge1xuXHRcdHJldHVybiBleGNlcHRpb25Db25zY3RydWN0SGFuZGxlci5jYWxsKCB0aGlzLCB7XG5cdFx0XHRpbnN0YW5jZSxcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0dHlwZVN0YWNrLFxuXHRcdFx0YXJncyxcblx0XHRcdGVycm9yXG5cdFx0fSApO1xuXHR9ICk7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIEV4Y2VwdGlvbkNyZWF0b3IgKTtcblxuXHRyZXR1cm4gbmV3IEV4Y2VwdGlvbkNyZWF0b3IuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgcHJlcGFyZUV4Y2VwdGlvbjtcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZXB0aW9uQ29uc3RydWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL2Vycm9ycy9leGNlcHRpb25Db25zdHJ1Y3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7O0FBRWIsK0NBQTRDO0FBQzVDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxxQkFBUyxDQUFDO0FBRTFCLHFEQUF1RDtBQUN2RCxNQUFNLEVBQ0wsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixHQUFHLG9CQUFXLENBQUM7QUFFaEIsc0NBQW1EO0FBRW5ELHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLEdBQUcsYUFBSyxDQUFDO0FBRVYsb0NBQWtDO0FBRWxDLE1BQU0sRUFDTCx3QkFBd0IsRUFDeEIsR0FBRyxlQUFVLENBQUM7QUFFZixzRUFBdUU7QUFFdkUsMENBQWtEO0FBRWxELE1BQU0sY0FBYyxHQUFHLENBQUUsUUFBaUIsRUFBRSxNQUFlLEVBQUUsS0FBWSxFQUFFLElBQWUsRUFBRyxFQUFFO0lBRTlGLElBQUksVUFBVSxDQUFDO0lBV2YsSUFBSyxDQUFDLE1BQU0sRUFBRyxDQUFDO1FBQ2YsTUFBTSxJQUFJLHlCQUF5QixDQUFFLDJDQUEyQyxDQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLEtBQUssWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ25DLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFFLGdDQUFnQyxDQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUssQ0FBQyxDQUFFLFVBQVUsWUFBWSxLQUFLLENBQUUsRUFBRyxDQUFDO1FBQ3hDLE9BQU87SUFDUixDQUFDO0lBRUQsR0FBRyxDQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7UUFDNUIsR0FBRztZQUNGLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7S0FDRCxDQUFFLENBQUM7SUFFSixHQUFHLENB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QVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBRSxDQUFDO0lBRWhELE1BQU0sS0FBSyxHQUFHLElBQUEsaUJBQVMsRUFBQyxRQUFRLENBQVUsQ0FBQztJQUUzQyxNQUFNLEVBQ0wsUUFBUSxFQUNSLFdBQVcsRUFDWCxHQUFHLEtBQUssQ0FBQztJQUdWLE1BQU0sRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixRQUFRLEVBQ1IsR0FBRyxRQUFRLENBQUM7SUFVYixNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsV0FBVyxDQUFFLENBQUM7SUFDdEQsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUUsQ0FBQztJQUNsRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUU1QyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFMUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLHdCQUF3QixDQUFFLFFBQVEsRUFBRTtRQUN0RSxPQUFPLDBCQUEwQixDQUFDLElBQUksQ0FBRSxJQUFJLEVBQUU7WUFDN0MsUUFBUTtZQUNSLFFBQVE7WUFDUixTQUFTO1lBQ1QsSUFBSTtZQUNKLEtBQUs7U0FDTCxDQUFFLENBQUM7SUFDTCxDQUFDLENBQUUsQ0FBQztJQUVKLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLElBQUEsNkNBQXVCLEVBQUUsZ0JBQWdCLENBQUUsQ0FBQztJQUVuRixPQUFPLElBQUksZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztBQUNuRCxDQUFDLENBQUM7QUFFRixrQkFBZSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgY29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmNvbnN0IHsgb2RwIH0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfQVJHVU1FTlRTX1VTRUQsXG5cdFdST05HX0lOU1RBTkNFX0lOVk9DQVRJT05cbn0gPSBFcnJvcnNUeXBlcztcblxuaW1wb3J0IHsgY2xlYW51cFN0YWNrLCBnZXRTdGFjayB9IGZyb20gJy4uL2Vycm9ycyc7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZVxufSA9IHV0aWxzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHtcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IgfSBmcm9tICcuLi90eXBlcy9JbnN0YW5jZU1vZGlmaWNhdG9yJztcblxuaW1wb3J0IHsgX2dldFByb3BzLCBQcm9wcyB9IGZyb20gJy4uL3R5cGVzL1Byb3BzJztcblxuY29uc3QgY2hlY2tUaHJvd0FyZ3MgPSAoIGluc3RhbmNlOiB1bmtub3duLCB0YXJnZXQ6IHVua25vd24sIGVycm9yOiBFcnJvciwgYXJnczogdW5rbm93bltdICkgPT4ge1xuXG5cdGxldCB3cm9uZ1Rocm93O1xuXG5cdC8qIHVucmVhY2hlYmxlLCBjdXMgaW5zdGFuY2UgYm91bmQgaW5zaWRlIG9mIE1uZW1vc3luZVxuXHRpZiAoaW5zdGFuY2UgIT09IE9iamVjdChpbnN0YW5jZSkpIHtcblx0XHR3cm9uZ1Rocm93ID0gbmV3IFdST05HX0FSR1VNRU5UU19VU0VEKCdcInRoaXNcIiBtdXN0IGJlIGFuIG9iamVjdCcpO1xuXHR9XG5cdGlmIChpbnN0YW5jZS5jb25zdHJ1Y3RvcltTeW1ib2xDb25zdHJ1Y3Rvck5hbWVdICE9PSBpbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCgnXCJ0aGlzXCIgbXVzdCBiZSBhbiBvYmplY3QnKTtcblx0fVxuXHQqL1xuXG5cdGlmICggIXRhcmdldCApIHtcblx0XHR0aHJvdyBuZXcgV1JPTkdfSU5TVEFOQ0VfSU5WT0NBVElPTiggJ2V4Y2VwdGlvbiBzaG91bGQgYmUgbWFkZSB3aXRoIG5ldyBrZXl3b3JkJyApO1xuXHR9XG5cblx0aWYgKCAhKCBlcnJvciBpbnN0YW5jZW9mIEVycm9yICkgKSB7XG5cdFx0d3JvbmdUaHJvdyA9IG5ldyBXUk9OR19BUkdVTUVOVFNfVVNFRCggJ2Vycm9yIG11c3QgYmUgaW5zdGFuY2VvZiBFcnJvcicgKTtcblx0fVxuXG5cdGlmICggISggd3JvbmdUaHJvdyBpbnN0YW5jZW9mIEVycm9yICkgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0b2RwKCB3cm9uZ1Rocm93LCAnaW5zdGFuY2UnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBpbnN0YW5jZTtcblx0XHR9XG5cdH0gKTtcblxuXHRvZHAoIHdyb25nVGhyb3csICdlcnJvcicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggd3JvbmdUaHJvdywgJ2FyZ3MnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBhcmdzO1xuXHRcdH1cblx0fSApO1xuXG5cdHRocm93IHdyb25nVGhyb3c7XG5cbn07XG5cbmNvbnN0IGV4Y2VwdGlvbkNvbnNjdHJ1Y3RIYW5kbGVyID0gZnVuY3Rpb24gKCB0aGlzOiBFcnJvciwgb3B0czogeyBbIGluZGV4OiBzdHJpbmcgXTogdW5rbm93biB9ICkge1xuXG5cdGNvbnN0IHtcblx0XHRpbnN0YW5jZSxcblx0XHRUeXBlTmFtZSxcblx0XHR0eXBlU3RhY2ssXG5cdFx0YXJncyxcblx0XHRlcnJvclxuXHR9ID0gb3B0cyBhcyB7XG5cdFx0aW5zdGFuY2U6IHsgZXh0cmFjdDogKCkgPT4gdW5rbm93biB9O1xuXHRcdFR5cGVOYW1lOiBzdHJpbmc7XG5cdFx0dHlwZVN0YWNrOiBzdHJpbmdbXTtcblx0XHRhcmdzOiB1bmtub3duW107XG5cdFx0ZXJyb3I6IEVycm9yO1xuXHR9O1xuXG5cblx0IFxuXHRjb25zdCBleGNlcHRpb24gPSB0aGlzO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnYXJncycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdvcmlnaW5hbEVycm9yJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXJyb3I7XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdpbnN0YW5jZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdH1cblx0fSApO1xuXG5cdG9kcCggZXhjZXB0aW9uLCAnZXh0cmFjdCcsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIGluc3RhbmNlLmV4dHJhY3QoKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9ICk7XG5cblx0b2RwKCBleGNlcHRpb24sICdwYXJzZScsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdFx0cmV0dXJuIHBhcnNlKCBpbnN0YW5jZSApO1xuXHRcdFx0fTtcblx0XHR9XG5cdH0gKTtcblxuXHQvLyByZWFsIGVycm9yIHN0YWNrXG5cdGNvbnN0IGVycm9yU3RhY2sgPSBleGNlcHRpb24uc3RhY2shLnNwbGl0KCAnXFxuJyApO1xuXG5cdGNvbnN0IHN0YWNrOiBzdHJpbmdbXSA9IFtdO1xuXG5cdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBsaWZlY3ljbGUgb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXG5cdGdldFN0YWNrLmNhbGwoIGV4Y2VwdGlvbiwgdGl0bGUsIFtdLCBwcmVwYXJlRXhjZXB0aW9uICk7XG5cblx0IFxuXHRzdGFjay5wdXNoKCAuLi4oZXhjZXB0aW9uLnN0YWNrIGFzIHVua25vd24gYXMgc3RyaW5nW10pICk7XG5cblx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdGVycm9yU3RhY2suZm9yRWFjaCggKCBsaW5lOiBzdHJpbmcgKSA9PiB7XG5cdFx0aWYgKCAhc3RhY2suaW5jbHVkZXMoIGxpbmUgKSApIHtcblx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHR9XG5cdH0gKTtcblxuXHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0c3RhY2sucHVzaCggLi4udHlwZVN0YWNrICk7XG5cblx0Y29uc3QgZXhjZXB0aW9uU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHRvZHAoIGV4Y2VwdGlvbiwgJ3N0YWNrJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gZXhjZXB0aW9uU3RhY2s7XG5cdFx0fVxuXHR9KTtcblxuXHRyZXR1cm4gZXhjZXB0aW9uO1xuXG5cbn07XG5cbmNvbnN0IHByZXBhcmVFeGNlcHRpb24gPSBmdW5jdGlvbiAoIHRoaXM6IG9iamVjdCwgdGFyZ2V0OiB1bmtub3duLCBlcnJvcjogRXJyb3IsIC4uLmFyZ3M6IHVua25vd25bXSApIHtcblxuXHQgXG5cdGNvbnN0IGluc3RhbmNlID0gdGhpcztcblxuXHRjaGVja1Rocm93QXJncyggaW5zdGFuY2UsIHRhcmdldCwgZXJyb3IsIGFyZ3MgKTtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fLFxuXHRcdF9fY3JlYXRvcl9fXG5cdH0gPSBwcm9wcztcblxuXG5cdGNvbnN0IHtcblx0XHRzdGFjazogdHlwZVN0YWNrLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSBfX3R5cGVfXztcblxuXHQvKiBzaG9ydCB3YXksIG1ha2VzIGhvb2tzIGNhbGxzLCB3aWxsIG5vdCB1c2VcblxuXHRjb25zdCB0eXBlID0gT2JqZWN0LmNyZWF0ZShfX3R5cGVfXyk7XG5cdHR5cGUuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0bGV0IGVycm9yZWQgPSBuZXcgSW5zdGFuY2VDcmVhdG9yKHR5cGUsIGVycm9yLCBhcmdzKTtcblx0Ki9cblxuXHRjb25zdCBFeGNlcHRpb25DcmVhdG9yID0gT2JqZWN0LmNyZWF0ZSggX19jcmVhdG9yX18gKTtcblx0RXhjZXB0aW9uQ3JlYXRvci5jb25maWcgPSBPYmplY3QuYXNzaWduKCB7fSwgX19jcmVhdG9yX18uY29uZmlnICk7XG5cdEV4Y2VwdGlvbkNyZWF0b3IuY29uZmlnLmJsb2NrRXJyb3JzID0gZmFsc2U7XG5cblx0RXhjZXB0aW9uQ3JlYXRvci5leGlzdGVudEluc3RhbmNlID0gZXJyb3I7XG5cdCBcblx0RXhjZXB0aW9uQ3JlYXRvci5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRXJyb3JNb2RpZmljYXRvclR5cGUoIFR5cGVOYW1lLCBmdW5jdGlvbiAodGhpczogRXJyb3IpIHtcblx0XHRyZXR1cm4gZXhjZXB0aW9uQ29uc2N0cnVjdEhhbmRsZXIuY2FsbCggdGhpcywge1xuXHRcdFx0aW5zdGFuY2UsXG5cdFx0XHRUeXBlTmFtZSxcblx0XHRcdHR5cGVTdGFjayxcblx0XHRcdGFyZ3MsXG5cdFx0XHRlcnJvclxuXHRcdH0gKTtcblx0fSApO1xuXG5cdEV4Y2VwdGlvbkNyZWF0b3IuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBFeGNlcHRpb25DcmVhdG9yICk7XG5cblx0cmV0dXJuIG5ldyBFeGNlcHRpb25DcmVhdG9yLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHByZXBhcmVFeGNlcHRpb247XG4iXX0=
@@ -7,7 +7,7 @@ const errors_1 = require("../../descriptors/errors");
7
7
  const { BASE_MNEMONICA_ERROR } = errors_1.ErrorsTypes;
8
8
  const _1 = require("./");
9
9
  const utils_1 = require("../utils");
10
- const { makeFakeModificatorType } = utils_1.default;
10
+ const { makeErrorModificatorType } = utils_1.default;
11
11
  const utils_2 = require("../../utils");
12
12
  const { parse, parent, extract } = utils_2.utils;
13
13
  const InstanceModificator_1 = require("../types/InstanceModificator");
@@ -40,7 +40,7 @@ const throwModificationError = function (error) {
40
40
  },
41
41
  enumerable: true
42
42
  });
43
- self.ModificatorType = makeFakeModificatorType(TypeName);
43
+ self.ModificatorType = makeErrorModificatorType(TypeName);
44
44
  self.InstanceModificator = (0, InstanceModificator_1.makeInstanceModificator)(self);
45
45
  const erroredInstance = new self.InstanceModificator();
46
46
  let errorProto = Reflect.getPrototypeOf(erroredInstance);
@@ -122,4 +122,4 @@ const throwModificationError = function (error) {
122
122
  throw erroredInstance;
123
123
  };
124
124
  exports.throwModificationError = throwModificationError;
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHVCQUF1QixFQUN2QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFP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SyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTdMVyxRQUFBLHNCQUFzQiwwQkE2TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlXG59ID0gVHlwZXNVdGlscztcblxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tICcuLi8uLi91dGlscyc7XG5jb25zdCB7XG5cdHBhcnNlLFxuXHRwYXJlbnQsXG5cdGV4dHJhY3Rcbn0gPSB1dGlscztcblxuaW1wb3J0IHsgbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IgfSBmcm9tICcuLi90eXBlcy9JbnN0YW5jZU1vZGlmaWNhdG9yJztcblxuLy8gSW5zdGFuY2UgY3JlYXRvciBjb250ZXh0IHR5cGVcbnR5cGUgSW5zdGFuY2VDcmVhdG9yQ29udGV4dCA9IHtcblx0VHlwZU5hbWU6IHN0cmluZztcblx0dHlwZTogeyBzdGFjazogc3RyaW5nIH07XG5cdGFyZ3M6IHVua25vd25bXTtcblx0TW9kaWZpY2F0b3JUeXBlOiBDYWxsYWJsZUZ1bmN0aW9uO1xuXHRJbnN0YW5jZU1vZGlmaWNhdG9yOiBuZXcgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4geyBzdGFjazogc3RyaW5nW10gfTtcblx0aW5oZXJpdGVkSW5zdGFuY2U/OiB1bmtub3duO1xuXHRpbnZva2VQb3N0SG9va3MoKTogeyB0eXBlOiBTZXQ8dW5rbm93bj47IGNvbGxlY3Rpb246IFNldDx1bmtub3duPiB9O1xuXHRba2V5OiBzdHJpbmddOiB1bmtub3duO1xufTtcblxuZXhwb3J0IGNvbnN0IHRocm93TW9kaWZpY2F0aW9uRXJyb3IgPSBmdW5jdGlvbiAoIHRoaXM6IEluc3RhbmNlQ3JlYXRvckNvbnRleHQsIGVycm9yOiBNbmVtb25pY2FFcnJvciApIHtcblxuXHQvLyBJbnN0YW5jZUNyZWF0b3Jcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRUeXBlTmFtZSxcblx0XHR0eXBlOiB7XG5cdFx0XHRzdGFjazogdHlwZVN0YWNrXG5cdFx0fSxcblx0XHRhcmdzXG5cdH0gPSBzZWxmO1xuXG5cdC8vIGlmICggZXJyb3JbIFN5bWJvbENvbnN0cnVjdG9yTmFtZSBdICkge1xuXHQvLyBcdGRlYnVnZ2VyO1xuXHQvLyB9XG5cblx0Y29uc3QgZXhjZXB0aW9uUmVhc29uID0gZXJyb3IuZXhjZXB0aW9uUmVhc29uIHx8IGVycm9yO1xuXG5cdGlmICggZXJyb3IuZXhjZXB0aW9uUmVhc29uICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHQoZXJyb3IucmVhc29ucyBhcyBFcnJvcltdKS5wdXNoKCBlcnJvci5leGNlcHRpb25SZWFzb24gKTtcblx0XHQoZXJyb3Iuc3VycGx1cyBhcyBFcnJvcltdKS5wdXNoKCBlcnJvciApO1xuXG5cdFx0dGhyb3cgZXJyb3I7XG5cblx0fVxuXG5cdG9kcCggZXJyb3IsICdleGNlcHRpb25SZWFzb24nLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBleGNlcHRpb25SZWFzb247XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cblx0Y29uc3QgcmVhc29uczogRXJyb3JbXSA9IFsgZXhjZXB0aW9uUmVhc29uIF07XG5cblx0b2RwKCBlcnJvciwgJ3JlYXNvbnMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiByZWFzb25zO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXHRjb25zdCBzdXJwbHVzOiBFcnJvcltdID0gW107XG5cdG9kcCggZXJyb3IsICdzdXJwbHVzJywge1xuXHRcdGdldCAoKSB7XG5cdFx0XHRyZXR1cm4gc3VycGx1cztcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRzZWxmLk1vZGlmaWNhdG9yVHlwZSA9IG1ha2VGYWtlTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJiB0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0EgJiZcblx0XHRcdE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlc3RUb1Byb3RvLCAnY29uc3RydWN0b3InKVxuXHRcdCkge1xuXHRcdFx0aXNNbmVtb25pY2FJbnN0YW5jZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0ZXJyb3JQcm90byA9IHRlc3RUb1Byb3RvO1xuXHR9XG5cblx0Ly8gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldFByb3RvdHlwZU9mKCBlcnJvclByb3RvIGFzIG9iamVjdCwgZXJyb3IpO1xuXHQvLyBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuXHQvLyBcdE9iamVjdC5zZXRQcm90b3R5cGVPZihlcnJvclByb3RvLCBlcnJvcik7XG5cdC8vIFx0Ly8gdW5yZWFjaGFibGVcblx0Ly8gXHRyZXN1bHQgPSB0cnVlO1xuXHQvLyB9XG5cdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cblx0Y29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW107XG5cblx0aWYgKCBlcnJvciBpbnN0YW5jZW9mIEJBU0VfTU5FTU9OSUNBX0VSUk9SICkge1xuXG5cdFx0c3RhY2sucHVzaCggZXJyb3Iuc3RhY2sgYXMgc3RyaW5nICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cblx0XHRnZXRTdGFjay5jYWxsKCBlcnJvcmVkSW5zdGFuY2UsIHRpdGxlLCBbXSwgdGhyb3dNb2RpZmljYXRpb25FcnJvciApO1xuXG5cdFx0c3RhY2sucHVzaCggLi4uZXJyb3JlZEluc3RhbmNlLnN0YWNrICk7XG5cblx0XHRjb25zdCBlcnJvclN0YWNrID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZyApLnNwbGl0KCAnXFxuJyApO1xuXG5cdFx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdFx0ZXJyb3JTdGFjay5mb3JFYWNoKCAoIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0XHRzdGFjay5wdXNoKCAuLi50eXBlU3RhY2sgKTtcblxuXHR9XG5cblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHQvLyBzdGFydGluZyBmcm9tIE5vZGUuanMgdjIyIHdlIHNob3VsZCBkZWZpbmUgdGhpcyBwcm9wZXJ0eSB0aHJvdWdoIG9kcFxuXHQvLyB0aGF0IHdhcyB1bm5lY2Vzc2FyeSBmb3IgdjIwLCB0aG91Z2ggc2VlbXMgbmV3IHY4IG9wdGltaXplZCBjb21waWxlclxuXHQvLyBpcyBnYXRoZXJpbmcgdmFsdWUgZnJvbSBkZWVwIGNoYWluIGFuZCB3aGlsZSBjb21wYXJpbmcgaXQgd2l0aCBcblx0Ly8gYXNzaWdubWVudCBvcGVyYXRvciwgdGhlbiBpdCB3aWxsIG5vdCBjcmVhdGUgdGhpcyBwcm9wZXJ0eSBcblx0Ly8gc28gd2UgbmVlZCBkaXJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb24gaGVyZSAuLi5cblx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZVN0YWNrO1xuXHRcdH1cblx0fSApO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBlcnJvcmVkSW5zdGFuY2U7XG5cblx0aWYgKHJlc3VsdCkge1xuXHRcdGlmIChpc01uZW1vbmljYUluc3RhbmNlKSB7XG5cblx0XHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RhcnRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHJlc3VsdHM7XG5cdFx0XHRpZiAoIHR5cGUuaGFzKCB0cnVlICkgfHwgY29sbGVjdGlvbi5oYXMoIHRydWUgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIH1cblxuXHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RvcFxuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdhcmdzJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdvcmlnaW5hbEVycm9yJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnaW5zdGFuY2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gZXJyb3JlZEluc3RhbmNlO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnZXh0cmFjdCcsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgX3BhcmVudCA9IHBhcmVudChlcnJvcmVkSW5zdGFuY2UpO1xuXHRcdFx0XHRcdHJldHVybiBleHRyYWN0KF9wYXJlbnQpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAncGFyc2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZSggZXJyb3JlZEluc3RhbmNlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0dGhyb3cgZXJyb3JlZEluc3RhbmNlO1xuXG59O1xuIl19
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3dNb2RpZmljYXRpb25FcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7QUFJYiwrQ0FBNEM7QUFDNUMsTUFBTSxFQUNMLEdBQUcsRUFDSCxTQUFTLEdBQ1QsR0FBRyxxQkFBUyxDQUFDO0FBR2QscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLHlCQUE0QztBQUU1QyxvQ0FBa0M7QUFDbEMsTUFBTSxFQUNMLHdCQUF3QixFQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHVDQUFvQztBQUNwQyxNQUFNLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixPQUFPLEVBQ1AsR0FBRyxhQUFLLENBQUM7QUFFVixzRUFBdUU7QUFjaEUsTUFBTSxzQkFBc0IsR0FBRyxVQUF5QyxLQUFxQjtJQUluRyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsTUFBTSxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQUUsRUFDTCxLQUFLLEVBQUUsU0FBUyxFQUNoQixFQUNELElBQUksRUFDSixHQUFHLElBQUksQ0FBQztJQU1ULE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO0lBRXZELElBQUssS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUcsQ0FBQztRQUUxQyxLQUFLLENBQUMsT0FBbUIsQ0FBQyxJQUFJLENBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFtQixDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV6QyxNQUFNLEtBQUssQ0FBQztJQUViLENBQUM7SUFFRCxHQUFHLENBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1FBQzlCLEdBQUc7WUFDRixPQUFP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SyxDQUFFLGVBQWUsQ0FBRSxDQUFDO2dCQUNqQyxDQUFDLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBRSxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sZUFBZSxDQUFDO0FBRXZCLENBQUMsQ0FBQztBQTdMVyxRQUFBLHNCQUFzQiwwQkE2TGpDIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1uZW1vbmljYUVycm9yIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuY29uc3Qge1xuXHRvZHAsXG5cdE1ORU1PTklDQSxcbn0gPSBjb25zdGFudHM7XG5cblxuaW1wb3J0IHsgRXJyb3JzVHlwZXMgfSBmcm9tICcuLi8uLi9kZXNjcmlwdG9ycy9lcnJvcnMnO1xuY29uc3Qge1xuXHRCQVNFX01ORU1PTklDQV9FUlJPUlxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgeyBjbGVhbnVwU3RhY2ssIGdldFN0YWNrIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZVxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IHV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuY29uc3Qge1xuXHRwYXJzZSxcblx0cGFyZW50LFxuXHRleHRyYWN0XG59ID0gdXRpbHM7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi4vdHlwZXMvSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbi8vIEluc3RhbmNlIGNyZWF0b3IgY29udGV4dCB0eXBlXG50eXBlIEluc3RhbmNlQ3JlYXRvckNvbnRleHQgPSB7XG5cdFR5cGVOYW1lOiBzdHJpbmc7XG5cdHR5cGU6IHsgc3RhY2s6IHN0cmluZyB9O1xuXHRhcmdzOiB1bmtub3duW107XG5cdE1vZGlmaWNhdG9yVHlwZTogQ2FsbGFibGVGdW5jdGlvbjtcblx0SW5zdGFuY2VNb2RpZmljYXRvcjogbmV3ICguLi5hcmdzOiB1bmtub3duW10pID0+IHsgc3RhY2s6IHN0cmluZ1tdIH07XG5cdGluaGVyaXRlZEluc3RhbmNlPzogdW5rbm93bjtcblx0aW52b2tlUG9zdEhvb2tzKCk6IHsgdHlwZTogU2V0PHVua25vd24+OyBjb2xsZWN0aW9uOiBTZXQ8dW5rbm93bj4gfTtcblx0W2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjb25zdCB0aHJvd01vZGlmaWNhdGlvbkVycm9yID0gZnVuY3Rpb24gKCB0aGlzOiBJbnN0YW5jZUNyZWF0b3JDb250ZXh0LCBlcnJvcjogTW5lbW9uaWNhRXJyb3IgKSB7XG5cblx0Ly8gSW5zdGFuY2VDcmVhdG9yXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3Qge1xuXHRcdFR5cGVOYW1lLFxuXHRcdHR5cGU6IHtcblx0XHRcdHN0YWNrOiB0eXBlU3RhY2tcblx0XHR9LFxuXHRcdGFyZ3Ncblx0fSA9IHNlbGY7XG5cblx0Ly8gaWYgKCBlcnJvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdC8vIFx0ZGVidWdnZXI7XG5cdC8vIH1cblxuXHRjb25zdCBleGNlcHRpb25SZWFzb24gPSBlcnJvci5leGNlcHRpb25SZWFzb24gfHwgZXJyb3I7XG5cblx0aWYgKCBlcnJvci5leGNlcHRpb25SZWFzb24gIT09IHVuZGVmaW5lZCApIHtcblxuXHRcdChlcnJvci5yZWFzb25zIGFzIEVycm9yW10pLnB1c2goIGVycm9yLmV4Y2VwdGlvblJlYXNvbiApO1xuXHRcdChlcnJvci5zdXJwbHVzIGFzIEVycm9yW10pLnB1c2goIGVycm9yICk7XG5cblx0XHR0aHJvdyBlcnJvcjtcblxuXHR9XG5cblx0b2RwKCBlcnJvciwgJ2V4Y2VwdGlvblJlYXNvbicsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGV4Y2VwdGlvblJlYXNvbjtcblx0XHR9LFxuXHRcdGVudW1lcmFibGUgOiB0cnVlXG5cdH0gKTtcblxuXHRjb25zdCByZWFzb25zOiBFcnJvcltdID0gWyBleGNlcHRpb25SZWFzb24gXTtcblxuXHRvZHAoIGVycm9yLCAncmVhc29ucycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIHJlYXNvbnM7XG5cdFx0fSxcblx0XHRlbnVtZXJhYmxlIDogdHJ1ZVxuXHR9ICk7XG5cdGNvbnN0IHN1cnBsdXM6IEVycm9yW10gPSBbXTtcblx0b2RwKCBlcnJvciwgJ3N1cnBsdXMnLCB7XG5cdFx0Z2V0ICgpIHtcblx0XHRcdHJldHVybiBzdXJwbHVzO1xuXHRcdH0sXG5cdFx0ZW51bWVyYWJsZSA6IHRydWVcblx0fSApO1xuXG5cdHNlbGYuTW9kaWZpY2F0b3JUeXBlID0gbWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlKCBUeXBlTmFtZSApO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gKSBhcyBJbnN0YW5jZUNyZWF0b3JDb250ZXh0WydJbnN0YW5jZU1vZGlmaWNhdG9yJ107XG5cblx0Ly8gbGV0IGVycm9yZWRJbnN0YW5jZSA9IG5ldyBzZWxmLkluc3RhbmNlTW9kaWZpY2F0b3IoKTtcblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvcigpO1xuXG5cdGxldCBlcnJvclByb3RvOiBvYmplY3QgfCBudWxsID0gUmVmbGVjdC5nZXRQcm90b3R5cGVPZiggZXJyb3JlZEluc3RhbmNlICk7XG5cdGxldCBpc01uZW1vbmljYUluc3RhbmNlID0gZmFsc2U7XG5cdHdoaWxlICggZXJyb3JQcm90byApIHtcblx0XHRjb25zdCB0ZXN0VG9Qcm90byA9IFJlZmxlY3QuZ2V0UHJvdG90eXBlT2YoIGVycm9yUHJvdG8gKTtcblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IG51bGwpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHQvLyBpZiAodGVzdFRvUHJvdG8gPT09IE9iamVjdC5wcm90b3R5cGUpIHtcblx0XHQvLyBcdGJyZWFrO1xuXHRcdC8vIH1cblx0XHRpZiAoXG5cdFx0XHR0ZXN0VG9Qcm90byAhPT0gbnVsbCAmJiB0ZXN0VG9Qcm90by5jb25zdHJ1Y3Rvci5uYW1lID09PSBNTkVNT05JQ0EgJiZcblx0XHRcdE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlc3RUb1Byb3RvLCAnY29uc3RydWN0b3InKVxuXHRcdCkge1xuXHRcdFx0aXNNbmVtb25pY2FJbnN0YW5jZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdFx0ZXJyb3JQcm90byA9IHRlc3RUb1Byb3RvO1xuXHR9XG5cblx0Ly8gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHRjb25zdCByZXN1bHQgPSBSZWZsZWN0LnNldFByb3RvdHlwZU9mKCBlcnJvclByb3RvIGFzIG9iamVjdCwgZXJyb3IpO1xuXHQvLyBsZXQgcmVzdWx0ID0gUmVmbGVjdC5zZXRQcm90b3R5cGVPZiggZXJyb3JQcm90bywgZXJyb3IpO1xuXHQvLyBpZiAocmVzdWx0ID09PSBmYWxzZSkge1xuXHQvLyBcdE9iamVjdC5zZXRQcm90b3R5cGVPZihlcnJvclByb3RvLCBlcnJvcik7XG5cdC8vIFx0Ly8gdW5yZWFjaGFibGVcblx0Ly8gXHRyZXN1bHQgPSB0cnVlO1xuXHQvLyB9XG5cdC8vIGNvbnNvbGUubG9nKHJlc3VsdCk7XG5cblx0Y29uc3Qgc3RhY2s6IHN0cmluZ1tdID0gW107XG5cblx0aWYgKCBlcnJvciBpbnN0YW5jZW9mIEJBU0VfTU5FTU9OSUNBX0VSUk9SICkge1xuXG5cdFx0c3RhY2sucHVzaCggZXJyb3Iuc3RhY2sgYXMgc3RyaW5nICk7XG5cblx0fSBlbHNlIHtcblxuXHRcdGNvbnN0IHRpdGxlID0gYFxcbjwtLSBjcmVhdGlvbiBvZiBbICR7VHlwZU5hbWV9IF0gdHJhY2VkIC0tPmA7XG5cblx0XHRnZXRTdGFjay5jYWxsKCBlcnJvcmVkSW5zdGFuY2UsIHRpdGxlLCBbXSwgdGhyb3dNb2RpZmljYXRpb25FcnJvciApO1xuXG5cdFx0c3RhY2sucHVzaCggLi4uZXJyb3JlZEluc3RhbmNlLnN0YWNrICk7XG5cblx0XHRjb25zdCBlcnJvclN0YWNrID0gKGVycm9yLnN0YWNrIGFzIHN0cmluZyApLnNwbGl0KCAnXFxuJyApO1xuXG5cdFx0c3RhY2sucHVzaCggJzwtLSB3aXRoIHRoZSBmb2xsb3dpbmcgZXJyb3IgLS0+JyApO1xuXG5cdFx0ZXJyb3JTdGFjay5mb3JFYWNoKCAoIGxpbmU6IHN0cmluZyApID0+IHtcblx0XHRcdGlmICggIXN0YWNrLmluY2x1ZGVzKCBsaW5lICkgKSB7XG5cdFx0XHRcdHN0YWNrLnB1c2goIGxpbmUgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRzdGFjay5wdXNoKCAnXFxuPC0tIG9mIGNvbnN0cnVjdG9yIGRlZmluaXRpb25zIHN0YWNrIC0tPicgKTtcblx0XHRzdGFjay5wdXNoKCAuLi50eXBlU3RhY2sgKTtcblxuXHR9XG5cblx0Y29uc3QgZXJyb3JlZEluc3RhbmNlU3RhY2sgPSBjbGVhbnVwU3RhY2soIHN0YWNrICkuam9pbiggJ1xcbicgKTtcblxuXHQvLyBzdGFydGluZyBmcm9tIE5vZGUuanMgdjIyIHdlIHNob3VsZCBkZWZpbmUgdGhpcyBwcm9wZXJ0eSB0aHJvdWdoIG9kcFxuXHQvLyB0aGF0IHdhcyB1bm5lY2Vzc2FyeSBmb3IgdjIwLCB0aG91Z2ggc2VlbXMgbmV3IHY4IG9wdGltaXplZCBjb21waWxlclxuXHQvLyBpcyBnYXRoZXJpbmcgdmFsdWUgZnJvbSBkZWVwIGNoYWluIGFuZCB3aGlsZSBjb21wYXJpbmcgaXQgd2l0aCBcblx0Ly8gYXNzaWdubWVudCBvcGVyYXRvciwgdGhlbiBpdCB3aWxsIG5vdCBjcmVhdGUgdGhpcyBwcm9wZXJ0eSBcblx0Ly8gc28gd2UgbmVlZCBkaXJlY3QgcHJvcGVydHkgZGVjbGFyYXRpb24gaGVyZSAuLi5cblx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdzdGFjaycsIHtcblx0XHRnZXQgKCkge1xuXHRcdFx0cmV0dXJuIGVycm9yZWRJbnN0YW5jZVN0YWNrO1xuXHRcdH1cblx0fSApO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBlcnJvcmVkSW5zdGFuY2U7XG5cblx0aWYgKHJlc3VsdCkge1xuXHRcdGlmIChpc01uZW1vbmljYUluc3RhbmNlKSB7XG5cblx0XHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RhcnRcblx0XHRcdGNvbnN0IHJlc3VsdHMgPSBzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHR0eXBlLFxuXHRcdFx0XHRjb2xsZWN0aW9uLFxuXHRcdFx0fSA9IHJlc3VsdHM7XG5cdFx0XHRpZiAoIHR5cGUuaGFzKCB0cnVlICkgfHwgY29sbGVjdGlvbi5oYXMoIHRydWUgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIH1cblxuXHRcdC8vIGlmIGhvb2tzIGhhZCBzb21lIGludGVyY2VwdGlvbjogc3RvcFxuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdhcmdzJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdFx0b2RwKCBlcnJvcmVkSW5zdGFuY2UsICdvcmlnaW5hbEVycm9yJywge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnaW5zdGFuY2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gZXJyb3JlZEluc3RhbmNlO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAnZXh0cmFjdCcsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgX3BhcmVudCA9IHBhcmVudChlcnJvcmVkSW5zdGFuY2UpO1xuXHRcdFx0XHRcdHJldHVybiBleHRyYWN0KF9wYXJlbnQpO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdG9kcCggZXJyb3JlZEluc3RhbmNlLCAncGFyc2UnLCB7XG5cdFx0XHRnZXQgKCkge1xuXHRcdFx0XHRyZXR1cm4gKCkgPT4ge1xuXHRcdFx0XHRcdHJldHVybiBwYXJzZSggZXJyb3JlZEluc3RhbmNlICk7XG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG5cblx0dGhyb3cgZXJyb3JlZEluc3RhbmNlO1xuXG59O1xuIl19
@@ -39,4 +39,4 @@ const invokeHook = function (hookType, opts) {
39
39
  return invocationResults;
40
40
  };
41
41
  exports.invokeHook = invokeHook;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvaG9va3MvaW52b2tlSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLGlEQUE4QztBQUU5Qyx5Q0FBc0M7QUFFL0IsTUFBTSxVQUFVLEdBQUcsVUFBc0IsUUFBZ0IsRUFBRSxJQUFnQztJQUVqRyxNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsSUFBSSxFQUVKLE9BQU8sRUFDUCxHQUFHLElBQUksQ0FBQztJQUVULE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUdwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsSUFBSyxJQUFBLFNBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBRSxFQUFHLENBQUM7UUFLbkMsTUFBTSxFQUNMLFFBQVEsR0FFUixHQUFHLElBQUksQ0FBQztRQUVULE1BQU0sUUFBUSxHQUFHO1lBQ2hCLElBQUk7WUFDSixRQUFRO1lBQ1IsZ0JBQWdCO1lBQ2hCLElBQUk7U0FDSixDQUFDO1FBRUYsSUFBSyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBUSxFQUFFO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLHNCQUFzQixDQUFHLEtBQVk7b0JBQ3BDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztnQkFDekMsQ0FBQzthQUNELENBQUUsQ0FBQztRQUNMLENBQUM7UUFHRCxJQUFJLENBQUMsS0FBSyxDQUFFLFFBQVEsQ0FBRSxDQUFDLE9BQU8sQ0FBRSxDQUFFLElBQTRELEVBQUcsRUFBRTtZQUNsRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUksRUFBRSxRQUFRLENBQUUsQ0FBQztZQUMzQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUUsTUFBTSxDQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFFLENBQUM7UUFFSixNQUFNLFdBQVcsR0FBRywyQkFBWSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUUsQ0FBQztRQUM3QyxJQUFLLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRyxDQUFDO1lBQ3pDLFdBQVc7aUJBQ1QsSUFBSSxDQUFFLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFFLEVBQUUsRUFBRTtnQkFDL0IsaUJBQWlCO2dCQUNqQixRQUFRO2FBQ1IsRUFBRSxRQUFRLENBQUUsQ0FBRSxDQUFDO1FBQ2xCLENBQUM7SUFFRixDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUUxQixDQUFDLENBQUM7QUE3RFcsUUFBQSxVQUFVLGNBNkRyQiIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgZmxvd0NoZWNrZXJzIH0gZnJvbSAnLi9mbG93Q2hlY2tlcnMnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5leHBvcnQgY29uc3QgaW52b2tlSG9vayA9IGZ1bmN0aW9uICggdGhpczogYW55LCBob29rVHlwZTogc3RyaW5nLCBvcHRzOiB7IFsgaW5kZXg6IHN0cmluZyBdOiBhbnkgfSApIHtcblxuXHRjb25zdCB7XG5cdFx0dHlwZSxcblx0XHRleGlzdGVudEluc3RhbmNlLFxuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHRcdGFyZ3MsXG5cdFx0Ly8gSW5zdGFuY2VNb2RpZmljYXRvcixcblx0XHRjcmVhdG9yXG5cdH0gPSBvcHRzO1xuXG5cdGNvbnN0IGludm9jYXRpb25SZXN1bHRzID0gbmV3IFNldCgpO1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRjb25zdCBzZWxmID0gdGhpcztcblxuXHRpZiAoIGhvcCggc2VsZi5ob29rcywgaG9va1R5cGUgKSApIHtcblxuXHRcdC8vIFwidGhpc1wiIHJlZmVyZXMgdG9cblx0XHQvLyB0eXBlLCBpZiBjYWxsZWQgZnJvbSB0eXBlc1xuXG5cdFx0Y29uc3Qge1xuXHRcdFx0VHlwZU5hbWUsXG5cdFx0XHQvLyBwYXJlbnRUeXBlLFxuXHRcdH0gPSB0eXBlO1xuXG5cdFx0Y29uc3QgaG9va0FyZ3MgPSB7XG5cdFx0XHR0eXBlLFxuXHRcdFx0VHlwZU5hbWUsXG5cdFx0XHRleGlzdGVudEluc3RhbmNlLFxuXHRcdFx0YXJncyxcblx0XHR9O1xuXG5cdFx0aWYgKCB0eXBlb2YgaW5oZXJpdGVkSW5zdGFuY2UgPT09ICdvYmplY3QnICkge1xuXHRcdFx0T2JqZWN0LmFzc2lnbiggaG9va0FyZ3MsIHtcblx0XHRcdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdHRocm93TW9kaWZpY2F0aW9uRXJyb3IgKCBlcnJvcjogRXJyb3IgKSB7XG5cdFx0XHRcdFx0Y3JlYXRvci50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBlcnJvciApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0IFxuXHRcdHRoaXMuaG9va3NbIGhvb2tUeXBlIF0uZm9yRWFjaCggKCBob29rOiAoIHRoaXM6IHVua25vd24sIGhvb2tQYXJhbXM6IHR5cGVvZiBob29rQXJncyApID0+IHZvaWQgKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBob29rLmNhbGwoIHNlbGYsIGhvb2tBcmdzICk7XG5cdFx0XHRpbnZvY2F0aW9uUmVzdWx0cy5hZGQoIHJlc3VsdCApO1xuXHRcdH0gKTtcblxuXHRcdGNvbnN0IGZsb3dDaGVja2VyID0gZmxvd0NoZWNrZXJzLmdldCggdGhpcyApO1xuXHRcdGlmICggdHlwZW9mIGZsb3dDaGVja2VyID09PSAnZnVuY3Rpb24nICkge1xuXHRcdFx0Zmxvd0NoZWNrZXJcblx0XHRcdFx0LmNhbGwoIHRoaXMsIE9iamVjdC5hc3NpZ24oIHt9LCB7XG5cdFx0XHRcdFx0aW52b2NhdGlvblJlc3VsdHMsXG5cdFx0XHRcdFx0aG9va1R5cGUsXG5cdFx0XHRcdH0sIGhvb2tBcmdzICkgKTtcblx0XHR9XG5cblx0fVxuXG5cdHJldHVybiBpbnZvY2F0aW9uUmVzdWx0cztcblxufTtcbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlSG9vay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvaG9va3MvaW52b2tlSG9vay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZLENBQUM7OztBQUViLGlEQUE4QztBQUU5Qyx5Q0FBc0M7QUFFL0IsTUFBTSxVQUFVLEdBQUcsVUFBc0IsUUFBZ0IsRUFBRSxJQUFnQztJQUVqRyxNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsSUFBSSxFQUVKLE9BQU8sRUFDUCxHQUFHLElBQUksQ0FBQztJQUVULE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUdwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFFbEIsSUFBSyxJQUFBLFNBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBRSxFQUFHLENBQUM7UUFLbkMsTUFBTSxFQUNMLFFBQVEsR0FFUixHQUFHLElBQUksQ0FBQztRQUVULE1BQU0sUUFBUSxHQUFHO1lBQ2hCLElBQUk7WUFDSixRQUFRO1lBQ1IsZ0JBQWdCO1lBQ2hCLElBQUk7U0FDSixDQUFDO1FBRUYsSUFBSyxPQUFPLGlCQUFpQixLQUFLLFFBQVEsRUFBRyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxNQUFNLENBQUUsUUFBUSxFQUFFO2dCQUN4QixpQkFBaUI7Z0JBQ2pCLHNCQUFzQixDQUFHLEtBQVk7b0JBQ3BDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztnQkFDekMsQ0FBQzthQUNELENBQUUsQ0FBQztRQUNMLENBQUM7UUFHRCxJQUFJLENBQUMsS0FBSyxDQUFFLFFBQVEsQ0FBRSxDQUFDLE9BQU8sQ0FBRSxDQUFFLElBQTRELEVBQUcsRUFBRTtZQUNsRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFFLElBQUksRUFBRSxRQUFRLENBQUUsQ0FBQztZQUMzQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUUsTUFBTSxDQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFFLENBQUM7UUFFSixNQUFNLFdBQVcsR0FBRywyQkFBWSxDQUFDLEdBQUcsQ0FBRSxJQUFJLENBQUUsQ0FBQztRQUM3QyxJQUFLLE9BQU8sV0FBVyxLQUFLLFVBQVUsRUFBRyxDQUFDO1lBQ3pDLFdBQVc7aUJBQ1QsSUFBSSxDQUFFLElBQUksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFFLEVBQUUsRUFBRTtnQkFDL0IsaUJBQWlCO2dCQUNqQixRQUFRO2FBQ1IsRUFBRSxRQUFRLENBQUUsQ0FBRSxDQUFDO1FBQ2xCLENBQUM7SUFFRixDQUFDO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUUxQixDQUFDLENBQUM7QUE3RFcsUUFBQSxVQUFVLGNBNkRyQiIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgZmxvd0NoZWNrZXJzIH0gZnJvbSAnLi9mbG93Q2hlY2tlcnMnO1xuXG5pbXBvcnQgeyBob3AgfSBmcm9tICcuLi8uLi91dGlscy9ob3AnO1xuXG5leHBvcnQgY29uc3QgaW52b2tlSG9vayA9IGZ1bmN0aW9uICggdGhpczogYW55LCBob29rVHlwZTogc3RyaW5nLCBvcHRzOiB7IFsgaW5kZXg6IHN0cmluZyBdOiBhbnkgfSApIHtcblxuXHRjb25zdCB7XG5cdFx0dHlwZSxcblx0XHRleGlzdGVudEluc3RhbmNlLFxuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHRcdGFyZ3MsXG5cdFx0Ly8gSW5zdGFuY2VNb2RpZmljYXRvcixcblx0XHRjcmVhdG9yXG5cdH0gPSBvcHRzO1xuXG5cdGNvbnN0IGludm9jYXRpb25SZXN1bHRzID0gbmV3IFNldCgpO1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0aWYgKCBob3AoIHNlbGYuaG9va3MsIGhvb2tUeXBlICkgKSB7XG5cblx0XHQvLyBcInRoaXNcIiByZWZlcmVzIHRvXG5cdFx0Ly8gdHlwZSwgaWYgY2FsbGVkIGZyb20gdHlwZXNcblxuXHRcdGNvbnN0IHtcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0Ly8gcGFyZW50VHlwZSxcblx0XHR9ID0gdHlwZTtcblxuXHRcdGNvbnN0IGhvb2tBcmdzID0ge1xuXHRcdFx0dHlwZSxcblx0XHRcdFR5cGVOYW1lLFxuXHRcdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRcdGFyZ3MsXG5cdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIGluaGVyaXRlZEluc3RhbmNlID09PSAnb2JqZWN0JyApIHtcblx0XHRcdE9iamVjdC5hc3NpZ24oIGhvb2tBcmdzLCB7XG5cdFx0XHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHRcdFx0XHR0aHJvd01vZGlmaWNhdGlvbkVycm9yICggZXJyb3I6IEVycm9yICkge1xuXHRcdFx0XHRcdGNyZWF0b3IudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdCBcblx0XHR0aGlzLmhvb2tzWyBob29rVHlwZSBdLmZvckVhY2goICggaG9vazogKCB0aGlzOiB1bmtub3duLCBob29rUGFyYW1zOiB0eXBlb2YgaG9va0FyZ3MgKSA9PiB2b2lkICkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzdWx0ID0gaG9vay5jYWxsKCBzZWxmLCBob29rQXJncyApO1xuXHRcdFx0aW52b2NhdGlvblJlc3VsdHMuYWRkKCByZXN1bHQgKTtcblx0XHR9ICk7XG5cblx0XHRjb25zdCBmbG93Q2hlY2tlciA9IGZsb3dDaGVja2Vycy5nZXQoIHRoaXMgKTtcblx0XHRpZiAoIHR5cGVvZiBmbG93Q2hlY2tlciA9PT0gJ2Z1bmN0aW9uJyApIHtcblx0XHRcdGZsb3dDaGVja2VyXG5cdFx0XHRcdC5jYWxsKCB0aGlzLCBPYmplY3QuYXNzaWduKCB7fSwge1xuXHRcdFx0XHRcdGludm9jYXRpb25SZXN1bHRzLFxuXHRcdFx0XHRcdGhvb2tUeXBlLFxuXHRcdFx0XHR9LCBob29rQXJncyApICk7XG5cdFx0fVxuXG5cdH1cblxuXHRyZXR1cm4gaW52b2NhdGlvblJlc3VsdHM7XG5cbn07XG4iXX0=
@@ -6,7 +6,7 @@ const { odp, SymbolConstructorName } = constants_1.constants;
6
6
  const errors_1 = require("../../descriptors/errors");
7
7
  const { WRONG_MODIFICATION_PATTERN, } = errors_1.ErrorsTypes;
8
8
  const utils_1 = require("../utils");
9
- const { getExistentAsyncStack, makeFakeModificatorType, } = utils_1.default;
9
+ const { getExistentAsyncStack, makeErrorModificatorType, } = utils_1.default;
10
10
  const errors_2 = require("../errors");
11
11
  const throwModificationError_1 = require("../errors/throwModificationError");
12
12
  const Props_1 = require("./Props");
@@ -45,7 +45,7 @@ const invokePostHooks = function () {
45
45
  };
46
46
  const postProcessing = function (continuationOf) {
47
47
  const self = this;
48
- const { stack, } = self;
48
+ const { stack, type: { isSubType, config: { strictChain, blockErrors } } } = self;
49
49
  if (!self.inheritedInstance.constructor) {
50
50
  const msg = 'should inherit from mnemonica instance';
51
51
  self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
@@ -59,6 +59,18 @@ const postProcessing = function (continuationOf) {
59
59
  const msg = `should inherit from ${continuationOf.TypeName} but got ${icn}`;
60
60
  self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
61
61
  }
62
+ if (isSubType && strictChain) {
63
+ if (self.inheritedInstance instanceof Error && !blockErrors) {
64
+ return;
65
+ }
66
+ const parent = self.inheritedInstance.parent();
67
+ const parentName = parent.constructor.name;
68
+ const parentTypeName = self.type.parentType.TypeName;
69
+ if (parentName !== parentTypeName) {
70
+ const msg = `should inherit from ${parentTypeName} but made on ${parentName}`;
71
+ self.throwModificationError(new WRONG_MODIFICATION_PATTERN(msg, stack));
72
+ }
73
+ }
62
74
  (0, Props_1._setSelf)(self.inheritedInstance);
63
75
  self.invokePostHooks();
64
76
  };
@@ -158,9 +170,10 @@ exports.InstanceCreator = function (type, existentInstance, args, chained) {
158
170
  }
159
171
  if (blockErrors) {
160
172
  if (existentInstance instanceof Error) {
161
- self.ModificatorType = makeFakeModificatorType(TypeName);
173
+ self.ModificatorType = makeErrorModificatorType(TypeName);
162
174
  self.InstanceModificator = (0, InstanceModificator_1.makeInstanceModificator)(self);
163
- throw new self.InstanceModificator(...args);
175
+ const blockErrorsErrorInstance = new self.InstanceModificator(...args);
176
+ throw blockErrorsErrorInstance;
164
177
  }
165
178
  }
166
179
  self.invokePreHooks();
@@ -191,4 +204,4 @@ exports.InstanceCreator = function (type, existentInstance, args, chained) {
191
204
  return self.inheritedInstance;
192
205
  };
193
206
  Object.assign(exports.InstanceCreator.prototype, InstanceCreatorPrototype);
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUN2QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUdoRSxNQUFNLGNBQWMsR0FBRztJQUV0QixNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHO1FBQ2hCLElBQUk7UUFDSixnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLG1CQUFtQjtLQUNuQixDQUFDO0lBRUYsVUFBVSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7SUFFakQsSUFBSSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7QUFFNUMsQ0FBQyxDQUFDO0FBSUYsTUFBTSxlQUFlLEdBQUc7SUFHdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLE1BQU0sRUFDTCxpQkFBaUIsR0FDakIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFTLEVBQUMsaUJBQWlCLENBQVUsQ0FBQztJQUVwRCxNQUFNLEVBQ0wsUUFBUSxF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LENBQUM7UUFFbkIsSUFBSSxDQUFDO1lBRUosTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUUsR0FBRyxJQUFJLENBQUUsQ0FBQztZQUV2RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1FBRWpDLENBQUM7UUFBQyxPQUFRLEtBQUssRUFBRyxDQUFDO1lBRWxCLElBQUksQ0FBQyxzQkFBc0IsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUV0QyxDQUFDO0lBRUYsQ0FBQztTQUFNLENBQUM7UUFHUCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBRSxHQUFHLElBQUksQ0FBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFFakMsQ0FBQztJQUdELElBQUssSUFBSSxDQUFDLGlCQUFpQixZQUFZLE9BQU8sRUFBRyxDQUFDO1FBRWpELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUUsSUFBSSxDQUFFLENBQUM7UUFFeEMsR0FBRyxDQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRTtZQUNuQyxHQUFHO2dCQUNGLE9BQU8sUUFBUSxDQUFDO1lBQ2pCLENBQUM7U0FDRCxDQUFFLENBQUM7UUFFSixPQUFPLE1BQU0sQ0FBQztJQUVmLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxDQUFFLElBQUksQ0FBRSxDQUFDO0lBRTVCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0FBRS9CLENBQXlELENBQUM7QUFFMUQsTUFBTSxDQUFDLE1BQU0sQ0FBRSx1QkFBZSxDQUFDLFNBQVMsRUFBRSx3QkFBd0IsQ0FBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiICBcbid1c2Ugc3RyaWN0JztcblxuaW1wb3J0IHsgQ29uc3RydWN0b3JGdW5jdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHtcblx0Y29uc3RhbnRzXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IHtcblx0b2RwLFxuXHRTeW1ib2xDb25zdHJ1Y3Rvck5hbWVcbn0gPSBjb25zdGFudHM7XG5cbmltcG9ydCB7IEVycm9yc1R5cGVzIH0gZnJvbSAnLi4vLi4vZGVzY3JpcHRvcnMvZXJyb3JzJztcbmNvbnN0IHtcblx0V1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4sXG59ID0gRXJyb3JzVHlwZXM7XG5cbmltcG9ydCBUeXBlc1V0aWxzIGZyb20gJy4uL3V0aWxzJztcbmNvbnN0IHtcblx0Z2V0RXhpc3RlbnRBc3luY1N0YWNrLFxuXHRtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSxcbn0gPSBUeXBlc1V0aWxzO1xuXG5pbXBvcnQgeyBnZXRTdGFjayB9IGZyb20gJy4uL2Vycm9ycyc7XG5pbXBvcnQgeyB0aHJvd01vZGlmaWNhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL3Rocm93TW9kaWZpY2F0aW9uRXJyb3InO1xuXG5pbXBvcnQgeyBfZ2V0UHJvcHMsIF9zZXRTZWxmLCBQcm9wcyB9IGZyb20gJy4vUHJvcHMnO1xuXG5pbXBvcnQgeyBtYWtlSW5zdGFuY2VNb2RpZmljYXRvciB9IGZyb20gJy4vSW5zdGFuY2VNb2RpZmljYXRvcic7XG5cbiAgXG5jb25zdCBpbnZva2VQcmVIb29rcyA9IGZ1bmN0aW9uICggdGhpczogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH0gPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH07XG5cblx0Y29sbGVjdGlvbi5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG5cdHR5cGUuaW52b2tlSG9vayggJ3ByZUNyZWF0aW9uJywgaG9va0RhdGEgKTtcblxufTtcblxuXG4gIFxuY29uc3QgaW52b2tlUG9zdEhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IGNyZWF0b3IgPSB0aGlzO1xuXHRjb25zdCB7XG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdH0gPSBjcmVhdG9yO1xuXG5cdGNvbnN0IHByb3BzID0gX2dldFByb3BzKGluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRjb25zdCB7XG5cdFx0X190eXBlX186IHR5cGUsXG5cdFx0X19wYXJlbnRfXzogZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRfX2FyZ3NfXzogYXJncyxcblx0fSA9IHByb3BzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rVHlwZSA9IGluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgRXJyb3IgP1xuXHRcdCdjcmVhdGlvbkVycm9yJyA6ICdwb3N0Q3JlYXRpb24nO1xuXG5cdGNvbnN0IGhvb2tEYXRhID0ge1xuXHRcdHR5cGUsXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblx0XHRpbmhlcml0ZWRJbnN0YW5jZSxcblx0XHRhcmdzLFxuXHRcdGNyZWF0b3Jcblx0fTtcblxuXHRyZXR1cm4ge1xuXG5cdFx0dHlwZSA6IHR5cGUuaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0XHRjb2xsZWN0aW9uIDogY29sbGVjdGlvbi5pbnZva2VIb29rKCBob29rVHlwZSwgaG9va0RhdGEgKSxcblxuXHR9O1xuXG59O1xuXG5cbiAgXG5jb25zdCBwb3N0UHJvY2Vzc2luZyA9IGZ1bmN0aW9uICggdGhpczogYW55LCBjb250aW51YXRpb25PZjogYW55ICkge1xuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuXHRjb25zdCBzZWxmID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdHN0YWNrLFxuXHR9ID0gc2VsZjtcblxuXHRpZiAoICFzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yICkge1xuXHRcdGNvbnN0IG1zZyA9ICdzaG91bGQgaW5oZXJpdCBmcm9tIG1uZW1vbmljYSBpbnN0YW5jZSc7XG5cdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHR9XG5cblx0aWYgKCAhc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3RvclsgU3ltYm9sQ29uc3RydWN0b3JOYW1lIF0gKSB7XG5cdFx0Y29uc3QgbXNnID0gJ3Nob3VsZCBpbmhlcml0IGZyb20gbW5lbW9uaWNhIGluc3RhbmNlJztcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdH1cblxuXHRpZiAoIGNvbnRpbnVhdGlvbk9mICYmICEoIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBjb250aW51YXRpb25PZiApICkge1xuXHRcdC8vIGRlYnVnZ2VyO1xuXHRcdGNvbnN0IGljbiA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke2NvbnRpbnVhdGlvbk9mLlR5cGVOYW1lfSBidXQgZ290ICR7aWNufWA7XG5cdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc3RhY2sgKSApO1xuXHRcdC8vIHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTihtc2csIHNlbGYuc3RhY2spO1xuXHR9XG5cblx0X3NldFNlbGYoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSk7XG5cblx0c2VsZi5pbnZva2VQb3N0SG9va3MoKTtcblxufTtcblxuZXhwb3J0IGludGVyZmFjZSBUaGVuU3BlYyB7XG5cdHN1YnR5cGU6IG9iamVjdDtcblx0YXJnczogdW5rbm93bltdO1xuXHRuYW1lPzogc3RyaW5nO1xufVxuXG4gIFxuY29uc3QgYWRkVGhlbiA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0aGVuOiBUaGVuU3BlYyApIHtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9XG5cdFx0XHRcdG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0XHRcdFx0dGhlbi5zdWJ0eXBlLFxuXHRcdFx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdFx0dGhlbi5hcmdzLFxuXHRcdFx0XHRcdC8vIHdhcyBjaGFpbmVkIDpcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0Ly8gc2VsZi5leGlzdGVudEluc3RhbmNlXG5cdFx0XHRcdCkgYXMgdW5rbm93biBhcyBQcm9taXNlPHVua25vd24+O1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fSApO1xuXG59O1xuXG5cbiAgXG5jb25zdCBtYWtlQXdhaXRlciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIHRoZW4/OiBUaGVuU3BlYyApIHtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCBpbnN0YW5jZTogdW5rbm93biApID0+IHtcblxuXHRcdFx0aWYgKCB0eXBlb2YgaW5zdGFuY2UgIT09ICdvYmplY3QnICkge1xuXHRcdFx0XHRpZiAoIHNlbGYuY29uZmlnLmF3YWl0UmV0dXJuICkge1xuXHRcdFx0XHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7dHlwZS5UeXBlTmFtZX06IHNlZW1zIGFzeW5jICR7dHlwZS5UeXBlTmFtZX0gaGFzIG5vIHJldHVybiBzdGF0ZW1lbnRgO1xuXHRcdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIGluc3RhbmNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGlmICggISggaW5zdGFuY2UgaW5zdGFuY2VvZiBzZWxmLnR5cGUgKSApIHtcblx0XHRcdFx0IFxuXHRcdFx0XHRjb25zdCBpY24gPSAoaW5zdGFuY2UgYXMgYW55KS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRcdFx0dGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHNlbGYuc3RhY2sgKTtcblx0XHRcdH1cblxuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGluc3RhbmNlO1xuXG5cdFx0XHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhzZWxmLmluaGVyaXRlZEluc3RhbmNlKSBhcyBQcm9wcztcblxuXHRcdFx0IFxuXHRcdFx0aWYgKCBwcm9wcy5fX3NlbGZfXyAhPT0gKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgdW5rbm93bikgKSB7XG5cdFx0XHRcdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cblx0XHR9IClcblx0XHQuY2F0Y2goICggZXJyb3I6IEVycm9yICkgPT4ge1xuXHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5ibG9ja0Vycm9ycyApIHtcblx0XHRcdFx0c2VsZi50aHJvd01vZGlmaWNhdGlvbkVycm9yKCBlcnJvciApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgZXJyb3I7XG5cdFx0XHR9XG5cdFx0fSApO1xuXG5cdGlmICggdGhlbiApIHtcblx0XHRzZWxmLmFkZFRoZW4oIHRoZW4gKTtcblx0fVxuXG5cdHR5cGUuc3VidHlwZXMuZm9yRWFjaCggKCBzdWJ0eXBlOiBvYmplY3QsIG5hbWU6IHN0cmluZyApID0+IHtcblx0XHQgXG5cdFx0KHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgYXMgYW55KVsgbmFtZSBdID0gKCAuLi5hcmdzOiB1bmtub3duW10gKSA9PiB7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gc2VsZi5tYWtlQXdhaXRlciggc3VidHlwZSwge1xuXHRcdFx0XHRuYW1lLFxuXHRcdFx0XHRzdWJ0eXBlLFxuXHRcdFx0XHRhcmdzLFxuXHRcdFx0fSApO1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fTtcblx0fSApO1xuXG5cdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG59O1xuXG5jb25zdCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgPSB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0cG9zdFByb2Nlc3NpbmcsXG5cdG1ha2VBd2FpdGVyLFxuXHRhZGRUaGVuLFxuXHRpbnZva2VQcmVIb29rcyxcblx0aW52b2tlUG9zdEhvb2tzLFxuXHR0aHJvd01vZGlmaWNhdGlvbkVycm9yXG59O1xuXG4gIFxuZXhwb3J0IGNvbnN0IEluc3RhbmNlQ3JlYXRvciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIGV4aXN0ZW50SW5zdGFuY2U6IHVua25vd24sIGFyZ3M6IHVua25vd25bXSwgY2hhaW5lZDogYm9vbGVhbiApIHtcblxuXHRjb25zdCB7XG5cdFx0Y29uc3RydWN0SGFuZGxlcixcblx0XHRwcm90byxcblx0XHRjb25maWcsXG5cdFx0VHlwZU5hbWVcblx0fSA9IHR5cGU7XG5cblx0Y29uc3Qge1xuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yLFxuXHRcdGJsb2NrRXJyb3JzLFxuXHRcdHN1Ym1pdFN0YWNrXG5cdH0gPSBjb25maWc7XG5cblx0IFxuXHRjb25zdCBtYyA9IE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yKCk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdGNvbnN0IE1vZGlmaWNhdG9yVHlwZSA9IGNvbnN0cnVjdEhhbmRsZXIoKTtcblxuXHRPYmplY3QuYXNzaWduKCBzZWxmLCB7XG5cblx0XHR0eXBlLFxuXHRcdFR5cGVOYW1lLFxuXG5cdFx0ZXhpc3RlbnRJbnN0YW5jZSxcblxuXHRcdGdldCBhcmdzICgpIHtcblx0XHRcdHJldHVybiBhcmdzO1xuXHRcdH0sXG5cblx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3RvciA6IG1jLFxuXHRcdE1vZGlmaWNhdG9yVHlwZSxcblxuXHRcdGNvbmZpZyxcblxuXHRcdHByb3RvXG5cblx0fSApO1xuXG5cdGlmICggc3VibWl0U3RhY2sgfHwgY2hhaW5lZCApIHtcblx0XHRjb25zdCBzdGFja0FkZGl0aW9uOiBzdHJpbmdbXSA9IGNoYWluZWQgPyBzZWxmLmdldEV4aXN0ZW50QXN5bmNTdGFjayggZXhpc3RlbnRJbnN0YW5jZSApIDogW107XG5cdFx0Y29uc3QgdGl0bGUgPSBgXFxuPC0tIGNyZWF0aW9uIG9mIFsgJHtUeXBlTmFtZX0gXSB0cmFjZWQgLS0+YDtcblx0XHRpZiAoIHN1Ym1pdFN0YWNrICkge1xuXHRcdFx0Z2V0U3RhY2suY2FsbCggc2VsZiwgdGl0bGUsIHN0YWNrQWRkaXRpb24gKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2VsZi5zdGFjayA9IHRpdGxlO1xuXHRcdH1cblx0fVxuXG5cdGlmICggYmxvY2tFcnJvcnMgKSB7XG5cblx0XHRpZiAoIGV4aXN0ZW50SW5zdGFuY2UgaW5zdGFuY2VvZiBFcnJvciApIHtcblxuXHRcdFx0c2VsZi5Nb2RpZmljYXRvclR5cGUgPSBtYWtlRmFrZU1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUgKTtcblxuXHRcdFx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRcdFx0dGhyb3cgbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXG5cdFx0fVxuXHR9XG5cblx0c2VsZi5pbnZva2VQcmVIb29rcygpO1xuXG5cdHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciA9IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yKCBzZWxmICk7XG5cblx0aWYgKCBibG9ja0Vycm9ycyApIHtcblxuXHRcdHRyeSB7XG5cdFx0XHQvLyBDb25zdHJ1Y3RvciBJbnZvY2F0aW9uIEl0c2VsZlxuXHRcdFx0Y29uc3QgYW5zd2VyID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXHRcdFx0Ly8gZGVidWdnZXI7XG5cdFx0XHRzZWxmLmluaGVyaXRlZEluc3RhbmNlID0gYW5zd2VyO1xuXG5cdFx0fSBjYXRjaCAoIGVycm9yICkge1xuXG5cdFx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIGVycm9yICk7XG5cblx0XHR9XG5cblx0fSBlbHNlIHtcblxuXHRcdC8vIENvbnN0cnVjdG9yIEludm9jYXRpb24gSXRzZWxmXG5cdFx0Y29uc3QgYW5zd2VyID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXHRcdC8vIGRlYnVnZ2VyO1xuXHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBhbnN3ZXI7XG5cblx0fVxuXG5cblx0aWYgKCBzZWxmLmluaGVyaXRlZEluc3RhbmNlIGluc3RhbmNlb2YgUHJvbWlzZSApIHtcblxuXHRcdGNvbnN0IHdhaXRlciA9IHNlbGYubWFrZUF3YWl0ZXIoIHR5cGUgKTtcblxuXHRcdG9kcCggd2FpdGVyLCBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUsIHtcblx0XHRcdGdldCAoKSB7XG5cdFx0XHRcdHJldHVybiBUeXBlTmFtZTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0XHRyZXR1cm4gd2FpdGVyO1xuXG5cdH1cblxuXHRzZWxmLnBvc3RQcm9jZXNzaW5nKCB0eXBlICk7XG5cblx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cbn0gYXMgQ29uc3RydWN0b3JGdW5jdGlvbjx0eXBlb2YgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlPjtcblxuT2JqZWN0LmFzc2lnbiggSW5zdGFuY2VDcmVhdG9yLnByb3RvdHlwZSwgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlICk7XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFuY2VDcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS90eXBlcy9JbnN0YW5jZUNyZWF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsWUFBWSxDQUFDOzs7QUFJYiwrQ0FFeUI7QUFFekIsTUFBTSxFQUNMLEdBQUcsRUFDSCxxQkFBcUIsRUFDckIsR0FBRyxxQkFBUyxDQUFDO0FBRWQscURBQXVEO0FBQ3ZELE1BQU0sRUFDTCwwQkFBMEIsR0FDMUIsR0FBRyxvQkFBVyxDQUFDO0FBRWhCLG9DQUFrQztBQUNsQyxNQUFNLEVBQ0wscUJBQXFCLEVBQ3JCLHdCQUF3QixHQUN4QixHQUFHLGVBQVUsQ0FBQztBQUVmLHNDQUFxQztBQUNyQyw2RUFBMEU7QUFFMUUsbUNBQXFEO0FBRXJELCtEQUFnRTtBQUVoRSxNQUFNLGNBQWMsR0FBRztJQUV0QixNQUFNLEVBQ0wsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLEdBQUcsSUFBSSxDQUFDO0lBRVQsTUFBTSxFQUNMLFVBQVUsR0FDVixHQUFHLElBQUksQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHO1FBQ2hCLElBQUk7UUFDSixnQkFBZ0I7UUFDaEIsSUFBSTtRQUNKLG1CQUFtQjtLQUNuQixDQUFDO0lBRUYsVUFBVSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7SUFFakQsSUFBSSxDQUFDLFVBQVUsQ0FBRSxhQUFhLEVBQUUsUUFBUSxDQUFFLENBQUM7QUFFNUMsQ0FBQyxDQUFDO0FBSUYsTUFBTSxlQUFlLEdBQUc7SUFHdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLE1BQU0sRUFDTCxpQkFBaUIsR0FDakIsR0FBRyxPQUFPLENBQUM7SUFFWixNQUFNLEtBQUssR0FBRyxJQUFBLGlCQUFTLEVBQUMsaUJBQWlCLENBQVUsQ0FBQztJQUVwRCxNQUFNLEVBQ0wsUUFBUSxF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aUJBQWlCLEdBQUcsTUFBTSxDQUFDO0lBRWpDLENBQUM7SUFHRCxJQUFLLElBQUksQ0FBQyxpQkFBaUIsWUFBWSxPQUFPLEVBQUcsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBRSxDQUFDO1FBRXhDLEdBQUcsQ0FBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUU7WUFDbkMsR0FBRztnQkFDRixPQUFPLFFBQVEsQ0FBQztZQUNqQixDQUFDO1NBQ0QsQ0FBRSxDQUFDO1FBRUosT0FBTyxNQUFNLENBQUM7SUFFZixDQUFDO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBRSxJQUFJLENBQUUsQ0FBQztJQUU1QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUUvQixDQUF5RCxDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLENBQUUsdUJBQWUsQ0FBQyxTQUFTLEVBQUUsd0JBQXdCLENBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiAgXG4ndXNlIHN0cmljdCc7XG5cbmltcG9ydCB7IENvbnN0cnVjdG9yRnVuY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7XG5cdGNvbnN0YW50c1xufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5jb25zdCB7XG5cdG9kcCxcblx0U3ltYm9sQ29uc3RydWN0b3JOYW1lXG59ID0gY29uc3RhbnRzO1xuXG5pbXBvcnQgeyBFcnJvcnNUeXBlcyB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3JzL2Vycm9ycyc7XG5jb25zdCB7XG5cdFdST05HX01PRElGSUNBVElPTl9QQVRURVJOLFxufSA9IEVycm9yc1R5cGVzO1xuXG5pbXBvcnQgVHlwZXNVdGlscyBmcm9tICcuLi91dGlscyc7XG5jb25zdCB7XG5cdGdldEV4aXN0ZW50QXN5bmNTdGFjayxcblx0bWFrZUVycm9yTW9kaWZpY2F0b3JUeXBlLFxufSA9IFR5cGVzVXRpbHM7XG5cbmltcG9ydCB7IGdldFN0YWNrIH0gZnJvbSAnLi4vZXJyb3JzJztcbmltcG9ydCB7IHRocm93TW9kaWZpY2F0aW9uRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGhyb3dNb2RpZmljYXRpb25FcnJvcic7XG5cbmltcG9ydCB7IF9nZXRQcm9wcywgX3NldFNlbGYsIFByb3BzIH0gZnJvbSAnLi9Qcm9wcyc7XG5cbmltcG9ydCB7IG1ha2VJbnN0YW5jZU1vZGlmaWNhdG9yIH0gZnJvbSAnLi9JbnN0YW5jZU1vZGlmaWNhdG9yJztcbiAgXG5jb25zdCBpbnZva2VQcmVIb29rcyA9IGZ1bmN0aW9uICggdGhpczogYW55ICkge1xuXG5cdGNvbnN0IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH0gPSB0aGlzO1xuXG5cdGNvbnN0IHtcblx0XHRjb2xsZWN0aW9uLFxuXHR9ID0gdHlwZTtcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRJbnN0YW5jZU1vZGlmaWNhdG9yXG5cdH07XG5cblx0Y29sbGVjdGlvbi5pbnZva2VIb29rKCAncHJlQ3JlYXRpb24nLCBob29rRGF0YSApO1xuXG5cdHR5cGUuaW52b2tlSG9vayggJ3ByZUNyZWF0aW9uJywgaG9va0RhdGEgKTtcblxufTtcblxuXG4gIFxuY29uc3QgaW52b2tlUG9zdEhvb2tzID0gZnVuY3Rpb24gKCB0aGlzOiBhbnkgKSB7XG5cblx0IFxuXHRjb25zdCBjcmVhdG9yID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdGluaGVyaXRlZEluc3RhbmNlLFxuXHR9ID0gY3JlYXRvcjtcblxuXHRjb25zdCBwcm9wcyA9IF9nZXRQcm9wcyhpbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0Y29uc3Qge1xuXHRcdF9fdHlwZV9fOiB0eXBlLFxuXHRcdF9fcGFyZW50X186IGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0X19hcmdzX186IGFyZ3MsXG5cdH0gPSBwcm9wcztcblxuXHRjb25zdCB7XG5cdFx0Y29sbGVjdGlvbixcblx0fSA9IHR5cGU7XG5cblx0Y29uc3QgaG9va1R5cGUgPSBpbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yID9cblx0XHQnY3JlYXRpb25FcnJvcicgOiAncG9zdENyZWF0aW9uJztcblxuXHRjb25zdCBob29rRGF0YSA9IHtcblx0XHR0eXBlLFxuXHRcdGV4aXN0ZW50SW5zdGFuY2UsXG5cdFx0aW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0YXJncyxcblx0XHRjcmVhdG9yXG5cdH07XG5cblx0cmV0dXJuIHtcblxuXHRcdHR5cGUgOiB0eXBlLmludm9rZUhvb2soIGhvb2tUeXBlLCBob29rRGF0YSApLFxuXG5cdFx0Y29sbGVjdGlvbiA6IGNvbGxlY3Rpb24uaW52b2tlSG9vayggaG9va1R5cGUsIGhvb2tEYXRhICksXG5cblx0fTtcblxufTtcblxuXG4gIFxuY29uc3QgcG9zdFByb2Nlc3NpbmcgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgY29udGludWF0aW9uT2Y6IGFueSApIHtcblx0IFxuXHRjb25zdCBzZWxmID0gdGhpcztcblx0Y29uc3Qge1xuXHRcdHN0YWNrLFxuXHRcdHR5cGU6IHtcblx0XHRcdGlzU3ViVHlwZSxcblx0XHRcdGNvbmZpZzoge1xuXHRcdFx0XHRzdHJpY3RDaGFpbixcblx0XHRcdFx0YmxvY2tFcnJvcnNcblx0XHRcdH1cblx0XHR9XG5cdH0gPSBzZWxmO1xuXG5cdGlmICggIXNlbGYuaW5oZXJpdGVkSW5zdGFuY2UuY29uc3RydWN0b3IgKSB7XG5cdFx0Y29uc3QgbXNnID0gJ3Nob3VsZCBpbmhlcml0IGZyb20gbW5lbW9uaWNhIGluc3RhbmNlJztcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdH1cblxuXHRpZiAoICFzZWxmLmluaGVyaXRlZEluc3RhbmNlLmNvbnN0cnVjdG9yWyBTeW1ib2xDb25zdHJ1Y3Rvck5hbWUgXSApIHtcblx0XHRjb25zdCBtc2cgPSAnc2hvdWxkIGluaGVyaXQgZnJvbSBtbmVtb25pY2EgaW5zdGFuY2UnO1xuXHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKCBtc2csIHN0YWNrICkgKTtcblx0fVxuXG5cdGlmICggY29udGludWF0aW9uT2YgJiYgISggc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSBpbnN0YW5jZW9mIGNvbnRpbnVhdGlvbk9mICkgKSB7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0Y29uc3QgaWNuID0gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lO1xuXHRcdGNvbnN0IG1zZyA9IGBzaG91bGQgaW5oZXJpdCBmcm9tICR7Y29udGludWF0aW9uT2YuVHlwZU5hbWV9IGJ1dCBnb3QgJHtpY259YDtcblx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0Ly8gdGhyb3cgbmV3IFdST05HX01PRElGSUNBVElPTl9QQVRURVJOKG1zZywgc2VsZi5zdGFjayk7XG5cdH1cblxuXHRpZiAoaXNTdWJUeXBlICYmIHN0cmljdENoYWluKSB7XG5cdFx0XG5cdFx0aWYgKHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBFcnJvciAmJiAhYmxvY2tFcnJvcnMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBwYXJlbnQgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlLnBhcmVudCgpO1xuXHRcdGNvbnN0IHBhcmVudE5hbWUgPSBwYXJlbnQuY29uc3RydWN0b3IubmFtZTtcblx0XHRjb25zdCBwYXJlbnRUeXBlTmFtZSA9IHNlbGYudHlwZS5wYXJlbnRUeXBlLlR5cGVOYW1lO1xuXHRcdGlmIChwYXJlbnROYW1lICE9PSBwYXJlbnRUeXBlTmFtZSkge1xuXHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHtwYXJlbnRUeXBlTmFtZX0gYnV0IG1hZGUgb24gJHtwYXJlbnROYW1lfWA7XG5cdFx0XHRzZWxmLnRocm93TW9kaWZpY2F0aW9uRXJyb3IoIG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzdGFjayApICk7XG5cdFx0fVxuXG5cdH1cblxuXHRfc2V0U2VsZihzZWxmLmluaGVyaXRlZEluc3RhbmNlKTtcblxuXHRzZWxmLmludm9rZVBvc3RIb29rcygpO1xuXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZW5TcGVjIHtcblx0c3VidHlwZTogb2JqZWN0O1xuXHRhcmdzOiB1bmtub3duW107XG5cdG5hbWU/OiBzdHJpbmc7XG59XG5cbiAgXG5jb25zdCBhZGRUaGVuID0gZnVuY3Rpb24gKCB0aGlzOiBhbnksIHRoZW46IFRoZW5TcGVjICkge1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYuaW5oZXJpdGVkSW5zdGFuY2Vcblx0XHQudGhlbiggKCkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9XG5cdFx0XHRcdG5ldyBJbnN0YW5jZUNyZWF0b3IoXG5cdFx0XHRcdFx0dGhlbi5zdWJ0eXBlLFxuXHRcdFx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UsXG5cdFx0XHRcdFx0dGhlbi5hcmdzLFxuXHRcdFx0XHRcdC8vIHdhcyBjaGFpbmVkIDpcblx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0Ly8gc2VsZi5leGlzdGVudEluc3RhbmNlXG5cdFx0XHRcdCkgYXMgdW5rbm93biBhcyBQcm9taXNlPHVua25vd24+O1xuXHRcdFx0cmV0dXJuIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2U7XG5cdFx0fSApO1xuXG59O1xuXG5jb25zdCBtYWtlQXdhaXRlciA9IGZ1bmN0aW9uICggdGhpczogYW55LCB0eXBlOiBhbnksIHRoZW4/OiBUaGVuU3BlYyApIHtcblxuXHQgXG5cdGNvbnN0IHNlbGYgPSB0aGlzO1xuXG5cdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBzZWxmLmluaGVyaXRlZEluc3RhbmNlXG5cdFx0LnRoZW4oICggaW5zdGFuY2U6IHVua25vd24gKSA9PiB7XG5cblx0XHRcdGlmICggdHlwZW9mIGluc3RhbmNlICE9PSAnb2JqZWN0JyApIHtcblx0XHRcdFx0aWYgKCBzZWxmLmNvbmZpZy5hd2FpdFJldHVybiApIHtcblx0XHRcdFx0XHRjb25zdCBtc2cgPSBgc2hvdWxkIGluaGVyaXQgZnJvbSAke3R5cGUuVHlwZU5hbWV9OiBzZWVtcyBhc3luYyAke3R5cGUuVHlwZU5hbWV9IGhhcyBubyByZXR1cm4gc3RhdGVtZW50YDtcblx0XHRcdFx0XHR0aHJvdyBuZXcgV1JPTkdfTU9ESUZJQ0FUSU9OX1BBVFRFUk4oIG1zZywgc2VsZi5zdGFjayApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiBpbnN0YW5jZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICEoIGluc3RhbmNlIGluc3RhbmNlb2Ygc2VsZi50eXBlICkgKSB7XG5cdFx0XHRcdCBcblx0XHRcdFx0Y29uc3QgaWNuID0gKGluc3RhbmNlIGFzIGFueSkuY29uc3RydWN0b3IubmFtZTtcblx0XHRcdFx0Y29uc3QgbXNnID0gYHNob3VsZCBpbmhlcml0IGZyb20gJHt0eXBlLlR5cGVOYW1lfSBidXQgZ290ICR7aWNufWA7XG5cdFx0XHRcdHRocm93IG5ldyBXUk9OR19NT0RJRklDQVRJT05fUEFUVEVSTiggbXNnLCBzZWxmLnN0YWNrICk7XG5cdFx0XHR9XG5cblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBpbnN0YW5jZTtcblxuXHRcdFx0Y29uc3QgcHJvcHMgPSBfZ2V0UHJvcHMoc2VsZi5pbmhlcml0ZWRJbnN0YW5jZSkgYXMgUHJvcHM7XG5cblx0XHRcdCBcblx0XHRcdGlmICggcHJvcHMuX19zZWxmX18gIT09IChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIHVua25vd24pICkge1xuXHRcdFx0XHRzZWxmLnBvc3RQcm9jZXNzaW5nKCB0eXBlICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXG5cdFx0fSApXG5cdFx0LmNhdGNoKCAoIGVycm9yOiBFcnJvciApID0+IHtcblx0XHRcdGlmICggc2VsZi5jb25maWcuYmxvY2tFcnJvcnMgKSB7XG5cdFx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IGVycm9yO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRpZiAoIHRoZW4gKSB7XG5cdFx0c2VsZi5hZGRUaGVuKCB0aGVuICk7XG5cdH1cblxuXHR0eXBlLnN1YnR5cGVzLmZvckVhY2goICggc3VidHlwZTogb2JqZWN0LCBuYW1lOiBzdHJpbmcgKSA9PiB7XG5cdFx0IFxuXHRcdChzZWxmLmluaGVyaXRlZEluc3RhbmNlIGFzIGFueSlbIG5hbWUgXSA9ICggLi4uYXJnczogdW5rbm93bltdICkgPT4ge1xuXHRcdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IHNlbGYubWFrZUF3YWl0ZXIoIHN1YnR5cGUsIHtcblx0XHRcdFx0bmFtZSxcblx0XHRcdFx0c3VidHlwZSxcblx0XHRcdFx0YXJncyxcblx0XHRcdH0gKTtcblx0XHRcdHJldHVybiBzZWxmLmluaGVyaXRlZEluc3RhbmNlO1xuXHRcdH07XG5cdH0gKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufTtcblxuY29uc3QgSW5zdGFuY2VDcmVhdG9yUHJvdG90eXBlID0ge1xuXHRnZXRFeGlzdGVudEFzeW5jU3RhY2ssXG5cdHBvc3RQcm9jZXNzaW5nLFxuXHRtYWtlQXdhaXRlcixcblx0YWRkVGhlbixcblx0aW52b2tlUHJlSG9va3MsXG5cdGludm9rZVBvc3RIb29rcyxcblx0dGhyb3dNb2RpZmljYXRpb25FcnJvclxufTtcblxuICBcbmV4cG9ydCBjb25zdCBJbnN0YW5jZUNyZWF0b3IgPSBmdW5jdGlvbiAoIHRoaXM6IGFueSwgdHlwZTogYW55LCBleGlzdGVudEluc3RhbmNlOiB1bmtub3duLCBhcmdzOiB1bmtub3duW10sIGNoYWluZWQ6IGJvb2xlYW4gKSB7XG5cblx0Y29uc3Qge1xuXHRcdGNvbnN0cnVjdEhhbmRsZXIsXG5cdFx0cHJvdG8sXG5cdFx0Y29uZmlnLFxuXHRcdFR5cGVOYW1lXG5cdH0gPSB0eXBlO1xuXG5cdGNvbnN0IHtcblx0XHRNb2RpZmljYXRpb25Db25zdHJ1Y3Rvcixcblx0XHRibG9ja0Vycm9ycyxcblx0XHRzdWJtaXRTdGFja1xuXHR9ID0gY29uZmlnO1xuXG5cdCBcblx0Y29uc3QgbWMgPSBNb2RpZmljYXRpb25Db25zdHJ1Y3RvcigpO1xuXG5cdCBcblx0Y29uc3Qgc2VsZiA9IHRoaXM7XG5cblx0Y29uc3QgTW9kaWZpY2F0b3JUeXBlID0gY29uc3RydWN0SGFuZGxlcigpO1xuXG5cdE9iamVjdC5hc3NpZ24oIHNlbGYsIHtcblxuXHRcdHR5cGUsXG5cdFx0VHlwZU5hbWUsXG5cblx0XHRleGlzdGVudEluc3RhbmNlLFxuXG5cdFx0Z2V0IGFyZ3MgKCkge1xuXHRcdFx0cmV0dXJuIGFyZ3M7XG5cdFx0fSxcblxuXHRcdE1vZGlmaWNhdGlvbkNvbnN0cnVjdG9yIDogbWMsXG5cdFx0TW9kaWZpY2F0b3JUeXBlLFxuXG5cdFx0Y29uZmlnLFxuXG5cdFx0cHJvdG9cblxuXHR9ICk7XG5cblx0aWYgKCBzdWJtaXRTdGFjayB8fCBjaGFpbmVkICkge1xuXHRcdGNvbnN0IHN0YWNrQWRkaXRpb246IHN0cmluZ1tdID0gY2hhaW5lZCA/IHNlbGYuZ2V0RXhpc3RlbnRBc3luY1N0YWNrKCBleGlzdGVudEluc3RhbmNlICkgOiBbXTtcblx0XHRjb25zdCB0aXRsZSA9IGBcXG48LS0gY3JlYXRpb24gb2YgWyAke1R5cGVOYW1lfSBdIHRyYWNlZCAtLT5gO1xuXHRcdGlmICggc3VibWl0U3RhY2sgKSB7XG5cdFx0XHRnZXRTdGFjay5jYWxsKCBzZWxmLCB0aXRsZSwgc3RhY2tBZGRpdGlvbiApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzZWxmLnN0YWNrID0gdGl0bGU7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCBibG9ja0Vycm9ycyApIHtcblxuXHRcdGlmICggZXhpc3RlbnRJbnN0YW5jZSBpbnN0YW5jZW9mIEVycm9yICkge1xuXG5cdFx0XHRzZWxmLk1vZGlmaWNhdG9yVHlwZSA9IG1ha2VFcnJvck1vZGlmaWNhdG9yVHlwZSggVHlwZU5hbWUgKTtcblxuXHRcdFx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRcdFx0Y29uc3QgYmxvY2tFcnJvcnNFcnJvckluc3RhbmNlID0gbmV3IHNlbGYuSW5zdGFuY2VNb2RpZmljYXRvciggLi4uYXJncyApO1xuXG5cdFx0XHR0aHJvdyBibG9ja0Vycm9yc0Vycm9ySW5zdGFuY2U7XG5cblx0XHR9XG5cdH1cblxuXHRzZWxmLmludm9rZVByZUhvb2tzKCk7XG5cblx0c2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yID0gbWFrZUluc3RhbmNlTW9kaWZpY2F0b3IoIHNlbGYgKTtcblxuXHRpZiAoIGJsb2NrRXJyb3JzICkge1xuXG5cdFx0dHJ5IHtcblx0XHRcdC8vIENvbnN0cnVjdG9yIEludm9jYXRpb24gSXRzZWxmXG5cdFx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0XHQvLyBkZWJ1Z2dlcjtcblx0XHRcdHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgPSBhbnN3ZXI7XG5cblx0XHR9IGNhdGNoICggZXJyb3IgKSB7XG5cblx0XHRcdHNlbGYudGhyb3dNb2RpZmljYXRpb25FcnJvciggZXJyb3IgKTtcblxuXHRcdH1cblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gQ29uc3RydWN0b3IgSW52b2NhdGlvbiBJdHNlbGZcblx0XHRjb25zdCBhbnN3ZXIgPSBuZXcgc2VsZi5JbnN0YW5jZU1vZGlmaWNhdG9yKCAuLi5hcmdzICk7XG5cdFx0Ly8gZGVidWdnZXI7XG5cdFx0c2VsZi5pbmhlcml0ZWRJbnN0YW5jZSA9IGFuc3dlcjtcblxuXHR9XG5cblxuXHRpZiAoIHNlbGYuaW5oZXJpdGVkSW5zdGFuY2UgaW5zdGFuY2VvZiBQcm9taXNlICkge1xuXG5cdFx0Y29uc3Qgd2FpdGVyID0gc2VsZi5tYWtlQXdhaXRlciggdHlwZSApO1xuXG5cdFx0b2RwKCB3YWl0ZXIsIFN5bWJvbENvbnN0cnVjdG9yTmFtZSwge1xuXHRcdFx0Z2V0ICgpIHtcblx0XHRcdFx0cmV0dXJuIFR5cGVOYW1lO1xuXHRcdFx0fVxuXHRcdH0gKTtcblxuXHRcdHJldHVybiB3YWl0ZXI7XG5cblx0fVxuXG5cdHNlbGYucG9zdFByb2Nlc3NpbmcoIHR5cGUgKTtcblxuXHRyZXR1cm4gc2VsZi5pbmhlcml0ZWRJbnN0YW5jZTtcblxufSBhcyBDb25zdHJ1Y3RvckZ1bmN0aW9uPHR5cGVvZiBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGU+O1xuXG5PYmplY3QuYXNzaWduKCBJbnN0YW5jZUNyZWF0b3IucHJvdG90eXBlLCBJbnN0YW5jZUNyZWF0b3JQcm90b3R5cGUgKTtcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { ConstructorFunction } from '../../types';
2
2
  declare const _default: {
3
- readonly createMnemosyne: (Uranus: unknown) => object;
3
+ readonly createMnemosyne: (Uranus: unknown, exposeInstanceMethods: boolean) => object;
4
4
  readonly prepareSubtypeForConstruction: (subtypeName: string, inheritedInstance: unknown) => ConstructorFunction<{
5
5
  getExistentAsyncStack: (existentInstance: import("../utils").asyncStack) => unknown;
6
6
  postProcessing: (this: any, continuationOf: any) => void;