angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstractions/edges/edges.d.ts +1 -1
- package/abstractions/grid/grid.d.ts +1 -1
- package/abstractions/text-3d/text-3d.d.ts +1 -1
- package/controls/orbit-controls/orbit-controls.d.ts +4 -2
- package/esm2022/abstractions/billboard/billboard.mjs +3 -3
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +3 -3
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/edges/edges.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +3 -3
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +6 -6
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +3 -3
- package/esm2022/abstractions/grid/grid.mjs +3 -3
- package/esm2022/abstractions/line/line-input.mjs +3 -3
- package/esm2022/abstractions/line/line.mjs +6 -6
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +3 -3
- package/esm2022/abstractions/text/text.mjs +3 -3
- package/esm2022/abstractions/text-3d/text-3d.mjs +3 -3
- package/esm2022/cameras/camera/camera-content.mjs +3 -3
- package/esm2022/cameras/camera/camera.mjs +6 -6
- package/esm2022/cameras/cube-camera/cube-camera.mjs +3 -3
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +3 -3
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +3 -3
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +20 -8
- package/esm2022/loaders/loader/loader.mjs +3 -3
- package/esm2022/loaders/progress/progress.mjs +4 -11
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +3 -3
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +3 -3
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +3 -3
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +3 -3
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +3 -3
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +3 -3
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +3 -3
- package/esm2022/performance/adaptive/adaptive-events.mjs +3 -3
- package/esm2022/performance/detailed/detailed.mjs +3 -3
- package/esm2022/performance/instances/instance.mjs +6 -6
- package/esm2022/performance/instances/instances.mjs +6 -6
- package/esm2022/performance/stats/stats.mjs +3 -3
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +6 -6
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +6 -6
- package/esm2022/staging/bounds/bounds.mjs +6 -6
- package/esm2022/staging/camera-shake/camera-shake.mjs +3 -3
- package/esm2022/staging/caustics/caustisc.mjs +6 -6
- package/esm2022/staging/center/center.mjs +7 -7
- package/esm2022/staging/cloud/cloud.mjs +3 -3
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +3 -3
- package/esm2022/staging/environment/environment-cube.mjs +6 -6
- package/esm2022/staging/environment/environment-ground.mjs +3 -3
- package/esm2022/staging/environment/environment-input.mjs +3 -3
- package/esm2022/staging/environment/environment-map.mjs +6 -6
- package/esm2022/staging/environment/environment-portal.mjs +6 -6
- package/esm2022/staging/environment/environment.mjs +6 -6
- package/esm2022/staging/float/float.mjs +3 -3
- package/esm2022/staging/sky/sky.mjs +3 -3
- package/esm2022/staging/sparkles/sparkles.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-input.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +3 -3
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +17 -15
- package/esm2022/staging/spot-light/spot-light.mjs +3 -3
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +3 -3
- package/esm2022/staging/stage/stage.mjs +10 -10
- package/esm2022/staging/stars/stars.mjs +3 -3
- package/fesm2022/angular-three-soba-abstractions.mjs +63 -63
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +17 -17
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +18 -6
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +6 -13
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +15 -15
- package/fesm2022/angular-three-soba-misc.mjs +3 -3
- package/fesm2022/angular-three-soba-performance.mjs +21 -21
- package/fesm2022/angular-three-soba-performance.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +102 -100
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/package.json +21 -19
- package/performance/instances/instances.d.ts +2 -2
- package/performance/instances/position-mesh.d.ts +1 -1
- package/plugin/package.json +2 -2
- package/plugin/src/generators/init/init.d.ts +1 -1
- package/plugin/src/generators/init/init.js +1 -1
- package/staging/caustics/caustisc.d.ts +1 -1
- package/staging/sparkles/sparkles.d.ts +1 -1
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +2 -2
- package/staging/spot-light/volumetric-mesh.d.ts +1 -1
- package/staging/stage/stage.d.ts +0 -1
- package/staging/stars/stars.d.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
2
|
import { CUSTOM_ELEMENTS_SCHEMA, Component, computed, effect, inject, runInInjectionContext, } from '@angular/core';
|
|
3
|
-
import { assertInjectionContext, checkUpdate, extend, injectBeforeRender, injectNgtRef,
|
|
3
|
+
import { assertInjectionContext, checkUpdate, extend, injectBeforeRender, injectNgtRef, requestAnimationFrameInInjectionContext, } from 'angular-three';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { Mesh, MeshBasicMaterial, PlaneGeometry } from 'three';
|
|
6
6
|
import { FullScreenQuad } from 'three-stdlib';
|
|
@@ -15,14 +15,16 @@ function injectShadowMeshCommon(spotLightRef, meshRef, width, height, distance,
|
|
|
15
15
|
runInInjectionContext(injector, () => {
|
|
16
16
|
const pos = new THREE.Vector3();
|
|
17
17
|
const dir = new THREE.Vector3();
|
|
18
|
-
|
|
18
|
+
requestAnimationFrameInInjectionContext(() => {
|
|
19
19
|
effect(() => {
|
|
20
20
|
const spotLight = spotLightRef.nativeElement;
|
|
21
21
|
if (!spotLight)
|
|
22
22
|
return;
|
|
23
23
|
if (isSpotLight(spotLight)) {
|
|
24
24
|
spotLight.shadow.mapSize.set(width(), height());
|
|
25
|
-
spotLight.shadow.map
|
|
25
|
+
if (spotLight.shadow.map) {
|
|
26
|
+
spotLight.shadow.map.setSize(width(), height());
|
|
27
|
+
}
|
|
26
28
|
spotLight.shadow.needsUpdate = true;
|
|
27
29
|
}
|
|
28
30
|
else {
|
|
@@ -58,7 +60,7 @@ class NgtsSpotLightShadowMeshNoShader {
|
|
|
58
60
|
this.DoubleSide = THREE.DoubleSide;
|
|
59
61
|
this.debug = this.#spotLightApi.debug;
|
|
60
62
|
this.shadowMeshInput.patch({ distance: 0.4, alphaTest: 0.5, width: 512, height: 512, scale: 1 });
|
|
61
|
-
|
|
63
|
+
requestAnimationFrameInInjectionContext(() => {
|
|
62
64
|
effect(() => {
|
|
63
65
|
const map = this.shadowMeshInput.shadowMeshMap();
|
|
64
66
|
if (map) {
|
|
@@ -69,8 +71,8 @@ class NgtsSpotLightShadowMeshNoShader {
|
|
|
69
71
|
});
|
|
70
72
|
injectShadowMeshCommon(this.#spotLightApi.spotLight, this.meshRef, this.shadowMeshInput.shadowMeshWidth, this.shadowMeshInput.shadowMeshHeight, this.shadowMeshInput.shadowMeshDistance);
|
|
71
73
|
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadowMeshNoShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsSpotLightShadowMeshNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-mesh-no-shader", ngImport: i0, template: `
|
|
74
76
|
<ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.shadowMeshScale()" [castShadow]="true">
|
|
75
77
|
<ngt-plane-geometry />
|
|
76
78
|
<ngt-mesh-basic-material
|
|
@@ -86,7 +88,7 @@ class NgtsSpotLightShadowMeshNoShader {
|
|
|
86
88
|
`, isInline: true }); }
|
|
87
89
|
}
|
|
88
90
|
export { NgtsSpotLightShadowMeshNoShader };
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadowMeshNoShader, decorators: [{
|
|
90
92
|
type: Component,
|
|
91
93
|
args: [{
|
|
92
94
|
selector: 'ngts-spot-light-shadow-mesh-no-shader',
|
|
@@ -161,7 +163,7 @@ class NgtsSpotLightShadowMeshShader {
|
|
|
161
163
|
gl.setRenderTarget(null);
|
|
162
164
|
}
|
|
163
165
|
});
|
|
164
|
-
|
|
166
|
+
requestAnimationFrameInInjectionContext(() => {
|
|
165
167
|
effect(() => {
|
|
166
168
|
const map = this.shadowMeshInput.shadowMeshMap();
|
|
167
169
|
if (map) {
|
|
@@ -185,8 +187,8 @@ class NgtsSpotLightShadowMeshShader {
|
|
|
185
187
|
});
|
|
186
188
|
});
|
|
187
189
|
}
|
|
188
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadowMeshShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsSpotLightShadowMeshShader, isStandalone: true, selector: "ngts-spot-light-shadow-mesh-shader", ngImport: i0, template: `
|
|
190
192
|
<ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.shadowMeshScale()" [castShadow]="true">
|
|
191
193
|
<ngt-plane-geometry />
|
|
192
194
|
<ngt-mesh-basic-material
|
|
@@ -204,7 +206,7 @@ class NgtsSpotLightShadowMeshShader {
|
|
|
204
206
|
`, isInline: true }); }
|
|
205
207
|
}
|
|
206
208
|
export { NgtsSpotLightShadowMeshShader };
|
|
207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadowMeshShader, decorators: [{
|
|
208
210
|
type: Component,
|
|
209
211
|
args: [{
|
|
210
212
|
selector: 'ngts-spot-light-shadow-mesh-shader',
|
|
@@ -229,8 +231,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
229
231
|
}]
|
|
230
232
|
}], ctorParameters: function () { return []; } });
|
|
231
233
|
class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
|
|
232
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
233
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
234
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
235
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", providers: [{ provide: NgtsSpotLightShadowMeshInput, useExisting: NgtsSpotLightShadow }], usesInheritance: true, ngImport: i0, template: `
|
|
234
236
|
<ngts-spot-light-shadow-mesh-shader *ngIf="shadowMeshShader(); else noShader" />
|
|
235
237
|
<ng-template #noShader>
|
|
236
238
|
<ngts-spot-light-shadow-mesh-no-shader />
|
|
@@ -238,7 +240,7 @@ class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
|
|
|
238
240
|
`, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowMeshShader, selector: "ngts-spot-light-shadow-mesh-shader" }, { kind: "component", type: NgtsSpotLightShadowMeshNoShader, selector: "ngts-spot-light-shadow-mesh-no-shader" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
239
241
|
}
|
|
240
242
|
export { NgtsSpotLightShadow };
|
|
241
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
|
|
242
244
|
type: Component,
|
|
243
245
|
args: [{
|
|
244
246
|
selector: 'ngts-spot-light-shadow',
|
|
@@ -253,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
253
255
|
providers: [{ provide: NgtsSpotLightShadowMeshInput, useExisting: NgtsSpotLightShadow }],
|
|
254
256
|
}]
|
|
255
257
|
}] });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3ctbWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQtc2hhZG93LW1lc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLHFCQUFxQixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQ0FBa0MsR0FDckMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTlFLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBNEIsRUFBNEIsRUFBRTtJQUMzRSxPQUFRLEtBQXlCLEVBQUUsV0FBVyxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLFNBQVMsc0JBQXNCLENBQzNCLFlBQTZDLEVBQzdDLE9BQW1DLEVBQ25DLEtBQW1CLEVBQ25CLE1BQW9CLEVBQ3BCLFFBQXNCLEVBQ3RCLFFBQW1CO0lBRW5CLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwRSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhDLGtDQUFrQyxDQUFDLEdBQUcsRUFBRTtZQUNwQyxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUNSLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxTQUFTO29CQUFFLE9BQU87Z0JBQ3ZCLElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO29CQUN4QixTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDaEQsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7b0JBQ2hELFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztpQkFDdkM7cUJBQU07b0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO2lCQUN0RjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxrQkFBa0IsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBRW5DLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFFdkIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUM3QixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUVwQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNqRCxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVyQixJQUFJLElBQUksRUFBRTtnQkFDTixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztBQUVuRCxNQW1CYSwrQkFBK0I7SUFFL0IsYUFBYSxDQUErQjtJQU9yRDtRQVJtQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2pFLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFNUMsWUFBTyxHQUFHLFlBQVksRUFBYyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRTlCLFVBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUd0QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFakcsa0NBQWtDLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7b0JBQzdDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDcEI7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBRUgsc0JBQXNCLENBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUM1QixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUMxQyxDQUFDO0lBQ04sQ0FBQzs4R0E3QlEsK0JBQStCO2tHQUEvQiwrQkFBK0IsaUdBaEI5Qjs7Ozs7Ozs7Ozs7OztLQWFUOztTQUdRLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQW5CM0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUNBQXVDO29CQUNqRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0tBYVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOztBQWlDRCxNQXFCYSw2QkFBNkI7SUFHN0IsYUFBYSxDQUErQjtJQXNCNUMsT0FBTyxDQWlCYjtJQUVIO1FBM0NtQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2pFLFlBQU8sR0FBRyxZQUFZLEVBQWMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTVDLGVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUV0QyxVQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDakMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRXZELE9BQU8sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtnQkFDOUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUN4QixRQUFRLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQzlCLGFBQWEsRUFBRSxLQUFLO2dCQUNwQixzQkFBc0I7YUFDekIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDTSxhQUFRLEdBQUc7WUFDaEIsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDM0QsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtTQUN0QixDQUFDO1FBRU8sWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxjQUFjLENBQ3JCLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixZQUFZLEVBQUUsVUFBVSxDQUFDOzs7Ozs7O2lCQU94QjtnQkFDRCxjQUFjLEVBQUUsTUFBTTthQUN6QixDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBR0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRWpHLHNCQUFzQixDQUNsQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFDNUIsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFDckMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FDMUMsQ0FBQztRQUVGLGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekMsSUFBSSxNQUFNLElBQUksWUFBWSxFQUFFO2dCQUN4QixFQUFFLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNsQixFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxrQ0FBa0MsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLEdBQUcsRUFBRTtvQkFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2lCQUN4QztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDWCxJQUFJLE1BQU0sRUFBRTt3QkFDUixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQ2pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQzdCO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNYLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0EzRlEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsOEZBbEI1Qjs7Ozs7Ozs7Ozs7Ozs7O0tBZVQ7O1NBR1EsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBckJ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztLQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs7QUErRkQsTUFZYSxtQkFBb0IsU0FBUSw0QkFBNEI7OEdBQXhELG1CQUFtQjtrR0FBbkIsbUJBQW1CLHFFQUZqQixDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLGlEQVA5RTs7Ozs7S0FLVCw0REF0R1EsNkJBQTZCLCtFQXJEN0IsK0JBQStCLGtGQTRKa0MsSUFBSTs7U0FHckUsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBWi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7S0FLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUM7b0JBQy9FLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcscUJBQXFCLEVBQUUsQ0FBQztpQkFDM0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgY29tcHV0ZWQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBOZ3RJbmplY3RlZFJlZixcbiAgICBhc3NlcnRJbmplY3Rpb25Db250ZXh0LFxuICAgIGNoZWNrVXBkYXRlLFxuICAgIGV4dGVuZCxcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIHJlcXVlc3RBbmltYXRpb25JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCwgTWVzaEJhc2ljTWF0ZXJpYWwsIFBsYW5lR2VvbWV0cnkgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBGdWxsU2NyZWVuUXVhZCB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOR1RTX1NQT1RfTElHSFRfQVBJIH0gZnJvbSAnLi9zcG90LWxpZ2h0JztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQgfSBmcm9tICcuL3Nwb3QtbGlnaHQtc2hhZG93LW1lc2gtaW5wdXQnO1xuXG5jb25zdCBpc1Nwb3RMaWdodCA9IChjaGlsZDogVEhSRUUuT2JqZWN0M0QgfCBudWxsKTogY2hpbGQgaXMgVEhSRUUuU3BvdExpZ2h0ID0+IHtcbiAgICByZXR1cm4gKGNoaWxkIGFzIFRIUkVFLlNwb3RMaWdodCk/LmlzU3BvdExpZ2h0O1xufTtcblxuZnVuY3Rpb24gaW5qZWN0U2hhZG93TWVzaENvbW1vbihcbiAgICBzcG90TGlnaHRSZWY6IE5ndEluamVjdGVkUmVmPFRIUkVFLlNwb3RMaWdodD4sXG4gICAgbWVzaFJlZjogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuTWVzaD4sXG4gICAgd2lkdGg6ICgpID0+IG51bWJlcixcbiAgICBoZWlnaHQ6ICgpID0+IG51bWJlcixcbiAgICBkaXN0YW5jZTogKCkgPT4gbnVtYmVyLFxuICAgIGluamVjdG9yPzogSW5qZWN0b3Jcbikge1xuICAgIGluamVjdG9yID0gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChpbmplY3RTaGFkb3dNZXNoQ29tbW9uLCBpbmplY3Rvcik7XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvcyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgIGNvbnN0IGRpciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkluSW5qZWN0aW9uQ29udGV4dCgoKSA9PiB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNwb3RMaWdodCA9IHNwb3RMaWdodFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICghc3BvdExpZ2h0KSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKGlzU3BvdExpZ2h0KHNwb3RMaWdodCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3BvdExpZ2h0LnNoYWRvdy5tYXBTaXplLnNldCh3aWR0aCgpLCBoZWlnaHQoKSk7XG4gICAgICAgICAgICAgICAgICAgIHNwb3RMaWdodC5zaGFkb3cubWFwLnNldFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpO1xuICAgICAgICAgICAgICAgICAgICBzcG90TGlnaHQuc2hhZG93Lm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJzxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93PiBtdXN0IGJlIGEgY2hpbGQgb2YgYSA8bmd0cy1zcG90LWxpZ2h0PicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3BvdExpZ2h0ID0gc3BvdExpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBtZXNoID0gbWVzaFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgICBpZiAoIXNwb3RMaWdodCkgcmV0dXJuO1xuXG4gICAgICAgICAgICBjb25zdCBBID0gc3BvdExpZ2h0LnBvc2l0aW9uO1xuICAgICAgICAgICAgY29uc3QgQiA9IHNwb3RMaWdodC50YXJnZXQucG9zaXRpb247XG5cbiAgICAgICAgICAgIGRpci5jb3B5KEIpLnN1YihBKTtcbiAgICAgICAgICAgIGNvbnN0IGxlbiA9IGRpci5sZW5ndGgoKTtcbiAgICAgICAgICAgIGRpci5ub3JtYWxpemUoKS5tdWx0aXBseVNjYWxhcihsZW4gKiBkaXN0YW5jZSgpKTtcbiAgICAgICAgICAgIHBvcy5jb3B5KEEpLmFkZChkaXIpO1xuXG4gICAgICAgICAgICBpZiAobWVzaCkge1xuICAgICAgICAgICAgICAgIG1lc2gucG9zaXRpb24uY29weShwb3MpO1xuICAgICAgICAgICAgICAgIG1lc2gubG9va0F0KHNwb3RMaWdodC50YXJnZXQucG9zaXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cblxuZXh0ZW5kKHsgTWVzaCwgUGxhbmVHZW9tZXRyeSwgTWVzaEJhc2ljTWF0ZXJpYWwgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1tZXNoLW5vLXNoYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2ggW3JlZl09XCJtZXNoUmVmXCIgW3NjYWxlXT1cInNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoU2NhbGUoKVwiIFtjYXN0U2hhZG93XT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cbiAgICAgICAgICAgIDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbFxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2lkZV09XCJEb3VibGVTaWRlXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cInNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoQWxwaGFUZXN0KClcIlxuICAgICAgICAgICAgICAgIFthbHBoYU1hcF09XCJzaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaE1hcCgpXCJcbiAgICAgICAgICAgICAgICBbb3BhY2l0eV09XCJkZWJ1ZygpID8gMSA6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPlxuICAgICAgICA8L25ndC1tZXNoPlxuICAgIGAsXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaE5vU2hhZGVyIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2hhZG93TWVzaElucHV0ID0gaW5qZWN0KE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQpO1xuICAgIHJlYWRvbmx5ICNzcG90TGlnaHRBcGkgPSBpbmplY3QoTkdUU19TUE9UX0xJR0hUX0FQSSk7XG5cbiAgICByZWFkb25seSBtZXNoUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG4gICAgcmVhZG9ubHkgRG91YmxlU2lkZSA9IFRIUkVFLkRvdWJsZVNpZGU7XG5cbiAgICByZWFkb25seSBkZWJ1ZyA9IHRoaXMuI3Nwb3RMaWdodEFwaS5kZWJ1ZztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5wYXRjaCh7IGRpc3RhbmNlOiAwLjQsIGFscGhhVGVzdDogMC41LCB3aWR0aDogNTEyLCBoZWlnaHQ6IDUxMiwgc2NhbGU6IDEgfSk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkluSW5qZWN0aW9uQ29udGV4dCgoKSA9PiB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hNYXAoKTtcbiAgICAgICAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcC53cmFwUyA9IG1hcC53cmFwVCA9IFRIUkVFLlJlcGVhdFdyYXBwaW5nO1xuICAgICAgICAgICAgICAgICAgICBjaGVja1VwZGF0ZShtYXApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpbmplY3RTaGFkb3dNZXNoQ29tbW9uKFxuICAgICAgICAgICAgdGhpcy4jc3BvdExpZ2h0QXBpLnNwb3RMaWdodCxcbiAgICAgICAgICAgIHRoaXMubWVzaFJlZixcbiAgICAgICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hXaWR0aCxcbiAgICAgICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hIZWlnaHQsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoRGlzdGFuY2VcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1tZXNoLXNoYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2ggW3JlZl09XCJtZXNoUmVmXCIgW3NjYWxlXT1cInNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoU2NhbGUoKVwiIFtjYXN0U2hhZG93XT1cInRydWVcIj5cbiAgICAgICAgICAgIDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cbiAgICAgICAgICAgIDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbFxuICAgICAgICAgICAgICAgIFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbc2lkZV09XCJEb3VibGVTaWRlXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cInNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoQWxwaGFUZXN0KClcIlxuICAgICAgICAgICAgICAgIFthbHBoYU1hcF09XCJyZW5kZXJUYXJnZXQoKS50ZXh0dXJlXCJcbiAgICAgICAgICAgICAgICBbb3BhY2l0eV09XCJkZWJ1ZygpID8gMSA6IDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cIlJlcGVhdFdyYXBwaW5nXCIgYXR0YWNoPVwiYWxwaGFNYXAud3JhcFNcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cIlJlcGVhdFdyYXBwaW5nXCIgYXR0YWNoPVwiYWxwaGFNYXAud3JhcFRcIiAvPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPlxuICAgICAgICA8L25ndC1tZXNoPlxuICAgIGAsXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaFNoYWRlciB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNoYWRvd01lc2hJbnB1dCA9IGluamVjdChOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0KTtcbiAgICByZWFkb25seSBtZXNoUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG4gICAgcmVhZG9ubHkgI3Nwb3RMaWdodEFwaSA9IGluamVjdChOR1RTX1NQT1RfTElHSFRfQVBJKTtcblxuICAgIHJlYWRvbmx5IERvdWJsZVNpZGUgPSBUSFJFRS5Eb3VibGVTaWRlO1xuICAgIHJlYWRvbmx5IFJlcGVhdFdyYXBwaW5nID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG5cbiAgICByZWFkb25seSBkZWJ1ZyA9IHRoaXMuI3Nwb3RMaWdodEFwaS5kZWJ1ZztcbiAgICByZWFkb25seSByZW5kZXJUYXJnZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaFdpZHRoKCk7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hIZWlnaHQoKTtcblxuICAgICAgICByZXR1cm4gbmV3IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0KHdpZHRoLCBoZWlnaHQsIHtcbiAgICAgICAgICAgIGZvcm1hdDogVEhSRUUuUkdCQUZvcm1hdCxcbiAgICAgICAgICAgIGVuY29kaW5nOiBUSFJFRS5MaW5lYXJFbmNvZGluZyxcbiAgICAgICAgICAgIHN0ZW5jaWxCdWZmZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gZGVwdGhUZXh0dXJlOiBudWxsIVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZWFkb25seSB1bmlmb3JtcyA9IHtcbiAgICAgICAgdVNoYWRvd01hcDogeyB2YWx1ZTogdGhpcy5zaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaE1hcCgpIH0sXG4gICAgICAgIHVUaW1lOiB7IHZhbHVlOiAwIH0sXG4gICAgfTtcblxuICAgIHJlYWRvbmx5ICNmc1F1YWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNoYWRlciA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hTaGFkZXIoKTtcbiAgICAgICAgaWYgKCFzaGFkZXIpIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gbmV3IEZ1bGxTY3JlZW5RdWFkKFxuICAgICAgICAgICAgbmV3IFRIUkVFLlNoYWRlck1hdGVyaWFsKHtcbiAgICAgICAgICAgICAgICB1bmlmb3JtczogdGhpcy51bmlmb3JtcyxcbiAgICAgICAgICAgICAgICB2ZXJ0ZXhTaGFkZXI6IC8qIGdsc2wgKi8gYFxuICAgICAgICAgICAgICAgICAgdmFyeWluZyB2ZWMyIHZVdjtcblxuICAgICAgICAgICAgICAgICAgdm9pZCBtYWluKCkge1xuICAgICAgICAgICAgICAgICAgICB2VXYgPSB1djtcbiAgICAgICAgICAgICAgICAgICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogbW9kZWxWaWV3TWF0cml4ICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgIGZyYWdtZW50U2hhZGVyOiBzaGFkZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnBhdGNoKHsgZGlzdGFuY2U6IDAuNCwgYWxwaGFUZXN0OiAwLjUsIHdpZHRoOiA1MTIsIGhlaWdodDogNTEyLCBzY2FsZTogNCB9KTtcblxuICAgICAgICBpbmplY3RTaGFkb3dNZXNoQ29tbW9uKFxuICAgICAgICAgICAgdGhpcy4jc3BvdExpZ2h0QXBpLnNwb3RMaWdodCxcbiAgICAgICAgICAgIHRoaXMubWVzaFJlZixcbiAgICAgICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hXaWR0aCxcbiAgICAgICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hIZWlnaHQsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoRGlzdGFuY2VcbiAgICAgICAgKTtcblxuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoKHsgZGVsdGEsIGdsIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudW5pZm9ybXMudVRpbWUudmFsdWUgKz0gZGVsdGE7XG4gICAgICAgICAgICBjb25zdCBmc1F1YWQgPSB0aGlzLiNmc1F1YWQoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlclRhcmdldCA9IHRoaXMucmVuZGVyVGFyZ2V0KCk7XG4gICAgICAgICAgICBpZiAoZnNRdWFkICYmIHJlbmRlclRhcmdldCkge1xuICAgICAgICAgICAgICAgIGdsLnNldFJlbmRlclRhcmdldChyZW5kZXJUYXJnZXQpO1xuICAgICAgICAgICAgICAgIGZzUXVhZC5yZW5kZXIoZ2wpO1xuICAgICAgICAgICAgICAgIGdsLnNldFJlbmRlclRhcmdldChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkluSW5qZWN0aW9uQ29udGV4dCgoKSA9PiB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hNYXAoKTtcbiAgICAgICAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5pZm9ybXMudVNoYWRvd01hcC52YWx1ZSA9IG1hcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmc1F1YWQgPSB0aGlzLiNmc1F1YWQoKTtcbiAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnNRdWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmc1F1YWQuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZnNRdWFkLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyVGFyZ2V0ID0gdGhpcy5yZW5kZXJUYXJnZXQoKTtcbiAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJUYXJnZXQuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQtc2hhZG93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtc2hhZGVyICpuZ0lmPVwic2hhZG93TWVzaFNoYWRlcigpOyBlbHNlIG5vU2hhZGVyXCIgLz5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1NoYWRlcj5cbiAgICAgICAgICAgIDxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtbm8tc2hhZGVyIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hTaGFkZXIsIE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoTm9TaGFkZXIsIE5nSWZdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCwgdXNlRXhpc3Rpbmc6IE5ndHNTcG90TGlnaHRTaGFkb3cgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3cgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IHt9XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1zaGFkb3ctbWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQtc2hhZG93LW1lc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLHFCQUFxQixHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWix1Q0FBdUMsR0FDMUMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRTlFLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBNEIsRUFBNEIsRUFBRTtJQUMzRSxPQUFRLEtBQXlCLEVBQUUsV0FBVyxDQUFDO0FBQ25ELENBQUMsQ0FBQztBQUVGLFNBQVMsc0JBQXNCLENBQzNCLFlBQTZDLEVBQzdDLE9BQW1DLEVBQ25DLEtBQW1CLEVBQ25CLE1BQW9CLEVBQ3BCLFFBQXNCLEVBQ3RCLFFBQW1CO0lBRW5CLFFBQVEsR0FBRyxzQkFBc0IsQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNwRSxxQkFBcUIsQ0FBQyxR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QUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7S0FLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSwrQkFBK0IsRUFBRSxJQUFJLENBQUM7b0JBQy9FLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFdBQVcscUJBQXFCLEVBQUUsQ0FBQztpQkFDM0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgY29tcHV0ZWQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBOZ3RJbmplY3RlZFJlZixcbiAgICBhc3NlcnRJbmplY3Rpb25Db250ZXh0LFxuICAgIGNoZWNrVXBkYXRlLFxuICAgIGV4dGVuZCxcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUluSW5qZWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgUGxhbmVHZW9tZXRyeSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZ1bGxTY3JlZW5RdWFkIH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IE5HVFNfU1BPVF9MSUdIVF9BUEkgfSBmcm9tICcuL3Nwb3QtbGlnaHQnO1xuaW1wb3J0IHsgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCB9IGZyb20gJy4vc3BvdC1saWdodC1zaGFkb3ctbWVzaC1pbnB1dCc7XG5cbmNvbnN0IGlzU3BvdExpZ2h0ID0gKGNoaWxkOiBUSFJFRS5PYmplY3QzRCB8IG51bGwpOiBjaGlsZCBpcyBUSFJFRS5TcG90TGlnaHQgPT4ge1xuICAgIHJldHVybiAoY2hpbGQgYXMgVEhSRUUuU3BvdExpZ2h0KT8uaXNTcG90TGlnaHQ7XG59O1xuXG5mdW5jdGlvbiBpbmplY3RTaGFkb3dNZXNoQ29tbW9uKFxuICAgIHNwb3RMaWdodFJlZjogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuU3BvdExpZ2h0PixcbiAgICBtZXNoUmVmOiBOZ3RJbmplY3RlZFJlZjxUSFJFRS5NZXNoPixcbiAgICB3aWR0aDogKCkgPT4gbnVtYmVyLFxuICAgIGhlaWdodDogKCkgPT4gbnVtYmVyLFxuICAgIGRpc3RhbmNlOiAoKSA9PiBudW1iZXIsXG4gICAgaW5qZWN0b3I/OiBJbmplY3RvclxuKSB7XG4gICAgaW5qZWN0b3IgPSBhc3NlcnRJbmplY3Rpb25Db250ZXh0KGluamVjdFNoYWRvd01lc2hDb21tb24sIGluamVjdG9yKTtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgY29uc3QgZGlyID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbkluamVjdGlvbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcG90TGlnaHQgPSBzcG90TGlnaHRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICBpZiAoIXNwb3RMaWdodCkgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmIChpc1Nwb3RMaWdodChzcG90TGlnaHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNwb3RMaWdodC5zaGFkb3cubWFwU2l6ZS5zZXQod2lkdGgoKSwgaGVpZ2h0KCkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3BvdExpZ2h0LnNoYWRvdy5tYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwb3RMaWdodC5zaGFkb3cubWFwLnNldFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNwb3RMaWdodC5zaGFkb3cubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignPG5ndHMtc3BvdC1saWdodC1zaGFkb3c+IG11c3QgYmUgYSBjaGlsZCBvZiBhIDxuZ3RzLXNwb3QtbGlnaHQ+Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcG90TGlnaHQgPSBzcG90TGlnaHRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IG1lc2ggPSBtZXNoUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmICghc3BvdExpZ2h0KSByZXR1cm47XG5cbiAgICAgICAgICAgIGNvbnN0IEEgPSBzcG90TGlnaHQucG9zaXRpb247XG4gICAgICAgICAgICBjb25zdCBCID0gc3BvdExpZ2h0LnRhcmdldC5wb3NpdGlvbjtcblxuICAgICAgICAgICAgZGlyLmNvcHkoQikuc3ViKEEpO1xuICAgICAgICAgICAgY29uc3QgbGVuID0gZGlyLmxlbmd0aCgpO1xuICAgICAgICAgICAgZGlyLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKGxlbiAqIGRpc3RhbmNlKCkpO1xuICAgICAgICAgICAgcG9zLmNvcHkoQSkuYWRkKGRpcik7XG5cbiAgICAgICAgICAgIGlmIChtZXNoKSB7XG4gICAgICAgICAgICAgICAgbWVzaC5wb3NpdGlvbi5jb3B5KHBvcyk7XG4gICAgICAgICAgICAgICAgbWVzaC5sb29rQXQoc3BvdExpZ2h0LnRhcmdldC5wb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xufVxuXG5leHRlbmQoeyBNZXNoLCBQbGFuZUdlb21ldHJ5LCBNZXNoQmFzaWNNYXRlcmlhbCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtbm8tc2hhZGVyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbWVzaCBbcmVmXT1cIm1lc2hSZWZcIiBbc2NhbGVdPVwic2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hTY2FsZSgpXCIgW2Nhc3RTaGFkb3ddPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG5ndC1wbGFuZS1nZW9tZXRyeSAvPlxuICAgICAgICAgICAgPG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzaWRlXT1cIkRvdWJsZVNpZGVcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwic2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hBbHBoYVRlc3QoKVwiXG4gICAgICAgICAgICAgICAgW2FscGhhTWFwXT1cInNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoTWFwKClcIlxuICAgICAgICAgICAgICAgIFtvcGFjaXR5XT1cImRlYnVnKCkgPyAxIDogMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDwvbmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWw+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoTm9TaGFkZXIge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzaGFkb3dNZXNoSW5wdXQgPSBpbmplY3QoTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCk7XG4gICAgcmVhZG9ubHkgI3Nwb3RMaWdodEFwaSA9IGluamVjdChOR1RTX1NQT1RfTElHSFRfQVBJKTtcblxuICAgIHJlYWRvbmx5IG1lc2hSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuTWVzaD4oKTtcbiAgICByZWFkb25seSBEb3VibGVTaWRlID0gVEhSRUUuRG91YmxlU2lkZTtcblxuICAgIHJlYWRvbmx5IGRlYnVnID0gdGhpcy4jc3BvdExpZ2h0QXBpLmRlYnVnO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2hhZG93TWVzaElucHV0LnBhdGNoKHsgZGlzdGFuY2U6IDAuNCwgYWxwaGFUZXN0OiAwLjUsIHdpZHRoOiA1MTIsIGhlaWdodDogNTEyLCBzY2FsZTogMSB9KTtcblxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbkluamVjdGlvbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXAgPSB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoTWFwKCk7XG4gICAgICAgICAgICAgICAgaWYgKG1hcCkge1xuICAgICAgICAgICAgICAgICAgICBtYXAud3JhcFMgPSBtYXAud3JhcFQgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tVcGRhdGUobWFwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW5qZWN0U2hhZG93TWVzaENvbW1vbihcbiAgICAgICAgICAgIHRoaXMuI3Nwb3RMaWdodEFwaS5zcG90TGlnaHQsXG4gICAgICAgICAgICB0aGlzLm1lc2hSZWYsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoV2lkdGgsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoSGVpZ2h0LFxuICAgICAgICAgICAgdGhpcy5zaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaERpc3RhbmNlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtc3BvdC1saWdodC1zaGFkb3ctbWVzaC1zaGFkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIFtyZWZdPVwibWVzaFJlZlwiIFtzY2FsZV09XCJzaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaFNjYWxlKClcIiBbY2FzdFNoYWRvd109XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bmd0LXBsYW5lLWdlb21ldHJ5IC8+XG4gICAgICAgICAgICA8bmd0LW1lc2gtYmFzaWMtbWF0ZXJpYWxcbiAgICAgICAgICAgICAgICBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NpZGVdPVwiRG91YmxlU2lkZVwiXG4gICAgICAgICAgICAgICAgW2FscGhhVGVzdF09XCJzaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaEFscGhhVGVzdCgpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFNYXBdPVwicmVuZGVyVGFyZ2V0KCkudGV4dHVyZVwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZGVidWcoKSA/IDEgOiAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJSZXBlYXRXcmFwcGluZ1wiIGF0dGFjaD1cImFscGhhTWFwLndyYXBTXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJSZXBlYXRXcmFwcGluZ1wiIGF0dGFjaD1cImFscGhhTWFwLndyYXBUXCIgLz5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9uZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbD5cbiAgICAgICAgPC9uZ3QtbWVzaD5cbiAgICBgLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hTaGFkZXIge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzaGFkb3dNZXNoSW5wdXQgPSBpbmplY3QoTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCk7XG4gICAgcmVhZG9ubHkgbWVzaFJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5NZXNoPigpO1xuICAgIHJlYWRvbmx5ICNzcG90TGlnaHRBcGkgPSBpbmplY3QoTkdUU19TUE9UX0xJR0hUX0FQSSk7XG5cbiAgICByZWFkb25seSBEb3VibGVTaWRlID0gVEhSRUUuRG91YmxlU2lkZTtcbiAgICByZWFkb25seSBSZXBlYXRXcmFwcGluZyA9IFRIUkVFLlJlcGVhdFdyYXBwaW5nO1xuXG4gICAgcmVhZG9ubHkgZGVidWcgPSB0aGlzLiNzcG90TGlnaHRBcGkuZGVidWc7XG4gICAgcmVhZG9ubHkgcmVuZGVyVGFyZ2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hXaWR0aCgpO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoSGVpZ2h0KCk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5XZWJHTFJlbmRlclRhcmdldCh3aWR0aCwgaGVpZ2h0LCB7XG4gICAgICAgICAgICBmb3JtYXQ6IFRIUkVFLlJHQkFGb3JtYXQsXG4gICAgICAgICAgICBlbmNvZGluZzogVEhSRUUuTGluZWFyRW5jb2RpbmcsXG4gICAgICAgICAgICBzdGVuY2lsQnVmZmVyOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGRlcHRoVGV4dHVyZTogbnVsbCFcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmVhZG9ubHkgdW5pZm9ybXMgPSB7XG4gICAgICAgIHVTaGFkb3dNYXA6IHsgdmFsdWU6IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hNYXAoKSB9LFxuICAgICAgICB1VGltZTogeyB2YWx1ZTogMCB9LFxuICAgIH07XG5cbiAgICByZWFkb25seSAjZnNRdWFkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzaGFkZXIgPSB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoU2hhZGVyKCk7XG4gICAgICAgIGlmICghc2hhZGVyKSByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIG5ldyBGdWxsU2NyZWVuUXVhZChcbiAgICAgICAgICAgIG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICAgICAgICAgICAgdW5pZm9ybXM6IHRoaXMudW5pZm9ybXMsXG4gICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiAvKiBnbHNsICovIGBcbiAgICAgICAgICAgICAgICAgIHZhcnlpbmcgdmVjMiB2VXY7XG5cbiAgICAgICAgICAgICAgICAgIHZvaWQgbWFpbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdlV2ID0gdXY7XG4gICAgICAgICAgICAgICAgICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYCxcbiAgICAgICAgICAgICAgICBmcmFnbWVudFNoYWRlcjogc2hhZGVyLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5wYXRjaCh7IGRpc3RhbmNlOiAwLjQsIGFscGhhVGVzdDogMC41LCB3aWR0aDogNTEyLCBoZWlnaHQ6IDUxMiwgc2NhbGU6IDQgfSk7XG5cbiAgICAgICAgaW5qZWN0U2hhZG93TWVzaENvbW1vbihcbiAgICAgICAgICAgIHRoaXMuI3Nwb3RMaWdodEFwaS5zcG90TGlnaHQsXG4gICAgICAgICAgICB0aGlzLm1lc2hSZWYsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoV2lkdGgsXG4gICAgICAgICAgICB0aGlzLnNoYWRvd01lc2hJbnB1dC5zaGFkb3dNZXNoSGVpZ2h0LFxuICAgICAgICAgICAgdGhpcy5zaGFkb3dNZXNoSW5wdXQuc2hhZG93TWVzaERpc3RhbmNlXG4gICAgICAgICk7XG5cbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKCh7IGRlbHRhLCBnbCB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVuaWZvcm1zLnVUaW1lLnZhbHVlICs9IGRlbHRhO1xuICAgICAgICAgICAgY29uc3QgZnNRdWFkID0gdGhpcy4jZnNRdWFkKCk7XG4gICAgICAgICAgICBjb25zdCByZW5kZXJUYXJnZXQgPSB0aGlzLnJlbmRlclRhcmdldCgpO1xuICAgICAgICAgICAgaWYgKGZzUXVhZCAmJiByZW5kZXJUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICBnbC5zZXRSZW5kZXJUYXJnZXQocmVuZGVyVGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBmc1F1YWQucmVuZGVyKGdsKTtcbiAgICAgICAgICAgICAgICBnbC5zZXRSZW5kZXJUYXJnZXQobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUluSW5qZWN0aW9uQ29udGV4dCgoKSA9PiB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcCA9IHRoaXMuc2hhZG93TWVzaElucHV0LnNoYWRvd01lc2hNYXAoKTtcbiAgICAgICAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudW5pZm9ybXMudVNoYWRvd01hcC52YWx1ZSA9IG1hcDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmc1F1YWQgPSB0aGlzLiNmc1F1YWQoKTtcbiAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZnNRdWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmc1F1YWQuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZnNRdWFkLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVuZGVyVGFyZ2V0ID0gdGhpcy5yZW5kZXJUYXJnZXQoKTtcbiAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJUYXJnZXQuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQtc2hhZG93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtc2hhZGVyICpuZ0lmPVwic2hhZG93TWVzaFNoYWRlcigpOyBlbHNlIG5vU2hhZGVyXCIgLz5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1NoYWRlcj5cbiAgICAgICAgICAgIDxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtbm8tc2hhZGVyIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hTaGFkZXIsIE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoTm9TaGFkZXIsIE5nSWZdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCwgdXNlRXhpc3Rpbmc6IE5ndHNTcG90TGlnaHRTaGFkb3cgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3cgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IHt9XG4iXX0=
|
|
@@ -32,8 +32,8 @@ class NgtsSpotLight extends NgtsSpotLightInput {
|
|
|
32
32
|
debug: false,
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLight, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { spotLightRef: "spotLightRef", volumetric: "volumetric" }, providers: [
|
|
37
37
|
{ provide: NGTS_SPOT_LIGHT_API, useFactory: spotLightApiFactory, deps: [NgtsSpotLight] },
|
|
38
38
|
{ provide: NgtsSpotLightInput, useExisting: NgtsSpotLight },
|
|
39
39
|
], usesInheritance: true, ngImport: i0, template: `
|
|
@@ -56,7 +56,7 @@ class NgtsSpotLight extends NgtsSpotLightInput {
|
|
|
56
56
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh" }] }); }
|
|
57
57
|
}
|
|
58
58
|
export { NgtsSpotLight };
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLight, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
61
|
args: [{
|
|
62
62
|
selector: 'ngts-spot-light',
|
|
@@ -58,8 +58,8 @@ class NgtsVolumetricMesh {
|
|
|
58
58
|
mesh.lookAt(mesh.parent.target.getWorldPosition(this.#vec));
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", ngImport: i0, template: `
|
|
63
63
|
<ngt-mesh [ref]="mesh" [geometry]="geometry()" [raycast]="nullRaycast">
|
|
64
64
|
<ngt-primitive *args="[material]" attach="material">
|
|
65
65
|
<ngt-value [rawValue]="spotLightInput.lightOpacity()" attach="uniforms.opacity.value" />
|
|
@@ -75,7 +75,7 @@ class NgtsVolumetricMesh {
|
|
|
75
75
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
|
|
76
76
|
}
|
|
77
77
|
export { NgtsVolumetricMesh };
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
|
|
79
79
|
type: Component,
|
|
80
80
|
args: [{
|
|
81
81
|
selector: 'ngts-volumetric-mesh',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
|
-
import { ChangeDetectorRef, Component, computed, CUSTOM_ELEMENTS_SCHEMA, Directive, EventEmitter, inject, Input, Output, } from '@angular/core';
|
|
3
|
-
import {
|
|
2
|
+
import { ChangeDetectorRef, Component, computed, CUSTOM_ELEMENTS_SCHEMA, Directive, EventEmitter, inject, Input, Output, signal, } from '@angular/core';
|
|
3
|
+
import { extend, NgtArgs, NgtSignalStore, safeDetectChanges } from 'angular-three';
|
|
4
4
|
import { AmbientLight, Group, PointLight, SpotLight, Vector2 } from 'three';
|
|
5
5
|
import { NgtsAccumulativeShadows } from '../accumulative-shadows/accumulative-shadows';
|
|
6
6
|
import { NgtsRandomizedLights } from '../accumulative-shadows/randomized-lights';
|
|
@@ -39,11 +39,11 @@ class NgtsStageRefit {
|
|
|
39
39
|
this.#boundsApi().refresh().clip().fit();
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
43
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStageRefit, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.3", type: NgtsStageRefit, isStandalone: true, selector: "ngts-stage-refit", inputs: { radius: "radius", adjustCamera: "adjustCamera" }, usesOnChanges: true, ngImport: i0 }); }
|
|
44
44
|
}
|
|
45
45
|
export { NgtsStageRefit };
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStageRefit, decorators: [{
|
|
47
47
|
type: Directive,
|
|
48
48
|
args: [{ selector: 'ngts-stage-refit', standalone: true }]
|
|
49
49
|
}], propDecorators: { radius: [{
|
|
@@ -85,7 +85,7 @@ class NgtsStage extends NgtSignalStore {
|
|
|
85
85
|
this.#cdr = inject(ChangeDetectorRef);
|
|
86
86
|
this.Number = Number;
|
|
87
87
|
this.centered = new EventEmitter();
|
|
88
|
-
this.boundingState =
|
|
88
|
+
this.boundingState = signal({ radius: 0, width: 0, height: 0, depth: 0 });
|
|
89
89
|
this.#preset = this.select('preset');
|
|
90
90
|
this.#environment = this.select('environment');
|
|
91
91
|
this.stageShadows = this.select('shadows');
|
|
@@ -139,8 +139,8 @@ class NgtsStage extends NgtSignalStore {
|
|
|
139
139
|
if (this.centered.observed)
|
|
140
140
|
this.centered.emit(props);
|
|
141
141
|
}
|
|
142
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
142
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsStage, isStandalone: true, selector: "ngts-stage", inputs: { preset: "preset", shadows: "shadows", adjustCamera: "adjustCamera", environment: "environment", intensity: "intensity", center: "center" }, outputs: { centered: "centered" }, usesInheritance: true, ngImport: i0, template: `
|
|
144
144
|
<ngt-ambient-light [intensity]="stageIntensity() / 3" />
|
|
145
145
|
<ngt-spot-light
|
|
146
146
|
[penumbra]="1"
|
|
@@ -240,7 +240,7 @@ class NgtsStage extends NgtSignalStore {
|
|
|
240
240
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsBounds, selector: "ngts-bounds", inputs: ["boundsRef", "damping", "fit", "clip", "observe", "margin", "eps"], outputs: ["fitted"] }, { kind: "directive", type: NgtsStageRefit, selector: "ngts-stage-refit", inputs: ["radius", "adjustCamera"] }, { kind: "component", type: NgtsCenter, selector: "ngts-center", inputs: ["centerRef", "top", "right", "bottom", "left", "front", "back", "disableX", "disableY", "disableZ", "disable", "precise"], outputs: ["centered"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtsContactShadows, selector: "ngts-contact-shadows", inputs: ["contactShadowsRef", "opacity", "width", "height", "blur", "far", "smooth", "resolution", "frames", "scale", "color", "depthWrite", "renderOrder"] }, { kind: "component", type: NgtsAccumulativeShadows, selector: "ngts-accumulative-shadows", inputs: ["frames", "blend", "limit", "scale", "temporal", "opacity", "alphaTest", "color", "colorBlend", "resolution", "toneMapped"] }, { kind: "component", type: NgtsRandomizedLights, selector: "ngts-randomized-lights", inputs: ["lightsRef", "frames", "position", "radius", "amount", "intensity", "ambient", "castShadow", "bias", "mapSize", "size", "near", "far"] }, { kind: "component", type: NgtsEnvironment, selector: "ngts-environment" }] }); }
|
|
241
241
|
}
|
|
242
242
|
export { NgtsStage };
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStage, decorators: [{
|
|
244
244
|
type: Component,
|
|
245
245
|
args: [{
|
|
246
246
|
selector: 'ngts-stage',
|
|
@@ -371,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
371
371
|
}], centered: [{
|
|
372
372
|
type: Output
|
|
373
373
|
}] } });
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhZ2Uvc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLEdBQUc7SUFDWixTQUFTLEVBQUU7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tB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QUksNkZBQ0osa0JBQWtCLDhOQUNsQix1QkFBdUIsNE1BQ3ZCLG9CQUFvQixvTkFDcEIsZUFBZTs7U0FJVixTQUFTOzJGQUFULFNBQVM7a0JBbEhyQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUdUO29CQUNELE9BQU8sRUFBRTt3QkFDTCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLElBQUk7d0JBQ0osa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUtnQixNQUFNO3NCQUFsQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlU2lnbmFsLCBleHRlbmQsIE5ndEFyZ3MsIE5ndFNpZ25hbFN0b3JlLCBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQW1iaWVudExpZ2h0LCBHcm91cCwgUG9pbnRMaWdodCwgU3BvdExpZ2h0LCBWZWN0b3IyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3MgfSBmcm9tICcuLi9hY2N1bXVsYXRpdmUtc2hhZG93cy9hY2N1bXVsYXRpdmUtc2hhZG93cyc7XG5pbXBvcnQgeyBOZ3RzUmFuZG9taXplZExpZ2h0cyB9IGZyb20gJy4uL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL3JhbmRvbWl6ZWQtbGlnaHRzJztcbmltcG9ydCB7IE5HVFNfQk9VTkRTX0FQSSwgTmd0c0JvdW5kcyB9IGZyb20gJy4uL2JvdW5kcy9ib3VuZHMnO1xuaW1wb3J0IHsgTmd0c0NlbnRlciB9IGZyb20gJy4uL2NlbnRlci9jZW50ZXInO1xuaW1wb3J0IHsgTmd0c0NvbnRhY3RTaGFkb3dzIH0gZnJvbSAnLi4vY29udGFjdC1zaGFkb3dzL2NvbnRhY3Qtc2hhZG93cyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzVHlwZSB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Fzc2V0cyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Vudmlyb25tZW50LWlucHV0JztcblxuY29uc3QgcHJlc2V0cyA9IHtcbiAgICByZW1icmFuZHQ6IHtcbiAgICAgICAgbWFpbjogWzEsIDIsIDFdLFxuICAgICAgICBmaWxsOiBbLTIsIC0wLjUsIC0yXSxcbiAgICB9LFxuICAgIHBvcnRyYWl0OiB7XG4gICAgICAgIG1haW46IFstMSwgMiwgMC41XSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG4gICAgdXBmcm9udDoge1xuICAgICAgICBtYWluOiBbMCwgMiwgMV0sXG4gICAgICAgIGZpbGw6IFstMSwgMC41LCAtMS41XSxcbiAgICB9LFxuICAgIHNvZnQ6IHtcbiAgICAgICAgbWFpbjogWy0yLCA0LCA0XSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG59O1xuXG50eXBlIE5ndHNTdGFnZVNoYWRvd3MgPSBQYXJ0aWFsPE5ndHNBY2N1bXVsYXRpdmVTaGFkb3dzPiAmXG4gICAgUGFydGlhbDxOZ3RzUmFuZG9taXplZExpZ2h0cz4gJlxuICAgIFBhcnRpYWw8Tmd0c0NvbnRhY3RTaGFkb3dzPiAmIHtcbiAgICAgICAgdHlwZTogJ2NvbnRhY3QnIHwgJ2FjY3VtdWxhdGl2ZSc7XG4gICAgICAgIC8qKiBTaGFkb3cgcGxhbmUgb2Zmc2V0LCBkZWZhdWx0OiAwICovXG4gICAgICAgIG9mZnNldD86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBiaWFzLCBkZWZhdWx0OiAtMC4wMDAxICovXG4gICAgICAgIGJpYXM/OiBudW1iZXI7XG4gICAgICAgIC8qKiBTaGFkb3cgbm9ybWFsIGJpYXMsIGRlZmF1bHQ6IDAgKi9cbiAgICAgICAgbm9ybWFsQmlhcz86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBtYXAgc2l6ZSwgZGVmYXVsdDogMTAyNCAqL1xuICAgICAgICBzaXplPzogbnVtYmVyO1xuICAgIH07XG5cbmludGVyZmFjZSBOZ3RzU3RhZ2VQcm9wcyB7XG4gICAgLyoqIExpZ2h0aW5nIHNldHVwLCBkZWZhdWx0OiBcInJlbWJyYW5kdFwiICovXG4gICAgcHJlc2V0OlxuICAgICAgICB8ICdyZW1icmFuZHQnXG4gICAgICAgIHwgJ3BvcnRyYWl0J1xuICAgICAgICB8ICd1cGZyb250J1xuICAgICAgICB8ICdzb2Z0J1xuICAgICAgICB8IHsgbWFpbjogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdOyBmaWxsOiBbeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcl0gfTtcbiAgICAvKiogQ29udHJvbHMgdGhlIGdyb3VuZCBzaGFkb3dzLCBkZWZhdWx0OiBcImNvbnRhY3RcIiAqL1xuICAgIHNoYWRvd3M6IGJvb2xlYW4gfCAnY29udGFjdCcgfCAnYWNjdW11bGF0aXZlJyB8IE5ndHNTdGFnZVNoYWRvd3M7XG4gICAgLyoqIE9wdGlvbmFsbHkgd3JhcHMgYW5kIHRoZXJlYnkgY2VudGVycyB0aGUgbW9kZWxzIHVzaW5nIDxCb3VuZHM+LCBjYW4gYWxzbyBiZSBhIG1hcmdpbiwgZGVmYXVsdDogdHJ1ZSAqL1xuICAgIGFkanVzdENhbWVyYTogYm9vbGVhbiB8IG51bWJlcjtcbiAgICAvKiogVGhlIGRlZmF1bHQgZW52aXJvbm1lbnQsIGRlZmF1bHQ6IFwiY2l0eVwiICovXG4gICAgZW52aXJvbm1lbnQ6IE5ndHNFbnZpcm9ubWVudFByZXNldHNUeXBlIHwgUGFydGlhbDxOZ3RzRW52aXJvbm1lbnRJbnB1dD47XG4gICAgLyoqIFRoZSBsaWdodGluZyBpbnRlbnNpdHksIGRlZmF1bHQ6IDAuNSAqL1xuICAgIGludGVuc2l0eTogbnVtYmVyO1xuICAgIC8qKiBUbyBhZGp1c3QgY2VudGVyaW5nLCBkZWZhdWx0OiB1bmRlZmluZWQgKi9cbiAgICBjZW50ZXI/OiBQYXJ0aWFsPE5ndHNDZW50ZXI+O1xufVxuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLXN0YWdlLXJlZml0Jywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZVJlZml0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICByZWFkb25seSAjYm91bmRzQXBpID0gaW5qZWN0KE5HVFNfQk9VTkRTX0FQSSk7XG5cbiAgICBASW5wdXQoKSByYWRpdXMgPSAwO1xuICAgIEBJbnB1dCgpIGFkanVzdENhbWVyYSA9IHRydWU7XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgaWYgKHRoaXMuYWRqdXN0Q2FtZXJhKSB7XG4gICAgICAgICAgICB0aGlzLiNib3VuZHNBcGkoKS5yZWZyZXNoKCkuY2xpcCgpLmZpdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHRlbmQoeyBBbWJpZW50TGlnaHQsIFNwb3RMaWdodCwgVmVjdG9yMiwgUG9pbnRMaWdodCwgR3JvdXAgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zdGFnZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWFtYmllbnQtbGlnaHQgW2ludGVuc2l0eV09XCJzdGFnZUludGVuc2l0eSgpIC8gM1wiIC8+XG4gICAgICAgIDxuZ3Qtc3BvdC1saWdodFxuICAgICAgICAgICAgW3BlbnVtYnJhXT1cIjFcIlxuICAgICAgICAgICAgW3Bvc2l0aW9uXT1cInNwb3RMaWdodFBvc2l0aW9uKClcIlxuICAgICAgICAgICAgW2ludGVuc2l0eV09XCJzdGFnZUludGVuc2l0eSgpICogMlwiXG4gICAgICAgICAgICBbY2FzdFNoYWRvd109XCIhIXN0YWdlU2hhZG93cygpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic2hhZG93c0luZm8oKS5zaGFkb3dCaWFzXCIgYXR0YWNoPVwic2hhZG93LmJpYXNcIiAvPlxuICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic2hhZG93c0luZm8oKS5ub3JtYWxCaWFzXCIgYXR0YWNoPVwic2hhZG93Lm5vcm1hbEJpYXNcIiAvPlxuICAgICAgICAgICAgPG5ndC12ZWN0b3IyICphcmdzPVwiW3NoYWRvd3NJbmZvKCkuc2hhZG93U2l6ZSwgc2hhZG93c0luZm8oKS5zaGFkb3dTaXplXVwiIGF0dGFjaD1cInNoYWRvdy5tYXBTaXplXCIgLz5cbiAgICAgICAgPC9uZ3Qtc3BvdC1saWdodD5cbiAgICAgICAgPG5ndC1wb2ludC1saWdodCBbcG9zaXRpb25dPVwicG9pbnRMaWdodFBvc2l0aW9uKClcIiBbaW50ZW5zaXR5XT1cInN0YWdlSW50ZW5zaXR5KClcIiAvPlxuXG4gICAgICAgIDxuZ3RzLWJvdW5kc1xuICAgICAgICAgICAgW2ZpdF09XCIhIXN0YWdlQWRqdXN0Q2FtZXJhKClcIlxuICAgICAgICAgICAgW2NsaXBdPVwiISFzdGFnZUFkanVzdENhbWVyYSgpXCJcbiAgICAgICAgICAgIFttYXJnaW5dPVwiTnVtYmVyKHN0YWdlQWRqdXN0Q2FtZXJhKCkpXCJcbiAgICAgICAgICAgIFtvYnNlcnZlXT1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmd0cy1zdGFnZS1yZWZpdCBbcmFkaXVzXT1cImJvdW5kaW5nU3RhdGUoKS5yYWRpdXNcIiBbYWRqdXN0Q2FtZXJhXT1cIiEhc3RhZ2VBZGp1c3RDYW1lcmEoKVwiIC8+XG4gICAgICAgICAgICA8bmd0cy1jZW50ZXJcbiAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiWzAsIHNoYWRvd3NJbmZvKCkuc2hhZG93T2Zmc2V0IC8gMiwgMF1cIlxuICAgICAgICAgICAgICAgIFt0b3BdPVwiISFzdGFnZUNlbnRlcigpPy50b3BcIlxuICAgICAgICAgICAgICAgIFtyaWdodF09XCIhIXN0YWdlQ2VudGVyKCk/LnJpZ2h0XCJcbiAgICAgICAgICAgICAgICBbYm90dG9tXT1cIiEhc3RhZ2VDZW50ZXIoKT8uYm90dG9tXCJcbiAgICAgICAgICAgICAgICBbbGVmdF09XCIhIXN0YWdlQ2VudGVyKCk/LmxlZnRcIlxuICAgICAgICAgICAgICAgIFtmcm9udF09XCIhIXN0YWdlQ2VudGVyKCk/LmZyb250XCJcbiAgICAgICAgICAgICAgICBbYmFja109XCIhIXN0YWdlQ2VudGVyKCk/LmJhY2tcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlWF09XCIhIXN0YWdlQ2VudGVyKCk/LmRpc2FibGVYXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZVldPVwiISFzdGFnZUNlbnRlcigpPy5kaXNhYmxlWVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVaXT1cIiEhc3RhZ2VDZW50ZXIoKT8uZGlzYWJsZVpcIlxuICAgICAgICAgICAgICAgIFtwcmVjaXNlXT1cIiEhc3RhZ2VDZW50ZXIoKT8ucHJlY2lzZVwiXG4gICAgICAgICAgICAgICAgKGNlbnRlcmVkKT1cIm9uQ2VudGVyZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgIDwvbmd0cy1jZW50ZXI+XG4gICAgICAgIDwvbmd0cy1ib3VuZHM+XG4gICAgICAgIDxuZ3QtZ3JvdXAgW3Bvc2l0aW9uXT1cIlswLCAtYm91bmRpbmdTdGF0ZSgpLmhlaWdodCAvIDIgLSBzaGFkb3dzSW5mbygpLnNoYWRvd09mZnNldCAvIDIsIDBdXCI+XG4gICAgICAgICAgICA8bmd0cy1jb250YWN0LXNoYWRvd3NcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNoYWRvd3NJbmZvKCkuY29udGFjdFNoYWRvd1wiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImJvdW5kaW5nU3RhdGUoKS5yYWRpdXMgKiA0XCJcbiAgICAgICAgICAgICAgICBbZmFyXT1cImJvdW5kaW5nU3RhdGUoKS5yYWRpdXNcIlxuICAgICAgICAgICAgICAgIFtibHVyXT1cIjJcIlxuICAgICAgICAgICAgICAgIFtvcGFjaXR5XT1cInNoYWRvd3NJbmZvKCkub3BhY2l0eVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cInNoYWRvd3NJbmZvKCkud2lkdGhcIlxuICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwic2hhZG93c0luZm8oKS5oZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtzbW9vdGhdPVwic2hhZG93c0luZm8oKS5zbW9vdGhcIlxuICAgICAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cInNoYWRvd3NJbmZvKCkucmVzb2x1dGlvblwiXG4gICAgICAgICAgICAgICAgW2ZyYW1lc109XCJzaGFkb3dzSW5mbygpLmZyYW1lc1wiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cInNoYWRvd3NJbmZvKCkuc2NhbGVcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJzaGFkb3dzSW5mbygpLmNvbG9yXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJzaGFkb3dzSW5mbygpLmRlcHRoV3JpdGVcIlxuICAgICAgICAgICAgICAgIFtyZW5kZXJPcmRlcl09XCJzaGFkb3dzSW5mbygpLnJlbmRlck9yZGVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93c1xuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hhZG93c0luZm8oKS5hY2N1bXVsYXRpdmVTaGFkb3dcIlxuICAgICAgICAgICAgICAgIFt0ZW1wb3JhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZnJhbWVzXT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgW2FscGhhVGVzdF09XCIwLjlcIlxuICAgICAgICAgICAgICAgIFt0b25lTWFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzY2FsZV09XCJib3VuZGluZ1N0YXRlKCkucmFkaXVzICogNFwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwic2hhZG93c0luZm8oKS5vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cInNoYWRvd3NJbmZvKCkuYWxwaGFUZXN0XCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwic2hhZG93c0luZm8oKS5jb2xvclwiXG4gICAgICAgICAgICAgICAgW2NvbG9yQmxlbmRdPVwic2hhZG93c0luZm8oKS5jb2xvckJsZW5kXCJcbiAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJzaGFkb3dzSW5mbygpLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzXG4gICAgICAgICAgICAgICAgICAgIFthbW91bnRdPVwic2hhZG93c0luZm8oKS5hbW91bnQgPz8gOFwiXG4gICAgICAgICAgICAgICAgICAgIFtyYWRpdXNdPVwic2hhZG93c0luZm8oKS5yYWRpdXMgPz8gYm91bmRpbmdTdGF0ZSgpLnJhZGl1c1wiXG4gICAgICAgICAgICAgICAgICAgIFthbWJpZW50XT1cInNoYWRvd3NJbmZvKCkuYW1iaWVudCA/PyAwLjVcIlxuICAgICAgICAgICAgICAgICAgICBbaW50ZW5zaXR5XT1cInNoYWRvd3NJbmZvKCkuaW50ZW5zaXR5ID8/IDFcIlxuICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwic3BvdExpZ2h0UG9zaXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIFtzaXplXT1cImJvdW5kaW5nU3RhdGUoKS5yYWRpdXMgKiA0XCJcbiAgICAgICAgICAgICAgICAgICAgW2JpYXNdPVwiLXNoYWRvd3NJbmZvKCkuc2hhZG93Qmlhc1wiXG4gICAgICAgICAgICAgICAgICAgIFttYXBTaXplXT1cInNoYWRvd3NJbmZvKCkuc2hhZG93U2l6ZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbmd0cy1hY2N1bXVsYXRpdmUtc2hhZG93cz5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgIDxuZ3RzLWVudmlyb25tZW50XG4gICAgICAgICAgICAqbmdJZj1cImVudmlyb25tZW50SW5mbygpIGFzIGVudmlyb25tZW50SW5mb1wiXG4gICAgICAgICAgICBbZnJhbWVzXT1cImVudmlyb25tZW50SW5mby5mcmFtZXNcIlxuICAgICAgICAgICAgW25lYXJdPVwiZW52aXJvbm1lbnRJbmZvLm5lYXJcIlxuICAgICAgICAgICAgW2Zhcl09XCJlbnZpcm9ubWVudEluZm8uZmFyXCJcbiAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cImVudmlyb25tZW50SW5mby5yZXNvbHV0aW9uXCJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImVudmlyb25tZW50SW5mby5iYWNrZ3JvdW5kXCJcbiAgICAgICAgICAgIFtibHVyXT1cImVudmlyb25tZW50SW5mby5ibHVyXCJcbiAgICAgICAgICAgIFttYXBdPVwiZW52aXJvbm1lbnRJbmZvLm1hcFwiXG4gICAgICAgICAgICBbZmlsZXNdPVwiZW52aXJvbm1lbnRJbmZvLmZpbGVzXCJcbiAgICAgICAgICAgIFtwYXRoXT1cImVudmlyb25tZW50SW5mby5wYXRoXCJcbiAgICAgICAgICAgIFtwcmVzZXRdPVwiZW52aXJvbm1lbnRJbmZvLnByZXNldFwiXG4gICAgICAgICAgICBbc2NlbmVdPVwiZW52aXJvbm1lbnRJbmZvLnNjZW5lXCJcbiAgICAgICAgICAgIFtleHRlbnNpb25zXT1cImVudmlyb25tZW50SW5mby5leHRlbnNpb25zXCJcbiAgICAgICAgICAgIFtncm91bmRdPVwiZW52aXJvbm1lbnRJbmZvLmdyb3VuZFwiXG4gICAgICAgICAgICBbZW5jb2RpbmddPVwiZW52aXJvbm1lbnRJbmZvLmVuY29kaW5nXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmd0QXJncyxcbiAgICAgICAgTmd0c0JvdW5kcyxcbiAgICAgICAgTmd0c1N0YWdlUmVmaXQsXG4gICAgICAgIE5ndHNDZW50ZXIsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5ndHNDb250YWN0U2hhZG93cyxcbiAgICAgICAgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3MsXG4gICAgICAgIE5ndHNSYW5kb21pemVkTGlnaHRzLFxuICAgICAgICBOZ3RzRW52aXJvbm1lbnQsXG4gICAgXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFnZSBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNTdGFnZVByb3BzPiB7XG4gICAgcmVhZG9ubHkgI2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgcmVhZG9ubHkgTnVtYmVyID0gTnVtYmVyO1xuXG4gICAgQElucHV0KCkgc2V0IHByZXNldChwcmVzZXQ6IE5ndHNTdGFnZVByb3BzWydwcmVzZXQnXSkge1xuICAgICAgICB0aGlzLnNldCh7IHByZXNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2hhZG93cyhzaGFkb3dzOiBOZ3RzU3RhZ2VQcm9wc1snc2hhZG93cyddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2hhZG93cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYWRqdXN0Q2FtZXJhKGFkanVzdENhbWVyYTogTmd0c1N0YWdlUHJvcHNbJ2FkanVzdENhbWVyYSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWRqdXN0Q2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbnZpcm9ubWVudChlbnZpcm9ubWVudDogTmd0c1N0YWdlUHJvcHNbJ2Vudmlyb25tZW50J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZpcm9ubWVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaW50ZW5zaXR5KGludGVuc2l0eTogTmd0c1N0YWdlUHJvcHNbJ2ludGVuc2l0eSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW50ZW5zaXR5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjZW50ZXIoY2VudGVyOiBOZ3RzU3RhZ2VQcm9wc1snY2VudGVyJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjZW50ZXIgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNlbnRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcigpIGFzIE5ndHNDZW50ZXJbJ2NlbnRlcmVkJ107XG5cbiAgICByZWFkb25seSBib3VuZGluZ1N0YXRlID0gY3JlYXRlU2lnbmFsKHsgcmFkaXVzOiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBkZXB0aDogMCB9KTtcblxuICAgIHJlYWRvbmx5ICNwcmVzZXQgPSB0aGlzLnNlbGVjdCgncHJlc2V0Jyk7XG4gICAgcmVhZG9ubHkgI2Vudmlyb25tZW50ID0gdGhpcy5zZWxlY3QoJ2Vudmlyb25tZW50Jyk7XG5cbiAgICByZWFkb25seSBzdGFnZVNoYWRvd3MgPSB0aGlzLnNlbGVjdCgnc2hhZG93cycpO1xuICAgIHJlYWRvbmx5IHN0YWdlSW50ZW5zaXR5ID0gdGhpcy5zZWxlY3QoJ2ludGVuc2l0eScpO1xuICAgIHJlYWRvbmx5IHN0YWdlQWRqdXN0Q2FtZXJhID0gdGhpcy5zZWxlY3QoJ2FkanVzdENhbWVyYScpO1xuICAgIHJlYWRvbmx5IHN0YWdlQ2VudGVyID0gdGhpcy5zZWxlY3QoJ2NlbnRlcicpO1xuXG4gICAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBwcmVzZXQgPSB0aGlzLiNwcmVzZXQoKTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwcmVzZXQgPT09ICdzdHJpbmcnID8gcHJlc2V0c1twcmVzZXRdIDogcHJlc2V0O1xuICAgIH0pO1xuXG4gICAgcmVhZG9ubHkgc2hhZG93c0luZm8gPSBjb21wdXRlZDxhbnk+KCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2hhZG93cyA9IHRoaXMuc3RhZ2VTaGFkb3dzKCk7XG4gICAgICAgIGNvbnN0IHJlc3RQcm9wcyA9IHR5cGVvZiBzaGFkb3dzID09PSAnc3RyaW5nJyA/IHt9IDogKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cykgfHwge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250YWN0U2hhZG93OiBzaGFkb3dzID09PSAnY29udGFjdCcgfHwgKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LnR5cGUgPT09ICdjb250YWN0JyxcbiAgICAgICAgICAgIGFjY3VtdWxhdGl2ZVNoYWRvdzogc2hhZG93cyA9PT0gJ2FjY3VtdWxhdGl2ZScgfHwgKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LnR5cGUgPT09ICdhY2N1bXVsYXRpdmUnLFxuICAgICAgICAgICAgc2hhZG93QmlhczogKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/LmJpYXMgPz8gLTAuMDAwMSxcbiAgICAgICAgICAgIG5vcm1hbEJpYXM6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5ub3JtYWxCaWFzID8/IDAsXG4gICAgICAgICAgICBzaGFkb3dTaXplOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8uc2l6ZSA/PyAxMDI0LFxuICAgICAgICAgICAgc2hhZG93T2Zmc2V0OiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8ub2Zmc2V0ID8/IDAsXG4gICAgICAgICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZWFkb25seSBzcG90TGlnaHRQb3NpdGlvbiA9IGNvbXB1dGVkPFtudW1iZXIsIG51bWJlciwgbnVtYmVyXT4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgICAgICBpZiAoIWNvbmZpZykgcmV0dXJuIFswLCAwLCAwXTtcbiAgICAgICAgY29uc3QgcmFkaXVzID0gdGhpcy5ib3VuZGluZ1N0YXRlKCkucmFkaXVzO1xuICAgICAgICByZXR1cm4gW2NvbmZpZy5tYWluWzBdICogcmFkaXVzLCBjb25maWcubWFpblsxXSAqIHJhZGl1cywgY29uZmlnLm1haW5bMl0gKiByYWRpdXNdO1xuICAgIH0pO1xuXG4gICAgcmVhZG9ubHkgcG9pbnRMaWdodFBvc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZygpO1xuICAgICAgICBpZiAoIWNvbmZpZykgcmV0dXJuIFswLCAwLCAwXTtcbiAgICAgICAgY29uc3QgcmFkaXVzID0gdGhpcy5ib3VuZGluZ1N0YXRlKCkucmFkaXVzO1xuICAgICAgICByZXR1cm4gW2NvbmZpZy5maWxsWzBdICogcmFkaXVzLCBjb25maWcuZmlsbFsxXSAqIHJhZGl1cywgY29uZmlnLmZpbGxbMl0gKiByYWRpdXNdO1xuICAgIH0pO1xuXG4gICAgcmVhZG9ubHkgZW52aXJvbm1lbnRJbmZvID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbnZpcm9ubWVudCA9IHRoaXMuI2Vudmlyb25tZW50KCk7XG4gICAgICAgIGlmICghZW52aXJvbm1lbnQpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIGVudmlyb25tZW50ID09PSAnc3RyaW5nJykgcmV0dXJuIHsgcHJlc2V0OiBlbnZpcm9ubWVudCB9O1xuICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQ7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgYWRqdXN0Q2FtZXJhOiB0cnVlLFxuICAgICAgICAgICAgaW50ZW5zaXR5OiAwLjUsXG4gICAgICAgICAgICBzaGFkb3dzOiAnY29udGFjdCcsXG4gICAgICAgICAgICBlbnZpcm9ubWVudDogJ2NpdHknLFxuICAgICAgICAgICAgcHJlc2V0OiAncmVtYnJhbmR0JyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25DZW50ZXJlZChwcm9wczoge1xuICAgICAgICAvKiogVGhlIG5leHQgcGFyZW50IGFib3ZlIDxDZW50ZXI+ICovXG4gICAgICAgIHBhcmVudDogVEhSRUUuT2JqZWN0M0Q7XG4gICAgICAgIC8qKiBUaGUgb3V0bW9zdCBjb250YWluZXIgZ3JvdXAgb2YgdGhlIDxDZW50ZXI+IGNvbXBvbmVudCAqL1xuICAgICAgICBjb250YWluZXI6IFRIUkVFLk9iamVjdDNEO1xuICAgICAgICB3aWR0aDogbnVtYmVyO1xuICAgICAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICAgICAgZGVwdGg6IG51bWJlcjtcbiAgICAgICAgYm91bmRpbmdCb3g6IFRIUkVFLkJveDM7XG4gICAgICAgIGJvdW5kaW5nU3BoZXJlOiBUSFJFRS5TcGhlcmU7XG4gICAgICAgIGNlbnRlcjogVEhSRUUuVmVjdG9yMztcbiAgICAgICAgdmVydGljYWxBbGlnbm1lbnQ6IG51bWJlcjtcbiAgICAgICAgaG9yaXpvbnRhbEFsaWdubWVudDogbnVtYmVyO1xuICAgICAgICBkZXB0aEFsaWdubWVudDogbnVtYmVyO1xuICAgIH0pIHtcbiAgICAgICAgY29uc3QgeyBib3VuZGluZ1NwaGVyZSwgd2lkdGgsIGhlaWdodCwgZGVwdGggfSA9IHByb3BzO1xuICAgICAgICB0aGlzLmJvdW5kaW5nU3RhdGUuc2V0KHsgcmFkaXVzOiBib3VuZGluZ1NwaGVyZS5yYWRpdXMsIHdpZHRoLCBoZWlnaHQsIGRlcHRoIH0pO1xuICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLiNjZHIpO1xuICAgICAgICBpZiAodGhpcy5jZW50ZXJlZC5vYnNlcnZlZCkgdGhpcy5jZW50ZXJlZC5lbWl0KHByb3BzKTtcbiAgICB9XG59XG4iXX0=
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhZ2Uvc3RhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFFBQVEsRUFDUixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHN0QsTUFBTSxPQUFPLEdBQUc7SUFDWixTQUFTLEVBQUU7UUFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tB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QUksNkZBQ0osa0JBQWtCLDhOQUNsQix1QkFBdUIsNE1BQ3ZCLG9CQUFvQixvTkFDcEIsZUFBZTs7U0FJVixTQUFTOzJGQUFULFNBQVM7a0JBbEhyQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUdUO29CQUNELE9BQU8sRUFBRTt3QkFDTCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsY0FBYzt3QkFDZCxVQUFVO3dCQUNWLElBQUk7d0JBQ0osa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUtnQixNQUFNO3NCQUFsQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0U2lnbmFsU3RvcmUsIHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBBbWJpZW50TGlnaHQsIEdyb3VwLCBQb2ludExpZ2h0LCBTcG90TGlnaHQsIFZlY3RvcjIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB9IGZyb20gJy4uL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmltcG9ydCB7IE5ndHNSYW5kb21pemVkTGlnaHRzIH0gZnJvbSAnLi4vYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMnO1xuaW1wb3J0IHsgTkdUU19CT1VORFNfQVBJLCBOZ3RzQm91bmRzIH0gZnJvbSAnLi4vYm91bmRzL2JvdW5kcyc7XG5pbXBvcnQgeyBOZ3RzQ2VudGVyIH0gZnJvbSAnLi4vY2VudGVyL2NlbnRlcic7XG5pbXBvcnQgeyBOZ3RzQ29udGFjdFNoYWRvd3MgfSBmcm9tICcuLi9jb250YWN0LXNoYWRvd3MvY29udGFjdC1zaGFkb3dzJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudFByZXNldHNUeXBlIH0gZnJvbSAnLi4vZW52aXJvbm1lbnQvYXNzZXRzJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50L2Vudmlyb25tZW50JztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi4vZW52aXJvbm1lbnQvZW52aXJvbm1lbnQtaW5wdXQnO1xuXG5jb25zdCBwcmVzZXRzID0ge1xuICAgIHJlbWJyYW5kdDoge1xuICAgICAgICBtYWluOiBbMSwgMiwgMV0sXG4gICAgICAgIGZpbGw6IFstMiwgLTAuNSwgLTJdLFxuICAgIH0sXG4gICAgcG9ydHJhaXQ6IHtcbiAgICAgICAgbWFpbjogWy0xLCAyLCAwLjVdLFxuICAgICAgICBmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG4gICAgfSxcbiAgICB1cGZyb250OiB7XG4gICAgICAgIG1haW46IFswLCAyLCAxXSxcbiAgICAgICAgZmlsbDogWy0xLCAwLjUsIC0xLjVdLFxuICAgIH0sXG4gICAgc29mdDoge1xuICAgICAgICBtYWluOiBbLTIsIDQsIDRdLFxuICAgICAgICBmaWxsOiBbLTEsIDAuNSwgLTEuNV0sXG4gICAgfSxcbn07XG5cbnR5cGUgTmd0c1N0YWdlU2hhZG93cyA9IFBhcnRpYWw8Tmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3M+ICZcbiAgICBQYXJ0aWFsPE5ndHNSYW5kb21pemVkTGlnaHRzPiAmXG4gICAgUGFydGlhbDxOZ3RzQ29udGFjdFNoYWRvd3M+ICYge1xuICAgICAgICB0eXBlOiAnY29udGFjdCcgfCAnYWNjdW11bGF0aXZlJztcbiAgICAgICAgLyoqIFNoYWRvdyBwbGFuZSBvZmZzZXQsIGRlZmF1bHQ6IDAgKi9cbiAgICAgICAgb2Zmc2V0PzogbnVtYmVyO1xuICAgICAgICAvKiogU2hhZG93IGJpYXMsIGRlZmF1bHQ6IC0wLjAwMDEgKi9cbiAgICAgICAgYmlhcz86IG51bWJlcjtcbiAgICAgICAgLyoqIFNoYWRvdyBub3JtYWwgYmlhcywgZGVmYXVsdDogMCAqL1xuICAgICAgICBub3JtYWxCaWFzPzogbnVtYmVyO1xuICAgICAgICAvKiogU2hhZG93IG1hcCBzaXplLCBkZWZhdWx0OiAxMDI0ICovXG4gICAgICAgIHNpemU/OiBudW1iZXI7XG4gICAgfTtcblxuaW50ZXJmYWNlIE5ndHNTdGFnZVByb3BzIHtcbiAgICAvKiogTGlnaHRpbmcgc2V0dXAsIGRlZmF1bHQ6IFwicmVtYnJhbmR0XCIgKi9cbiAgICBwcmVzZXQ6XG4gICAgICAgIHwgJ3JlbWJyYW5kdCdcbiAgICAgICAgfCAncG9ydHJhaXQnXG4gICAgICAgIHwgJ3VwZnJvbnQnXG4gICAgICAgIHwgJ3NvZnQnXG4gICAgICAgIHwgeyBtYWluOiBbeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcl07IGZpbGw6IFt4OiBudW1iZXIsIHk6IG51bWJlciwgejogbnVtYmVyXSB9O1xuICAgIC8qKiBDb250cm9scyB0aGUgZ3JvdW5kIHNoYWRvd3MsIGRlZmF1bHQ6IFwiY29udGFjdFwiICovXG4gICAgc2hhZG93czogYm9vbGVhbiB8ICdjb250YWN0JyB8ICdhY2N1bXVsYXRpdmUnIHwgTmd0c1N0YWdlU2hhZG93cztcbiAgICAvKiogT3B0aW9uYWxseSB3cmFwcyBhbmQgdGhlcmVieSBjZW50ZXJzIHRoZSBtb2RlbHMgdXNpbmcgPEJvdW5kcz4sIGNhbiBhbHNvIGJlIGEgbWFyZ2luLCBkZWZhdWx0OiB0cnVlICovXG4gICAgYWRqdXN0Q2FtZXJhOiBib29sZWFuIHwgbnVtYmVyO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBlbnZpcm9ubWVudCwgZGVmYXVsdDogXCJjaXR5XCIgKi9cbiAgICBlbnZpcm9ubWVudDogTmd0c0Vudmlyb25tZW50UHJlc2V0c1R5cGUgfCBQYXJ0aWFsPE5ndHNFbnZpcm9ubWVudElucHV0PjtcbiAgICAvKiogVGhlIGxpZ2h0aW5nIGludGVuc2l0eSwgZGVmYXVsdDogMC41ICovXG4gICAgaW50ZW5zaXR5OiBudW1iZXI7XG4gICAgLyoqIFRvIGFkanVzdCBjZW50ZXJpbmcsIGRlZmF1bHQ6IHVuZGVmaW5lZCAqL1xuICAgIGNlbnRlcj86IFBhcnRpYWw8Tmd0c0NlbnRlcj47XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25ndHMtc3RhZ2UtcmVmaXQnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c1N0YWdlUmVmaXQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHJlYWRvbmx5ICNib3VuZHNBcGkgPSBpbmplY3QoTkdUU19CT1VORFNfQVBJKTtcblxuICAgIEBJbnB1dCgpIHJhZGl1cyA9IDA7XG4gICAgQElucHV0KCkgYWRqdXN0Q2FtZXJhID0gdHJ1ZTtcblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5hZGp1c3RDYW1lcmEpIHtcbiAgICAgICAgICAgIHRoaXMuI2JvdW5kc0FwaSgpLnJlZnJlc2goKS5jbGlwKCkuZml0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4dGVuZCh7IEFtYmllbnRMaWdodCwgU3BvdExpZ2h0LCBWZWN0b3IyLCBQb2ludExpZ2h0LCBHcm91cCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXN0YWdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtYW1iaWVudC1saWdodCBbaW50ZW5zaXR5XT1cInN0YWdlSW50ZW5zaXR5KCkgLyAzXCIgLz5cbiAgICAgICAgPG5ndC1zcG90LWxpZ2h0XG4gICAgICAgICAgICBbcGVudW1icmFdPVwiMVwiXG4gICAgICAgICAgICBbcG9zaXRpb25dPVwic3BvdExpZ2h0UG9zaXRpb24oKVwiXG4gICAgICAgICAgICBbaW50ZW5zaXR5XT1cInN0YWdlSW50ZW5zaXR5KCkgKiAyXCJcbiAgICAgICAgICAgIFtjYXN0U2hhZG93XT1cIiEhc3RhZ2VTaGFkb3dzKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzaGFkb3dzSW5mbygpLnNoYWRvd0JpYXNcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiIC8+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzaGFkb3dzSW5mbygpLm5vcm1hbEJpYXNcIiBhdHRhY2g9XCJzaGFkb3cubm9ybWFsQmlhc1wiIC8+XG4gICAgICAgICAgICA8bmd0LXZlY3RvcjIgKmFyZ3M9XCJbc2hhZG93c0luZm8oKS5zaGFkb3dTaXplLCBzaGFkb3dzSW5mbygpLnNoYWRvd1NpemVdXCIgYXR0YWNoPVwic2hhZG93Lm1hcFNpemVcIiAvPlxuICAgICAgICA8L25ndC1zcG90LWxpZ2h0PlxuICAgICAgICA8bmd0LXBvaW50LWxpZ2h0IFtwb3NpdGlvbl09XCJwb2ludExpZ2h0UG9zaXRpb24oKVwiIFtpbnRlbnNpdHldPVwic3RhZ2VJbnRlbnNpdHkoKVwiIC8+XG5cbiAgICAgICAgPG5ndHMtYm91bmRzXG4gICAgICAgICAgICBbZml0XT1cIiEhc3RhZ2VBZGp1c3RDYW1lcmEoKVwiXG4gICAgICAgICAgICBbY2xpcF09XCIhIXN0YWdlQWRqdXN0Q2FtZXJhKClcIlxuICAgICAgICAgICAgW21hcmdpbl09XCJOdW1iZXIoc3RhZ2VBZGp1c3RDYW1lcmEoKSlcIlxuICAgICAgICAgICAgW29ic2VydmVdPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZ3RzLXN0YWdlLXJlZml0IFtyYWRpdXNdPVwiYm91bmRpbmdTdGF0ZSgpLnJhZGl1c1wiIFthZGp1c3RDYW1lcmFdPVwiISFzdGFnZUFkanVzdENhbWVyYSgpXCIgLz5cbiAgICAgICAgICAgIDxuZ3RzLWNlbnRlclxuICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgc2hhZG93c0luZm8oKS5zaGFkb3dPZmZzZXQgLyAyLCAwXVwiXG4gICAgICAgICAgICAgICAgW3RvcF09XCIhIXN0YWdlQ2VudGVyKCk/LnRvcFwiXG4gICAgICAgICAgICAgICAgW3JpZ2h0XT1cIiEhc3RhZ2VDZW50ZXIoKT8ucmlnaHRcIlxuICAgICAgICAgICAgICAgIFtib3R0b21dPVwiISFzdGFnZUNlbnRlcigpPy5ib3R0b21cIlxuICAgICAgICAgICAgICAgIFtsZWZ0XT1cIiEhc3RhZ2VDZW50ZXIoKT8ubGVmdFwiXG4gICAgICAgICAgICAgICAgW2Zyb250XT1cIiEhc3RhZ2VDZW50ZXIoKT8uZnJvbnRcIlxuICAgICAgICAgICAgICAgIFtiYWNrXT1cIiEhc3RhZ2VDZW50ZXIoKT8uYmFja1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVYXT1cIiEhc3RhZ2VDZW50ZXIoKT8uZGlzYWJsZVhcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlWV09XCIhIXN0YWdlQ2VudGVyKCk/LmRpc2FibGVZXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZVpdPVwiISFzdGFnZUNlbnRlcigpPy5kaXNhYmxlWlwiXG4gICAgICAgICAgICAgICAgW3ByZWNpc2VdPVwiISFzdGFnZUNlbnRlcigpPy5wcmVjaXNlXCJcbiAgICAgICAgICAgICAgICAoY2VudGVyZWQpPVwib25DZW50ZXJlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9uZ3RzLWNlbnRlcj5cbiAgICAgICAgPC9uZ3RzLWJvdW5kcz5cbiAgICAgICAgPG5ndC1ncm91cCBbcG9zaXRpb25dPVwiWzAsIC1ib3VuZGluZ1N0YXRlKCkuaGVpZ2h0IC8gMiAtIHNoYWRvd3NJbmZvKCkuc2hhZG93T2Zmc2V0IC8gMiwgMF1cIj5cbiAgICAgICAgICAgIDxuZ3RzLWNvbnRhY3Qtc2hhZG93c1xuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hhZG93c0luZm8oKS5jb250YWN0U2hhZG93XCJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwiYm91bmRpbmdTdGF0ZSgpLnJhZGl1cyAqIDRcIlxuICAgICAgICAgICAgICAgIFtmYXJdPVwiYm91bmRpbmdTdGF0ZSgpLnJhZGl1c1wiXG4gICAgICAgICAgICAgICAgW2JsdXJdPVwiMlwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwic2hhZG93c0luZm8oKS5vcGFjaXR5XCJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwic2hhZG93c0luZm8oKS53aWR0aFwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJzaGFkb3dzSW5mbygpLmhlaWdodFwiXG4gICAgICAgICAgICAgICAgW3Ntb290aF09XCJzaGFkb3dzSW5mbygpLnNtb290aFwiXG4gICAgICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwic2hhZG93c0luZm8oKS5yZXNvbHV0aW9uXCJcbiAgICAgICAgICAgICAgICBbZnJhbWVzXT1cInNoYWRvd3NJbmZvKCkuZnJhbWVzXCJcbiAgICAgICAgICAgICAgICBbc2NhbGVdPVwic2hhZG93c0luZm8oKS5zY2FsZVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cInNoYWRvd3NJbmZvKCkuY29sb3JcIlxuICAgICAgICAgICAgICAgIFtkZXB0aFdyaXRlXT1cInNoYWRvd3NJbmZvKCkuZGVwdGhXcml0ZVwiXG4gICAgICAgICAgICAgICAgW3JlbmRlck9yZGVyXT1cInNoYWRvd3NJbmZvKCkucmVuZGVyT3JkZXJcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaGFkb3dzSW5mbygpLmFjY3VtdWxhdGl2ZVNoYWRvd1wiXG4gICAgICAgICAgICAgICAgW3RlbXBvcmFsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtmcmFtZXNdPVwiMTAwXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUZXN0XT1cIjAuOVwiXG4gICAgICAgICAgICAgICAgW3RvbmVNYXBwZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImJvdW5kaW5nU3RhdGUoKS5yYWRpdXMgKiA0XCJcbiAgICAgICAgICAgICAgICBbb3BhY2l0eV09XCJzaGFkb3dzSW5mbygpLm9wYWNpdHlcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwic2hhZG93c0luZm8oKS5hbHBoYVRlc3RcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJzaGFkb3dzSW5mbygpLmNvbG9yXCJcbiAgICAgICAgICAgICAgICBbY29sb3JCbGVuZF09XCJzaGFkb3dzSW5mbygpLmNvbG9yQmxlbmRcIlxuICAgICAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cInNoYWRvd3NJbmZvKCkucmVzb2x1dGlvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndHMtcmFuZG9taXplZC1saWdodHNcbiAgICAgICAgICAgICAgICAgICAgW2Ftb3VudF09XCJzaGFkb3dzSW5mbygpLmFtb3VudCA/PyA4XCJcbiAgICAgICAgICAgICAgICAgICAgW3JhZGl1c109XCJzaGFkb3dzSW5mbygpLnJhZGl1cyA/PyBib3VuZGluZ1N0YXRlKCkucmFkaXVzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FtYmllbnRdPVwic2hhZG93c0luZm8oKS5hbWJpZW50ID8/IDAuNVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnRlbnNpdHldPVwic2hhZG93c0luZm8oKS5pbnRlbnNpdHkgPz8gMVwiXG4gICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJzcG90TGlnaHRQb3NpdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYm91bmRpbmdTdGF0ZSgpLnJhZGl1cyAqIDRcIlxuICAgICAgICAgICAgICAgICAgICBbYmlhc109XCItc2hhZG93c0luZm8oKS5zaGFkb3dCaWFzXCJcbiAgICAgICAgICAgICAgICAgICAgW21hcFNpemVdPVwic2hhZG93c0luZm8oKS5zaGFkb3dTaXplXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9uZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgPG5ndHMtZW52aXJvbm1lbnRcbiAgICAgICAgICAgICpuZ0lmPVwiZW52aXJvbm1lbnRJbmZvKCkgYXMgZW52aXJvbm1lbnRJbmZvXCJcbiAgICAgICAgICAgIFtmcmFtZXNdPVwiZW52aXJvbm1lbnRJbmZvLmZyYW1lc1wiXG4gICAgICAgICAgICBbbmVhcl09XCJlbnZpcm9ubWVudEluZm8ubmVhclwiXG4gICAgICAgICAgICBbZmFyXT1cImVudmlyb25tZW50SW5mby5mYXJcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZW52aXJvbm1lbnRJbmZvLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiZW52aXJvbm1lbnRJbmZvLmJhY2tncm91bmRcIlxuICAgICAgICAgICAgW2JsdXJdPVwiZW52aXJvbm1lbnRJbmZvLmJsdXJcIlxuICAgICAgICAgICAgW21hcF09XCJlbnZpcm9ubWVudEluZm8ubWFwXCJcbiAgICAgICAgICAgIFtmaWxlc109XCJlbnZpcm9ubWVudEluZm8uZmlsZXNcIlxuICAgICAgICAgICAgW3BhdGhdPVwiZW52aXJvbm1lbnRJbmZvLnBhdGhcIlxuICAgICAgICAgICAgW3ByZXNldF09XCJlbnZpcm9ubWVudEluZm8ucHJlc2V0XCJcbiAgICAgICAgICAgIFtzY2VuZV09XCJlbnZpcm9ubWVudEluZm8uc2NlbmVcIlxuICAgICAgICAgICAgW2V4dGVuc2lvbnNdPVwiZW52aXJvbm1lbnRJbmZvLmV4dGVuc2lvbnNcIlxuICAgICAgICAgICAgW2dyb3VuZF09XCJlbnZpcm9ubWVudEluZm8uZ3JvdW5kXCJcbiAgICAgICAgICAgIFtlbmNvZGluZ109XCJlbnZpcm9ubWVudEluZm8uZW5jb2RpbmdcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ3RBcmdzLFxuICAgICAgICBOZ3RzQm91bmRzLFxuICAgICAgICBOZ3RzU3RhZ2VSZWZpdCxcbiAgICAgICAgTmd0c0NlbnRlcixcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmd0c0NvbnRhY3RTaGFkb3dzLFxuICAgICAgICBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyxcbiAgICAgICAgTmd0c1JhbmRvbWl6ZWRMaWdodHMsXG4gICAgICAgIE5ndHNFbnZpcm9ubWVudCxcbiAgICBdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1N0YWdlIGV4dGVuZHMgTmd0U2lnbmFsU3RvcmU8Tmd0c1N0YWdlUHJvcHM+IHtcbiAgICByZWFkb25seSAjY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgICByZWFkb25seSBOdW1iZXIgPSBOdW1iZXI7XG5cbiAgICBASW5wdXQoKSBzZXQgcHJlc2V0KHByZXNldDogTmd0c1N0YWdlUHJvcHNbJ3ByZXNldCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcHJlc2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzaGFkb3dzKHNoYWRvd3M6IE5ndHNTdGFnZVByb3BzWydzaGFkb3dzJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzaGFkb3dzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBhZGp1c3RDYW1lcmEoYWRqdXN0Q2FtZXJhOiBOZ3RzU3RhZ2VQcm9wc1snYWRqdXN0Q2FtZXJhJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhZGp1c3RDYW1lcmEgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVudmlyb25tZW50KGVudmlyb25tZW50OiBOZ3RzU3RhZ2VQcm9wc1snZW52aXJvbm1lbnQnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGVudmlyb25tZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBpbnRlbnNpdHkoaW50ZW5zaXR5OiBOZ3RzU3RhZ2VQcm9wc1snaW50ZW5zaXR5J10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBpbnRlbnNpdHkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNlbnRlcihjZW50ZXI6IE5ndHNTdGFnZVByb3BzWydjZW50ZXInXSkge1xuICAgICAgICB0aGlzLnNldCh7IGNlbnRlciB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2VudGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCkgYXMgTmd0c0NlbnRlclsnY2VudGVyZWQnXTtcblxuICAgIHJlYWRvbmx5IGJvdW5kaW5nU3RhdGUgPSBzaWduYWwoeyByYWRpdXM6IDAsIHdpZHRoOiAwLCBoZWlnaHQ6IDAsIGRlcHRoOiAwIH0pO1xuXG4gICAgcmVhZG9ubHkgI3ByZXNldCA9IHRoaXMuc2VsZWN0KCdwcmVzZXQnKTtcbiAgICByZWFkb25seSAjZW52aXJvbm1lbnQgPSB0aGlzLnNlbGVjdCgnZW52aXJvbm1lbnQnKTtcblxuICAgIHJlYWRvbmx5IHN0YWdlU2hhZG93cyA9IHRoaXMuc2VsZWN0KCdzaGFkb3dzJyk7XG4gICAgcmVhZG9ubHkgc3RhZ2VJbnRlbnNpdHkgPSB0aGlzLnNlbGVjdCgnaW50ZW5zaXR5Jyk7XG4gICAgcmVhZG9ubHkgc3RhZ2VBZGp1c3RDYW1lcmEgPSB0aGlzLnNlbGVjdCgnYWRqdXN0Q2FtZXJhJyk7XG4gICAgcmVhZG9ubHkgc3RhZ2VDZW50ZXIgPSB0aGlzLnNlbGVjdCgnY2VudGVyJyk7XG5cbiAgICByZWFkb25seSBjb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXNldCA9IHRoaXMuI3ByZXNldCgpO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHByZXNldCA9PT0gJ3N0cmluZycgPyBwcmVzZXRzW3ByZXNldF0gOiBwcmVzZXQ7XG4gICAgfSk7XG5cbiAgICByZWFkb25seSBzaGFkb3dzSW5mbyA9IGNvbXB1dGVkPGFueT4oKCkgPT4ge1xuICAgICAgICBjb25zdCBzaGFkb3dzID0gdGhpcy5zdGFnZVNoYWRvd3MoKTtcbiAgICAgICAgY29uc3QgcmVzdFByb3BzID0gdHlwZW9mIHNoYWRvd3MgPT09ICdzdHJpbmcnID8ge30gOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKSB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRhY3RTaGFkb3c6IHNoYWRvd3MgPT09ICdjb250YWN0JyB8fCAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8udHlwZSA9PT0gJ2NvbnRhY3QnLFxuICAgICAgICAgICAgYWNjdW11bGF0aXZlU2hhZG93OiBzaGFkb3dzID09PSAnYWNjdW11bGF0aXZlJyB8fCAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8udHlwZSA9PT0gJ2FjY3VtdWxhdGl2ZScsXG4gICAgICAgICAgICBzaGFkb3dCaWFzOiAoc2hhZG93cyBhcyBOZ3RzU3RhZ2VTaGFkb3dzKT8uYmlhcyA/PyAtMC4wMDAxLFxuICAgICAgICAgICAgbm9ybWFsQmlhczogKHNoYWRvd3MgYXMgTmd0c1N0YWdlU2hhZG93cyk/Lm5vcm1hbEJpYXMgPz8gMCxcbiAgICAgICAgICAgIHNoYWRvd1NpemU6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5zaXplID8/IDEwMjQsXG4gICAgICAgICAgICBzaGFkb3dPZmZzZXQ6IChzaGFkb3dzIGFzIE5ndHNTdGFnZVNoYWRvd3MpPy5vZmZzZXQgPz8gMCxcbiAgICAgICAgICAgIC4uLnJlc3RQcm9wcyxcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJlYWRvbmx5IHNwb3RMaWdodFBvc2l0aW9uID0gY29tcHV0ZWQ8W251bWJlciwgbnVtYmVyLCBudW1iZXJdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgICAgIGlmICghY29uZmlnKSByZXR1cm4gWzAsIDAsIDBdO1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmJvdW5kaW5nU3RhdGUoKS5yYWRpdXM7XG4gICAgICAgIHJldHVybiBbY29uZmlnLm1haW5bMF0gKiByYWRpdXMsIGNvbmZpZy5tYWluWzFdICogcmFkaXVzLCBjb25maWcubWFpblsyXSAqIHJhZGl1c107XG4gICAgfSk7XG5cbiAgICByZWFkb25seSBwb2ludExpZ2h0UG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgICAgIGlmICghY29uZmlnKSByZXR1cm4gWzAsIDAsIDBdO1xuICAgICAgICBjb25zdCByYWRpdXMgPSB0aGlzLmJvdW5kaW5nU3RhdGUoKS5yYWRpdXM7XG4gICAgICAgIHJldHVybiBbY29uZmlnLmZpbGxbMF0gKiByYWRpdXMsIGNvbmZpZy5maWxsWzFdICogcmFkaXVzLCBjb25maWcuZmlsbFsyXSAqIHJhZGl1c107XG4gICAgfSk7XG5cbiAgICByZWFkb25seSBlbnZpcm9ubWVudEluZm8gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudmlyb25tZW50ID0gdGhpcy4jZW52aXJvbm1lbnQoKTtcbiAgICAgICAgaWYgKCFlbnZpcm9ubWVudCkgcmV0dXJuIG51bGw7XG4gICAgICAgIGlmICh0eXBlb2YgZW52aXJvbm1lbnQgPT09ICdzdHJpbmcnKSByZXR1cm4geyBwcmVzZXQ6IGVudmlyb25tZW50IH07XG4gICAgICAgIHJldHVybiBlbnZpcm9ubWVudDtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBhZGp1c3RDYW1lcmE6IHRydWUsXG4gICAgICAgICAgICBpbnRlbnNpdHk6IDAuNSxcbiAgICAgICAgICAgIHNoYWRvd3M6ICdjb250YWN0JyxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiAnY2l0eScsXG4gICAgICAgICAgICBwcmVzZXQ6ICdyZW1icmFuZHQnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNlbnRlcmVkKHByb3BzOiB7XG4gICAgICAgIC8qKiBUaGUgbmV4dCBwYXJlbnQgYWJvdmUgPENlbnRlcj4gKi9cbiAgICAgICAgcGFyZW50OiBUSFJFRS5PYmplY3QzRDtcbiAgICAgICAgLyoqIFRoZSBvdXRtb3N0IGNvbnRhaW5lciBncm91cCBvZiB0aGUgPENlbnRlcj4gY29tcG9uZW50ICovXG4gICAgICAgIGNvbnRhaW5lcjogVEhSRUUuT2JqZWN0M0Q7XG4gICAgICAgIHdpZHRoOiBudW1iZXI7XG4gICAgICAgIGhlaWdodDogbnVtYmVyO1xuICAgICAgICBkZXB0aDogbnVtYmVyO1xuICAgICAgICBib3VuZGluZ0JveDogVEhSRUUuQm94MztcbiAgICAgICAgYm91bmRpbmdTcGhlcmU6IFRIUkVFLlNwaGVyZTtcbiAgICAgICAgY2VudGVyOiBUSFJFRS5WZWN0b3IzO1xuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogbnVtYmVyO1xuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiBudW1iZXI7XG4gICAgICAgIGRlcHRoQWxpZ25tZW50OiBudW1iZXI7XG4gICAgfSkge1xuICAgICAgICBjb25zdCB7IGJvdW5kaW5nU3BoZXJlLCB3aWR0aCwgaGVpZ2h0LCBkZXB0aCB9ID0gcHJvcHM7XG4gICAgICAgIHRoaXMuYm91bmRpbmdTdGF0ZS5zZXQoeyByYWRpdXM6IGJvdW5kaW5nU3BoZXJlLnJhZGl1cywgd2lkdGgsIGhlaWdodCwgZGVwdGggfSk7XG4gICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuI2Nkcik7XG4gICAgICAgIGlmICh0aGlzLmNlbnRlcmVkLm9ic2VydmVkKSB0aGlzLmNlbnRlcmVkLmVtaXQocHJvcHMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -78,8 +78,8 @@ class NgtsStars extends NgtSignalStore {
|
|
|
78
78
|
#onBeforeRender({ clock }) {
|
|
79
79
|
this.material.uniforms['time'].value = clock.getElapsedTime() * this.get('speed');
|
|
80
80
|
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
82
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", radius: "radius", depth: "depth", count: "count", factor: "factor", saturation: "saturation", starsFade: ["fade", "starsFade"], speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
|
|
83
83
|
<ngt-points [ref]="starsRef">
|
|
84
84
|
<ngt-buffer-geometry>
|
|
85
85
|
<ngt-buffer-attribute attach="attributes.position" *args="[bufferAttributes().positions, 3]" />
|
|
@@ -100,7 +100,7 @@ class NgtsStars extends NgtSignalStore {
|
|
|
100
100
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
|
|
101
101
|
}
|
|
102
102
|
export { NgtsStars };
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStars, decorators: [{
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{
|
|
106
106
|
selector: 'ngts-stars',
|