angular-three 2.0.0-beta.242 → 2.0.0-beta.243

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 (50) hide show
  1. package/esm2022/index.mjs +2 -2
  2. package/esm2022/lib/canvas.mjs +19 -27
  3. package/esm2022/lib/directives/args.mjs +52 -14
  4. package/esm2022/lib/instance.mjs +10 -9
  5. package/esm2022/lib/loop.mjs +2 -2
  6. package/esm2022/lib/portal.mjs +119 -111
  7. package/esm2022/lib/renderer/catalogue.mjs +2 -2
  8. package/esm2022/lib/renderer/constants.mjs +3 -5
  9. package/esm2022/lib/renderer/index.mjs +276 -194
  10. package/esm2022/lib/renderer/state.mjs +49 -0
  11. package/esm2022/lib/renderer/utils.mjs +40 -24
  12. package/esm2022/lib/roots.mjs +25 -25
  13. package/esm2022/lib/routed-scene.mjs +3 -3
  14. package/esm2022/lib/store.mjs +14 -12
  15. package/esm2022/lib/three-types.mjs +1 -1
  16. package/esm2022/lib/utils/apply-props.mjs +3 -3
  17. package/esm2022/lib/utils/before-render.mjs +4 -3
  18. package/esm2022/lib/utils/parameters.mjs +27 -26
  19. package/esm2022/lib/utils/resolve-ref.mjs +8 -0
  20. package/esm2022/lib/utils/signal-store.mjs +3 -14
  21. package/fesm2022/angular-three.mjs +714 -1087
  22. package/fesm2022/angular-three.mjs.map +1 -1
  23. package/index.d.ts +2 -2
  24. package/lib/canvas.d.ts +278 -1001
  25. package/lib/directives/args.d.ts +11 -4
  26. package/lib/instance.d.ts +8 -13
  27. package/lib/loop.d.ts +1 -1
  28. package/lib/portal.d.ts +41 -31
  29. package/lib/renderer/catalogue.d.ts +1 -1
  30. package/lib/renderer/constants.d.ts +2 -4
  31. package/lib/renderer/index.d.ts +15 -5
  32. package/lib/renderer/state.d.ts +23 -0
  33. package/lib/renderer/utils.d.ts +5 -22
  34. package/lib/roots.d.ts +5 -0
  35. package/lib/store.d.ts +12 -12
  36. package/lib/three-types.d.ts +8 -5
  37. package/lib/utils/parameters.d.ts +4 -9
  38. package/lib/utils/resolve-ref.d.ts +2 -0
  39. package/lib/utils/signal-store.d.ts +1 -5
  40. package/metadata.json +1 -1
  41. package/package.json +71 -72
  42. package/web-types.json +1 -1
  43. package/esm2022/lib/directives/common.mjs +0 -67
  44. package/esm2022/lib/directives/parent.mjs +0 -20
  45. package/esm2022/lib/ref.mjs +0 -50
  46. package/esm2022/lib/renderer/store.mjs +0 -439
  47. package/lib/directives/common.d.ts +0 -31
  48. package/lib/directives/parent.d.ts +0 -11
  49. package/lib/ref.d.ts +0 -7
  50. package/lib/renderer/store.d.ts +0 -65
package/esm2022/index.mjs CHANGED
@@ -4,7 +4,6 @@ export * from './lib/instance';
4
4
  export * from './lib/loader';
5
5
  export { addAfterEffect, addEffect, addTail } from './lib/loop';
6
6
  export { NgtPortal, NgtPortalContent } from './lib/portal';
7
- export * from './lib/ref';
8
7
  export * from './lib/renderer';
9
8
  export * from './lib/routed-scene';
10
9
  export * from './lib/store';
@@ -15,6 +14,7 @@ export * from './lib/utils/create-api-token';
15
14
  export * from './lib/utils/is';
16
15
  export * from './lib/utils/make';
17
16
  export * from './lib/utils/parameters';
17
+ export * from './lib/utils/resolve-ref';
18
18
  export * from './lib/utils/signal-store';
19
19
  export * from './lib/utils/update';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FudmFzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXJncyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnN0YW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0IHsgYWRkQWZ0ZXJFZmZlY3QsIGFkZEVmZmVjdCwgYWRkVGFpbCB9IGZyb20gJy4vbGliL2xvb3AnO1xuZXhwb3J0IHsgTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50IH0gZnJvbSAnLi9saWIvcG9ydGFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZW5kZXJlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3V0ZWQtc2NlbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvYXBwbHktcHJvcHMnO1xuZXhwb3J0IHsgY3JlYXRlQXR0YWNoRnVuY3Rpb24gfSBmcm9tICcuL2xpYi91dGlscy9hdHRhY2gnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvYmVmb3JlLXJlbmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9jcmVhdGUtYXBpLXRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2lzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL21ha2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvcGFyYW1ldGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9zaWduYWwtc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvdXBkYXRlJztcblxuZXhwb3J0IHR5cGUgeyBOZ3RDYW1lcmEsIE5ndFRocmVlRXZlbnQgfSBmcm9tICcuL2xpYi9ldmVudHMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL2xpYi90aHJlZS10eXBlcyc7XG5leHBvcnQgdHlwZSAqIGZyb20gJy4vbGliL3R5cGVzJztcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzRCxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jYW52YXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hcmdzJztcbmV4cG9ydCB7IE5ndENhbWVyYSwgTmd0Q29tcHV0ZUZ1bmN0aW9uLCBOZ3RUaHJlZUV2ZW50IH0gZnJvbSAnLi9saWIvZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2luc3RhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvYWRlcic7XG5leHBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCBhZGRUYWlsIH0gZnJvbSAnLi9saWIvbG9vcCc7XG5leHBvcnQgeyBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQgfSBmcm9tICcuL2xpYi9wb3J0YWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVuZGVyZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGVkLXNjZW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2FwcGx5LXByb3BzJztcbmV4cG9ydCB7IGNyZWF0ZUF0dGFjaEZ1bmN0aW9uIH0gZnJvbSAnLi9saWIvdXRpbHMvYXR0YWNoJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2JlZm9yZS1yZW5kZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvY3JlYXRlLWFwaS10b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9pcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9tYWtlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3BhcmFtZXRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvcmVzb2x2ZS1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvc2lnbmFsLXN0b3JlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL3VwZGF0ZSc7XG5cbmV4cG9ydCB0eXBlICogZnJvbSAnLi9saWIvdGhyZWUtdHlwZXMnO1xuZXhwb3J0IHR5cGUgKiBmcm9tICcuL2xpYi90eXBlcyc7XG4iXX0=
@@ -5,12 +5,12 @@ import { NgxResize, provideResizeOptions } from 'ngxtension/resize';
5
5
  import { createPointerEvents } from './dom/events';
6
6
  import { provideNgtRenderer } from './renderer';
7
7
  import { injectCanvasRootInitializer } from './roots';
8
- import { injectNgtStore, provideNgtStore } from './store';
8
+ import { injectStore, provideStore } from './store';
9
9
  import { is } from './utils/is';
10
10
  import * as i0 from "@angular/core";
11
11
  export class NgtCanvas {
12
12
  constructor() {
13
- this.store = injectNgtStore();
13
+ this.store = injectStore();
14
14
  this.initRoot = injectCanvasRootInitializer();
15
15
  this.autoEffect = injectAutoEffect();
16
16
  this.host = inject(ElementRef);
@@ -19,8 +19,6 @@ export class NgtCanvas {
19
19
  this.environmentInjector = inject(EnvironmentInjector);
20
20
  this.injector = inject(Injector);
21
21
  this.sceneGraph = input.required();
22
- this.compoundPrefixes = input([]);
23
- this.sceneGraphInputs = input({});
24
22
  this.gl = input();
25
23
  this.size = input();
26
24
  this.shadows = input(false, {
@@ -55,7 +53,6 @@ export class NgtCanvas {
55
53
  this.zone.runOutsideAngular(() => {
56
54
  this.configurator = this.initRoot(this.glCanvas().nativeElement);
57
55
  this.noZoneResizeEffect();
58
- this.noZoneSceneGraphInputsEffect();
59
56
  });
60
57
  });
61
58
  inject(DestroyRef).onDestroy(() => {
@@ -131,38 +128,29 @@ export class NgtCanvas {
131
128
  this.store.get('events').connect?.(untracked(this.glCanvas).nativeElement);
132
129
  }
133
130
  untracked(() => {
134
- this.glEnvironmentInjector = createEnvironmentInjector([provideNgtRenderer(this.store, untracked(this.compoundPrefixes))], this.environmentInjector);
131
+ this.glEnvironmentInjector = createEnvironmentInjector([provideNgtRenderer(this.store)], this.environmentInjector);
135
132
  this.glRef = this.viewContainerRef.createComponent(untracked(this.sceneGraph), {
136
133
  environmentInjector: this.glEnvironmentInjector,
137
134
  injector: this.injector,
138
135
  });
139
136
  this.glRef.changeDetectorRef.detectChanges();
140
- this.setSceneGraphInputs(this.sceneGraphInputs());
141
137
  });
142
138
  }
143
- noZoneSceneGraphInputsEffect() {
144
- this.autoEffect(() => {
145
- this.setSceneGraphInputs(this.sceneGraphInputs());
146
- });
147
- }
148
- setSceneGraphInputs(sceneGraphInputs) {
149
- if (this.glRef) {
150
- for (const [key, value] of Object.entries(sceneGraphInputs)) {
151
- this.glRef.setInput(key, value);
152
- }
153
- }
154
- }
155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
156
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, compoundPrefixes: { classPropertyName: "compoundPrefixes", publicName: "compoundPrefixes", isSignal: true, isRequired: false, transformFunction: null }, sceneGraphInputs: { classPropertyName: "sceneGraphInputs", publicName: "sceneGraphInputs", isSignal: true, isRequired: false, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventSource: { classPropertyName: "eventSource", publicName: "eventSource", isSignal: true, isRequired: false, transformFunction: null }, eventPrefix: { classPropertyName: "eventPrefix", publicName: "eventPrefix", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "style.pointerEvents": "hbPointerEvents()" }, styleAttribute: "display: block;position: relative;width: 100%;height: 100%;overflow: hidden;" }, providers: [
157
- provideResizeOptions({ emitInZone: false, emitInitialResult: true, debounce: 250 }),
158
- provideNgtStore(),
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgtCanvas, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.6", type: NgtCanvas, isStandalone: true, selector: "ngt-canvas", inputs: { sceneGraph: { classPropertyName: "sceneGraph", publicName: "sceneGraph", isSignal: true, isRequired: true, transformFunction: null }, gl: { classPropertyName: "gl", publicName: "gl", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shadows: { classPropertyName: "shadows", publicName: "shadows", isSignal: true, isRequired: false, transformFunction: null }, legacy: { classPropertyName: "legacy", publicName: "legacy", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, orthographic: { classPropertyName: "orthographic", publicName: "orthographic", isSignal: true, isRequired: false, transformFunction: null }, frameloop: { classPropertyName: "frameloop", publicName: "frameloop", isSignal: true, isRequired: false, transformFunction: null }, performance: { classPropertyName: "performance", publicName: "performance", isSignal: true, isRequired: false, transformFunction: null }, dpr: { classPropertyName: "dpr", publicName: "dpr", isSignal: true, isRequired: false, transformFunction: null }, raycaster: { classPropertyName: "raycaster", publicName: "raycaster", isSignal: true, isRequired: false, transformFunction: null }, scene: { classPropertyName: "scene", publicName: "scene", isSignal: true, isRequired: false, transformFunction: null }, camera: { classPropertyName: "camera", publicName: "camera", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, eventSource: { classPropertyName: "eventSource", publicName: "eventSource", isSignal: true, isRequired: false, transformFunction: null }, eventPrefix: { classPropertyName: "eventPrefix", publicName: "eventPrefix", isSignal: true, isRequired: false, transformFunction: null }, lookAt: { classPropertyName: "lookAt", publicName: "lookAt", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", pointerMissed: "pointerMissed" }, host: { properties: { "style.pointerEvents": "hbPointerEvents()" }, styleAttribute: "display: block;position: relative;width: 100%;height: 100%;overflow: hidden;" }, providers: [
141
+ provideResizeOptions({
142
+ emitInZone: false,
143
+ emitInitialResult: true,
144
+ debounce: { scroll: 50, resize: 0 },
145
+ }),
146
+ provideStore(),
159
147
  ], viewQueries: [{ propertyName: "glCanvas", first: true, predicate: ["glCanvas"], descendants: true, isSignal: true }, { propertyName: "glCanvasViewContainerRef", first: true, predicate: ["glCanvas"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: `
160
148
  <div (ngxResize)="resizeResult.set($event)" style="height: 100%; width: 100%;">
161
149
  <canvas #glCanvas style="display: block;"></canvas>
162
150
  </div>
163
151
  `, isInline: true, dependencies: [{ kind: "directive", type: NgxResize, selector: "[ngxResize]", inputs: ["ngxResizeOptions"], outputs: ["ngxResize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
152
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCanvas, decorators: [{
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgtCanvas, decorators: [{
166
154
  type: Component,
167
155
  args: [{
168
156
  selector: 'ngt-canvas',
@@ -174,8 +162,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
174
162
  `,
175
163
  imports: [NgxResize],
176
164
  providers: [
177
- provideResizeOptions({ emitInZone: false, emitInitialResult: true, debounce: 250 }),
178
- provideNgtStore(),
165
+ provideResizeOptions({
166
+ emitInZone: false,
167
+ emitInitialResult: true,
168
+ debounce: { scroll: 50, resize: 0 },
169
+ }),
170
+ provideStore(),
179
171
  ],
180
172
  host: {
181
173
  style: 'display: block;position: relative;width: 100%;height: 100%;overflow: hidden;',
@@ -184,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
184
176
  changeDetection: ChangeDetectionStrategy.OnPush,
185
177
  }]
186
178
  }], ctorParameters: () => [] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUErQixvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBWWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUEyQywyQkFBMkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRixPQUFPLEVBQThELGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHdEgsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUF3RmhDLE1BQU0sT0FBTyxTQUFTO0lBa0RyQjtRQWpEUSxVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsYUFBUSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDekMsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDbkQscUJB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdERlc3Ryb3lSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdEVudmlyb25tZW50SW5qZWN0b3IsXG5cdEluamVjdG9yLFxuXHROZ1pvbmUsXG5cdFR5cGUsXG5cdFZpZXdDb250YWluZXJSZWYsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0Y29tcHV0ZWQsXG5cdGNyZWF0ZUVudmlyb25tZW50SW5qZWN0b3IsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0c2lnbmFsLFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IE5neFJlc2l6ZSwgUmVzaXplT3B0aW9ucywgUmVzaXplUmVzdWx0LCBwcm92aWRlUmVzaXplT3B0aW9ucyB9IGZyb20gJ25neHRlbnNpb24vcmVzaXplJztcbmltcG9ydCB7XG5cdENhbWVyYSxcblx0T3J0aG9ncmFwaGljQ2FtZXJhLFxuXHRQZXJzcGVjdGl2ZUNhbWVyYSxcblx0UmF5Y2FzdGVyLFxuXHRTY2VuZSxcblx0VmVjdG9yMyxcblx0V2ViR0xSZW5kZXJlcixcblx0V2ViR0xSZW5kZXJlclBhcmFtZXRlcnMsXG5cdFdlYkdMU2hhZG93TWFwLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBjcmVhdGVQb2ludGVyRXZlbnRzIH0gZnJvbSAnLi9kb20vZXZlbnRzJztcbmltcG9ydCB7IE5ndENhbWVyYSwgTmd0RG9tRXZlbnQsIE5ndEV2ZW50TWFuYWdlciB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IHByb3ZpZGVOZ3RSZW5kZXJlciB9IGZyb20gJy4vcmVuZGVyZXInO1xuaW1wb3J0IHsgTmd0Q2FudmFzQ29uZmlndXJhdG9yLCBOZ3RDYW52YXNFbGVtZW50LCBpbmplY3RDYW52YXNSb290SW5pdGlhbGl6ZXIgfSBmcm9tICcuL3Jvb3RzJztcbmltcG9ydCB7IE5ndERwciwgTmd0UGVyZm9ybWFuY2UsIE5ndFJlbmRlcmVyTGlrZSwgTmd0U2l6ZSwgTmd0U3RhdGUsIGluamVjdE5ndFN0b3JlLCBwcm92aWRlTmd0U3RvcmUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IE5ndE9iamVjdDNETm9kZSB9IGZyb20gJy4vdGhyZWUtdHlwZXMnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkLCBOZ3RQcm9wZXJ0aWVzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgTmd0U2lnbmFsU3RvcmUgfSBmcm9tICcuL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5cbmV4cG9ydCB0eXBlIE5ndEdMT3B0aW9ucyA9XG5cdHwgTmd0UmVuZGVyZXJMaWtlXG5cdHwgKChjYW52YXM6IE5ndENhbnZhc0VsZW1lbnQpID0+IE5ndFJlbmRlcmVyTGlrZSlcblx0fCBQYXJ0aWFsPE5ndFByb3BlcnRpZXM8V2ViR0xSZW5kZXJlcj4gfCBXZWJHTFJlbmRlcmVyUGFyYW1ldGVycz5cblx0fCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0Q2FudmFzSW5wdXRzIHtcblx0LyoqIEEgdGhyZWVqcyByZW5kZXJlciBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgcmVuZGVyZXIgKi9cblx0Z2w/OiBOZ3RHTE9wdGlvbnM7XG5cdC8qKiBEaW1lbnNpb25zIHRvIGZpdCB0aGUgcmVuZGVyZXIgdG8uIFdpbGwgbWVhc3VyZSBjYW52YXMgZGltZW5zaW9ucyBpZiBvbWl0dGVkICovXG5cdHNpemU/OiBOZ3RTaXplO1xuXHQvKipcblx0ICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuXHQgKiBidXQgYWxzbyBzdHJpbmdzOiAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJy5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI2FwaS9lbi9yZW5kZXJlcnMvV2ViR0xSZW5kZXJlci5zaGFkb3dNYXBcblx0ICovXG5cdHNoYWRvd3M/OiBib29sZWFuIHwgJ2Jhc2ljJyB8ICdwZXJjZW50YWdlJyB8ICdzb2Z0JyB8ICd2YXJpYW5jZScgfCBQYXJ0aWFsPFdlYkdMU2hhZG93TWFwPjtcblx0LyoqXG5cdCAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cblx0ICogQHNlZSBodHRwczovL3RocmVlanMub3JnL2RvY3MvI21hbnVhbC9lbi9pbnRyb2R1Y3Rpb24vQ29sb3ItbWFuYWdlbWVudFxuXHQgKi9cblx0bGVnYWN5PzogYm9vbGVhbjtcblx0LyoqIFN3aXRjaCBvZmYgYXV0b21hdGljIHNSR0IgY29sb3Igc3BhY2UgYW5kIGdhbW1hIGNvcnJlY3Rpb24gKi9cblx0bGluZWFyPzogYm9vbGVhbjtcblx0LyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuXHRmbGF0PzogYm9vbGVhbjtcblx0LyoqIENyZWF0ZXMgYW4gb3J0aG9ncmFwaGljIGNhbWVyYSAqL1xuXHRvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuXHQvKipcblx0ICogUjNGJ3MgcmVuZGVyIG1vZGUuIFNldCB0byBgZGVtYW5kYCB0byBvbmx5IHJlbmRlciBvbiBzdGF0ZSBjaGFuZ2Ugb3IgYG5ldmVyYCB0byB0YWtlIGNvbnRyb2wuXG5cdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG5cdCAqL1xuXHRmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJztcblx0LyoqXG5cdCAqIFIzRiBwZXJmb3JtYW5jZSBvcHRpb25zIGZvciBhZGFwdGl2ZSBwZXJmb3JtYW5jZS5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI21vdmVtZW50LXJlZ3Jlc3Npb25cblx0ICovXG5cdHBlcmZvcm1hbmNlPzogUGFydGlhbDxPbWl0PE5ndFBlcmZvcm1hbmNlLCAncmVncmVzcyc+Pjtcblx0LyoqIFRhcmdldCBwaXhlbCByYXRpby4gQ2FuIGNsYW1wIGJldHdlZW4gYSByYW5nZTogYFttaW4sIG1heF1gICovXG5cdGRwcj86IE5ndERwcjtcblx0LyoqIFByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByYXljYXN0ZXIgKi9cblx0cmF5Y2FzdGVyPzogUGFydGlhbDxSYXljYXN0ZXI+O1xuXHQvKiogQSBgU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuXHRzY2VuZT86IFNjZW5lIHwgUGFydGlhbDxTY2VuZT47XG5cdC8qKiBBIGBDYW1lcmFgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBjYW1lcmEgKi9cblx0Y2FtZXJhPzogKFxuXHRcdHwgTmd0Q2FtZXJhXG5cdFx0fCBQYXJ0aWFsPFxuXHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8Q2FtZXJhLCB0eXBlb2YgQ2FtZXJhPiAmXG5cdFx0XHRcdFx0Tmd0T2JqZWN0M0ROb2RlPFBlcnNwZWN0aXZlQ2FtZXJhLCB0eXBlb2YgUGVyc3BlY3RpdmVDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8T3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgT3J0aG9ncmFwaGljQ2FtZXJhPlxuXHRcdCAgPlxuXHQpICYge1xuXHRcdC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cblx0XHRtYW51YWw/OiBib29sZWFuO1xuXHR9O1xuXHQvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuXHRldmVudHM/OiAoc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gTmd0RXZlbnRNYW5hZ2VyPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG5cdGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0LyoqIFRoZSBldmVudCBwcmVmaXggdGhhdCBpcyBjYXN0IGludG8gY2FudmFzIHBvaW50ZXIgeC95IGV2ZW50cywgZGVmYXVsdDogXCJvZmZzZXRcIiAqL1xuXHRldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG5cdC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuXHRsb29rQXQ/OiBWZWN0b3IzIHwgUGFyYW1ldGVyczxWZWN0b3IzWydzZXQnXT47XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndC1jYW52YXMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxkaXYgKG5neFJlc2l6ZSk9XCJyZXNpemVSZXN1bHQuc2V0KCRldmVudClcIiBzdHlsZT1cImhlaWdodDogMTAwJTsgd2lkdGg6IDEwMCU7XCI+XG5cdFx0XHQ8Y2FudmFzICNnbENhbnZhcyBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPjwvY2FudmFzPlxuXHRcdDwvZGl2PlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd4UmVzaXplXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVJlc2l6ZU9wdGlvbnMoeyBlbWl0SW5ab25lOiBmYWxzZSwgZW1pdEluaXRpYWxSZXN1bHQ6IHRydWUsIGRlYm91bmNlOiAyNTAgfSBhcyBSZXNpemVPcHRpb25zKSxcblx0XHRwcm92aWRlTmd0U3RvcmUoKSxcblx0XSxcblx0aG9zdDoge1xuXHRcdHN0eWxlOiAnZGlzcGxheTogYmxvY2s7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtvdmVyZmxvdzogaGlkZGVuOycsXG5cdFx0J1tzdHlsZS5wb2ludGVyRXZlbnRzXSc6ICdoYlBvaW50ZXJFdmVudHMoKScsXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDYW52YXMge1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbml0Um9vdCA9IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcigpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0cHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRzY2VuZUdyYXBoID0gaW5wdXQucmVxdWlyZWQ8VHlwZTxhbnk+PigpO1xuXHRjb21wb3VuZFByZWZpeGVzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcblx0c2NlbmVHcmFwaElucHV0cyA9IGlucHV0PE5ndEFueVJlY29yZD4oe30pO1xuXHRnbCA9IGlucHV0PE5ndEdMT3B0aW9ucz4oKTtcblx0c2l6ZSA9IGlucHV0PE5ndFNpemU+KCk7XG5cdHNoYWRvd3MgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cdFx0XHRyZXR1cm4gdmFsdWUgYXMgTm9uTnVsbGFibGU8Tmd0Q2FudmFzSW5wdXRzWydzaGFkb3dzJ10+O1xuXHRcdH0sXG5cdH0pO1xuXHRsZWdhY3kgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGxpbmVhciA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZmxhdCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0b3J0aG9ncmFwaGljID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRmcmFtZWxvb3AgPSBpbnB1dDxOb25OdWxsYWJsZTxOZ3RDYW52YXNJbnB1dHNbJ2ZyYW1lbG9vcCddPj4oJ2Fsd2F5cycpO1xuXHRwZXJmb3JtYW5jZSA9IGlucHV0PFBhcnRpYWw8T21pdDxOZ3RQZXJmb3JtYW5jZSwgJ3JlZ3Jlc3MnPj4+KCk7XG5cdGRwciA9IGlucHV0PE5ndERwcj4oWzEsIDJdKTtcblx0cmF5Y2FzdGVyID0gaW5wdXQ8UGFydGlhbDxSYXljYXN0ZXI+PigpO1xuXHRzY2VuZSA9IGlucHV0PFNjZW5lIHwgUGFydGlhbDxTY2VuZT4+KCk7XG5cdGNhbWVyYSA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc0lucHV0c1snY2FtZXJhJ10+PigpO1xuXHRldmVudHMgPSBpbnB1dChjcmVhdGVQb2ludGVyRXZlbnRzKTtcblx0ZXZlbnRTb3VyY2UgPSBpbnB1dDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigpO1xuXHRldmVudFByZWZpeCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc0lucHV0c1snZXZlbnRQcmVmaXgnXT4+KCdvZmZzZXQnKTtcblx0bG9va0F0ID0gaW5wdXQ8VmVjdG9yMyB8IFBhcmFtZXRlcnM8VmVjdG9yM1snc2V0J10+PigpO1xuXHRjcmVhdGVkID0gb3V0cHV0PE5ndFN0YXRlPigpO1xuXHRwb2ludGVyTWlzc2VkID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5zdG9yZS5nZXQoJ3BvaW50ZXJNaXNzZWQkJykpO1xuXG5cdGdsQ2FudmFzID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+PignZ2xDYW52YXMnKTtcblx0Z2xDYW52YXNWaWV3Q29udGFpbmVyUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdnbENhbnZhcycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KTtcblxuXHQvLyBOT1RFOiB0aGlzIHNpZ25hbCBpcyB1cGRhdGVkIG91dHNpZGUgb2YgWm9uZVxuXHRwcm90ZWN0ZWQgcmVzaXplUmVzdWx0ID0gc2lnbmFsPFJlc2l6ZVJlc3VsdD4oe30gYXMgUmVzaXplUmVzdWx0LCB7IGVxdWFsOiBPYmplY3QuaXMgfSk7XG5cdHByb3RlY3RlZCBoYlBvaW50ZXJFdmVudHMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ldmVudFNvdXJjZSgpID8gJ25vbmUnIDogJ2F1dG8nKSk7XG5cblx0cHJpdmF0ZSBjb25maWd1cmF0b3I/OiBOZ3RDYW52YXNDb25maWd1cmF0b3I7XG5cdHByaXZhdGUgZ2xFbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3Rvcjtcblx0cHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5ub1pvbmVSZXNpemVFZmZlY3QoKTtcblx0XHRcdFx0dGhpcy5ub1pvbmVTY2VuZUdyYXBoSW5wdXRzRWZmZWN0KCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3I/LmRlc3Ryb3koKTtcblx0XHRcdHRoaXMuY29uZmlndXJhdG9yPy5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG5vWm9uZVJlc2l6ZUVmZmVjdCgpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVzaXplUmVzdWx0ID0gdGhpcy5yZXNpemVSZXN1bHQoKTtcblx0XHRcdGlmIChyZXNpemVSZXN1bHQud2lkdGggPiAwICYmIHJlc2l6ZVJlc3VsdC5oZWlnaHQgPiAwKSB7XG5cdFx0XHRcdGlmICghdGhpcy5jb25maWd1cmF0b3IpIHRoaXMuY29uZmlndXJhdG9yID0gdGhpcy5pbml0Um9vdCh0aGlzLmdsQ2FudmFzKCkubmF0aXZlRWxlbWVudCk7XG5cdFx0XHRcdHRoaXMuY29uZmlndXJhdG9yLmNvbmZpZ3VyZSh7XG5cdFx0XHRcdFx0Z2w6IHRoaXMuZ2woKSxcblx0XHRcdFx0XHRzaGFkb3dzOiB0aGlzLnNoYWRvd3MoKSxcblx0XHRcdFx0XHRsZWdhY3k6IHRoaXMubGVnYWN5KCksXG5cdFx0XHRcdFx0bGluZWFyOiB0aGlzLmxpbmVhcigpLFxuXHRcdFx0XHRcdGZsYXQ6IHRoaXMuZmxhdCgpLFxuXHRcdFx0XHRcdG9ydGhvZ3JhcGhpYzogdGhpcy5vcnRob2dyYXBoaWMoKSxcblx0XHRcdFx0XHRmcmFtZWxvb3A6IHRoaXMuZnJhbWVsb29wKCksXG5cdFx0XHRcdFx0cGVyZm9ybWFuY2U6IHRoaXMucGVyZm9ybWFuY2UoKSxcblx0XHRcdFx0XHRkcHI6IHRoaXMuZHByKCksXG5cdFx0XHRcdFx0cmF5Y2FzdGVyOiB0aGlzLnJheWNhc3RlcigpLFxuXHRcdFx0XHRcdHNjZW5lOiB0aGlzLnNjZW5lKCksXG5cdFx0XHRcdFx0Y2FtZXJhOiB0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XHRcdGV2ZW50czogdGhpcy5ldmVudHMoKSxcblx0XHRcdFx0XHRldmVudFNvdXJjZTogdGhpcy5ldmVudFNvdXJjZSgpLFxuXHRcdFx0XHRcdGV2ZW50UHJlZml4OiB0aGlzLmV2ZW50UHJlZml4KCksXG5cdFx0XHRcdFx0bG9va0F0OiB0aGlzLmxvb2tBdCgpLFxuXHRcdFx0XHRcdHNpemU6IHJlc2l6ZVJlc3VsdCxcblx0XHRcdFx0fSk7XG5cblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5nbFJlZikge1xuXHRcdFx0XHRcdFx0dGhpcy5nbFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMubm9ab25lUmVuZGVyKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVuZGVyKCkge1xuXHRcdC8vIE5PVEU6IGRlc3Ryb3kgcHJldmlvdXMgaW5zdGFuY2VzIGlmIGV4aXN0ZWRcblx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdHRoaXMuZ2xSZWY/LmRlc3Ryb3koKTtcblxuXHRcdC8vIE5PVEU6IEZsYWcgdGhlIGNhbnZhcyBhY3RpdmUsIHJlbmRlcmluZyB3aWxsIG5vdyBiZWdpblxuXHRcdHRoaXMuc3RvcmUudXBkYXRlKChzdGF0ZSkgPT4gKHsgaW50ZXJuYWw6IHsgLi4uc3RhdGUuaW50ZXJuYWwsIGFjdGl2ZTogdHJ1ZSB9IH0pKTtcblxuXHRcdGNvbnN0IFtzdGF0ZSwgZXZlbnRTb3VyY2UsIGV2ZW50UHJlZml4XSA9IFtcblx0XHRcdHRoaXMuc3RvcmUuc25hcHNob3QsXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFNvdXJjZSksXG5cdFx0XHR1bnRyYWNrZWQodGhpcy5ldmVudFByZWZpeCksXG5cdFx0XTtcblxuXHRcdC8vIGNvbm5lY3QgdG8gZXZlbnQgc291cmNlXG5cdFx0c3RhdGUuZXZlbnRzLmNvbm5lY3Q/Lihcblx0XHRcdGV2ZW50U291cmNlID8gKGlzLnJlZihldmVudFNvdXJjZSkgPyBldmVudFNvdXJjZS5uYXRpdmVFbGVtZW50IDogZXZlbnRTb3VyY2UpIDogdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsXG5cdFx0KTtcblxuXHRcdC8vIHNldHVwIGNvbXB1dGUgZm9yIGV2ZW50UHJlZml4XG5cdFx0aWYgKGV2ZW50UHJlZml4KSB7XG5cdFx0XHRzdGF0ZS5zZXRFdmVudHMoe1xuXHRcdFx0XHRjb21wdXRlOiAoZXZlbnQsIHN0b3JlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBwb2ludGVyLCByYXljYXN0ZXIsIGNhbWVyYSwgc2l6ZSB9ID0gc3RvcmUuc25hcHNob3Q7XG5cdFx0XHRcdFx0Y29uc3QgeCA9IGV2ZW50WyhldmVudFByZWZpeCArICdYJykgYXMga2V5b2YgTmd0RG9tRXZlbnRdIGFzIG51bWJlcjtcblx0XHRcdFx0XHRjb25zdCB5ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1knKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdHBvaW50ZXIuc2V0KCh4IC8gc2l6ZS53aWR0aCkgKiAyIC0gMSwgLSh5IC8gc2l6ZS5oZWlnaHQpICogMiArIDEpO1xuXHRcdFx0XHRcdHJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHBvaW50ZXIsIGNhbWVyYSk7XG5cdFx0XHRcdH0sXG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHQvLyBlbWl0IGNyZWF0ZWQgZXZlbnQgaWYgb2JzZXJ2ZWRcblx0XHR0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLnN0b3JlLnNuYXBzaG90KTtcblxuXHRcdGlmICghdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSkge1xuXHRcdFx0dGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycpLmNvbm5lY3Q/Lih1bnRyYWNrZWQodGhpcy5nbENhbnZhcykubmF0aXZlRWxlbWVudCk7XG5cdFx0fVxuXG5cdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yID0gY3JlYXRlRW52aXJvbm1lbnRJbmplY3Rvcihcblx0XHRcdFx0W3Byb3ZpZGVOZ3RSZW5kZXJlcih0aGlzLnN0b3JlLCB1bnRyYWNrZWQodGhpcy5jb21wb3VuZFByZWZpeGVzKSldLFxuXHRcdFx0XHR0aGlzLmVudmlyb25tZW50SW5qZWN0b3IsXG5cdFx0XHQpO1xuXHRcdFx0dGhpcy5nbFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodW50cmFja2VkKHRoaXMuc2NlbmVHcmFwaCksIHtcblx0XHRcdFx0ZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3IsXG5cdFx0XHRcdGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuZ2xSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0dGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKHRoaXMuc2NlbmVHcmFwaElucHV0cygpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lU2NlbmVHcmFwaElucHV0c0VmZmVjdCgpIHtcblx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5zZXRTY2VuZUdyYXBoSW5wdXRzKHRoaXMuc2NlbmVHcmFwaElucHV0cygpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0U2NlbmVHcmFwaElucHV0cyhzY2VuZUdyYXBoSW5wdXRzOiBOZ3RBbnlSZWNvcmQpIHtcblx0XHRpZiAodGhpcy5nbFJlZikge1xuXHRcdFx0Zm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2NlbmVHcmFwaElucHV0cykpIHtcblx0XHRcdFx0dGhpcy5nbFJlZi5zZXRJbnB1dChrZXksIHZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFFBQVEsRUFDUixNQUFNLEVBRU4sZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHlCQUF5QixFQUN6QixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUErQixvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBWWpHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUEyQywyQkFBMkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMvRixPQUFPLEVBQThELFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHaEgsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUE0RmhDLE1BQU0sT0FBTyxTQUFTO0lBZ0RyQjtRQS9DUSxVQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFDdEIsYUFBUSxHQUFHLDJCQUEyQixFQUFFLENBQUM7UUFDekMsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDbkQscUJB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QkFBQztvQkFDVixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDcEIsU0FBUyxFQUFFO3dCQUNWLG9CQUFvQixDQUFDOzRCQUNwQixVQUFVLEVBQUUsS0FBSzs0QkFDakIsaUJBQWlCLEVBQUUsSUFBSTs0QkFDdkIsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO3lCQUNsQixDQUFDO3dCQUNuQixZQUFZLEVBQUU7cUJBQ2Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSw4RUFBOEU7d0JBQ3JGLHVCQUF1QixFQUFFLG1CQUFtQjtxQkFDNUM7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29tcG9uZW50UmVmLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRFbnZpcm9ubWVudEluamVjdG9yLFxuXHRJbmplY3Rvcixcblx0Tmdab25lLFxuXHRUeXBlLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGJvb2xlYW5BdHRyaWJ1dGUsXG5cdGNvbXB1dGVkLFxuXHRjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHRvdXRwdXQsXG5cdHNpZ25hbCxcblx0dW50cmFja2VkLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb3V0cHV0RnJvbU9ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBOZ3hSZXNpemUsIFJlc2l6ZU9wdGlvbnMsIFJlc2l6ZVJlc3VsdCwgcHJvdmlkZVJlc2l6ZU9wdGlvbnMgfSBmcm9tICduZ3h0ZW5zaW9uL3Jlc2l6ZSc7XG5pbXBvcnQge1xuXHRDYW1lcmEsXG5cdE9ydGhvZ3JhcGhpY0NhbWVyYSxcblx0UGVyc3BlY3RpdmVDYW1lcmEsXG5cdFJheWNhc3Rlcixcblx0U2NlbmUsXG5cdFZlY3RvcjMsXG5cdFdlYkdMUmVuZGVyZXIsXG5cdFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzLFxuXHRXZWJHTFNoYWRvd01hcCxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlUG9pbnRlckV2ZW50cyB9IGZyb20gJy4vZG9tL2V2ZW50cyc7XG5pbXBvcnQgeyBOZ3RDYW1lcmEsIE5ndERvbUV2ZW50LCBOZ3RFdmVudE1hbmFnZXIgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBwcm92aWRlTmd0UmVuZGVyZXIgfSBmcm9tICcuL3JlbmRlcmVyJztcbmltcG9ydCB7IE5ndENhbnZhc0NvbmZpZ3VyYXRvciwgTmd0Q2FudmFzRWxlbWVudCwgaW5qZWN0Q2FudmFzUm9vdEluaXRpYWxpemVyIH0gZnJvbSAnLi9yb290cyc7XG5pbXBvcnQgeyBOZ3REcHIsIE5ndFBlcmZvcm1hbmNlLCBOZ3RSZW5kZXJlckxpa2UsIE5ndFNpemUsIE5ndFN0YXRlLCBpbmplY3RTdG9yZSwgcHJvdmlkZVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RPYmplY3QzRE5vZGUgfSBmcm9tICcuL3RocmVlLXR5cGVzJztcbmltcG9ydCB7IE5ndFByb3BlcnRpZXMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi91dGlscy9pcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cblx0fCBOZ3RSZW5kZXJlckxpa2Vcblx0fCAoKGNhbnZhczogTmd0Q2FudmFzRWxlbWVudCkgPT4gTmd0UmVuZGVyZXJMaWtlKVxuXHR8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxXZWJHTFJlbmRlcmVyPiB8IFdlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuXHR8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RDYW52YXNJbnB1dHMge1xuXHQvKiogQSB0aHJlZWpzIHJlbmRlcmVyIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByZW5kZXJlciAqL1xuXHRnbD86IE5ndEdMT3B0aW9ucztcblx0LyoqIERpbWVuc2lvbnMgdG8gZml0IHRoZSByZW5kZXJlciB0by4gV2lsbCBtZWFzdXJlIGNhbnZhcyBkaW1lbnNpb25zIGlmIG9taXR0ZWQgKi9cblx0c2l6ZT86IE5ndFNpemU7XG5cdC8qKlxuXHQgKiBFbmFibGVzIHNoYWRvd3MgKGJ5IGRlZmF1bHQgUENGc29mdCkuIENhbiBhY2NlcHQgYGdsLnNoYWRvd01hcGAgb3B0aW9ucyBmb3IgZmluZS10dW5pbmcsXG5cdCAqIGJ1dCBhbHNvIHN0cmluZ3M6ICdiYXNpYycgfCAncGVyY2VudGFnZScgfCAnc29mdCcgfCAndmFyaWFuY2UnLlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jYXBpL2VuL3JlbmRlcmVycy9XZWJHTFJlbmRlcmVyLnNoYWRvd01hcFxuXHQgKi9cblx0c2hhZG93cz86IGJvb2xlYW4gfCAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJyB8IFBhcnRpYWw8V2ViR0xTaGFkb3dNYXA+O1xuXHQvKipcblx0ICogRGlzYWJsZXMgdGhyZWUgcjEzOSBjb2xvciBtYW5hZ2VtZW50LlxuXHQgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Db2xvci1tYW5hZ2VtZW50XG5cdCAqL1xuXHRsZWdhY3k/OiBib29sZWFuO1xuXHQvKiogU3dpdGNoIG9mZiBhdXRvbWF0aWMgc1JHQiBjb2xvciBzcGFjZSBhbmQgZ2FtbWEgY29ycmVjdGlvbiAqL1xuXHRsaW5lYXI/OiBib29sZWFuO1xuXHQvKiogVXNlIGBUSFJFRS5Ob1RvbmVNYXBwaW5nYCBpbnN0ZWFkIG9mIGBUSFJFRS5BQ0VTRmlsbWljVG9uZU1hcHBpbmdgICovXG5cdGZsYXQ/OiBib29sZWFuO1xuXHQvKiogQ3JlYXRlcyBhbiBvcnRob2dyYXBoaWMgY2FtZXJhICovXG5cdG9ydGhvZ3JhcGhpYz86IGJvb2xlYW47XG5cdC8qKlxuXHQgKiBSM0YncyByZW5kZXIgbW9kZS4gU2V0IHRvIGBkZW1hbmRgIHRvIG9ubHkgcmVuZGVyIG9uIHN0YXRlIGNoYW5nZSBvciBgbmV2ZXJgIHRvIHRha2UgY29udHJvbC5cblx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hZHZhbmNlZC9zY2FsaW5nLXBlcmZvcm1hbmNlI29uLWRlbWFuZC1yZW5kZXJpbmdcblx0ICovXG5cdGZyYW1lbG9vcD86ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInO1xuXHQvKipcblx0ICogUjNGIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIGFkYXB0aXZlIHBlcmZvcm1hbmNlLlxuXHQgKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FkdmFuY2VkL3NjYWxpbmctcGVyZm9ybWFuY2UjbW92ZW1lbnQtcmVncmVzc2lvblxuXHQgKi9cblx0cGVyZm9ybWFuY2U/OiBQYXJ0aWFsPE9taXQ8Tmd0UGVyZm9ybWFuY2UsICdyZWdyZXNzJz4+O1xuXHQvKiogVGFyZ2V0IHBpeGVsIHJhdGlvLiBDYW4gY2xhbXAgYmV0d2VlbiBhIHJhbmdlOiBgW21pbiwgbWF4XWAgKi9cblx0ZHByPzogTmd0RHByO1xuXHQvKiogUHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHJheWNhc3RlciAqL1xuXHRyYXljYXN0ZXI/OiBQYXJ0aWFsPFJheWNhc3Rlcj47XG5cdC8qKiBBIGBTY2VuZWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHNjZW5lICovXG5cdHNjZW5lPzogU2NlbmUgfCBQYXJ0aWFsPFNjZW5lPjtcblx0LyoqIEEgYENhbWVyYWAgaW5zdGFuY2Ugb3IgcHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IGNhbWVyYSAqL1xuXHRjYW1lcmE/OiAoXG5cdFx0fCBOZ3RDYW1lcmFcblx0XHR8IFBhcnRpYWw8XG5cdFx0XHRcdE5ndE9iamVjdDNETm9kZTxDYW1lcmEsIHR5cGVvZiBDYW1lcmE+ICZcblx0XHRcdFx0XHROZ3RPYmplY3QzRE5vZGU8UGVyc3BlY3RpdmVDYW1lcmEsIHR5cGVvZiBQZXJzcGVjdGl2ZUNhbWVyYT4gJlxuXHRcdFx0XHRcdE5ndE9iamVjdDNETm9kZTxPcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBPcnRob2dyYXBoaWNDYW1lcmE+XG5cdFx0ICA+XG5cdCkgJiB7XG5cdFx0LyoqIEZsYWdzIHRoZSBjYW1lcmEgYXMgbWFudWFsLCBwdXR0aW5nIHByb2plY3Rpb24gaW50byB5b3VyIG93biBoYW5kcyAqL1xuXHRcdG1hbnVhbD86IGJvb2xlYW47XG5cdH07XG5cdC8qKiBBbiBSM0YgZXZlbnQgbWFuYWdlciB0byBtYW5hZ2UgZWxlbWVudHMnIHBvaW50ZXIgZXZlbnRzICovXG5cdGV2ZW50cz86IChzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIHRhcmdldCB3aGVyZSBldmVudHMgYXJlIGJlaW5nIHN1YnNjcmliZWQgdG8sIGRlZmF1bHQ6IHRoZSBkaXYgdGhhdCB3cmFwcyBjYW52YXMgKi9cblx0ZXZlbnRTb3VyY2U/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXHQvKiogVGhlIGV2ZW50IHByZWZpeCB0aGF0IGlzIGNhc3QgaW50byBjYW52YXMgcG9pbnRlciB4L3kgZXZlbnRzLCBkZWZhdWx0OiBcIm9mZnNldFwiICovXG5cdGV2ZW50UHJlZml4PzogJ29mZnNldCcgfCAnY2xpZW50JyB8ICdwYWdlJyB8ICdsYXllcicgfCAnc2NyZWVuJztcblx0LyoqIERlZmF1bHQgY29vcmRpbmF0ZSBmb3IgdGhlIGNhbWVyYSB0byBsb29rIGF0ICovXG5cdGxvb2tBdD86IFZlY3RvcjMgfCBQYXJhbWV0ZXJzPFZlY3RvcjNbJ3NldCddPjtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0LWNhbnZhcycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGRpdiAobmd4UmVzaXplKT1cInJlc2l6ZVJlc3VsdC5zZXQoJGV2ZW50KVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcIj5cblx0XHRcdDxjYW52YXMgI2dsQ2FudmFzIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7XCI+PC9jYW52YXM+XG5cdFx0PC9kaXY+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3hSZXNpemVdLFxuXHRwcm92aWRlcnM6IFtcblx0XHRwcm92aWRlUmVzaXplT3B0aW9ucyh7XG5cdFx0XHRlbWl0SW5ab25lOiBmYWxzZSxcblx0XHRcdGVtaXRJbml0aWFsUmVzdWx0OiB0cnVlLFxuXHRcdFx0ZGVib3VuY2U6IHsgc2Nyb2xsOiA1MCwgcmVzaXplOiAwIH0sXG5cdFx0fSBhcyBSZXNpemVPcHRpb25zKSxcblx0XHRwcm92aWRlU3RvcmUoKSxcblx0XSxcblx0aG9zdDoge1xuXHRcdHN0eWxlOiAnZGlzcGxheTogYmxvY2s7cG9zaXRpb246IHJlbGF0aXZlO3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTtvdmVyZmxvdzogaGlkZGVuOycsXG5cdFx0J1tzdHlsZS5wb2ludGVyRXZlbnRzXSc6ICdoYlBvaW50ZXJFdmVudHMoKScsXG5cdH0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDYW52YXMge1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbml0Um9vdCA9IGluamVjdENhbnZhc1Jvb3RJbml0aWFsaXplcigpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0cHJpdmF0ZSBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblx0cHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXHRwcml2YXRlIHpvbmUgPSBpbmplY3QoTmdab25lKTtcblx0cHJpdmF0ZSBlbnZpcm9ubWVudEluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuXHRzY2VuZUdyYXBoID0gaW5wdXQucmVxdWlyZWQ8VHlwZTxhbnk+PigpO1xuXHRnbCA9IGlucHV0PE5ndEdMT3B0aW9ucz4oKTtcblx0c2l6ZSA9IGlucHV0PE5ndFNpemU+KCk7XG5cdHNoYWRvd3MgPSBpbnB1dChmYWxzZSwge1xuXHRcdHRyYW5zZm9ybTogKHZhbHVlKSA9PiB7XG5cdFx0XHRpZiAodmFsdWUgPT09ICcnKSByZXR1cm4gYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSk7XG5cdFx0XHRyZXR1cm4gdmFsdWUgYXMgTm9uTnVsbGFibGU8Tmd0Q2FudmFzSW5wdXRzWydzaGFkb3dzJ10+O1xuXHRcdH0sXG5cdH0pO1xuXHRsZWdhY3kgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cdGxpbmVhciA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0ZmxhdCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblx0b3J0aG9ncmFwaGljID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXHRmcmFtZWxvb3AgPSBpbnB1dDxOb25OdWxsYWJsZTxOZ3RDYW52YXNJbnB1dHNbJ2ZyYW1lbG9vcCddPj4oJ2Fsd2F5cycpO1xuXHRwZXJmb3JtYW5jZSA9IGlucHV0PFBhcnRpYWw8T21pdDxOZ3RQZXJmb3JtYW5jZSwgJ3JlZ3Jlc3MnPj4+KCk7XG5cdGRwciA9IGlucHV0PE5ndERwcj4oWzEsIDJdKTtcblx0cmF5Y2FzdGVyID0gaW5wdXQ8UGFydGlhbDxSYXljYXN0ZXI+PigpO1xuXHRzY2VuZSA9IGlucHV0PFNjZW5lIHwgUGFydGlhbDxTY2VuZT4+KCk7XG5cdGNhbWVyYSA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc0lucHV0c1snY2FtZXJhJ10+PigpO1xuXHRldmVudHMgPSBpbnB1dChjcmVhdGVQb2ludGVyRXZlbnRzKTtcblx0ZXZlbnRTb3VyY2UgPSBpbnB1dDxIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigpO1xuXHRldmVudFByZWZpeCA9IGlucHV0PE5vbk51bGxhYmxlPE5ndENhbnZhc0lucHV0c1snZXZlbnRQcmVmaXgnXT4+KCdvZmZzZXQnKTtcblx0bG9va0F0ID0gaW5wdXQ8VmVjdG9yMyB8IFBhcmFtZXRlcnM8VmVjdG9yM1snc2V0J10+PigpO1xuXHRjcmVhdGVkID0gb3V0cHV0PE5ndFN0YXRlPigpO1xuXHRwb2ludGVyTWlzc2VkID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5zdG9yZS5nZXQoJ3BvaW50ZXJNaXNzZWQkJykpO1xuXG5cdGdsQ2FudmFzID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTENhbnZhc0VsZW1lbnQ+PignZ2xDYW52YXMnKTtcblx0Z2xDYW52YXNWaWV3Q29udGFpbmVyUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdnbENhbnZhcycsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KTtcblxuXHQvLyBOT1RFOiB0aGlzIHNpZ25hbCBpcyB1cGRhdGVkIG91dHNpZGUgb2YgWm9uZVxuXHRwcm90ZWN0ZWQgcmVzaXplUmVzdWx0ID0gc2lnbmFsPFJlc2l6ZVJlc3VsdD4oe30gYXMgUmVzaXplUmVzdWx0LCB7IGVxdWFsOiBPYmplY3QuaXMgfSk7XG5cdHByb3RlY3RlZCBoYlBvaW50ZXJFdmVudHMgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5ldmVudFNvdXJjZSgpID8gJ25vbmUnIDogJ2F1dG8nKSk7XG5cblx0cHJpdmF0ZSBjb25maWd1cmF0b3I/OiBOZ3RDYW52YXNDb25maWd1cmF0b3I7XG5cdHByaXZhdGUgZ2xFbnZpcm9ubWVudEluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3Rvcjtcblx0cHJpdmF0ZSBnbFJlZj86IENvbXBvbmVudFJlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5ub1pvbmVSZXNpemVFZmZlY3QoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0aGlzLmdsUmVmPy5kZXN0cm95KCk7XG5cdFx0XHR0aGlzLmdsRW52aXJvbm1lbnRJbmplY3Rvcj8uZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5jb25maWd1cmF0b3I/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbm9ab25lUmVzaXplRWZmZWN0KCkge1xuXHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCByZXNpemVSZXN1bHQgPSB0aGlzLnJlc2l6ZVJlc3VsdCgpO1xuXHRcdFx0aWYgKHJlc2l6ZVJlc3VsdC53aWR0aCA+IDAgJiYgcmVzaXplUmVzdWx0LmhlaWdodCA+IDApIHtcblx0XHRcdFx0aWYgKCF0aGlzLmNvbmZpZ3VyYXRvcikgdGhpcy5jb25maWd1cmF0b3IgPSB0aGlzLmluaXRSb290KHRoaXMuZ2xDYW52YXMoKS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0dGhpcy5jb25maWd1cmF0b3IuY29uZmlndXJlKHtcblx0XHRcdFx0XHRnbDogdGhpcy5nbCgpLFxuXHRcdFx0XHRcdHNoYWRvd3M6IHRoaXMuc2hhZG93cygpLFxuXHRcdFx0XHRcdGxlZ2FjeTogdGhpcy5sZWdhY3koKSxcblx0XHRcdFx0XHRsaW5lYXI6IHRoaXMubGluZWFyKCksXG5cdFx0XHRcdFx0ZmxhdDogdGhpcy5mbGF0KCksXG5cdFx0XHRcdFx0b3J0aG9ncmFwaGljOiB0aGlzLm9ydGhvZ3JhcGhpYygpLFxuXHRcdFx0XHRcdGZyYW1lbG9vcDogdGhpcy5mcmFtZWxvb3AoKSxcblx0XHRcdFx0XHRwZXJmb3JtYW5jZTogdGhpcy5wZXJmb3JtYW5jZSgpLFxuXHRcdFx0XHRcdGRwcjogdGhpcy5kcHIoKSxcblx0XHRcdFx0XHRyYXljYXN0ZXI6IHRoaXMucmF5Y2FzdGVyKCksXG5cdFx0XHRcdFx0c2NlbmU6IHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0XHRjYW1lcmE6IHRoaXMuY2FtZXJhKCksXG5cdFx0XHRcdFx0ZXZlbnRzOiB0aGlzLmV2ZW50cygpLFxuXHRcdFx0XHRcdGV2ZW50U291cmNlOiB0aGlzLmV2ZW50U291cmNlKCksXG5cdFx0XHRcdFx0ZXZlbnRQcmVmaXg6IHRoaXMuZXZlbnRQcmVmaXgoKSxcblx0XHRcdFx0XHRsb29rQXQ6IHRoaXMubG9va0F0KCksXG5cdFx0XHRcdFx0c2l6ZTogcmVzaXplUmVzdWx0LFxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdGlmICh0aGlzLmdsUmVmKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5ub1pvbmVSZW5kZXIoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBub1pvbmVSZW5kZXIoKSB7XG5cdFx0Ly8gTk9URTogZGVzdHJveSBwcmV2aW91cyBpbnN0YW5jZXMgaWYgZXhpc3RlZFxuXHRcdHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yPy5kZXN0cm95KCk7XG5cdFx0dGhpcy5nbFJlZj8uZGVzdHJveSgpO1xuXG5cdFx0Ly8gTk9URTogRmxhZyB0aGUgY2FudmFzIGFjdGl2ZSwgcmVuZGVyaW5nIHdpbGwgbm93IGJlZ2luXG5cdFx0dGhpcy5zdG9yZS51cGRhdGUoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiB0cnVlIH0gfSkpO1xuXG5cdFx0Y29uc3QgW3N0YXRlLCBldmVudFNvdXJjZSwgZXZlbnRQcmVmaXhdID0gW1xuXHRcdFx0dGhpcy5zdG9yZS5zbmFwc2hvdCxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50U291cmNlKSxcblx0XHRcdHVudHJhY2tlZCh0aGlzLmV2ZW50UHJlZml4KSxcblx0XHRdO1xuXG5cdFx0Ly8gY29ubmVjdCB0byBldmVudCBzb3VyY2Vcblx0XHRzdGF0ZS5ldmVudHMuY29ubmVjdD8uKFxuXHRcdFx0ZXZlbnRTb3VyY2UgPyAoaXMucmVmKGV2ZW50U291cmNlKSA/IGV2ZW50U291cmNlLm5hdGl2ZUVsZW1lbnQgOiBldmVudFNvdXJjZSkgOiB0aGlzLmhvc3QubmF0aXZlRWxlbWVudCxcblx0XHQpO1xuXG5cdFx0Ly8gc2V0dXAgY29tcHV0ZSBmb3IgZXZlbnRQcmVmaXhcblx0XHRpZiAoZXZlbnRQcmVmaXgpIHtcblx0XHRcdHN0YXRlLnNldEV2ZW50cyh7XG5cdFx0XHRcdGNvbXB1dGU6IChldmVudCwgc3RvcmUpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IHBvaW50ZXIsIHJheWNhc3RlciwgY2FtZXJhLCBzaXplIH0gPSBzdG9yZS5zbmFwc2hvdDtcblx0XHRcdFx0XHRjb25zdCB4ID0gZXZlbnRbKGV2ZW50UHJlZml4ICsgJ1gnKSBhcyBrZXlvZiBOZ3REb21FdmVudF0gYXMgbnVtYmVyO1xuXHRcdFx0XHRcdGNvbnN0IHkgPSBldmVudFsoZXZlbnRQcmVmaXggKyAnWScpIGFzIGtleW9mIE5ndERvbUV2ZW50XSBhcyBudW1iZXI7XG5cdFx0XHRcdFx0cG9pbnRlci5zZXQoKHggLyBzaXplLndpZHRoKSAqIDIgLSAxLCAtKHkgLyBzaXplLmhlaWdodCkgKiAyICsgMSk7XG5cdFx0XHRcdFx0cmF5Y2FzdGVyLnNldEZyb21DYW1lcmEocG9pbnRlciwgY2FtZXJhKTtcblx0XHRcdFx0fSxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdC8vIGVtaXQgY3JlYXRlZCBldmVudCBpZiBvYnNlcnZlZFxuXHRcdHRoaXMuY3JlYXRlZC5lbWl0KHRoaXMuc3RvcmUuc25hcHNob3QpO1xuXG5cdFx0aWYgKCF0aGlzLnN0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpKSB7XG5cdFx0XHR0aGlzLnN0b3JlLmdldCgnZXZlbnRzJykuY29ubmVjdD8uKHVudHJhY2tlZCh0aGlzLmdsQ2FudmFzKS5uYXRpdmVFbGVtZW50KTtcblx0XHR9XG5cblx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0dGhpcy5nbEVudmlyb25tZW50SW5qZWN0b3IgPSBjcmVhdGVFbnZpcm9ubWVudEluamVjdG9yKFxuXHRcdFx0XHRbcHJvdmlkZU5ndFJlbmRlcmVyKHRoaXMuc3RvcmUpXSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdFx0KTtcblx0XHRcdHRoaXMuZ2xSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHVudHJhY2tlZCh0aGlzLnNjZW5lR3JhcGgpLCB7XG5cdFx0XHRcdGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuZ2xFbnZpcm9ubWVudEluamVjdG9yLFxuXHRcdFx0XHRpbmplY3RvcjogdGhpcy5pbmplY3Rvcixcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmdsUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,23 +1,61 @@
1
- import { Directive, input } from '@angular/core';
2
- import { NgtCommonDirective, provideNodeType } from './common';
1
+ import { afterNextRender, DestroyRef, Directive, inject, input, NgZone, TemplateRef, untracked, ViewContainerRef, } from '@angular/core';
2
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
3
+ import { SPECIAL_INTERNAL_ADD_COMMENT } from '../renderer/constants';
3
4
  import * as i0 from "@angular/core";
4
- export class NgtArgs extends NgtCommonDirective {
5
+ export class NgtArgs {
5
6
  constructor() {
6
- super(...arguments);
7
7
  this.args = input.required();
8
- this.inputValue = this.args;
8
+ this.vcr = inject(ViewContainerRef);
9
+ this.zone = inject(NgZone);
10
+ this.template = inject(TemplateRef);
11
+ this.autoEffect = injectAutoEffect();
12
+ this.injected = false;
13
+ this.injectedArgs = null;
14
+ const commentNode = this.vcr.element.nativeElement;
15
+ if (commentNode[SPECIAL_INTERNAL_ADD_COMMENT]) {
16
+ commentNode[SPECIAL_INTERNAL_ADD_COMMENT]('args');
17
+ delete commentNode[SPECIAL_INTERNAL_ADD_COMMENT];
18
+ }
19
+ afterNextRender(() => {
20
+ this.autoEffect(() => {
21
+ const value = this.args();
22
+ if (value == null || !Array.isArray(value) || (value.length === 1 && value[0] === null))
23
+ return;
24
+ this.injected = false;
25
+ this.injectedArgs = value;
26
+ untracked(() => {
27
+ this.createView();
28
+ });
29
+ });
30
+ });
31
+ inject(DestroyRef).onDestroy(() => {
32
+ this.view?.destroy();
33
+ });
9
34
  }
10
- shouldSkipCreateView(value) {
11
- return value == null || !Array.isArray(value) || (value.length === 1 && value[0] === null);
35
+ get value() {
36
+ if (this.validate()) {
37
+ this.injected = true;
38
+ return this.injectedArgs;
39
+ }
40
+ return null;
12
41
  }
13
42
  validate() {
14
- return !this.injected && !!this.injectedValue?.length;
43
+ return !this.injected && !!this.injectedArgs?.length;
15
44
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtArgs, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: NgtArgs, isStandalone: true, selector: "ng-template[args]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideNodeType('args')], usesInheritance: true, ngImport: i0 }); }
45
+ createView() {
46
+ this.zone.runOutsideAngular(() => {
47
+ if (this.view && !this.view.destroyed) {
48
+ this.view.destroy();
49
+ }
50
+ this.view = this.vcr.createEmbeddedView(this.template);
51
+ this.view.detectChanges();
52
+ });
53
+ }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgtArgs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.6", type: NgtArgs, isStandalone: true, selector: "ng-template[args]", inputs: { args: { classPropertyName: "args", publicName: "args", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
18
56
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtArgs, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgtArgs, decorators: [{
20
58
  type: Directive,
21
- args: [{ selector: 'ng-template[args]', standalone: true, providers: [provideNodeType('args')] }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUcvRCxNQUFNLE9BQU8sT0FBcUMsU0FBUSxrQkFBeUI7SUFEbkY7O1FBRUMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFFbkIsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7S0FTMUM7SUFQbUIsb0JBQW9CLENBQUMsS0FBbUI7UUFDMUQsT0FBTyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRUQsUUFBUTtRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN2RCxDQUFDOzhHQVhXLE9BQU87a0dBQVAsT0FBTyxnTUFEcUQsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7OzJGQUNyRixPQUFPO2tCQURuQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RDb21tb25EaXJlY3RpdmUsIHByb3ZpZGVOb2RlVHlwZSB9IGZyb20gJy4vY29tbW9uJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXJnc10nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtwcm92aWRlTm9kZVR5cGUoJ2FyZ3MnKV0gfSlcbmV4cG9ydCBjbGFzcyBOZ3RBcmdzPFRBcmdzIGV4dGVuZHMgYW55W10gPSBhbnlbXT4gZXh0ZW5kcyBOZ3RDb21tb25EaXJlY3RpdmU8VEFyZ3M+IHtcblx0YXJncyA9IGlucHV0LnJlcXVpcmVkPFRBcmdzIHwgbnVsbD4oKTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgaW5wdXRWYWx1ZSA9IHRoaXMuYXJncztcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkU2tpcENyZWF0ZVZpZXcodmFsdWU6IFRBcmdzIHwgbnVsbCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB2YWx1ZSA9PSBudWxsIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCAodmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdID09PSBudWxsKTtcblx0fVxuXG5cdHZhbGlkYXRlKCkge1xuXHRcdHJldHVybiAhdGhpcy5pbmplY3RlZCAmJiAhIXRoaXMuaW5qZWN0ZWRWYWx1ZT8ubGVuZ3RoO1xuXHR9XG59XG4iXX0=
59
+ args: [{ selector: 'ng-template[args]', standalone: true }]
60
+ }], ctorParameters: () => [] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvYXJncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLFVBQVUsRUFDVixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVCxnQkFBZ0IsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBR3JFLE1BQU0sT0FBTyxPQUFPO0lBWW5CO1FBWEEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFFOUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9CLFNBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUU5QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGlCQUFZLEdBQWlCLElBQUksQ0FBQztRQUkzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDbkQsSUFBSSxXQUFXLENBQUMsNEJBQTRCLENBQUMsRUFBRSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELE9BQU8sV0FBVyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7b0JBQUUsT0FBTztnQkFDaEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsUUFBUTtRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUN0RCxDQUFDO0lBRU8sVUFBVTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXhEVyxPQUFPO2tHQUFQLE9BQU87OzJGQUFQLE9BQU87a0JBRG5CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdGFmdGVyTmV4dFJlbmRlcixcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdGluamVjdCxcblx0aW5wdXQsXG5cdE5nWm9uZSxcblx0VGVtcGxhdGVSZWYsXG5cdHVudHJhY2tlZCxcblx0Vmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBTUEVDSUFMX0lOVEVSTkFMX0FERF9DT01NRU5UIH0gZnJvbSAnLi4vcmVuZGVyZXIvY29uc3RhbnRzJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXJnc10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0QXJnczxUQXJncyBleHRlbmRzIGFueVtdID0gYW55W10+IHtcblx0YXJncyA9IGlucHV0LnJlcXVpcmVkPFRBcmdzIHwgbnVsbD4oKTtcblxuXHRwcml2YXRlIHZjciA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblx0cHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cdHByaXZhdGUgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0cHJvdGVjdGVkIGluamVjdGVkID0gZmFsc2U7XG5cdHByb3RlY3RlZCBpbmplY3RlZEFyZ3M6IFRBcmdzIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgdmlldz86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBjb21tZW50Tm9kZSA9IHRoaXMudmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF0pIHtcblx0XHRcdGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKCdhcmdzJyk7XG5cdFx0XHRkZWxldGUgY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF07XG5cdFx0fVxuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5hcmdzKCk7XG5cdFx0XHRcdGlmICh2YWx1ZSA9PSBudWxsIHx8ICFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCAodmFsdWUubGVuZ3RoID09PSAxICYmIHZhbHVlWzBdID09PSBudWxsKSkgcmV0dXJuO1xuXHRcdFx0XHR0aGlzLmluamVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuaW5qZWN0ZWRBcmdzID0gdmFsdWU7XG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5jcmVhdGVWaWV3KCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHRoaXMudmlldz8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0Z2V0IHZhbHVlKCkge1xuXHRcdGlmICh0aGlzLnZhbGlkYXRlKCkpIHtcblx0XHRcdHRoaXMuaW5qZWN0ZWQgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIHRoaXMuaW5qZWN0ZWRBcmdzO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHZhbGlkYXRlKCkge1xuXHRcdHJldHVybiAhdGhpcy5pbmplY3RlZCAmJiAhIXRoaXMuaW5qZWN0ZWRBcmdzPy5sZW5ndGg7XG5cdH1cblxuXHRwcml2YXRlIGNyZWF0ZVZpZXcoKSB7XG5cdFx0dGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcblx0XHRcdGlmICh0aGlzLnZpZXcgJiYgIXRoaXMudmlldy5kZXN0cm95ZWQpIHtcblx0XHRcdFx0dGhpcy52aWV3LmRlc3Ryb3koKTtcblx0XHRcdH1cblx0XHRcdHRoaXMudmlldyA9IHRoaXMudmNyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcblx0XHRcdHRoaXMudmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -6,16 +6,21 @@ export function getLocalState(obj) {
6
6
  return obj['__ngt__'];
7
7
  }
8
8
  export function invalidateInstance(instance) {
9
- const state = getLocalState(instance)?.store.snapshot;
10
- if (state && state.internal.frames === 0)
11
- state.invalidate();
9
+ let store = getLocalState(instance)?.store;
10
+ if (store) {
11
+ while (store.snapshot.previousRoot) {
12
+ store = store.snapshot.previousRoot;
13
+ }
14
+ if (store.snapshot.internal.frames === 0) {
15
+ store.snapshot.invalidate();
16
+ }
17
+ }
12
18
  checkUpdate(instance);
13
19
  }
14
20
  export function prepare(object, localState) {
15
21
  const instance = object;
16
22
  if (localState?.primitive || !instance.__ngt__) {
17
23
  const { instanceStore = signalStore({
18
- nativeProps: {},
19
24
  parent: null,
20
25
  objects: [],
21
26
  nonObjects: [],
@@ -30,7 +35,6 @@ export function prepare(object, localState) {
30
35
  parent: instanceStore.select('parent'),
31
36
  objects: instanceStore.select('objects'),
32
37
  nonObjects: instanceStore.select('nonObjects'),
33
- nativeProps: instanceStore.select('nativeProps'),
34
38
  add(object, type) {
35
39
  const current = instance.__ngt__.instanceStore.get(type);
36
40
  const foundIndex = current.indexOf((node) => object === node);
@@ -47,9 +51,6 @@ export function prepare(object, localState) {
47
51
  instance.__ngt__.instanceStore.update((prev) => ({ [type]: prev[type].filter((node) => node !== object) }));
48
52
  notifyAncestors(instance.__ngt__.instanceStore.get('parent'));
49
53
  },
50
- setNativeProps(key, value) {
51
- instance.__ngt__.instanceStore.update((prev) => ({ nativeProps: { ...prev.nativeProps, [key]: value } }));
52
- },
53
54
  setParent(parent) {
54
55
  instance.__ngt__.instanceStore.update({ parent });
55
56
  },
@@ -67,4 +68,4 @@ function notifyAncestors(instance) {
67
68
  localState.instanceStore.update((prev) => ({ objects: prev.objects, nonObjects: prev.nonObjects }));
68
69
  notifyAncestors(localState.instanceStore.get('parent'));
69
70
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQTJEN0MsTUFBTSxVQUFVLGFBQWEsQ0FBMkIsR0FBMEI7SUFDakYsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMzQixPQUFRLEdBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBMkIsUUFBbUI7SUFDL0UsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDdEQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3RCxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQ3RCLE1BQWlCLEVBQ2pCLFVBQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLE1BQStDLENBQUM7SUFFakUsSUFBSSxVQUFVLEVBQUUsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELE1BQU0sRUFDTCxhQUFhLEdBQUcsV0FBVyxDQUF3QjtZQUNsRCxXQUFXLEVBQUUsRUFBRTtZQUNmLE1BQU0sRUFBRSxJQUFJO1lBQ1osT0FBTyxFQUFFLEVBQUU7WUFDWCxVQUFVLEVBQUUsRUFBRTtTQUNkLENBQUMsRUFDRixHQUFHLElBQUksRUFDUCxHQUFHLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFckIsUUFBUSxDQUFDLE9BQU8s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Q0FBQyxVQUFVO1FBQUUsT0FBTztJQUN4QixVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLGVBQWUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5ndEV2ZW50SGFuZGxlcnMgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBOZ3RTdGF0ZSB9IGZyb20gJy4vc3RvcmUnO1xuaW1wb3J0IHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSwgc2lnbmFsU3RvcmUgfSBmcm9tICcuL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXRpbHMvdXBkYXRlJztcblxuZXhwb3J0IHR5cGUgTmd0QXR0YWNoRnVuY3Rpb248VENoaWxkID0gYW55LCBUUGFyZW50ID0gYW55PiA9IChcblx0cGFyZW50OiBUUGFyZW50LFxuXHRjaGlsZDogVENoaWxkLFxuXHRzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuKSA9PiB2b2lkIHwgKCgpID0+IHZvaWQpO1xuXG5leHBvcnQgdHlwZSBOZ3RBZnRlckF0dGFjaDxcblx0VENoaWxkIGV4dGVuZHMgTmd0SW5zdGFuY2VOb2RlID0gTmd0SW5zdGFuY2VOb2RlLFxuXHRUUGFyZW50IGV4dGVuZHMgTmd0SW5zdGFuY2VOb2RlID0gTmd0SW5zdGFuY2VOb2RlLFxuPiA9IHsgcGFyZW50OiBUUGFyZW50OyBub2RlOiBUQ2hpbGQgfTtcblxuZXhwb3J0IHR5cGUgTmd0TG9jYWxJbnN0YW5jZVN0YXRlID0ge1xuXHRvYmplY3RzOiBOZ3RJbnN0YW5jZU5vZGVbXTtcblx0bm9uT2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbDtcblx0bmF0aXZlUHJvcHM6IE5ndEFueVJlY29yZDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndExvY2FsU3RhdGUgPSB7XG5cdC8qKiB0aGUgc3RvcmUgb2YgdGhlIGNhbnZhcyB0aGF0IHRoZSBpbnN0YW5jZSBpcyBiZWluZyByZW5kZXJlZCB0byAqL1xuXHRzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuXHQvLyBvYmplY3RzIHJlbGF0ZWQgdG8gdGhpcyBpbnN0YW5jZVxuXHRpbnN0YW5jZVN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+O1xuXHQvLyBzaG9ydGN1dCB0byBzaWduYWxzXG5cdHBhcmVudDogU2lnbmFsPE5ndExvY2FsSW5zdGFuY2VTdGF0ZVsncGFyZW50J10+O1xuXHRvYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydvYmplY3RzJ10+O1xuXHRub25PYmplY3RzOiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydub25PYmplY3RzJ10+O1xuXHRuYXRpdmVQcm9wczogU2lnbmFsPE5ndExvY2FsSW5zdGFuY2VTdGF0ZVsnbmF0aXZlUHJvcHMnXT47XG5cdC8vIHNob3J0Y3V0IHRvIGFkZC9yZW1vdmUgb2JqZWN0IHRvIGxpc3Rcblx0YWRkOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRyZW1vdmU6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG5cdHNldE5hdGl2ZVByb3BzOiAoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHZvaWQ7XG5cdHNldFBhcmVudDogKHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkgPT4gdm9pZDtcblx0Ly8gaWYgdGhpcyBUSFJFRSBpbnN0YW5jZSBpcyBhIG5ndC1wcmltaXRpdmVcblx0cHJpbWl0aXZlPzogYm9vbGVhbjtcblx0Ly8gaWYgdGhpcyBUSFJFRSBvYmplY3QgaGFzIGFueSBldmVudHMgYm91bmQgdG8gaXRcblx0ZXZlbnRDb3VudDogbnVtYmVyO1xuXHQvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG5cdGhhbmRsZXJzOiBQYXJ0aWFsPE5ndEV2ZW50SGFuZGxlcnM+O1xuXHQvLyBwcmV2aW91cyBhcmdzXG5cdGFyZ3M/OiB1bmtub3duW107XG5cdC8vIGF0dGFjaCBpbmZvcm1hdGlvbiBzbyB0aGF0IHdlIGNhbiBkZXRhY2ggYXMgd2VsbCBhcyByZXNldFxuXHRhdHRhY2g/OiBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuXHQvLyBwcmV2aW91c2x5IGF0dGFjaCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4gcmVzZXQgYXMgd2VsbCBhcyBjbGVhbiB1cFxuXHRwcmV2aW91c0F0dGFjaD86IHVua25vd24gfCAoKCkgPT4gdm9pZCk7XG5cdC8vIGlzIHJhdyB2YWx1ZVxuXHRpc1Jhdz86IGJvb2xlYW47XG5cdC8vIHByaW9yaXR5IGZvciBiZWZvcmUgcmVuZGVyXG5cdHByaW9yaXR5PzogbnVtYmVyO1xuXHQvLyBlbWl0dGVyIGFmdGVyIHByb3BzIHVwZGF0ZVxuXHRhZnRlclVwZGF0ZT86IFJlcGxheVN1YmplY3Q8Tmd0SW5zdGFuY2VOb2RlPjtcblx0Ly8gZW1pdHRlciBhZnRlciBhdHRhY2hpbmcgdG8gcGFyZW50XG5cdGFmdGVyQXR0YWNoPzogUmVwbGF5U3ViamVjdDxOZ3RBZnRlckF0dGFjaD47XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZU5vZGU8VE5vZGUgPSBhbnk+ID0geyBfX25ndF9fOiBOZ3RMb2NhbFN0YXRlIH0gJiBOZ3RBbnlSZWNvcmQgJiBUTm9kZTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsU3RhdGU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihvYmo6IFRJbnN0YW5jZSB8IHVuZGVmaW5lZCk6IE5ndExvY2FsU3RhdGUgfCB1bmRlZmluZWQge1xuXHRpZiAoIW9iaikgcmV0dXJuIHVuZGVmaW5lZDtcblx0cmV0dXJuIChvYmogYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfXyddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZGF0ZUluc3RhbmNlPFRJbnN0YW5jZSBleHRlbmRzIG9iamVjdD4oaW5zdGFuY2U6IFRJbnN0YW5jZSkge1xuXHRjb25zdCBzdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpPy5zdG9yZS5zbmFwc2hvdDtcblx0aWYgKHN0YXRlICYmIHN0YXRlLmludGVybmFsLmZyYW1lcyA9PT0gMCkgc3RhdGUuaW52YWxpZGF0ZSgpO1xuXHRjaGVja1VwZGF0ZShpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlPFRJbnN0YW5jZSBleHRlbmRzIG9iamVjdCA9IE5ndEFueVJlY29yZD4oXG5cdG9iamVjdDogVEluc3RhbmNlLFxuXHRsb2NhbFN0YXRlPzogUGFydGlhbDxOZ3RMb2NhbFN0YXRlPixcbikge1xuXHRjb25zdCBpbnN0YW5jZSA9IG9iamVjdCBhcyB1bmtub3duIGFzIE5ndEluc3RhbmNlTm9kZTxUSW5zdGFuY2U+O1xuXG5cdGlmIChsb2NhbFN0YXRlPy5wcmltaXRpdmUgfHwgIWluc3RhbmNlLl9fbmd0X18pIHtcblx0XHRjb25zdCB7XG5cdFx0XHRpbnN0YW5jZVN0b3JlID0gc2lnbmFsU3RvcmU8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlPih7XG5cdFx0XHRcdG5hdGl2ZVByb3BzOiB7fSxcblx0XHRcdFx0cGFyZW50OiBudWxsLFxuXHRcdFx0XHRvYmplY3RzOiBbXSxcblx0XHRcdFx0bm9uT2JqZWN0czogW10sXG5cdFx0XHR9KSxcblx0XHRcdC4uLnJlc3Rcblx0XHR9ID0gbG9jYWxTdGF0ZSB8fCB7fTtcblxuXHRcdGluc3RhbmNlLl9fbmd0X18gPSB7XG5cdFx0XHRwcmV2aW91c0F0dGFjaDogbnVsbCxcblx0XHRcdHN0b3JlOiBudWxsLFxuXHRcdFx0bWVtb2l6ZWQ6IHt9LFxuXHRcdFx0ZXZlbnRDb3VudDogMCxcblx0XHRcdGhhbmRsZXJzOiB7fSxcblx0XHRcdGluc3RhbmNlU3RvcmUsXG5cdFx0XHRwYXJlbnQ6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdwYXJlbnQnKSxcblx0XHRcdG9iamVjdHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdvYmplY3RzJyksXG5cdFx0XHRub25PYmplY3RzOiBpbnN0YW5jZVN0b3JlLnNlbGVjdCgnbm9uT2JqZWN0cycpLFxuXHRcdFx0bmF0aXZlUHJvcHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCduYXRpdmVQcm9wcycpLFxuXHRcdFx0YWRkKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLmdldCh0eXBlKTtcblx0XHRcdFx0Y29uc3QgZm91bmRJbmRleCA9IGN1cnJlbnQuaW5kZXhPZigobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiBvYmplY3QgPT09IG5vZGUpO1xuXHRcdFx0XHRpZiAoZm91bmRJbmRleCA+IC0xKSB7XG5cdFx0XHRcdFx0Y3VycmVudC5zcGxpY2UoZm91bmRJbmRleCwgMSwgb2JqZWN0KTtcblx0XHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKHsgW3R5cGVdOiBjdXJyZW50IH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IFt0eXBlXTogWy4uLnByZXZbdHlwZV0sIG9iamVjdF0gfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUuZ2V0KCdwYXJlbnQnKSk7XG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKChwcmV2KSA9PiAoeyBbdHlwZV06IHByZXZbdHlwZV0uZmlsdGVyKChub2RlKSA9PiBub2RlICE9PSBvYmplY3QpIH0pKTtcblx0XHRcdFx0bm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcblx0XHRcdH0sXG5cdFx0XHRzZXROYXRpdmVQcm9wcyhrZXksIHZhbHVlKSB7XG5cdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IG5hdGl2ZVByb3BzOiB7IC4uLnByZXYubmF0aXZlUHJvcHMsIFtrZXldOiB2YWx1ZSB9IH0pKTtcblx0XHRcdH0sXG5cdFx0XHRzZXRQYXJlbnQocGFyZW50KSB7XG5cdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoeyBwYXJlbnQgfSk7XG5cdFx0XHR9LFxuXHRcdFx0Li4ucmVzdCxcblx0XHR9IGFzIE5ndExvY2FsU3RhdGU7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkge1xuXHRpZiAoIWluc3RhbmNlKSByZXR1cm47XG5cdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cdGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IG9iamVjdHM6IHByZXYub2JqZWN0cywgbm9uT2JqZWN0czogcHJldi5ub25PYmplY3RzIH0pKTtcblx0bm90aWZ5QW5jZXN0b3JzKGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXVEN0MsTUFBTSxVQUFVLGFBQWEsQ0FBMkIsR0FBMEI7SUFDakYsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUMzQixPQUFRLEdBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBMkIsUUFBbUI7SUFDL0UsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUUzQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FDdEIsTUFBaUIsRUFDakIsVUFBbUM7SUFFbkMsTUFBTSxRQUFRLEdBQUcsTUFBK0MsQ0FBQztJQUVqRSxJQUFJLFVBQVUsRUFBRSxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxFQUNMLGFBQWEsR0FBRyxXQUFXLENBQXdC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VUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEcsZUFBZSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0RXZlbnRIYW5kbGVycyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IE5ndFN0YXRlIH0gZnJvbSAnLi9zdG9yZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlLCBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgdHlwZSBOZ3RBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gKFxuXHRwYXJlbnQ6IFRQYXJlbnQsXG5cdGNoaWxkOiBUQ2hpbGQsXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4sXG4pID0+IHZvaWQgfCAoKCkgPT4gdm9pZCk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0QWZ0ZXJBdHRhY2g8XG5cdFRDaGlsZCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcblx0VFBhcmVudCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcbj4ge1xuXHRwYXJlbnQ6IFRQYXJlbnQ7XG5cdG5vZGU6IFRDaGlsZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbEluc3RhbmNlU3RhdGUge1xuXHRvYmplY3RzOiBOZ3RJbnN0YW5jZU5vZGVbXTtcblx0bm9uT2JqZWN0czogTmd0SW5zdGFuY2VOb2RlW107XG5cdHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2NhbFN0YXRlIHtcblx0LyoqIHRoZSBzdG9yZSBvZiB0aGUgY2FudmFzIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJlaW5nIHJlbmRlcmVkIHRvICovXG5cdHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG5cdC8vIG9iamVjdHMgcmVsYXRlZCB0byB0aGlzIGluc3RhbmNlXG5cdGluc3RhbmNlU3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndExvY2FsSW5zdGFuY2VTdGF0ZT47XG5cdC8vIHNob3J0Y3V0IHRvIHNpZ25hbHNcblx0cGFyZW50OiBTaWduYWw8Tmd0TG9jYWxJbnN0YW5jZVN0YXRlWydwYXJlbnQnXT47XG5cdG9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ29iamVjdHMnXT47XG5cdG5vbk9iamVjdHM6IFNpZ25hbDxOZ3RMb2NhbEluc3RhbmNlU3RhdGVbJ25vbk9iamVjdHMnXT47XG5cdC8vIHNob3J0Y3V0IHRvIGFkZC9yZW1vdmUgb2JqZWN0IHRvIGxpc3Rcblx0YWRkOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuXHRyZW1vdmU6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG5cdHNldFBhcmVudDogKHBhcmVudDogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkgPT4gdm9pZDtcblx0Ly8gaWYgdGhpcyBUSFJFRSBpbnN0YW5jZSBpcyBhIG5ndC1wcmltaXRpdmVcblx0cHJpbWl0aXZlPzogYm9vbGVhbjtcblx0Ly8gaWYgdGhpcyBUSFJFRSBvYmplY3QgaGFzIGFueSBldmVudHMgYm91bmQgdG8gaXRcblx0ZXZlbnRDb3VudDogbnVtYmVyO1xuXHQvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG5cdGhhbmRsZXJzOiBQYXJ0aWFsPE5ndEV2ZW50SGFuZGxlcnM+O1xuXHQvLyBhdHRhY2ggaW5mb3JtYXRpb24gc28gdGhhdCB3ZSBjYW4gZGV0YWNoIGFzIHdlbGwgYXMgcmVzZXRcblx0YXR0YWNoPzogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcblx0Ly8gcHJldmlvdXNseSBhdHRhY2ggaW5mb3JtYXRpb24gc28gd2UgY2FuIHJlc2V0IGFzIHdlbGwgYXMgY2xlYW4gdXBcblx0cHJldmlvdXNBdHRhY2g/OiB1bmtub3duIHwgKCgpID0+IHZvaWQpO1xuXHQvLyBpcyByYXcgdmFsdWVcblx0aXNSYXc/OiBib29sZWFuO1xuXHQvLyBwcmlvcml0eSBmb3IgYmVmb3JlIHJlbmRlclxuXHRwcmlvcml0eT86IG51bWJlcjtcblx0b25VcGRhdGU/OiAobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiB2b2lkO1xuXHRvbkF0dGFjaD86IChhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2gpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlTm9kZTxUTm9kZSA9IGFueT4gPSB7IF9fbmd0X186IE5ndExvY2FsU3RhdGUgfSAmIE5ndEFueVJlY29yZCAmIFROb2RlO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxTdGF0ZTxUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+KG9iajogVEluc3RhbmNlIHwgdW5kZWZpbmVkKTogTmd0TG9jYWxTdGF0ZSB8IHVuZGVmaW5lZCB7XG5cdGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRyZXR1cm4gKG9iaiBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlSW5zdGFuY2U8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVEluc3RhbmNlKSB7XG5cdGxldCBzdG9yZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpPy5zdG9yZTtcblxuXHRpZiAoc3RvcmUpIHtcblx0XHR3aGlsZSAoc3RvcmUuc25hcHNob3QucHJldmlvdXNSb290KSB7XG5cdFx0XHRzdG9yZSA9IHN0b3JlLnNuYXBzaG90LnByZXZpb3VzUm9vdDtcblx0XHR9XG5cdFx0aWYgKHN0b3JlLnNuYXBzaG90LmludGVybmFsLmZyYW1lcyA9PT0gMCkge1xuXHRcdFx0c3RvcmUuc25hcHNob3QuaW52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdGNoZWNrVXBkYXRlKGluc3RhbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0ID0gTmd0QW55UmVjb3JkPihcblx0b2JqZWN0OiBUSW5zdGFuY2UsXG5cdGxvY2FsU3RhdGU/OiBQYXJ0aWFsPE5ndExvY2FsU3RhdGU+LFxuKSB7XG5cdGNvbnN0IGluc3RhbmNlID0gb2JqZWN0IGFzIHVua25vd24gYXMgTmd0SW5zdGFuY2VOb2RlPFRJbnN0YW5jZT47XG5cblx0aWYgKGxvY2FsU3RhdGU/LnByaW1pdGl2ZSB8fCAhaW5zdGFuY2UuX19uZ3RfXykge1xuXHRcdGNvbnN0IHtcblx0XHRcdGluc3RhbmNlU3RvcmUgPSBzaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+KHtcblx0XHRcdFx0cGFyZW50OiBudWxsLFxuXHRcdFx0XHRvYmplY3RzOiBbXSxcblx0XHRcdFx0bm9uT2JqZWN0czogW10sXG5cdFx0XHR9KSxcblx0XHRcdC4uLnJlc3Rcblx0XHR9ID0gbG9jYWxTdGF0ZSB8fCB7fTtcblxuXHRcdGluc3RhbmNlLl9fbmd0X18gPSB7XG5cdFx0XHRwcmV2aW91c0F0dGFjaDogbnVsbCxcblx0XHRcdHN0b3JlOiBudWxsLFxuXHRcdFx0bWVtb2l6ZWQ6IHt9LFxuXHRcdFx0ZXZlbnRDb3VudDogMCxcblx0XHRcdGhhbmRsZXJzOiB7fSxcblx0XHRcdGluc3RhbmNlU3RvcmUsXG5cdFx0XHRwYXJlbnQ6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdwYXJlbnQnKSxcblx0XHRcdG9iamVjdHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdvYmplY3RzJyksXG5cdFx0XHRub25PYmplY3RzOiBpbnN0YW5jZVN0b3JlLnNlbGVjdCgnbm9uT2JqZWN0cycpLFxuXHRcdFx0YWRkKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLmdldCh0eXBlKTtcblx0XHRcdFx0Y29uc3QgZm91bmRJbmRleCA9IGN1cnJlbnQuaW5kZXhPZigobm9kZTogTmd0SW5zdGFuY2VOb2RlKSA9PiBvYmplY3QgPT09IG5vZGUpO1xuXHRcdFx0XHRpZiAoZm91bmRJbmRleCA+IC0xKSB7XG5cdFx0XHRcdFx0Y3VycmVudC5zcGxpY2UoZm91bmRJbmRleCwgMSwgb2JqZWN0KTtcblx0XHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKHsgW3R5cGVdOiBjdXJyZW50IH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IFt0eXBlXTogWy4uLnByZXZbdHlwZV0sIG9iamVjdF0gfSkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUuZ2V0KCdwYXJlbnQnKSk7XG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKChwcmV2KSA9PiAoeyBbdHlwZV06IHByZXZbdHlwZV0uZmlsdGVyKChub2RlKSA9PiBub2RlICE9PSBvYmplY3QpIH0pKTtcblx0XHRcdFx0bm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcblx0XHRcdH0sXG5cdFx0XHRzZXRQYXJlbnQocGFyZW50KSB7XG5cdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoeyBwYXJlbnQgfSk7XG5cdFx0XHR9LFxuXHRcdFx0Li4ucmVzdCxcblx0XHR9IGFzIE5ndExvY2FsU3RhdGU7XG5cdH1cblxuXHRyZXR1cm4gaW5zdGFuY2U7XG59XG5cbmZ1bmN0aW9uIG5vdGlmeUFuY2VzdG9ycyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlIHwgbnVsbCkge1xuXHRpZiAoIWluc3RhbmNlKSByZXR1cm47XG5cdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGluc3RhbmNlKTtcblx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cdGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS51cGRhdGUoKHByZXYpID0+ICh7IG9iamVjdHM6IHByZXYub2JqZWN0cywgbm9uT2JqZWN0czogcHJldi5ub25PYmplY3RzIH0pKTtcblx0bm90aWZ5QW5jZXN0b3JzKGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS5nZXQoJ3BhcmVudCcpKTtcbn1cbiJdfQ==
@@ -137,5 +137,5 @@ function createLoop(roots) {
137
137
  }
138
138
  return { loop, invalidate, advance };
139
139
  }
140
- export const [injectNgtLoop] = createInjectionToken(() => createLoop(roots));
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xvb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU9oQyxTQUFTLFVBQVUsQ0FBQyxRQUFpQyxFQUFFLElBQWtCO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBaUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM5QyxNQUFNLGtCQUFrQixHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25ELE1BQU0saUJBQWlCLEdBQWlCLElBQUksR0FBRyxFQUFFLENBQUM7QUFFbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUVwRzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFFOUc7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRXRHLFNBQVMsR0FBRyxDQUFDLE9BQXFCLEVBQUUsU0FBaUI7SUFDcEQsSUFBSSxD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QUNsRSxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLGdCQUFnQjtZQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyByb290cyB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0U3RhdGUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBOZ3RHbG9iYWxSZW5kZXJDYWxsYmFjayA9ICh0aW1lU3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbnR5cGUgU3ViSXRlbSA9IHsgY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrIH07XG5cbmZ1bmN0aW9uIGNyZWF0ZVN1YnMoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrLCBzdWJzOiBTZXQ8U3ViSXRlbT4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3Qgc3ViID0geyBjYWxsYmFjayB9O1xuXHRzdWJzLmFkZChzdWIpO1xuXHRyZXR1cm4gKCkgPT4gdm9pZCBzdWJzLmRlbGV0ZShzdWIpO1xufVxuXG5jb25zdCBnbG9iYWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5jb25zdCBnbG9iYWxBZnRlckVmZmVjdHM6IFNldDxTdWJJdGVtPiA9IG5ldyBTZXQoKTtcbmNvbnN0IGdsb2JhbFRhaWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5cbi8qKlxuICogQWRkcyBhIGdsb2JhbCByZW5kZXIgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGVhY2ggZnJhbWUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FwaS9hZGRpdGlvbmFsLWV4cG9ydHMjYWRkRWZmZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBhZGRFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxFZmZlY3RzKTtcblxuLyoqXG4gKiBBZGRzIGEgZ2xvYmFsIGFmdGVyLXJlbmRlciBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgZWFjaCBmcmFtZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYXBpL2FkZGl0aW9uYWwtZXhwb3J0cyNhZGRBZnRlckVmZmVjdFxuICovXG5leHBvcnQgY29uc3QgYWRkQWZ0ZXJFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxBZnRlckVmZmVjdHMpO1xuXG4vKipcbiAqIEFkZHMgYSBnbG9iYWwgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gcmVuZGVyaW5nIHN0b3BzLlxuICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hcGkvYWRkaXRpb25hbC1leHBvcnRzI2FkZFRhaWxcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFRhaWwgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxUYWlsRWZmZWN0cyk7XG5cbmZ1bmN0aW9uIHJ1bihlZmZlY3RzOiBTZXQ8U3ViSXRlbT4sIHRpbWVzdGFtcDogbnVtYmVyKSB7XG5cdGlmICghZWZmZWN0cy5zaXplKSByZXR1cm47XG5cdGZvciAoY29uc3QgeyBjYWxsYmFjayB9IG9mIGVmZmVjdHMudmFsdWVzKCkpIHtcblx0XHRjYWxsYmFjayh0aW1lc3RhbXApO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIE5ndEdsb2JhbEVmZmVjdFR5cGUgPSAnYmVmb3JlJyB8ICdhZnRlcicgfCAndGFpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbHVzaEdsb2JhbEVmZmVjdHModHlwZTogTmd0R2xvYmFsRWZmZWN0VHlwZSwgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Y2FzZSAnYmVmb3JlJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICdhZnRlcic6XG5cdFx0XHRyZXR1cm4gcnVuKGdsb2JhbEFmdGVyRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICd0YWlsJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsVGFpbEVmZmVjdHMsIHRpbWVzdGFtcCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyKHRpbWVzdGFtcDogbnVtYmVyLCBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZT86IFhSRnJhbWUpIHtcblx0Y29uc3Qgc3RhdGUgPSBzdG9yZS5zbmFwc2hvdDtcblx0Ly8gUnVuIGxvY2FsIGVmZmVjdHNcblx0bGV0IGRlbHRhID0gc3RhdGUuY2xvY2suZ2V0RGVsdGEoKTtcblx0Ly8gSW4gZnJhbWVsb29wPSduZXZlcicgbW9kZSwgY2xvY2sgdGltZXMgYXJlIHVwZGF0ZWQgdXNpbmcgdGhlIHByb3ZpZGVkIHRpbWVzdGFtcFxuXHRpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInICYmIHR5cGVvZiB0aW1lc3RhbXAgPT09ICdudW1iZXInKSB7XG5cdFx0ZGVsdGEgPSB0aW1lc3RhbXAgLSBzdGF0ZS5jbG9jay5lbGFwc2VkVGltZTtcblx0XHRzdGF0ZS5jbG9jay5vbGRUaW1lID0gc3RhdGUuY2xvY2suZWxhcHNlZFRpbWU7XG5cdFx0c3RhdGUuY2xvY2suZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXA7XG5cdH1cblx0Ly8gQ2FsbCBzdWJzY3JpYmVycyAoYmVmb3JlUmVuZGVyKVxuXHRjb25zdCBzdWJzY3JpYmVycyA9IHN0YXRlLmludGVybmFsLnN1YnNjcmliZXJzO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN1YnNjcmliZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgc3Vic2NyaXB0aW9uID0gc3Vic2NyaWJlcnNbaV07XG5cdFx0c3Vic2NyaXB0aW9uLmNhbGxiYWNrKHsgLi4uc3Vic2NyaXB0aW9uLnN0b3JlLnNuYXBzaG90LCBkZWx0YSwgZnJhbWUgfSk7XG5cdH1cblx0Ly8gUmVuZGVyIGNvbnRlbnRcblx0aWYgKCFzdGF0ZS5pbnRlcm5hbC5wcmlvcml0eSAmJiBzdGF0ZS5nbC5yZW5kZXIpIHN0YXRlLmdsLnJlbmRlcihzdGF0ZS5zY2VuZSwgc3RhdGUuY2FtZXJhKTtcblx0Ly8gRGVjcmVhc2UgZnJhbWUgY291bnRcblx0c3RhdGUuaW50ZXJuYWwuZnJhbWVzID0gTWF0aC5tYXgoMCwgc3RhdGUuaW50ZXJuYWwuZnJhbWVzIC0gMSk7XG5cdHJldHVybiBzdGF0ZS5mcmFtZWxvb3AgPT09ICdhbHdheXMnID8gMSA6IHN0YXRlLmludGVybmFsLmZyYW1lcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9vcDxUQ2FudmFzPihyb290czogTWFwPFRDYW52YXMsIE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPj4pIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0bGV0IHJlcGVhdDogbnVtYmVyO1xuXHRsZXQgZnJhbWU6IG51bWJlcjtcblx0bGV0IGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuXHRmdW5jdGlvbiBsb29wKHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG5cdFx0ZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG5cdFx0cnVubmluZyA9IHRydWU7XG5cdFx0cmVwZWF0ID0gMDtcblxuXHRcdC8vIFJ1biBlZmZlY3RzXG5cdFx0Zmx1c2hHbG9iYWxFZmZlY3RzKCdiZWZvcmUnLCB0aW1lc3RhbXApO1xuXG5cdFx0Ly8gUmVuZGVyIGFsbCByb290c1xuXHRcdGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiByb290cy52YWx1ZXMoKSkge1xuXHRcdFx0Y29uc3Qgc3RhdGUgPSByb290LnNuYXBzaG90O1xuXHRcdFx0Ly8gSWYgdGhlIGZyYW1lbG9vcCBpcyBpbnZhbGlkYXRlZCwgZG8gbm90IHJ1biBhbm90aGVyIGZyYW1lXG5cdFx0XHRpZiAoXG5cdFx0XHRcdHN0YXRlLmludGVybmFsLmFjdGl2ZSAmJlxuXHRcdFx0XHQoc3RhdGUuZnJhbWVsb29wID09PSAnYWx3YXlzJyB8fCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPiAwKSAmJlxuXHRcdFx0XHQhc3RhdGUuZ2wueHI/LmlzUHJlc2VudGluZ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJlcGVhdCArPSByZW5kZXIodGltZXN0YW1wLCByb290KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0YmVmb3JlUmVuZGVySW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG5cdFx0Ly8gUnVuIGFmdGVyLWVmZmVjdHNcblx0XHRmbHVzaEdsb2JhbEVmZmVjdHMoJ2FmdGVyJywgdGltZXN0YW1wKTtcblxuXHRcdC8vIFN0b3AgdGhlIGxvb3AgaWYgbm90aGluZyBpbnZhbGlkYXRlcyBpdFxuXHRcdGlmIChyZXBlYXQgPT09IDApIHtcblx0XHRcdC8vIFRhaWwgY2FsbCBlZmZlY3RzLCB0aGV5IGFyZSBjYWxsZWQgd2hlbiByZW5kZXJpbmcgc3RvcHNcblx0XHRcdGZsdXNoR2xvYmFsRWZmZWN0cygndGFpbCcsIHRpbWVzdGFtcCk7XG5cblx0XHRcdC8vIEZsYWcgZW5kIG9mIG9wZXJhdGlvblxuXHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkYXRlKHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZXMgPSAxKTogdm9pZCB7XG5cdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZT8uc25hcHNob3Q7XG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuIHJvb3RzLmZvckVhY2goKHJvb3QpID0+IGludmFsaWRhdGUocm9vdCwgZnJhbWVzKSk7XG5cdFx0aWYgKHN0YXRlLmdsLnhyPy5pc1ByZXNlbnRpbmcgfHwgIXN0YXRlLmludGVybmFsLmFjdGl2ZSB8fCBzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHRpZiAoZnJhbWVzID4gMSkge1xuXHRcdFx0Ly8gbGVnYWN5IHN1cHBvcnQgZm9yIHBlb3BsZSB1c2luZyBmcmFtZXMgcGFyYW1ldGVyc1xuXHRcdFx0Ly8gSW5jcmVhc2UgZnJhbWVzLCBkbyBub3QgZ28gaGlnaGVyIHRoYW4gNjBcblx0XHRcdHN0YXRlLmludGVybmFsLmZyYW1lcyA9IE1hdGgubWluKDYwLCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgKyBmcmFtZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoYmVmb3JlUmVuZGVySW5Qcm9ncmVzcykge1xuXHRcdFx0XHQvL2NhbGxlZCBmcm9tIHdpdGhpbiBhIGJlZm9yZVJlbmRlciwgaXQgbWVhbnMgdGhlIHVzZXIgd2FudHMgYW4gYWRkaXRpb25hbCBmcmFtZVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAyO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly90aGUgdXNlciBuZWVkIGEgbmV3IGZyYW1lLCBubyBuZWVkIHRvIGluY3JlbWVudCBmdXJ0aGVyIHRoYW4gMVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIElmIHRoZSByZW5kZXItbG9vcCBpc24ndCBhY3RpdmUsIHN0YXJ0IGl0XG5cdFx0aWYgKCFydW5uaW5nKSB7XG5cdFx0XHRydW5uaW5nID0gdHJ1ZTtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBhZHZhbmNlKFxuXHRcdHRpbWVzdGFtcDogbnVtYmVyLFxuXHRcdHJ1bkdsb2JhbEVmZmVjdHM6IGJvb2xlYW4gPSB0cnVlLFxuXHRcdHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuXHRcdGZyYW1lPzogWFJGcmFtZSxcblx0KTogdm9pZCB7XG5cdFx0aWYgKHJ1bkdsb2JhbEVmZmVjdHMpIGZsdXNoR2xvYmFsRWZmZWN0cygnYmVmb3JlJywgdGltZXN0YW1wKTtcblx0XHRpZiAoIXN0b3JlKSBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMudmFsdWVzKCkpIHJlbmRlcih0aW1lc3RhbXAsIHJvb3QpO1xuXHRcdGVsc2UgcmVuZGVyKHRpbWVzdGFtcCwgc3RvcmUsIGZyYW1lKTtcblx0XHRpZiAocnVuR2xvYmFsRWZmZWN0cykgZmx1c2hHbG9iYWxFZmZlY3RzKCdhZnRlcicsIHRpbWVzdGFtcCk7XG5cdH1cblxuXHRyZXR1cm4geyBsb29wLCBpbnZhbGlkYXRlLCBhZHZhbmNlIH07XG59XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0Tmd0TG9vcF0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbigoKSA9PiBjcmVhdGVMb29wKHJvb3RzKSk7XG4iXX0=
140
+ export const [injectLoop] = createInjectionToken(() => createLoop(roots));
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xvb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU9oQyxTQUFTLFVBQVUsQ0FBQyxRQUFpQyxFQUFFLElBQWtCO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBaUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM5QyxNQUFNLGtCQUFrQixHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25ELE1BQU0saUJBQWlCLEdBQWlCLElBQUksR0FBRyxFQUFFLENBQUM7QUFFbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUVwRzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFFOUc7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRXRHLFNBQVMsR0FBRyxDQUFDLE9BQXFCLEVBQUUsU0FBaUI7SUFDcEQsSUFBSSxD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QUNsRSxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLGdCQUFnQjtZQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ25neHRlbnNpb24vY3JlYXRlLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQgeyByb290cyB9IGZyb20gJy4vcm9vdHMnO1xuaW1wb3J0IHsgTmd0U3RhdGUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi91dGlscy9zaWduYWwtc3RvcmUnO1xuXG5leHBvcnQgdHlwZSBOZ3RHbG9iYWxSZW5kZXJDYWxsYmFjayA9ICh0aW1lU3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbnR5cGUgU3ViSXRlbSA9IHsgY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrIH07XG5cbmZ1bmN0aW9uIGNyZWF0ZVN1YnMoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrLCBzdWJzOiBTZXQ8U3ViSXRlbT4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3Qgc3ViID0geyBjYWxsYmFjayB9O1xuXHRzdWJzLmFkZChzdWIpO1xuXHRyZXR1cm4gKCkgPT4gdm9pZCBzdWJzLmRlbGV0ZShzdWIpO1xufVxuXG5jb25zdCBnbG9iYWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5jb25zdCBnbG9iYWxBZnRlckVmZmVjdHM6IFNldDxTdWJJdGVtPiA9IG5ldyBTZXQoKTtcbmNvbnN0IGdsb2JhbFRhaWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5cbi8qKlxuICogQWRkcyBhIGdsb2JhbCByZW5kZXIgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGVhY2ggZnJhbWUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FwaS9hZGRpdGlvbmFsLWV4cG9ydHMjYWRkRWZmZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBhZGRFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxFZmZlY3RzKTtcblxuLyoqXG4gKiBBZGRzIGEgZ2xvYmFsIGFmdGVyLXJlbmRlciBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgZWFjaCBmcmFtZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYXBpL2FkZGl0aW9uYWwtZXhwb3J0cyNhZGRBZnRlckVmZmVjdFxuICovXG5leHBvcnQgY29uc3QgYWRkQWZ0ZXJFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxBZnRlckVmZmVjdHMpO1xuXG4vKipcbiAqIEFkZHMgYSBnbG9iYWwgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gcmVuZGVyaW5nIHN0b3BzLlxuICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hcGkvYWRkaXRpb25hbC1leHBvcnRzI2FkZFRhaWxcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFRhaWwgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxUYWlsRWZmZWN0cyk7XG5cbmZ1bmN0aW9uIHJ1bihlZmZlY3RzOiBTZXQ8U3ViSXRlbT4sIHRpbWVzdGFtcDogbnVtYmVyKSB7XG5cdGlmICghZWZmZWN0cy5zaXplKSByZXR1cm47XG5cdGZvciAoY29uc3QgeyBjYWxsYmFjayB9IG9mIGVmZmVjdHMudmFsdWVzKCkpIHtcblx0XHRjYWxsYmFjayh0aW1lc3RhbXApO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIE5ndEdsb2JhbEVmZmVjdFR5cGUgPSAnYmVmb3JlJyB8ICdhZnRlcicgfCAndGFpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbHVzaEdsb2JhbEVmZmVjdHModHlwZTogTmd0R2xvYmFsRWZmZWN0VHlwZSwgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Y2FzZSAnYmVmb3JlJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICdhZnRlcic6XG5cdFx0XHRyZXR1cm4gcnVuKGdsb2JhbEFmdGVyRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICd0YWlsJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsVGFpbEVmZmVjdHMsIHRpbWVzdGFtcCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyKHRpbWVzdGFtcDogbnVtYmVyLCBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZT86IFhSRnJhbWUpIHtcblx0Y29uc3Qgc3RhdGUgPSBzdG9yZS5zbmFwc2hvdDtcblx0Ly8gUnVuIGxvY2FsIGVmZmVjdHNcblx0bGV0IGRlbHRhID0gc3RhdGUuY2xvY2suZ2V0RGVsdGEoKTtcblx0Ly8gSW4gZnJhbWVsb29wPSduZXZlcicgbW9kZSwgY2xvY2sgdGltZXMgYXJlIHVwZGF0ZWQgdXNpbmcgdGhlIHByb3ZpZGVkIHRpbWVzdGFtcFxuXHRpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInICYmIHR5cGVvZiB0aW1lc3RhbXAgPT09ICdudW1iZXInKSB7XG5cdFx0ZGVsdGEgPSB0aW1lc3RhbXAgLSBzdGF0ZS5jbG9jay5lbGFwc2VkVGltZTtcblx0XHRzdGF0ZS5jbG9jay5vbGRUaW1lID0gc3RhdGUuY2xvY2suZWxhcHNlZFRpbWU7XG5cdFx0c3RhdGUuY2xvY2suZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXA7XG5cdH1cblx0Ly8gQ2FsbCBzdWJzY3JpYmVycyAoYmVmb3JlUmVuZGVyKVxuXHRjb25zdCBzdWJzY3JpYmVycyA9IHN0YXRlLmludGVybmFsLnN1YnNjcmliZXJzO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN1YnNjcmliZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgc3Vic2NyaXB0aW9uID0gc3Vic2NyaWJlcnNbaV07XG5cdFx0c3Vic2NyaXB0aW9uLmNhbGxiYWNrKHsgLi4uc3Vic2NyaXB0aW9uLnN0b3JlLnNuYXBzaG90LCBkZWx0YSwgZnJhbWUgfSk7XG5cdH1cblx0Ly8gUmVuZGVyIGNvbnRlbnRcblx0aWYgKCFzdGF0ZS5pbnRlcm5hbC5wcmlvcml0eSAmJiBzdGF0ZS5nbC5yZW5kZXIpIHN0YXRlLmdsLnJlbmRlcihzdGF0ZS5zY2VuZSwgc3RhdGUuY2FtZXJhKTtcblx0Ly8gRGVjcmVhc2UgZnJhbWUgY291bnRcblx0c3RhdGUuaW50ZXJuYWwuZnJhbWVzID0gTWF0aC5tYXgoMCwgc3RhdGUuaW50ZXJuYWwuZnJhbWVzIC0gMSk7XG5cdHJldHVybiBzdGF0ZS5mcmFtZWxvb3AgPT09ICdhbHdheXMnID8gMSA6IHN0YXRlLmludGVybmFsLmZyYW1lcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9vcDxUQ2FudmFzPihyb290czogTWFwPFRDYW52YXMsIE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPj4pIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0bGV0IHJlcGVhdDogbnVtYmVyO1xuXHRsZXQgZnJhbWU6IG51bWJlcjtcblx0bGV0IGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuXHRmdW5jdGlvbiBsb29wKHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG5cdFx0ZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG5cdFx0cnVubmluZyA9IHRydWU7XG5cdFx0cmVwZWF0ID0gMDtcblxuXHRcdC8vIFJ1biBlZmZlY3RzXG5cdFx0Zmx1c2hHbG9iYWxFZmZlY3RzKCdiZWZvcmUnLCB0aW1lc3RhbXApO1xuXG5cdFx0Ly8gUmVuZGVyIGFsbCByb290c1xuXHRcdGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiByb290cy52YWx1ZXMoKSkge1xuXHRcdFx0Y29uc3Qgc3RhdGUgPSByb290LnNuYXBzaG90O1xuXHRcdFx0Ly8gSWYgdGhlIGZyYW1lbG9vcCBpcyBpbnZhbGlkYXRlZCwgZG8gbm90IHJ1biBhbm90aGVyIGZyYW1lXG5cdFx0XHRpZiAoXG5cdFx0XHRcdHN0YXRlLmludGVybmFsLmFjdGl2ZSAmJlxuXHRcdFx0XHQoc3RhdGUuZnJhbWVsb29wID09PSAnYWx3YXlzJyB8fCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPiAwKSAmJlxuXHRcdFx0XHQhc3RhdGUuZ2wueHI/LmlzUHJlc2VudGluZ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJlcGVhdCArPSByZW5kZXIodGltZXN0YW1wLCByb290KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0YmVmb3JlUmVuZGVySW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG5cdFx0Ly8gUnVuIGFmdGVyLWVmZmVjdHNcblx0XHRmbHVzaEdsb2JhbEVmZmVjdHMoJ2FmdGVyJywgdGltZXN0YW1wKTtcblxuXHRcdC8vIFN0b3AgdGhlIGxvb3AgaWYgbm90aGluZyBpbnZhbGlkYXRlcyBpdFxuXHRcdGlmIChyZXBlYXQgPT09IDApIHtcblx0XHRcdC8vIFRhaWwgY2FsbCBlZmZlY3RzLCB0aGV5IGFyZSBjYWxsZWQgd2hlbiByZW5kZXJpbmcgc3RvcHNcblx0XHRcdGZsdXNoR2xvYmFsRWZmZWN0cygndGFpbCcsIHRpbWVzdGFtcCk7XG5cblx0XHRcdC8vIEZsYWcgZW5kIG9mIG9wZXJhdGlvblxuXHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkYXRlKHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZXMgPSAxKTogdm9pZCB7XG5cdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZT8uc25hcHNob3Q7XG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuIHJvb3RzLmZvckVhY2goKHJvb3QpID0+IGludmFsaWRhdGUocm9vdCwgZnJhbWVzKSk7XG5cdFx0aWYgKHN0YXRlLmdsLnhyPy5pc1ByZXNlbnRpbmcgfHwgIXN0YXRlLmludGVybmFsLmFjdGl2ZSB8fCBzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHRpZiAoZnJhbWVzID4gMSkge1xuXHRcdFx0Ly8gbGVnYWN5IHN1cHBvcnQgZm9yIHBlb3BsZSB1c2luZyBmcmFtZXMgcGFyYW1ldGVyc1xuXHRcdFx0Ly8gSW5jcmVhc2UgZnJhbWVzLCBkbyBub3QgZ28gaGlnaGVyIHRoYW4gNjBcblx0XHRcdHN0YXRlLmludGVybmFsLmZyYW1lcyA9IE1hdGgubWluKDYwLCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgKyBmcmFtZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoYmVmb3JlUmVuZGVySW5Qcm9ncmVzcykge1xuXHRcdFx0XHQvL2NhbGxlZCBmcm9tIHdpdGhpbiBhIGJlZm9yZVJlbmRlciwgaXQgbWVhbnMgdGhlIHVzZXIgd2FudHMgYW4gYWRkaXRpb25hbCBmcmFtZVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAyO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly90aGUgdXNlciBuZWVkIGEgbmV3IGZyYW1lLCBubyBuZWVkIHRvIGluY3JlbWVudCBmdXJ0aGVyIHRoYW4gMVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIElmIHRoZSByZW5kZXItbG9vcCBpc24ndCBhY3RpdmUsIHN0YXJ0IGl0XG5cdFx0aWYgKCFydW5uaW5nKSB7XG5cdFx0XHRydW5uaW5nID0gdHJ1ZTtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBhZHZhbmNlKFxuXHRcdHRpbWVzdGFtcDogbnVtYmVyLFxuXHRcdHJ1bkdsb2JhbEVmZmVjdHM6IGJvb2xlYW4gPSB0cnVlLFxuXHRcdHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuXHRcdGZyYW1lPzogWFJGcmFtZSxcblx0KTogdm9pZCB7XG5cdFx0aWYgKHJ1bkdsb2JhbEVmZmVjdHMpIGZsdXNoR2xvYmFsRWZmZWN0cygnYmVmb3JlJywgdGltZXN0YW1wKTtcblx0XHRpZiAoIXN0b3JlKSBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMudmFsdWVzKCkpIHJlbmRlcih0aW1lc3RhbXAsIHJvb3QpO1xuXHRcdGVsc2UgcmVuZGVyKHRpbWVzdGFtcCwgc3RvcmUsIGZyYW1lKTtcblx0XHRpZiAocnVuR2xvYmFsRWZmZWN0cykgZmx1c2hHbG9iYWxFZmZlY3RzKCdhZnRlcicsIHRpbWVzdGFtcCk7XG5cdH1cblxuXHRyZXR1cm4geyBsb29wLCBpbnZhbGlkYXRlLCBhZHZhbmNlIH07XG59XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0TG9vcF0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbigoKSA9PiBjcmVhdGVMb29wKHJvb3RzKSk7XG4iXX0=