angular-three-soba 2.0.0-beta.248 → 2.0.0-beta.249

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.
@@ -5,7 +5,6 @@ import { injectAutoEffect } from 'ngxtension/auto-effect';
5
5
  import { mergeInputs } from 'ngxtension/inject-inputs';
6
6
  import { Color, Group, HalfFloatType, Mesh, MeshLambertMaterial, NearestFilter, PlaneGeometry, WebGLRenderTarget, } from 'three';
7
7
  import * as i0 from "@angular/core";
8
- extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
9
8
  export const [injectAccumulativeShadowsApi, provideAccumulativeShadowsApi] = createApiToken(() => NgtsAccumulativeShadows);
10
9
  const defaultOptions = {
11
10
  frames: 40,
@@ -116,6 +115,7 @@ export class NgtsAccumulativeShadows {
116
115
  };
117
116
  return api;
118
117
  });
118
+ extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
119
119
  afterNextRender(() => {
120
120
  this.autoEffect(() => {
121
121
  const [pLM, plane] = [this.pLM(), this.plane()];
@@ -299,4 +299,4 @@ class ProgressiveLightMap {
299
299
  this.scene.background = oldBg;
300
300
  }
301
301
  }
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2FjY3VtdWxhdGl2ZS1zaGFkb3dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVOLGNBQWMsRUFDZCxNQUFNLEVBQ04sYUFBYSxFQUNiLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksR0FDSixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFFTixLQUFLLEVBQ0wsS0FBSyxFQUNMLGFBQWEsRUFHYixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixhQUFhLEVBSWIsaUJBQWlCLEdBRWpCLE1BQU0sT0FBTyxDQUFDOztBQTJCZixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSw2QkFBNkIsQ0FBQyxHQUFHLGNBQWMsQ0FDMUYsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQzdCLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBbUM7SUFDdEQsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsUUFBUTtJQUNmLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FB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QUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxvREFBb0Q7UUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDN0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDL0YsbUNBQW1DO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHROZ3RHcm91cCxcblx0Y3JlYXRlQXBpVG9rZW4sXG5cdGV4dGVuZCxcblx0Z2V0TG9jYWxTdGF0ZSxcblx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcixcblx0aW5qZWN0U3RvcmUsXG5cdG9taXQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRGlzY2FyZE1hdGVyaWFsLCBTb2Z0U2hhZG93TWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQge1xuXHRDYW1lcmEsXG5cdENvbG9yLFxuXHRHcm91cCxcblx0SGFsZkZsb2F0VHlwZSxcblx0TGlnaHQsXG5cdE1hdGVyaWFsLFxuXHRNZXNoLFxuXHRNZXNoTGFtYmVydE1hdGVyaWFsLFxuXHROZWFyZXN0RmlsdGVyLFxuXHRQbGFuZUdlb21ldHJ5LFxuXHRTY2VuZSxcblx0U2hhZGVyTWF0ZXJpYWwsXG5cdFRleHR1cmUsXG5cdFdlYkdMUmVuZGVyVGFyZ2V0LFxuXHRXZWJHTFJlbmRlcmVyLFxufSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKiogSG93IG1hbnkgZnJhbWVzIGl0IGNhbiByZW5kZXIsIG1vcmUgeWllbGRzIGNsZWFuZXIgcmVzdWx0cyBidXQgdGFrZXMgbW9yZSB0aW1lLCA0MCAqL1xuXHRmcmFtZXM6IG51bWJlcjtcblx0LyoqIElmIGZyYW1lcyA9PT0gSW5maW5pdHkgYmxlbmQgY29udHJvbHMgdGhlIHJlZnJlc2ggcmF0aW8sIDEwMCAqL1xuXHRibGVuZDogbnVtYmVyO1xuXHQvKiogQ2FuIGxpbWl0IHRoZSBhbW91bnQgb2YgZnJhbWVzIHJlbmRlcmVkIGlmIGZyYW1lcyA9PT0gSW5maW5pdHksIHVzdWFsbHkgdG8gZ2V0IHNvbWUgcGVyZm9ybWFuY2UgYmFjayBvbmNlIGEgbW92YWJsZSBzY2VuZSBoYXMgc2V0dGxlZCwgSW5maW5pdHkgKi9cblx0bGltaXQ6IG51bWJlcjtcblx0LyoqIFNjYWxlIG9mIHRoZSBwbGFuZSwgICovXG5cdHNjYWxlOiBudW1iZXI7XG5cdC8qKiBUZW1wb3JhbCBhY2N1bXVsYXRlcyBzaGFkb3dzIG92ZXIgdGltZSB3aGljaCBpcyBtb3JlIHBlcmZvcm1hbnQgYnV0IGhhcyBhIHZpc3VhbCByZWdyZXNzaW9uIG92ZXIgaW5zdGFudCByZXN1bHRzLCBmYWxzZSAgKi9cblx0dGVtcG9yYWw/OiBib29sZWFuO1xuXHQvKiogT3BhY2l0eSBvZiB0aGUgcGxhbmUsIDEgKi9cblx0b3BhY2l0eTogbnVtYmVyO1xuXHQvKiogRGlzY2FyZHMgYWxwaGEgcGl4ZWxzLCAwLjY1ICovXG5cdGFscGhhVGVzdDogbnVtYmVyO1xuXHQvKiogU2hhZG93IGNvbG9yLCBibGFjayAqL1xuXHRjb2xvcjogc3RyaW5nO1xuXHQvKiogQ29sb3JibGVuZCwgaG93IG11Y2ggY29sb3JzIHR1cm4gdG8gYmxhY2ssIDAgaXMgYmxhY2ssIDIgKi9cblx0Y29sb3JCbGVuZDogbnVtYmVyO1xuXHQvKiogQnVmZmVyIHJlc29sdXRpb24sIDEwMjQgKi9cblx0cmVzb2x1dGlvbjogbnVtYmVyO1xuXHQvKiogVGV4dHVyZSB0b25lbWFwcGluZyAqL1xuXHR0b25lTWFwcGVkOiBib29sZWFuO1xufVxuXG5leHRlbmQoeyBHcm91cCwgU29mdFNoYWRvd01hdGVyaWFsLCBNZXNoLCBQbGFuZUdlb21ldHJ5IH0pO1xuXG5leHBvcnQgY29uc3QgW2luamVjdEFjY3VtdWxhdGl2ZVNoYWRvd3NBcGksIHByb3ZpZGVBY2N1bXVsYXRpdmVTaGFkb3dzQXBpXSA9IGNyZWF0ZUFwaVRva2VuKFxuXHQoKSA9PiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyxcbik7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c09wdGlvbnMgPSB7XG5cdGZyYW1lczogNDAsXG5cdGxpbWl0OiBJbmZpbml0eSxcblx0YmxlbmQ6IDIwLFxuXHRzY2FsZTogMTAsXG5cdG9wYWNpdHk6IDEsXG5cdGFscGhhVGVzdDogMC43NSxcblx0Y29sb3I6ICdibGFjaycsXG5cdGNvbG9yQmxlbmQ6IDIsXG5cdHJlc29sdXRpb246IDEwMjQsXG5cdHRvbmVNYXBwZWQ6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5ndC1ncm91cCAjbGlnaHRzIFt0cmF2ZXJzZV09XCJudWxsVHJhdmVyc2FsXCI+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L25ndC1ncm91cD5cblxuXHRcdFx0PG5ndC1tZXNoICNwbGFuZSBbc2NhbGVdPVwic2NhbGUoKVwiIFtyb3RhdGlvbl09XCJbLU1hdGguUEkgLyAyLCAwLCAwXVwiIFtyZWNlaXZlU2hhZG93XT1cInRydWVcIj5cblx0XHRcdFx0PG5ndC1wbGFuZS1nZW9tZXRyeSAvPlxuXHRcdFx0XHQ8bmd0LXNvZnQtc2hhZG93LW1hdGVyaWFsXG5cdFx0XHRcdFx0W3RyYW5zcGFyZW50XT1cInRydWVcIlxuXHRcdFx0XHRcdFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcblx0XHRcdFx0XHRbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIlxuXHRcdFx0XHRcdFtjb2xvcl09XCJjb2xvcigpXCJcblx0XHRcdFx0XHRbYmxlbmRdPVwiY29sb3JCbGVuZCgpXCJcblx0XHRcdFx0XHRbbWFwXT1cIm1hcCgpXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvbmd0LW1lc2g+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVBY2N1bXVsYXRpdmVTaGFkb3dzQXBpKCldLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB7XG5cdG51bGxUcmF2ZXJzYWwgPSAoKSA9PiBudWxsO1xuXHRNYXRoID0gTWF0aDtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd0ZW1wb3JhbCcsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J2xpbWl0Jyxcblx0XHQnYmxlbmQnLFxuXHRcdCdzY2FsZScsXG5cdFx0J29wYWNpdHknLFxuXHRcdCdhbHBoYVRlc3QnLFxuXHRcdCdjb2xvcicsXG5cdFx0J2NvbG9yQmxlbmQnLFxuXHRcdCdyZXNvbHV0aW9uJyxcblx0XHQndG9uZU1hcHBlZCcsXG5cdF0pO1xuXG5cdGxpZ2h0cyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2xpZ2h0cycpO1xuXHRwbGFuZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g+PigncGxhbmUnKTtcblxuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0cHJpdmF0ZSB0ZW1wb3JhbCA9IHBpY2sodGhpcy5vcHRpb25zLCAndGVtcG9yYWwnKTtcblx0cHJpdmF0ZSBmcmFtZXMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lcycpO1xuXHRwcml2YXRlIGJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZCcpO1xuXHRwcml2YXRlIG9wYWNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ29wYWNpdHknKTtcblx0cHJpdmF0ZSBhbHBoYVRlc3QgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FscGhhVGVzdCcpO1xuXHRwcml2YXRlIGxpbWl0ID0gcGljayh0aGlzLm9wdGlvbnMsICdsaW1pdCcpO1xuXG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIHBMTSA9IGNvbXB1dGVkKCgpID0+IG5ldyBQcm9ncmVzc2l2ZUxpZ2h0TWFwKHRoaXMuZ2woKSwgdGhpcy5zY2VuZSgpLCB0aGlzLnJlc29sdXRpb24oKSkpO1xuXG5cdHNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdzY2FsZScpO1xuXHR0b25lTWFwcGVkID0gcGljayh0aGlzLm9wdGlvbnMsICd0b25lTWFwcGVkJyk7XG5cdGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRjb2xvckJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvckJsZW5kJyk7XG5cdG1hcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucExNKCkucHJvZ3Jlc3NpdmVMaWdodE1hcDIudGV4dHVyZSk7XG5cblx0YXBpID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtwTE0sIGNhbWVyYSwgLCB0ZW1wb3JhbCwgZnJhbWVzLCBibGVuZCwgb3BhY2l0eSwgYWxwaGFUZXN0LCBsaWdodHMsIHBsYW5lXSA9IFtcblx0XHRcdHRoaXMucExNKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5zY2VuZSgpLFxuXHRcdFx0dGhpcy50ZW1wb3JhbCgpLFxuXHRcdFx0dGhpcy5mcmFtZXMoKSxcblx0XHRcdHRoaXMuYmxlbmQoKSxcblx0XHRcdHRoaXMub3BhY2l0eSgpLFxuXHRcdFx0dGhpcy5hbHBoYVRlc3QoKSxcblx0XHRcdHRoaXMubGlnaHRzKCksXG5cdFx0XHR0aGlzLnBsYW5lKCksXG5cdFx0XTtcblxuXHRcdGNvbnN0IGFwaSA9IHtcblx0XHRcdGxpZ2h0czogbmV3IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KCksXG5cdFx0XHR0ZW1wb3JhbDogISF0ZW1wb3JhbCxcblx0XHRcdGZyYW1lczogTWF0aC5tYXgoMiwgZnJhbWVzKSxcblx0XHRcdGJsZW5kOiBNYXRoLm1heCgyLCBmcmFtZXMgPT09IEluZmluaXR5ID8gYmxlbmQgOiBmcmFtZXMpLFxuXHRcdFx0Y291bnQ6IDAsXG5cdFx0XHRnZXRNZXNoOiAoKSA9PiBwbGFuZS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0cmVzZXQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKCFwbGFuZS5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cdFx0XHRcdC8vIENsZWFyIGJ1ZmZlcnMsIHJlc2V0IG9wYWNpdGllcywgc2V0IGZyYW1lIGNvdW50IHRvIDBcblx0XHRcdFx0cExNLmNsZWFyKCk7XG5cdFx0XHRcdGNvbnN0IG1hdGVyaWFsID0gcGxhbmUubmF0aXZlRWxlbWVudC5tYXRlcmlhbCBhcyBNYXRlcmlhbDtcblx0XHRcdFx0bWF0ZXJpYWwub3BhY2l0eSA9IDA7XG5cdFx0XHRcdG1hdGVyaWFsLmFscGhhVGVzdCA9IDA7XG5cdFx0XHRcdGFwaS5jb3VudCA9IDA7XG5cdFx0XHR9LFxuXHRcdFx0dXBkYXRlOiAoZnJhbWVzID0gMSkgPT4ge1xuXHRcdFx0XHQvLyBBZGFwdCB0aGUgb3BhY2l0eS1ibGVuZCByYXRpbyB0byB0aGUgbnVtYmVyIG9mIGZyYW1lc1xuXHRcdFx0XHRjb25zdCBtYXRlcmlhbCA9IHBsYW5lLm5hdGl2ZUVsZW1lbnQubWF0ZXJpYWwgYXMgTWF0ZXJpYWw7XG5cdFx0XHRcdGlmICghYXBpLnRlbXBvcmFsKSB7XG5cdFx0XHRcdFx0bWF0ZXJpYWwub3BhY2l0eSA9IG9wYWNpdHk7XG5cdFx0XHRcdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gYWxwaGFUZXN0O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG1hdGVyaWFsLm9wYWNpdHkgPSBNYXRoLm1pbihvcGFjaXR5LCBtYXRlcmlhbC5vcGFjaXR5ICsgb3BhY2l0eSAvIGFwaS5ibGVuZCk7XG5cdFx0XHRcdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gTWF0aC5taW4oYWxwaGFUZXN0LCBtYXRlcmlhbC5hbHBoYVRlc3QgKyBhbHBoYVRlc3QgLyBhcGkuYmxlbmQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3dpdGNoIGFjY3VtdWxhdGl2ZSBsaWdodHMgb25cblx0XHRcdFx0bGlnaHRzLm5hdGl2ZUVsZW1lbnQudmlzaWJsZSA9IHRydWU7XG5cdFx0XHRcdC8vIENvbGxlY3Qgc2NlbmUgbGlnaHRzIGFuZCBtZXNoZXNcblx0XHRcdFx0cExNLnByZXBhcmUoKTtcblxuXHRcdFx0XHQvLyBVcGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZyYW1lczsgaSsrKSB7XG5cdFx0XHRcdFx0YXBpLmxpZ2h0cy5mb3JFYWNoKChsaWdodFVwZGF0ZSkgPT4gbGlnaHRVcGRhdGUoKSk7XG5cdFx0XHRcdFx0cExNLnVwZGF0ZShjYW1lcmEsIGFwaS5ibGVuZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gU3dpdGNoIGxpZ2h0cyBvZmZcblx0XHRcdFx0bGlnaHRzLm5hdGl2ZUVsZW1lbnQudmlzaWJsZSA9IGZhbHNlO1xuXHRcdFx0XHQvLyBSZXN0b3JlIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0XHRcdHBMTS5maW5pc2goKTtcblx0XHRcdH0sXG5cdFx0fTtcblxuXHRcdHJldHVybiBhcGk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbcExNLCBwbGFuZV0gPSBbdGhpcy5wTE0oKSwgdGhpcy5wbGFuZSgpXTtcblx0XHRcdFx0aWYgKCFwbGFuZSkgcmV0dXJuO1xuXHRcdFx0XHRwTE0uY29uZmlndXJlKHBsYW5lLm5hdGl2ZUVsZW1lbnQpO1xuXHRcdFx0fSk7XG5cblx0XHRcdHRoaXMuYXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHNjZW5lTFMgPSBnZXRMb2NhbFN0YXRlKHRoaXMuc2NlbmUoKSk7XG5cdFx0XHRcdGNvbnN0IFthcGksIHBsYW5lXSA9IFt0aGlzLmFwaSgpLCB0aGlzLnBsYW5lKCksIHRoaXMub3B0aW9ucygpLCBzY2VuZUxTPy5vYmplY3RzKCldO1xuXHRcdFx0XHRpZiAoIXBsYW5lLm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcblx0XHRcdFx0Ly8gUmVzZXQgaW50ZXJuYWxzLCBidWZmZXJzLCAuLi5cblx0XHRcdFx0YXBpLnJlc2V0KCk7XG5cdFx0XHRcdC8vIFVwZGF0ZSBsaWdodG1hcFxuXHRcdFx0XHRpZiAoIWFwaS50ZW1wb3JhbCAmJiBhcGkuZnJhbWVzICE9PSBJbmZpbml0eSkgYXBpLnVwZGF0ZShhcGkuYmxlbmQpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3ROZXh0QmVmb3JlUmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IFthcGksIGludmFsaWRhdGUsIGxpbWl0XSA9IFt0aGlzLmFwaSgpLCB0aGlzLmludmFsaWRhdGUoKSwgdGhpcy5saW1pdCgpXTtcblx0XHRcdGlmICgoYXBpLnRlbXBvcmFsIHx8IGFwaS5mcmFtZXMgPT09IEluZmluaXR5KSAmJiBhcGkuY291bnQgPCBhcGkuZnJhbWVzICYmIGFwaS5jb3VudCA8IGxpbWl0KSB7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0YXBpLnVwZGF0ZSgpO1xuXHRcdFx0XHRhcGkuY291bnQrKztcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG5mdW5jdGlvbiBoYXNHZW9tZXRyeShvYmo6IHVua25vd24pOiBvYmogaXMgTWVzaCB7XG5cdHJldHVybiBvYmogaW5zdGFuY2VvZiBNZXNoICYmICEhb2JqLmdlb21ldHJ5O1xufVxuXG5mdW5jdGlvbiBpc0xpZ2h0KG9iamVjdDogdW5rbm93bik6IG9iamVjdCBpcyBMaWdodCB7XG5cdHJldHVybiAhIW9iamVjdCAmJiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiAnaXNMaWdodCcgaW4gb2JqZWN0ICYmIG9iamVjdFsnaXNMaWdodCddID09PSB0cnVlO1xufVxuXG4vLyBCYXNlZCBvbiBcIlByb2dyZXNzaXZlIExpZ2h0IE1hcCBBY2N1bXVsYXRvclwiLCBieSBbemFsb10oaHR0cHM6Ly9naXRodWIuY29tL3phbG8vKVxuY2xhc3MgUHJvZ3Jlc3NpdmVMaWdodE1hcCB7XG5cdHJlbmRlcmVyOiBXZWJHTFJlbmRlcmVyO1xuXHRyZXM6IG51bWJlcjtcblx0c2NlbmU6IFNjZW5lO1xuXHRvYmplY3Q6IE1lc2ggfCBudWxsO1xuXHRidWZmZXIxQWN0aXZlOiBib29sZWFuO1xuXHRwcm9ncmVzc2l2ZUxpZ2h0TWFwMTogV2ViR0xSZW5kZXJUYXJnZXQ7XG5cdHByb2dyZXNzaXZlTGlnaHRNYXAyOiBXZWJHTFJlbmRlclRhcmdldDtcblx0ZGlzY2FyZE1hdDogU2hhZGVyTWF0ZXJpYWw7XG5cdHRhcmdldE1hdDogTWVzaExhbWJlcnRNYXRlcmlhbDtcblx0cHJldmlvdXNTaGFkb3dNYXA6IHsgdmFsdWU6IFRleHR1cmUgfTtcblx0YXZlcmFnaW5nV2luZG93OiB7IHZhbHVlOiBudW1iZXIgfTtcblx0Y2xlYXJDb2xvcjogQ29sb3I7XG5cdGNsZWFyQWxwaGE6IG51bWJlcjtcblx0bGlnaHRzOiB7IG9iamVjdDogTGlnaHQ7IGludGVuc2l0eTogbnVtYmVyIH1bXTtcblx0bWVzaGVzOiB7IG9iamVjdDogTWVzaDsgbWF0ZXJpYWw6IE1hdGVyaWFsIHwgTWF0ZXJpYWxbXSB9W107XG5cblx0Y29uc3RydWN0b3IocmVuZGVyZXI6IFdlYkdMUmVuZGVyZXIsIHNjZW5lOiBTY2VuZSwgcmVzOiBudW1iZXIgPSAxMDI0KSB7XG5cdFx0dGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyO1xuXHRcdHRoaXMucmVzID0gcmVzO1xuXHRcdHRoaXMuc2NlbmUgPSBzY2VuZTtcblx0XHR0aGlzLmJ1ZmZlcjFBY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLmxpZ2h0cyA9IFtdO1xuXHRcdHRoaXMubWVzaGVzID0gW107XG5cdFx0dGhpcy5vYmplY3QgPSBudWxsO1xuXHRcdHRoaXMuY2xlYXJDb2xvciA9IG5ldyBDb2xvcigpO1xuXHRcdHRoaXMuY2xlYXJBbHBoYSA9IDA7XG5cblx0XHQvLyBDcmVhdGUgdGhlIFByb2dyZXNzaXZlIExpZ2h0TWFwIFRleHR1cmVcblx0XHRjb25zdCB0ZXh0dXJlUGFyYW1zID0ge1xuXHRcdFx0dHlwZTogSGFsZkZsb2F0VHlwZSxcblx0XHRcdG1hZ0ZpbHRlcjogTmVhcmVzdEZpbHRlcixcblx0XHRcdG1pbkZpbHRlcjogTmVhcmVzdEZpbHRlcixcblx0XHR9O1xuXHRcdHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDEgPSBuZXcgV2ViR0xSZW5kZXJUYXJnZXQodGhpcy5yZXMsIHRoaXMucmVzLCB0ZXh0dXJlUGFyYW1zKTtcblx0XHR0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAyID0gbmV3IFdlYkdMUmVuZGVyVGFyZ2V0KHRoaXMucmVzLCB0aGlzLnJlcywgdGV4dHVyZVBhcmFtcyk7XG5cblx0XHQvLyBJbmplY3Qgc29tZSBzcGljeSBuZXcgbG9naWMgaW50byBhIHN0YW5kYXJkIHBob25nIG1hdGVyaWFsXG5cdFx0dGhpcy5kaXNjYXJkTWF0ID0gbmV3IERpc2NhcmRNYXRlcmlhbCgpO1xuXHRcdHRoaXMudGFyZ2V0TWF0ID0gbmV3IE1lc2hMYW1iZXJ0TWF0ZXJpYWwoeyBmb2c6IGZhbHNlIH0pO1xuXHRcdHRoaXMucHJldmlvdXNTaGFkb3dNYXAgPSB7IHZhbHVlOiB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxLnRleHR1cmUgfTtcblx0XHR0aGlzLmF2ZXJhZ2luZ1dpbmRvdyA9IHsgdmFsdWU6IDEwMCB9O1xuXHRcdHRoaXMudGFyZ2V0TWF0Lm9uQmVmb3JlQ29tcGlsZSA9IChzaGFkZXIpID0+IHtcblx0XHRcdC8vIFZlcnRleCBTaGFkZXI6IFNldCBWZXJ0ZXggUG9zaXRpb25zIHRvIHRoZSBVbndyYXBwZWQgVVYgUG9zaXRpb25zXG5cdFx0XHRzaGFkZXIudmVydGV4U2hhZGVyID1cblx0XHRcdFx0J3ZhcnlpbmcgdmVjMiB2VXY7XFxuJyArXG5cdFx0XHRcdHNoYWRlci52ZXJ0ZXhTaGFkZXIuc2xpY2UoMCwgLTEpICtcblx0XHRcdFx0J3ZVdiA9IHV2OyBnbF9Qb3NpdGlvbiA9IHZlYzQoKHV2IC0gMC41KSAqIDIuMCwgMS4wLCAxLjApOyB9JztcblxuXHRcdFx0Ly8gRnJhZ21lbnQgU2hhZGVyOiBTZXQgUGl4ZWxzIHRvIGF2ZXJhZ2UgaW4gdGhlIFByZXZpb3VzIGZyYW1lJ3MgU2hhZG93c1xuXHRcdFx0Y29uc3QgYm9keVN0YXJ0ID0gc2hhZGVyLmZyYWdtZW50U2hhZGVyLmluZGV4T2YoJ3ZvaWQgbWFpbigpIHsnKTtcblx0XHRcdHNoYWRlci5mcmFnbWVudFNoYWRlciA9XG5cdFx0XHRcdCd2YXJ5aW5nIHZlYzIgdlV2O1xcbicgK1xuXHRcdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIuc2xpY2UoMCwgYm9keVN0YXJ0KSArXG5cdFx0XHRcdCd1bmlmb3JtIHNhbXBsZXIyRCBwcmV2aW91c1NoYWRvd01hcDtcXG5cdHVuaWZvcm0gZmxvYXQgYXZlcmFnaW5nV2luZG93O1xcbicgK1xuXHRcdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIuc2xpY2UoYm9keVN0YXJ0IC0gMSwgLTEpICtcblx0XHRcdFx0YFxcbnZlYzMgdGV4ZWxPbGQgPSB0ZXh0dXJlMkQocHJldmlvdXNTaGFkb3dNYXAsIHZVdikucmdiO1xuICAgICAgICBnbF9GcmFnQ29sb3IucmdiID0gbWl4KHRleGVsT2xkLCBnbF9GcmFnQ29sb3IucmdiLCAxLjAvIGF2ZXJhZ2luZ1dpbmRvdyk7XG4gICAgICB9YDtcblxuXHRcdFx0Ly8gU2V0IHRoZSBQcmV2aW91cyBGcmFtZSdzIFRleHR1cmUgQnVmZmVyIGFuZCBBdmVyYWdpbmcgV2luZG93XG5cdFx0XHQvLyBTZXQgdGhlIFByZXZpb3VzIEZyYW1lJ3MgVGV4dHVyZSBCdWZmZXIgYW5kIEF2ZXJhZ2luZyBXaW5kb3dcblx0XHRcdHNoYWRlci51bmlmb3Jtc1sncHJldmlvdXNTaGFkb3dNYXAnXSA9IHRoaXMucHJldmlvdXNTaGFkb3dNYXA7XG5cdFx0XHRzaGFkZXIudW5pZm9ybXNbJ2F2ZXJhZ2luZ1dpbmRvdyddID0gdGhpcy5hdmVyYWdpbmdXaW5kb3c7XG5cdFx0fTtcblx0fVxuXG5cdGNsZWFyKCkge1xuXHRcdHRoaXMucmVuZGVyZXIuZ2V0Q2xlYXJDb2xvcih0aGlzLmNsZWFyQ29sb3IpO1xuXHRcdHRoaXMuY2xlYXJBbHBoYSA9IHRoaXMucmVuZGVyZXIuZ2V0Q2xlYXJBbHBoYSgpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0Q2xlYXJDb2xvcignYmxhY2snLCAxKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFJlbmRlclRhcmdldCh0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxKTtcblx0XHR0aGlzLnJlbmRlcmVyLmNsZWFyKCk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQodGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMik7XG5cdFx0dGhpcy5yZW5kZXJlci5jbGVhcigpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0Q2xlYXJDb2xvcih0aGlzLmNsZWFyQ29sb3IsIHRoaXMuY2xlYXJBbHBoYSk7XG5cblx0XHR0aGlzLmxpZ2h0cyA9IFtdO1xuXHRcdHRoaXMubWVzaGVzID0gW107XG5cdFx0dGhpcy5zY2VuZS50cmF2ZXJzZSgob2JqZWN0KSA9PiB7XG5cdFx0XHRpZiAoaGFzR2VvbWV0cnkob2JqZWN0KSkge1xuXHRcdFx0XHR0aGlzLm1lc2hlcy5wdXNoKHsgb2JqZWN0LCBtYXRlcmlhbDogb2JqZWN0Lm1hdGVyaWFsIH0pO1xuXHRcdFx0fSBlbHNlIGlmIChpc0xpZ2h0KG9iamVjdCkpIHtcblx0XHRcdFx0dGhpcy5saWdodHMucHVzaCh7IG9iamVjdCwgaW50ZW5zaXR5OiBvYmplY3QuaW50ZW5zaXR5IH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJlcGFyZSgpIHtcblx0XHR0aGlzLmxpZ2h0cy5mb3JFYWNoKChsaWdodCkgPT4gKGxpZ2h0Lm9iamVjdC5pbnRlbnNpdHkgPSAwKSk7XG5cdFx0dGhpcy5tZXNoZXMuZm9yRWFjaCgobWVzaCkgPT4gKG1lc2gub2JqZWN0Lm1hdGVyaWFsID0gdGhpcy5kaXNjYXJkTWF0KSk7XG5cdH1cblxuXHRmaW5pc2goKSB7XG5cdFx0dGhpcy5saWdodHMuZm9yRWFjaCgobGlnaHQpID0+IChsaWdodC5vYmplY3QuaW50ZW5zaXR5ID0gbGlnaHQuaW50ZW5zaXR5KSk7XG5cdFx0dGhpcy5tZXNoZXMuZm9yRWFjaCgobWVzaCkgPT4gKG1lc2gub2JqZWN0Lm1hdGVyaWFsID0gbWVzaC5tYXRlcmlhbCkpO1xuXHR9XG5cblx0Y29uZmlndXJlKG9iamVjdDogTWVzaCkge1xuXHRcdHRoaXMub2JqZWN0ID0gb2JqZWN0O1xuXHR9XG5cblx0dXBkYXRlKGNhbWVyYTogQ2FtZXJhLCBibGVuZFdpbmRvdyA9IDEwMCkge1xuXHRcdGlmICghdGhpcy5vYmplY3QpIHJldHVybjtcblx0XHQvLyBTZXQgZWFjaCBvYmplY3QncyBtYXRlcmlhbCB0byB0aGUgVVYgVW53cmFwcGVkIFN1cmZhY2UgTWFwcGluZyBWZXJzaW9uXG5cdFx0dGhpcy5hdmVyYWdpbmdXaW5kb3cudmFsdWUgPSBibGVuZFdpbmRvdztcblx0XHR0aGlzLm9iamVjdC5tYXRlcmlhbCA9IHRoaXMudGFyZ2V0TWF0O1xuXHRcdC8vIFBpbmctcG9uZyB0d28gc3VyZmFjZSBidWZmZXJzIGZvciByZWFkaW5nL3dyaXRpbmdcblx0XHRjb25zdCBhY3RpdmVNYXAgPSB0aGlzLmJ1ZmZlcjFBY3RpdmUgPyB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxIDogdGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMjtcblx0XHRjb25zdCBpbmFjdGl2ZU1hcCA9IHRoaXMuYnVmZmVyMUFjdGl2ZSA/IHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDIgOiB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxO1xuXHRcdC8vIFJlbmRlciB0aGUgb2JqZWN0J3Mgc3VyZmFjZSBtYXBzXG5cdFx0Y29uc3Qgb2xkQmcgPSB0aGlzLnNjZW5lLmJhY2tncm91bmQ7XG5cdFx0dGhpcy5zY2VuZS5iYWNrZ3JvdW5kID0gbnVsbDtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFJlbmRlclRhcmdldChhY3RpdmVNYXApO1xuXHRcdHRoaXMucHJldmlvdXNTaGFkb3dNYXAudmFsdWUgPSBpbmFjdGl2ZU1hcC50ZXh0dXJlO1xuXHRcdHRoaXMuYnVmZmVyMUFjdGl2ZSA9ICF0aGlzLmJ1ZmZlcjFBY3RpdmU7XG5cdFx0dGhpcy5yZW5kZXJlci5yZW5kZXIodGhpcy5zY2VuZSwgY2FtZXJhKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFJlbmRlclRhcmdldChudWxsKTtcblx0XHR0aGlzLnNjZW5lLmJhY2tncm91bmQgPSBvbGRCZztcblx0fVxufVxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjdW11bGF0aXZlLXNoYWRvd3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2FjY3VtdWxhdGl2ZS1zaGFkb3dzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVOLGNBQWMsRUFDZCxNQUFNLEVBQ04sYUFBYSxFQUNiLHNCQUFzQixFQUN0QixXQUFXLEVBQ1gsSUFBSSxFQUNKLElBQUksR0FDSixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFFTixLQUFLLEVBQ0wsS0FBSyxFQUNMLGFBQWEsRUFHYixJQUFJLEVBQ0osbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixhQUFhLEVBSWIsaUJBQWlCLEdBRWpCLE1BQU0sT0FBTyxDQUFDOztBQTJCZixNQUFNLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLDZCQUE2QixDQUFDLEdBQUcsY0FBYyxDQUMxRixHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FDN0IsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFtQztJQUN0RCxNQUFNLEVBQUUsRUFBRTtJQUNWLEtBQUssRUFBRSxRQUFRO0lBQ2YsS0FBSyxFQUFFLEVBQUU7SUFDVCxLQUFLLEVBQUUsRUFBRTtJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsU0FBUyxFQUFFLElBQUk7SUFDZixLQUFLLEVBQUUsT0FBTztJ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QUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxvREFBb0Q7UUFDcEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDN0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDL0YsbUNBQW1DO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHROZ3RHcm91cCxcblx0Y3JlYXRlQXBpVG9rZW4sXG5cdGV4dGVuZCxcblx0Z2V0TG9jYWxTdGF0ZSxcblx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcixcblx0aW5qZWN0U3RvcmUsXG5cdG9taXQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgRGlzY2FyZE1hdGVyaWFsLCBTb2Z0U2hhZG93TWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQge1xuXHRDYW1lcmEsXG5cdENvbG9yLFxuXHRHcm91cCxcblx0SGFsZkZsb2F0VHlwZSxcblx0TGlnaHQsXG5cdE1hdGVyaWFsLFxuXHRNZXNoLFxuXHRNZXNoTGFtYmVydE1hdGVyaWFsLFxuXHROZWFyZXN0RmlsdGVyLFxuXHRQbGFuZUdlb21ldHJ5LFxuXHRTY2VuZSxcblx0U2hhZGVyTWF0ZXJpYWwsXG5cdFRleHR1cmUsXG5cdFdlYkdMUmVuZGVyVGFyZ2V0LFxuXHRXZWJHTFJlbmRlcmVyLFxufSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0FjY3VtdWxhdGl2ZVNoYWRvd3NPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKiogSG93IG1hbnkgZnJhbWVzIGl0IGNhbiByZW5kZXIsIG1vcmUgeWllbGRzIGNsZWFuZXIgcmVzdWx0cyBidXQgdGFrZXMgbW9yZSB0aW1lLCA0MCAqL1xuXHRmcmFtZXM6IG51bWJlcjtcblx0LyoqIElmIGZyYW1lcyA9PT0gSW5maW5pdHkgYmxlbmQgY29udHJvbHMgdGhlIHJlZnJlc2ggcmF0aW8sIDEwMCAqL1xuXHRibGVuZDogbnVtYmVyO1xuXHQvKiogQ2FuIGxpbWl0IHRoZSBhbW91bnQgb2YgZnJhbWVzIHJlbmRlcmVkIGlmIGZyYW1lcyA9PT0gSW5maW5pdHksIHVzdWFsbHkgdG8gZ2V0IHNvbWUgcGVyZm9ybWFuY2UgYmFjayBvbmNlIGEgbW92YWJsZSBzY2VuZSBoYXMgc2V0dGxlZCwgSW5maW5pdHkgKi9cblx0bGltaXQ6IG51bWJlcjtcblx0LyoqIFNjYWxlIG9mIHRoZSBwbGFuZSwgICovXG5cdHNjYWxlOiBudW1iZXI7XG5cdC8qKiBUZW1wb3JhbCBhY2N1bXVsYXRlcyBzaGFkb3dzIG92ZXIgdGltZSB3aGljaCBpcyBtb3JlIHBlcmZvcm1hbnQgYnV0IGhhcyBhIHZpc3VhbCByZWdyZXNzaW9uIG92ZXIgaW5zdGFudCByZXN1bHRzLCBmYWxzZSAgKi9cblx0dGVtcG9yYWw/OiBib29sZWFuO1xuXHQvKiogT3BhY2l0eSBvZiB0aGUgcGxhbmUsIDEgKi9cblx0b3BhY2l0eTogbnVtYmVyO1xuXHQvKiogRGlzY2FyZHMgYWxwaGEgcGl4ZWxzLCAwLjY1ICovXG5cdGFscGhhVGVzdDogbnVtYmVyO1xuXHQvKiogU2hhZG93IGNvbG9yLCBibGFjayAqL1xuXHRjb2xvcjogc3RyaW5nO1xuXHQvKiogQ29sb3JibGVuZCwgaG93IG11Y2ggY29sb3JzIHR1cm4gdG8gYmxhY2ssIDAgaXMgYmxhY2ssIDIgKi9cblx0Y29sb3JCbGVuZDogbnVtYmVyO1xuXHQvKiogQnVmZmVyIHJlc29sdXRpb24sIDEwMjQgKi9cblx0cmVzb2x1dGlvbjogbnVtYmVyO1xuXHQvKiogVGV4dHVyZSB0b25lbWFwcGluZyAqL1xuXHR0b25lTWFwcGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgW2luamVjdEFjY3VtdWxhdGl2ZVNoYWRvd3NBcGksIHByb3ZpZGVBY2N1bXVsYXRpdmVTaGFkb3dzQXBpXSA9IGNyZWF0ZUFwaVRva2VuKFxuXHQoKSA9PiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyxcbik7XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzQWNjdW11bGF0aXZlU2hhZG93c09wdGlvbnMgPSB7XG5cdGZyYW1lczogNDAsXG5cdGxpbWl0OiBJbmZpbml0eSxcblx0YmxlbmQ6IDIwLFxuXHRzY2FsZTogMTAsXG5cdG9wYWNpdHk6IDEsXG5cdGFscGhhVGVzdDogMC43NSxcblx0Y29sb3I6ICdibGFjaycsXG5cdGNvbG9yQmxlbmQ6IDIsXG5cdHJlc29sdXRpb246IDEwMjQsXG5cdHRvbmVNYXBwZWQ6IHRydWUsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWFjY3VtdWxhdGl2ZS1zaGFkb3dzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0PG5ndC1ncm91cCAjbGlnaHRzIFt0cmF2ZXJzZV09XCJudWxsVHJhdmVyc2FsXCI+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L25ndC1ncm91cD5cblxuXHRcdFx0PG5ndC1tZXNoICNwbGFuZSBbc2NhbGVdPVwic2NhbGUoKVwiIFtyb3RhdGlvbl09XCJbLU1hdGguUEkgLyAyLCAwLCAwXVwiIFtyZWNlaXZlU2hhZG93XT1cInRydWVcIj5cblx0XHRcdFx0PG5ndC1wbGFuZS1nZW9tZXRyeSAvPlxuXHRcdFx0XHQ8bmd0LXNvZnQtc2hhZG93LW1hdGVyaWFsXG5cdFx0XHRcdFx0W3RyYW5zcGFyZW50XT1cInRydWVcIlxuXHRcdFx0XHRcdFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcblx0XHRcdFx0XHRbdG9uZU1hcHBlZF09XCJ0b25lTWFwcGVkKClcIlxuXHRcdFx0XHRcdFtjb2xvcl09XCJjb2xvcigpXCJcblx0XHRcdFx0XHRbYmxlbmRdPVwiY29sb3JCbGVuZCgpXCJcblx0XHRcdFx0XHRbbWFwXT1cIm1hcCgpXCJcblx0XHRcdFx0Lz5cblx0XHRcdDwvbmd0LW1lc2g+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVBY2N1bXVsYXRpdmVTaGFkb3dzQXBpKCldLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWNjdW11bGF0aXZlU2hhZG93cyB7XG5cdG51bGxUcmF2ZXJzYWwgPSAoKSA9PiBudWxsO1xuXHRNYXRoID0gTWF0aDtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCd0ZW1wb3JhbCcsXG5cdFx0J2ZyYW1lcycsXG5cdFx0J2xpbWl0Jyxcblx0XHQnYmxlbmQnLFxuXHRcdCdzY2FsZScsXG5cdFx0J29wYWNpdHknLFxuXHRcdCdhbHBoYVRlc3QnLFxuXHRcdCdjb2xvcicsXG5cdFx0J2NvbG9yQmxlbmQnLFxuXHRcdCdyZXNvbHV0aW9uJyxcblx0XHQndG9uZU1hcHBlZCcsXG5cdF0pO1xuXG5cdGxpZ2h0cyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2xpZ2h0cycpO1xuXHRwbGFuZSA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPE1lc2g+PigncGxhbmUnKTtcblxuXHRwcml2YXRlIGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cblx0cHJpdmF0ZSB0ZW1wb3JhbCA9IHBpY2sodGhpcy5vcHRpb25zLCAndGVtcG9yYWwnKTtcblx0cHJpdmF0ZSBmcmFtZXMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZyYW1lcycpO1xuXHRwcml2YXRlIGJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdibGVuZCcpO1xuXHRwcml2YXRlIG9wYWNpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ29wYWNpdHknKTtcblx0cHJpdmF0ZSBhbHBoYVRlc3QgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2FscGhhVGVzdCcpO1xuXHRwcml2YXRlIGxpbWl0ID0gcGljayh0aGlzLm9wdGlvbnMsICdsaW1pdCcpO1xuXG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIHBMTSA9IGNvbXB1dGVkKCgpID0+IG5ldyBQcm9ncmVzc2l2ZUxpZ2h0TWFwKHRoaXMuZ2woKSwgdGhpcy5zY2VuZSgpLCB0aGlzLnJlc29sdXRpb24oKSkpO1xuXG5cdHNjYWxlID0gcGljayh0aGlzLm9wdGlvbnMsICdzY2FsZScpO1xuXHR0b25lTWFwcGVkID0gcGljayh0aGlzLm9wdGlvbnMsICd0b25lTWFwcGVkJyk7XG5cdGNvbG9yID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvcicpO1xuXHRjb2xvckJsZW5kID0gcGljayh0aGlzLm9wdGlvbnMsICdjb2xvckJsZW5kJyk7XG5cdG1hcCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucExNKCkucHJvZ3Jlc3NpdmVMaWdodE1hcDIudGV4dHVyZSk7XG5cblx0YXBpID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtwTE0sIGNhbWVyYSwgLCB0ZW1wb3JhbCwgZnJhbWVzLCBibGVuZCwgb3BhY2l0eSwgYWxwaGFUZXN0LCBsaWdodHMsIHBsYW5lXSA9IFtcblx0XHRcdHRoaXMucExNKCksXG5cdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0dGhpcy5zY2VuZSgpLFxuXHRcdFx0dGhpcy50ZW1wb3JhbCgpLFxuXHRcdFx0dGhpcy5mcmFtZXMoKSxcblx0XHRcdHRoaXMuYmxlbmQoKSxcblx0XHRcdHRoaXMub3BhY2l0eSgpLFxuXHRcdFx0dGhpcy5hbHBoYVRlc3QoKSxcblx0XHRcdHRoaXMubGlnaHRzKCksXG5cdFx0XHR0aGlzLnBsYW5lKCksXG5cdFx0XTtcblxuXHRcdGNvbnN0IGFwaSA9IHtcblx0XHRcdGxpZ2h0czogbmV3IE1hcDxzdHJpbmcsICgpID0+IHZvaWQ+KCksXG5cdFx0XHR0ZW1wb3JhbDogISF0ZW1wb3JhbCxcblx0XHRcdGZyYW1lczogTWF0aC5tYXgoMiwgZnJhbWVzKSxcblx0XHRcdGJsZW5kOiBNYXRoLm1heCgyLCBmcmFtZXMgPT09IEluZmluaXR5ID8gYmxlbmQgOiBmcmFtZXMpLFxuXHRcdFx0Y291bnQ6IDAsXG5cdFx0XHRnZXRNZXNoOiAoKSA9PiBwbGFuZS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0cmVzZXQ6ICgpID0+IHtcblx0XHRcdFx0aWYgKCFwbGFuZS5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cdFx0XHRcdC8vIENsZWFyIGJ1ZmZlcnMsIHJlc2V0IG9wYWNpdGllcywgc2V0IGZyYW1lIGNvdW50IHRvIDBcblx0XHRcdFx0cExNLmNsZWFyKCk7XG5cdFx0XHRcdGNvbnN0IG1hdGVyaWFsID0gcGxhbmUubmF0aXZlRWxlbWVudC5tYXRlcmlhbCBhcyBNYXRlcmlhbDtcblx0XHRcdFx0bWF0ZXJpYWwub3BhY2l0eSA9IDA7XG5cdFx0XHRcdG1hdGVyaWFsLmFscGhhVGVzdCA9IDA7XG5cdFx0XHRcdGFwaS5jb3VudCA9IDA7XG5cdFx0XHR9LFxuXHRcdFx0dXBkYXRlOiAoZnJhbWVzID0gMSkgPT4ge1xuXHRcdFx0XHQvLyBBZGFwdCB0aGUgb3BhY2l0eS1ibGVuZCByYXRpbyB0byB0aGUgbnVtYmVyIG9mIGZyYW1lc1xuXHRcdFx0XHRjb25zdCBtYXRlcmlhbCA9IHBsYW5lLm5hdGl2ZUVsZW1lbnQubWF0ZXJpYWwgYXMgTWF0ZXJpYWw7XG5cdFx0XHRcdGlmICghYXBpLnRlbXBvcmFsKSB7XG5cdFx0XHRcdFx0bWF0ZXJpYWwub3BhY2l0eSA9IG9wYWNpdHk7XG5cdFx0XHRcdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gYWxwaGFUZXN0O1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG1hdGVyaWFsLm9wYWNpdHkgPSBNYXRoLm1pbihvcGFjaXR5LCBtYXRlcmlhbC5vcGFjaXR5ICsgb3BhY2l0eSAvIGFwaS5ibGVuZCk7XG5cdFx0XHRcdFx0bWF0ZXJpYWwuYWxwaGFUZXN0ID0gTWF0aC5taW4oYWxwaGFUZXN0LCBtYXRlcmlhbC5hbHBoYVRlc3QgKyBhbHBoYVRlc3QgLyBhcGkuYmxlbmQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3dpdGNoIGFjY3VtdWxhdGl2ZSBsaWdodHMgb25cblx0XHRcdFx0bGlnaHRzLm5hdGl2ZUVsZW1lbnQudmlzaWJsZSA9IHRydWU7XG5cdFx0XHRcdC8vIENvbGxlY3Qgc2NlbmUgbGlnaHRzIGFuZCBtZXNoZXNcblx0XHRcdFx0cExNLnByZXBhcmUoKTtcblxuXHRcdFx0XHQvLyBVcGRhdGUgdGhlIGxpZ2h0bWFwIGFuZCB0aGUgYWNjdW11bGF0aXZlIGxpZ2h0c1xuXHRcdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGZyYW1lczsgaSsrKSB7XG5cdFx0XHRcdFx0YXBpLmxpZ2h0cy5mb3JFYWNoKChsaWdodFVwZGF0ZSkgPT4gbGlnaHRVcGRhdGUoKSk7XG5cdFx0XHRcdFx0cExNLnVwZGF0ZShjYW1lcmEsIGFwaS5ibGVuZCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8gU3dpdGNoIGxpZ2h0cyBvZmZcblx0XHRcdFx0bGlnaHRzLm5hdGl2ZUVsZW1lbnQudmlzaWJsZSA9IGZhbHNlO1xuXHRcdFx0XHQvLyBSZXN0b3JlIGxpZ2h0cyBhbmQgbWVzaGVzXG5cdFx0XHRcdHBMTS5maW5pc2goKTtcblx0XHRcdH0sXG5cdFx0fTtcblxuXHRcdHJldHVybiBhcGk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwLCBTb2Z0U2hhZG93TWF0ZXJpYWwsIE1lc2gsIFBsYW5lR2VvbWV0cnkgfSk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0dGhpcy5hdXRvRWZmZWN0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgW3BMTSwgcGxhbmVdID0gW3RoaXMucExNKCksIHRoaXMucGxhbmUoKV07XG5cdFx0XHRcdGlmICghcGxhbmUpIHJldHVybjtcblx0XHRcdFx0cExNLmNvbmZpZ3VyZShwbGFuZS5uYXRpdmVFbGVtZW50KTtcblx0XHRcdH0pO1xuXG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBzY2VuZUxTID0gZ2V0TG9jYWxTdGF0ZSh0aGlzLnNjZW5lKCkpO1xuXHRcdFx0XHRjb25zdCBbYXBpLCBwbGFuZV0gPSBbdGhpcy5hcGkoKSwgdGhpcy5wbGFuZSgpLCB0aGlzLm9wdGlvbnMoKSwgc2NlbmVMUz8ub2JqZWN0cygpXTtcblx0XHRcdFx0aWYgKCFwbGFuZS5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cdFx0XHRcdC8vIFJlc2V0IGludGVybmFscywgYnVmZmVycywgLi4uXG5cdFx0XHRcdGFwaS5yZXNldCgpO1xuXHRcdFx0XHQvLyBVcGRhdGUgbGlnaHRtYXBcblx0XHRcdFx0aWYgKCFhcGkudGVtcG9yYWwgJiYgYXBpLmZyYW1lcyAhPT0gSW5maW5pdHkpIGFwaS51cGRhdGUoYXBpLmJsZW5kKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBbYXBpLCBpbnZhbGlkYXRlLCBsaW1pdF0gPSBbdGhpcy5hcGkoKSwgdGhpcy5pbnZhbGlkYXRlKCksIHRoaXMubGltaXQoKV07XG5cdFx0XHRpZiAoKGFwaS50ZW1wb3JhbCB8fCBhcGkuZnJhbWVzID09PSBJbmZpbml0eSkgJiYgYXBpLmNvdW50IDwgYXBpLmZyYW1lcyAmJiBhcGkuY291bnQgPCBsaW1pdCkge1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHRcdGFwaS51cGRhdGUoKTtcblx0XHRcdFx0YXBpLmNvdW50Kys7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cblxuZnVuY3Rpb24gaGFzR2VvbWV0cnkob2JqOiB1bmtub3duKTogb2JqIGlzIE1lc2gge1xuXHRyZXR1cm4gb2JqIGluc3RhbmNlb2YgTWVzaCAmJiAhIW9iai5nZW9tZXRyeTtcbn1cblxuZnVuY3Rpb24gaXNMaWdodChvYmplY3Q6IHVua25vd24pOiBvYmplY3QgaXMgTGlnaHQge1xuXHRyZXR1cm4gISFvYmplY3QgJiYgdHlwZW9mIG9iamVjdCA9PT0gJ29iamVjdCcgJiYgJ2lzTGlnaHQnIGluIG9iamVjdCAmJiBvYmplY3RbJ2lzTGlnaHQnXSA9PT0gdHJ1ZTtcbn1cblxuLy8gQmFzZWQgb24gXCJQcm9ncmVzc2l2ZSBMaWdodCBNYXAgQWNjdW11bGF0b3JcIiwgYnkgW3phbG9dKGh0dHBzOi8vZ2l0aHViLmNvbS96YWxvLylcbmNsYXNzIFByb2dyZXNzaXZlTGlnaHRNYXAge1xuXHRyZW5kZXJlcjogV2ViR0xSZW5kZXJlcjtcblx0cmVzOiBudW1iZXI7XG5cdHNjZW5lOiBTY2VuZTtcblx0b2JqZWN0OiBNZXNoIHwgbnVsbDtcblx0YnVmZmVyMUFjdGl2ZTogYm9vbGVhbjtcblx0cHJvZ3Jlc3NpdmVMaWdodE1hcDE6IFdlYkdMUmVuZGVyVGFyZ2V0O1xuXHRwcm9ncmVzc2l2ZUxpZ2h0TWFwMjogV2ViR0xSZW5kZXJUYXJnZXQ7XG5cdGRpc2NhcmRNYXQ6IFNoYWRlck1hdGVyaWFsO1xuXHR0YXJnZXRNYXQ6IE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG5cdHByZXZpb3VzU2hhZG93TWFwOiB7IHZhbHVlOiBUZXh0dXJlIH07XG5cdGF2ZXJhZ2luZ1dpbmRvdzogeyB2YWx1ZTogbnVtYmVyIH07XG5cdGNsZWFyQ29sb3I6IENvbG9yO1xuXHRjbGVhckFscGhhOiBudW1iZXI7XG5cdGxpZ2h0czogeyBvYmplY3Q6IExpZ2h0OyBpbnRlbnNpdHk6IG51bWJlciB9W107XG5cdG1lc2hlczogeyBvYmplY3Q6IE1lc2g7IG1hdGVyaWFsOiBNYXRlcmlhbCB8IE1hdGVyaWFsW10gfVtdO1xuXG5cdGNvbnN0cnVjdG9yKHJlbmRlcmVyOiBXZWJHTFJlbmRlcmVyLCBzY2VuZTogU2NlbmUsIHJlczogbnVtYmVyID0gMTAyNCkge1xuXHRcdHRoaXMucmVuZGVyZXIgPSByZW5kZXJlcjtcblx0XHR0aGlzLnJlcyA9IHJlcztcblx0XHR0aGlzLnNjZW5lID0gc2NlbmU7XG5cdFx0dGhpcy5idWZmZXIxQWN0aXZlID0gZmFsc2U7XG5cdFx0dGhpcy5saWdodHMgPSBbXTtcblx0XHR0aGlzLm1lc2hlcyA9IFtdO1xuXHRcdHRoaXMub2JqZWN0ID0gbnVsbDtcblx0XHR0aGlzLmNsZWFyQ29sb3IgPSBuZXcgQ29sb3IoKTtcblx0XHR0aGlzLmNsZWFyQWxwaGEgPSAwO1xuXG5cdFx0Ly8gQ3JlYXRlIHRoZSBQcm9ncmVzc2l2ZSBMaWdodE1hcCBUZXh0dXJlXG5cdFx0Y29uc3QgdGV4dHVyZVBhcmFtcyA9IHtcblx0XHRcdHR5cGU6IEhhbGZGbG9hdFR5cGUsXG5cdFx0XHRtYWdGaWx0ZXI6IE5lYXJlc3RGaWx0ZXIsXG5cdFx0XHRtaW5GaWx0ZXI6IE5lYXJlc3RGaWx0ZXIsXG5cdFx0fTtcblx0XHR0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAxID0gbmV3IFdlYkdMUmVuZGVyVGFyZ2V0KHRoaXMucmVzLCB0aGlzLnJlcywgdGV4dHVyZVBhcmFtcyk7XG5cdFx0dGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMiA9IG5ldyBXZWJHTFJlbmRlclRhcmdldCh0aGlzLnJlcywgdGhpcy5yZXMsIHRleHR1cmVQYXJhbXMpO1xuXG5cdFx0Ly8gSW5qZWN0IHNvbWUgc3BpY3kgbmV3IGxvZ2ljIGludG8gYSBzdGFuZGFyZCBwaG9uZyBtYXRlcmlhbFxuXHRcdHRoaXMuZGlzY2FyZE1hdCA9IG5ldyBEaXNjYXJkTWF0ZXJpYWwoKTtcblx0XHR0aGlzLnRhcmdldE1hdCA9IG5ldyBNZXNoTGFtYmVydE1hdGVyaWFsKHsgZm9nOiBmYWxzZSB9KTtcblx0XHR0aGlzLnByZXZpb3VzU2hhZG93TWFwID0geyB2YWx1ZTogdGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMS50ZXh0dXJlIH07XG5cdFx0dGhpcy5hdmVyYWdpbmdXaW5kb3cgPSB7IHZhbHVlOiAxMDAgfTtcblx0XHR0aGlzLnRhcmdldE1hdC5vbkJlZm9yZUNvbXBpbGUgPSAoc2hhZGVyKSA9PiB7XG5cdFx0XHQvLyBWZXJ0ZXggU2hhZGVyOiBTZXQgVmVydGV4IFBvc2l0aW9ucyB0byB0aGUgVW53cmFwcGVkIFVWIFBvc2l0aW9uc1xuXHRcdFx0c2hhZGVyLnZlcnRleFNoYWRlciA9XG5cdFx0XHRcdCd2YXJ5aW5nIHZlYzIgdlV2O1xcbicgK1xuXHRcdFx0XHRzaGFkZXIudmVydGV4U2hhZGVyLnNsaWNlKDAsIC0xKSArXG5cdFx0XHRcdCd2VXYgPSB1djsgZ2xfUG9zaXRpb24gPSB2ZWM0KCh1diAtIDAuNSkgKiAyLjAsIDEuMCwgMS4wKTsgfSc7XG5cblx0XHRcdC8vIEZyYWdtZW50IFNoYWRlcjogU2V0IFBpeGVscyB0byBhdmVyYWdlIGluIHRoZSBQcmV2aW91cyBmcmFtZSdzIFNoYWRvd3Ncblx0XHRcdGNvbnN0IGJvZHlTdGFydCA9IHNoYWRlci5mcmFnbWVudFNoYWRlci5pbmRleE9mKCd2b2lkIG1haW4oKSB7Jyk7XG5cdFx0XHRzaGFkZXIuZnJhZ21lbnRTaGFkZXIgPVxuXHRcdFx0XHQndmFyeWluZyB2ZWMyIHZVdjtcXG4nICtcblx0XHRcdFx0c2hhZGVyLmZyYWdtZW50U2hhZGVyLnNsaWNlKDAsIGJvZHlTdGFydCkgK1xuXHRcdFx0XHQndW5pZm9ybSBzYW1wbGVyMkQgcHJldmlvdXNTaGFkb3dNYXA7XFxuXHR1bmlmb3JtIGZsb2F0IGF2ZXJhZ2luZ1dpbmRvdztcXG4nICtcblx0XHRcdFx0c2hhZGVyLmZyYWdtZW50U2hhZGVyLnNsaWNlKGJvZHlTdGFydCAtIDEsIC0xKSArXG5cdFx0XHRcdGBcXG52ZWMzIHRleGVsT2xkID0gdGV4dHVyZTJEKHByZXZpb3VzU2hhZG93TWFwLCB2VXYpLnJnYjtcbiAgICAgICAgZ2xfRnJhZ0NvbG9yLnJnYiA9IG1peCh0ZXhlbE9sZCwgZ2xfRnJhZ0NvbG9yLnJnYiwgMS4wLyBhdmVyYWdpbmdXaW5kb3cpO1xuICAgICAgfWA7XG5cblx0XHRcdC8vIFNldCB0aGUgUHJldmlvdXMgRnJhbWUncyBUZXh0dXJlIEJ1ZmZlciBhbmQgQXZlcmFnaW5nIFdpbmRvd1xuXHRcdFx0Ly8gU2V0IHRoZSBQcmV2aW91cyBGcmFtZSdzIFRleHR1cmUgQnVmZmVyIGFuZCBBdmVyYWdpbmcgV2luZG93XG5cdFx0XHRzaGFkZXIudW5pZm9ybXNbJ3ByZXZpb3VzU2hhZG93TWFwJ10gPSB0aGlzLnByZXZpb3VzU2hhZG93TWFwO1xuXHRcdFx0c2hhZGVyLnVuaWZvcm1zWydhdmVyYWdpbmdXaW5kb3cnXSA9IHRoaXMuYXZlcmFnaW5nV2luZG93O1xuXHRcdH07XG5cdH1cblxuXHRjbGVhcigpIHtcblx0XHR0aGlzLnJlbmRlcmVyLmdldENsZWFyQ29sb3IodGhpcy5jbGVhckNvbG9yKTtcblx0XHR0aGlzLmNsZWFyQWxwaGEgPSB0aGlzLnJlbmRlcmVyLmdldENsZWFyQWxwaGEoKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldENsZWFyQ29sb3IoJ2JsYWNrJywgMSk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQodGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMSk7XG5cdFx0dGhpcy5yZW5kZXJlci5jbGVhcigpO1xuXHRcdHRoaXMucmVuZGVyZXIuc2V0UmVuZGVyVGFyZ2V0KHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDIpO1xuXHRcdHRoaXMucmVuZGVyZXIuY2xlYXIoKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldFJlbmRlclRhcmdldChudWxsKTtcblx0XHR0aGlzLnJlbmRlcmVyLnNldENsZWFyQ29sb3IodGhpcy5jbGVhckNvbG9yLCB0aGlzLmNsZWFyQWxwaGEpO1xuXG5cdFx0dGhpcy5saWdodHMgPSBbXTtcblx0XHR0aGlzLm1lc2hlcyA9IFtdO1xuXHRcdHRoaXMuc2NlbmUudHJhdmVyc2UoKG9iamVjdCkgPT4ge1xuXHRcdFx0aWYgKGhhc0dlb21ldHJ5KG9iamVjdCkpIHtcblx0XHRcdFx0dGhpcy5tZXNoZXMucHVzaCh7IG9iamVjdCwgbWF0ZXJpYWw6IG9iamVjdC5tYXRlcmlhbCB9KTtcblx0XHRcdH0gZWxzZSBpZiAoaXNMaWdodChvYmplY3QpKSB7XG5cdFx0XHRcdHRoaXMubGlnaHRzLnB1c2goeyBvYmplY3QsIGludGVuc2l0eTogb2JqZWN0LmludGVuc2l0eSB9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByZXBhcmUoKSB7XG5cdFx0dGhpcy5saWdodHMuZm9yRWFjaCgobGlnaHQpID0+IChsaWdodC5vYmplY3QuaW50ZW5zaXR5ID0gMCkpO1xuXHRcdHRoaXMubWVzaGVzLmZvckVhY2goKG1lc2gpID0+IChtZXNoLm9iamVjdC5tYXRlcmlhbCA9IHRoaXMuZGlzY2FyZE1hdCkpO1xuXHR9XG5cblx0ZmluaXNoKCkge1xuXHRcdHRoaXMubGlnaHRzLmZvckVhY2goKGxpZ2h0KSA9PiAobGlnaHQub2JqZWN0LmludGVuc2l0eSA9IGxpZ2h0LmludGVuc2l0eSkpO1xuXHRcdHRoaXMubWVzaGVzLmZvckVhY2goKG1lc2gpID0+IChtZXNoLm9iamVjdC5tYXRlcmlhbCA9IG1lc2gubWF0ZXJpYWwpKTtcblx0fVxuXG5cdGNvbmZpZ3VyZShvYmplY3Q6IE1lc2gpIHtcblx0XHR0aGlzLm9iamVjdCA9IG9iamVjdDtcblx0fVxuXG5cdHVwZGF0ZShjYW1lcmE6IENhbWVyYSwgYmxlbmRXaW5kb3cgPSAxMDApIHtcblx0XHRpZiAoIXRoaXMub2JqZWN0KSByZXR1cm47XG5cdFx0Ly8gU2V0IGVhY2ggb2JqZWN0J3MgbWF0ZXJpYWwgdG8gdGhlIFVWIFVud3JhcHBlZCBTdXJmYWNlIE1hcHBpbmcgVmVyc2lvblxuXHRcdHRoaXMuYXZlcmFnaW5nV2luZG93LnZhbHVlID0gYmxlbmRXaW5kb3c7XG5cdFx0dGhpcy5vYmplY3QubWF0ZXJpYWwgPSB0aGlzLnRhcmdldE1hdDtcblx0XHQvLyBQaW5nLXBvbmcgdHdvIHN1cmZhY2UgYnVmZmVycyBmb3IgcmVhZGluZy93cml0aW5nXG5cdFx0Y29uc3QgYWN0aXZlTWFwID0gdGhpcy5idWZmZXIxQWN0aXZlID8gdGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMSA6IHRoaXMucHJvZ3Jlc3NpdmVMaWdodE1hcDI7XG5cdFx0Y29uc3QgaW5hY3RpdmVNYXAgPSB0aGlzLmJ1ZmZlcjFBY3RpdmUgPyB0aGlzLnByb2dyZXNzaXZlTGlnaHRNYXAyIDogdGhpcy5wcm9ncmVzc2l2ZUxpZ2h0TWFwMTtcblx0XHQvLyBSZW5kZXIgdGhlIG9iamVjdCdzIHN1cmZhY2UgbWFwc1xuXHRcdGNvbnN0IG9sZEJnID0gdGhpcy5zY2VuZS5iYWNrZ3JvdW5kO1xuXHRcdHRoaXMuc2NlbmUuYmFja2dyb3VuZCA9IG51bGw7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQoYWN0aXZlTWFwKTtcblx0XHR0aGlzLnByZXZpb3VzU2hhZG93TWFwLnZhbHVlID0gaW5hY3RpdmVNYXAudGV4dHVyZTtcblx0XHR0aGlzLmJ1ZmZlcjFBY3RpdmUgPSAhdGhpcy5idWZmZXIxQWN0aXZlO1xuXHRcdHRoaXMucmVuZGVyZXIucmVuZGVyKHRoaXMuc2NlbmUsIGNhbWVyYSk7XG5cdFx0dGhpcy5yZW5kZXJlci5zZXRSZW5kZXJUYXJnZXQobnVsbCk7XG5cdFx0dGhpcy5zY2VuZS5iYWNrZ3JvdW5kID0gb2xkQmc7XG5cdH1cbn1cbiJdfQ==
@@ -289,6 +289,15 @@ export class NgtsEnvironmentPortal {
289
289
  this.cameraArgs = computed(() => [this.near(), this.far(), this.fbo()]);
290
290
  this.virtualScene = prepare(new Scene());
291
291
  extend({ CubeCamera });
292
+ afterNextRender(() => {
293
+ this.autoEffect(() => {
294
+ const [files, preset, map] = [this.files(), this.preset(), this.map()];
295
+ // NOTE: when there's none of this, we don't render cube or map so we need to setEnv here
296
+ if (!!files || !!preset || !!map)
297
+ return;
298
+ this.onEnvSet();
299
+ });
300
+ });
292
301
  let count = 1;
293
302
  injectNextBeforeRender(() => {
294
303
  const frames = this.options().frames;
@@ -450,4 +459,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
450
459
  changeDetection: ChangeDetectionStrategy.OnPush,
451
460
  }]
452
461
  }] });
453
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBR1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLFVBQVUsRUFDVixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUVoQyxhQUFhLEVBRWIsS0FBSyxFQUVMLHFCQUFxQixHQUNyQixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxTQUFTLEVB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QUFDLEVBQTRCLENBQUMsQ0FBQztRQUM5QyxZQUFPLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztLQUN4Qjs4R0FKWSxlQUFlO2tHQUFmLGVBQWUsMFJBRUosV0FBVyxnRUFqQnhCOzs7Ozs7Ozs7O0VBVVQsNERBdk9XLG1CQUFtQiw0R0FqRG5CLGtCQUFrQiwyR0ErSGxCLHFCQUFxQix5SEFzSHJCLHFCQUFxQjs7MkZBd0NyQixlQUFlO2tCQWxCM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0VBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdERpcmVjdGl2ZSxcblx0RWZmZWN0UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0VGVtcGxhdGVSZWYsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGNvbnRlbnRDaGlsZCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdhaW5NYXBMb2FkZXIsIEhEUkpQR0xvYWRlciB9IGZyb20gJ0Btb25vZ3JpZC9nYWlubWFwLWpzJztcbmltcG9ydCB7XG5cdE5ndEFyZ3MsXG5cdE5ndFBvcnRhbCxcblx0Tmd0UG9ydGFsQ29udGVudCxcblx0YXBwbHlQcm9wcyxcblx0ZXh0ZW5kLFxuXHRpbmplY3RMb2FkZXIsXG5cdGluamVjdE5leHRCZWZvcmVSZW5kZXIsXG5cdGluamVjdFN0b3JlLFxuXHRpcyxcblx0cGljayxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBMaW5lYXJFbmNvZGluZywgVGV4dHVyZUVuY29kaW5nLCBzUkdCRW5jb2RpbmcgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdEN1YmVDYW1lcmEsXG5cdEN1YmVSZWZsZWN0aW9uTWFwcGluZyxcblx0Q3ViZVRleHR1cmUsXG5cdEN1YmVUZXh0dXJlTG9hZGVyLFxuXHRFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyxcblx0RXVsZXIsXG5cdEhhbGZGbG9hdFR5cGUsXG5cdExvYWRlcixcblx0U2NlbmUsXG5cdFRleHR1cmUsXG5cdFdlYkdMQ3ViZVJlbmRlclRhcmdldCxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBHcm91bmRQcm9qZWN0ZWRFbnYsIFJHQkVMb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9yYXcuZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzQ1NjA2MGEyNmJiZWI4ZmRmNzkzMjZmMjI0YjZkOTliOGJjY2U3MzYvaGRyaS8nO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlRfUFJFU0VUUyA9IHtcblx0YXBhcnRtZW50OiAnbGVib21ib18xay5oZHInLFxuXHRjaXR5OiAncG90c2RhbWVyX3BsYXR6XzFrLmhkcicsXG5cdGRhd246ICdraWFyYV8xX2Rhd25fMWsuaGRyJyxcblx0Zm9yZXN0OiAnZm9yZXN0X3Nsb3BlXzFrLmhkcicsXG5cdGxvYmJ5OiAnc3RfZmFnYW5zX2ludGVyaW9yXzFrLmhkcicsXG5cdG5pZ2h0OiAnZGlraG9sb2xvX25pZ2h0XzFrLmhkcicsXG5cdHBhcms6ICdyb29pdG91X3BhcmtfMWsuaGRyJyxcblx0c3R1ZGlvOiAnc3R1ZGlvX3NtYWxsXzAzXzFrLmhkcicsXG5cdHN1bnNldDogJ3ZlbmljZV9zdW5zZXRfMWsuaGRyJyxcblx0d2FyZWhvdXNlOiAnZW1wdHlfd2FyZWhvdXNlXzAxXzFrLmhkcicsXG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzID0ga2V5b2YgdHlwZW9mIEVOVklST05NRU5UX1BSRVNFVFM7XG5cbmZ1bmN0aW9uIHJlc29sdmVTY2VuZShzY2VuZTogU2NlbmUgfCBFbGVtZW50UmVmPFNjZW5lPikge1xuXHRyZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZnVuY3Rpb24gc2V0RW52UHJvcHMoXG5cdGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG5cdHNjZW5lOiBTY2VuZSB8IEVsZW1lbnRSZWY8U2NlbmU+IHwgdW5kZWZpbmVkLFxuXHRkZWZhdWx0U2NlbmU6IFNjZW5lLFxuXHR0ZXh0dXJlOiBUZXh0dXJlLFxuXHRzY2VuZVByb3BzOiBQYXJ0aWFsPE5ndHNFbnZpcm9ubWVudE9wdGlvbnM+ID0ge30sXG4pIHtcblx0c2NlbmVQcm9wcy5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA/Pz0gc2NlbmVQcm9wcy5ibHVyID8/IDA7XG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZEludGVuc2l0eSA/Pz0gMTtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGl0J3Mgb2ssIHdlJ3JlIHNlbmRpbmcgdGhyb3VnaCBhcHBseVByb3BzXG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZFJvdGF0aW9uID8/PSBbMCwgMCwgMF07XG5cdHNjZW5lUHJvcHMuZW52aXJvbm1lbnRJbnRlbnNpdHkgPz89IDE7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBpdCdzIG9rLCB3ZSdyZSBzZW5kaW5nIHRocm91Z2ggYXBwbHlQcm9wc1xuXHRzY2VuZVByb3BzLmVudmlyb25tZW50Um90YXRpb24gPz89IFswLCAwLCAwXTtcblxuXHRjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcblx0Y29uc3Qgb2xkYmcgPSB0YXJnZXQuYmFja2dyb3VuZDtcblx0Y29uc3Qgb2xkZW52ID0gdGFyZ2V0LmVudmlyb25tZW50O1xuXHRjb25zdCBvbGRTY2VuZVByb3BzID0ge1xuXHRcdGJhY2tncm91bmRCbHVycmluZXNzOiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0YmFja2dyb3VuZEludGVuc2l0eTogdGFyZ2V0LmJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0YmFja2dyb3VuZFJvdGF0aW9uOiB0YXJnZXQuYmFja2dyb3VuZFJvdGF0aW9uPy5jbG9uZT8uKCkgPz8gWzAsIDAsIDBdLFxuXHRcdGVudmlyb25tZW50SW50ZW5zaXR5OiB0YXJnZXQuZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0ZW52aXJvbm1lbnRSb3RhdGlvbjogdGFyZ2V0LmVudmlyb25tZW50Um90YXRpb24/LmNsb25lPy4oKSA/PyBbMCwgMCwgMF0sXG5cdH07XG5cblx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gdGV4dHVyZTtcblx0YXBwbHlQcm9wcyh0YXJnZXQsIHNjZW5lUHJvcHMpO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gb2xkZW52O1xuXHRcdGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuXHRcdGFwcGx5UHJvcHModGFyZ2V0LCBvbGRTY2VuZVByb3BzKTtcblx0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zIHtcblx0ZmlsZXM6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRwYXRoOiBzdHJpbmc7XG5cdHByZXNldD86IE5ndHNFbnZpcm9ubWVudFByZXNldHM7XG5cdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBMb2FkZXIpID0+IHZvaWQ7XG5cdGVuY29kaW5nPzogVGV4dHVyZUVuY29kaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW52aXJvbm1lbnQoXG5cdG9wdGlvbnM6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50T3B0aW9ucz4gPSAoKSA9PiAoe30pLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEVudmlyb25tZW50LCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGFkanVzdGVkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB7IGZpbGVzLCBwYXRoLCBwcmVzZXQsIGV4dGVuc2lvbnMsIGVuY29kaW5nIH0gPSBvcHRpb25zKCk7XG5cblx0XHRcdGlmIChmaWxlcyA9PSBudWxsKSB7XG5cdFx0XHRcdGZpbGVzID0gWycvcHgucG5nJywgJy9ueC5wbmcnLCAnL3B5LnBuZycsICcvbnkucG5nJywgJy9wei5wbmcnLCAnL256LnBuZyddO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocGF0aCA9PSBudWxsKSB7XG5cdFx0XHRcdHBhdGggPSAnJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHByZXNldCkge1xuXHRcdFx0XHRpZiAoIShwcmVzZXQgaW4gRU5WSVJPTk1FTlRfUFJFU0VUUykpXG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhFTlZJUk9OTUVOVF9QUkVTRVRTKS5qb2luKCcsICcpKTtcblx0XHRcdFx0ZmlsZXMgPSBFTlZJUk9OTUVOVF9QUkVTRVRTW3ByZXNldF07XG5cdFx0XHRcdHBhdGggPSBDVUJFTUFQX1JPT1Q7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdFx0fSk7XG5cblx0XHRjb25zdCByZXN1bHRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRjb25zdCBtdWx0aUZpbGUgPSBBcnJheS5pc0FycmF5KGZpbGVzKTtcblxuXHRcdFx0Y29uc3QgaXNDdWJlTWFwID0gbXVsdGlGaWxlICYmIGZpbGVzLmxlbmd0aCA9PT0gNjtcblx0XHRcdGNvbnN0IGlzR2Fpbm1haW4gPSBtdWx0aUZpbGUgJiYgZmlsZXMubGVuZ3RoID09PSAzICYmIGZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJ2pzb24nKSk7XG5cdFx0XHRjb25zdCBmaXJzdEVudHJ5ID0gbXVsdGlGaWxlID8gZmlsZXNbMF0gOiBmaWxlcztcblxuXHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gaXNDdWJlTWFwXG5cdFx0XHRcdD8gJ2N1YmUnXG5cdFx0XHRcdDogaXNHYWlubWFpblxuXHRcdFx0XHRcdD8gJ3dlYnAnXG5cdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vZXhyJylcblx0XHRcdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zdGFydHNXaXRoKCdkYXRhOmFwcGxpY2F0aW9uL2hkcicpXG5cdFx0XHRcdFx0XHRcdD8gJ2hkcidcblx0XHRcdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UvanBlZycpXG5cdFx0XHRcdFx0XHRcdFx0PyAnanBnJ1xuXHRcdFx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zcGxpdCgnLicpLnBvcCgpPy5zcGxpdCgnPycpPy5zaGlmdCgpPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIHsgbXVsdGlGaWxlLCBleHRlbnNpb24sIGlzQ3ViZU1hcCB9O1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgbG9hZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBleHRlbnNpb24gfSA9IHJlc3VsdE9wdGlvbnMoKTtcblx0XHRcdGNvbnN0IGxvYWRlciA9XG5cdFx0XHRcdGV4dGVuc2lvbiA9PT0gJ2N1YmUnXG5cdFx0XHRcdFx0PyBDdWJlVGV4dHVyZUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnaGRyJ1xuXHRcdFx0XHRcdFx0PyBSR0JFTG9hZGVyXG5cdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ2V4cidcblx0XHRcdFx0XHRcdFx0PyBFWFJMb2FkZXJcblx0XHRcdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdqcGcnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZWcnXG5cdFx0XHRcdFx0XHRcdFx0PyAoSERSSlBHTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ3dlYnAnXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IChHYWluTWFwTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbDtcblxuXHRcdFx0aWYgKCFsb2FkZXIpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdpbmplY3RFbnZpcm9ubWVudDogVW5yZWNvZ25pemVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0ZW5zaW9uKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxvYWRlciBhcyB0eXBlb2YgTG9hZGVyO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgYXNzZXJ0ZWRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3QgZ2wgPSBzdG9yZS5zZWxlY3QoJ2dsJyk7XG5cblx0XHRjb25zdCB0ZXh0dXJlID0gc2lnbmFsPFRleHR1cmUgfCBDdWJlVGV4dHVyZSB8IG51bGw+KG51bGwpO1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBpbmplY3RMb2FkZXIoXG5cdFx0XHRcdGxvYWRlcixcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRcdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gW2ZpbGVzXSA6IGZpbGVzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aW5qZWN0b3I6IGFzc2VydGVkSW5qZWN0b3IsXG5cdFx0XHRcdFx0ZXh0ZW5zaW9uczogKGxvYWRlcikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgeyBleHRlbnNpb25zLCBwYXRoIH0gPSBhZGp1c3RlZE9wdGlvbnMoKTtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXh0ZW5zaW9uIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uID09PSAnd2VicCcgfHwgZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJykge1xuXHRcdFx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gR2Fpbm1hcCByZXF1aXJlcyBhIHJlbmRlcmVyXG5cdFx0XHRcdFx0XHRcdGxvYWRlci5zZXRSZW5kZXJlcihnbCgpKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0bG9hZGVyLnNldFBhdGg/LihwYXRoKTtcblx0XHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdCk7XG5cdFx0XHQvL1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxvYWRlclJlc3VsdCA9IHJlc3VsdCgpO1xuXHRcdFx0XHRpZiAoIWxvYWRlclJlc3VsdCkgcmV0dXJuO1xuXG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBtdWx0aUZpbGUsIGV4dGVuc2lvbiwgaXNDdWJlTWFwIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0Y29uc3QgeyBlbmNvZGluZyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdFx0XHRcdFx0bGV0IHRleHR1cmVSZXN1bHQgPSAobXVsdGlGaWxlID8gbG9hZGVyUmVzdWx0WzBdIDogbG9hZGVyUmVzdWx0KSBhcyBUZXh0dXJlIHwgQ3ViZVRleHR1cmU7XG5cblx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJyB8fCBleHRlbnNpb24gPT09ICd3ZWJwJykge1xuXHRcdFx0XHRcdFx0dGV4dHVyZVJlc3VsdCA9ICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkucmVuZGVyVGFyZ2V0Py50ZXh0dXJlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRleHR1cmVSZXN1bHQubWFwcGluZyA9IGlzQ3ViZU1hcCA/IEN1YmVSZWZsZWN0aW9uTWFwcGluZyA6IEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nO1xuXG5cdFx0XHRcdFx0aWYgKCdjb2xvclNwYWNlJyBpbiB0ZXh0dXJlUmVzdWx0KVxuXHRcdFx0XHRcdFx0KHRleHR1cmVSZXN1bHQgYXMgYW55KS5jb2xvclNwYWNlID0gZW5jb2RpbmcgPz8gaXNDdWJlTWFwID8gJ3NyZ2InIDogJ3NyZ2ItbGluZWFyJztcblx0XHRcdFx0XHRlbHNlICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkuZW5jb2RpbmcgPSBlbmNvZGluZyA/PyBpc0N1YmVNYXAgPyBzUkdCRW5jb2RpbmcgOiBMaW5lYXJFbmNvZGluZztcblxuXHRcdFx0XHRcdHRleHR1cmUuc2V0KHRleHR1cmVSZXN1bHQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmUuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzRW52aXJvbm1lbnRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zPiB7XG5cdGZyYW1lcz86IG51bWJlcjtcblx0bmVhcj86IG51bWJlcjtcblx0ZmFyPzogbnVtYmVyO1xuXHRyZXNvbHV0aW9uPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kPzogYm9vbGVhbiB8ICdvbmx5JztcblxuXHQvKiogZGVwcmVjYXRlZCwgdXNlIGJhY2tncm91bmRCbHVycmluZXNzICovXG5cdGJsdXI/OiBudW1iZXI7XG5cdGJhY2tncm91bmRCbHVycmluZXNzPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kSW50ZW5zaXR5PzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kUm90YXRpb24/OiBFdWxlcjtcblx0ZW52aXJvbm1lbnRJbnRlbnNpdHk/OiBudW1iZXI7XG5cdGVudmlyb25tZW50Um90YXRpb24/OiBFdWxlcjtcblxuXHRtYXA/OiBUZXh0dXJlO1xuXHRwcmVzZXQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzO1xuXHRzY2VuZT86IFNjZW5lIHwgRWxlbWVudFJlZjxTY2VuZT47XG5cdGdyb3VuZD86IGJvb2xlYW4gfCB7IHJhZGl1cz86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyOyBzY2FsZT86IG51bWJlciB9O1xufVxuXG5jb25zdCBkZWZhdWx0QmFja2dyb3VuZDogTmd0c0Vudmlyb25tZW50T3B0aW9ucyA9IHtcblx0YmFja2dyb3VuZDogZmFsc2UsXG59O1xuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LW1hcCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRNYXAge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdEJhY2tncm91bmQsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0QmFja2dyb3VuZCkgfSk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0ZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0ZW52Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9ID0gdGhpcy5vcHRpb25zKCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YmFja2dyb3VuZCxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9O1xuXHR9KTtcblxuXHRtYXAgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21hcCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBtYXAgPSB0aGlzLm1hcCgpO1xuXHRcdFx0XHRpZiAoIW1hcCkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCBtYXAsIGNvbmZpZyk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtY3ViZScgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRDdWJlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRCYWNrZ3JvdW5kLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdEJhY2tncm91bmQpIH0pO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuXHRhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXG5cdGVudkNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRiYWNrZ3JvdW5kID0gZmFsc2UsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fSA9IHRoaXMub3B0aW9ucygpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGJhY2tncm91bmQsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fTtcblx0fSk7XG5cblx0ZW52aXJvbm1lbnRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgZW5jb2RpbmcsIHByZXNldCwgZmlsZXMsIHBhdGgsIGV4dGVuc2lvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiB7IGVuY29kaW5nLCBwcmVzZXQsIGZpbGVzLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdH0pO1xuXHR0ZXh0dXJlID0gaW5qZWN0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudE9wdGlvbnMpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gdGhpcy50ZXh0dXJlKCk7XG5cdFx0XHRcdGlmICghdGV4dHVyZSkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCB0ZXh0dXJlLCBjb25maWcpO1xuXHRcdFx0XHR0aGlzLmVudlNldC5lbWl0KCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBjbGVhbnVwKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LXBvcnRhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb3J0YWwgW2NvbnRhaW5lcl09XCJ2aXJ0dWFsU2NlbmVcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBwb3J0YWxDb250ZW50IGxldC1pbmplY3Rvcj1cImluamVjdG9yXCIgbGV0LWNvbnRhaW5lcj1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCgpXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpbmplY3RvciwgY29udGFpbmVyIH1cIlxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxuZ3QtY3ViZS1jYW1lcmEgI2N1YmVDYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiAvPlxuXG5cdFx0XHRcdEBpZiAoZmlsZXMoKSB8fCBwcmVzZXQoKSkge1xuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW29wdGlvbnNdPVwiZW52Q3ViZU9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH0gQGVsc2UgaWYgKG1hcCgpKSB7XG5cdFx0XHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwIFtvcHRpb25zXT1cImVudk1hcE9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH1cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50Q3ViZSwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RBcmdzLCBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwge1xuXHRwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBOZ3RzRW52aXJvbm1lbnRPcHRpb25zID0ge1xuXHRcdG5lYXI6IDEsXG5cdFx0ZmFyOiAxMDAwLFxuXHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRmcmFtZXM6IDEsXG5cdFx0YmFja2dyb3VuZDogZmFsc2UsXG5cdH07XG5cdG9wdGlvbnMgPSBpbnB1dCh0aGlzLmRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHModGhpcy5kZWZhdWx0T3B0aW9ucykgfSk7XG5cdGNvbnRlbnQgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBkZWZhdWx0U2NlbmUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXG5cdGNhbWVyYSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEN1YmVDYW1lcmE+PignY3ViZUNhbWVyYScpO1xuXG5cdG1hcCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFwJyk7XG5cdGZpbGVzID0gcGljayh0aGlzLm9wdGlvbnMsICdmaWxlcycpO1xuXHRwcmVzZXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3ByZXNldCcpO1xuXHRwcml2YXRlIGV4dGVuc2lvbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2V4dGVuc2lvbnMnKTtcblx0cHJpdmF0ZSBwYXRoID0gcGljayh0aGlzLm9wdGlvbnMsICdwYXRoJyk7XG5cblx0ZW52TWFwT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7IGJhY2tncm91bmQ6IHRydWUsIG1hcDogdGhpcy5tYXAoKSwgZXh0ZW5zaW9uczogdGhpcy5leHRlbnNpb25zKCkgfSkpO1xuXHRlbnZDdWJlT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7XG5cdFx0YmFja2dyb3VuZDogdHJ1ZSxcblx0XHRmaWxlczogdGhpcy5maWxlcygpLFxuXHRcdHByZXNldDogdGhpcy5wcmVzZXQoKSxcblx0XHRleHRlbnNpb25zOiB0aGlzLmV4dGVuc2lvbnMoKSxcblx0XHRwYXRoOiB0aGlzLnBhdGgoKSxcblx0fSkpO1xuXG5cdHByaXZhdGUgbmVhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbmVhcicpO1xuXHRwcml2YXRlIGZhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZmFyJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMucmVzb2x1dGlvbigpKTtcblx0XHRmYm8udGV4dHVyZS50eXBlID0gSGFsZkZsb2F0VHlwZTtcblx0XHRyZXR1cm4gZmJvO1xuXHR9KTtcblxuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMubmVhcigpLCB0aGlzLmZhcigpLCB0aGlzLmZibygpXSk7XG5cblx0dmlydHVhbFNjZW5lID0gcHJlcGFyZShuZXcgU2NlbmUoKSk7XG5cblx0cHJpdmF0ZSBzZXRFbnZFZmZlY3RSZWY/OiBFZmZlY3RSZWY7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuXHRcdGxldCBjb3VudCA9IDE7XG5cdFx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBmcmFtZXMgPSB0aGlzLm9wdGlvbnMoKS5mcmFtZXM7XG5cdFx0XHRpZiAoZnJhbWVzID09PSBJbmZpbml0eSB8fCAoZnJhbWVzICE9IG51bGwgJiYgY291bnQgPCBmcmFtZXMpKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmIChjYW1lcmEpIHtcblx0XHRcdFx0XHRjYW1lcmEudXBkYXRlKHRoaXMuZ2woKSwgdGhpcy52aXJ0dWFsU2NlbmUpO1xuXHRcdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8vIE5PVEU6IHdlIHVzZSBvbkVudlNldCBoZXJlIHRvIGVuc3VyZSB0aGF0IEVudmlyb25tZW50Q3ViZSBvciBFbnZpcm9ubWVudE1hcCBzZXRzIHRoZSBlbnYgYmVmb3JlIHRoZSBwb3J0YWxcblx0b25FbnZTZXQoKSB7XG5cdFx0aWYgKHRoaXMuc2V0RW52RWZmZWN0UmVmKSB0aGlzLnNldEVudkVmZmVjdFJlZi5kZXN0cm95KCk7XG5cdFx0dGhpcy5zZXRFbnZFZmZlY3RSZWYgPSB0aGlzLmF1dG9FZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk7XG5cdFx0XHRcdGlmICghY2FtZXJhPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGZyYW1lcyxcblx0XHRcdFx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdFx0XHRcdHNjZW5lLFxuXHRcdFx0XHRcdFx0Ymx1cixcblx0XHRcdFx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdFx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdFx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0XHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdsLFxuXHRcdFx0XHRcdGZibyxcblx0XHRcdFx0XHRkZWZhdWx0U2NlbmUsXG5cdFx0XHRcdF0gPSBbdGhpcy5vcHRpb25zKCksIHRoaXMuZ2woKSwgdGhpcy5mYm8oKSwgdGhpcy5kZWZhdWx0U2NlbmUoKV07XG5cblx0XHRcdFx0aWYgKGZyYW1lcyA9PT0gMSkgY2FtZXJhLm5hdGl2ZUVsZW1lbnQudXBkYXRlKGdsLCB0aGlzLnZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdGNvbnN0IGNsZWFudXAgPSBzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kLCBzY2VuZSwgZGVmYXVsdFNjZW5lLCBmYm8udGV4dHVyZSwge1xuXHRcdFx0XHRcdGJsdXIsXG5cdFx0XHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0sXG5cdFx0XHR7IG1hbnVhbENsZWFudXA6IHRydWUgfSxcblx0XHQpO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtZ3JvdW5kJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0cy1lbnZpcm9ubWVudC1tYXAgW29wdGlvbnNdPVwiZW52TWFwT3B0aW9ucygpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHQ8bmd0LWdyb3VuZC1wcm9qZWN0ZWQtZW52ICphcmdzPVwiYXJncygpXCIgW3NjYWxlXT1cInNjYWxlKClcIiBbaGVpZ2h0XT1cImhlaWdodCgpXCIgW3JhZGl1c109XCJyYWRpdXMoKVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRHcm91bmQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgTmd0c0Vudmlyb25tZW50T3B0aW9ucyk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdHByaXZhdGUgZGVmYXVsdFRleHR1cmUgPSBpbmplY3RFbnZpcm9ubWVudCh0aGlzLm9wdGlvbnMpO1xuXHRwcml2YXRlIHRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5tYXAgfHwgdGhpcy5kZWZhdWx0VGV4dHVyZSgpKTtcblxuXHRhcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMudGV4dHVyZSgpXSk7XG5cdGhlaWdodCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKS5ncm91bmQgYXMgYW55KT8uaGVpZ2h0KTtcblx0cmFkaXVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMub3B0aW9ucygpLmdyb3VuZCBhcyBhbnkpPy5yYWRpdXMpO1xuXHRzY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKS5ncm91bmQgYXMgYW55KT8uc2NhbGUgPz8gMTAwMCk7XG5cblx0ZW52TWFwT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7IG1hcDogXywgLi4ub3B0aW9ucyB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywgeyBtYXA6IHRoaXMudGV4dHVyZSgpIH0pIGFzIE5ndHNFbnZpcm9ubWVudE9wdGlvbnM7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VuZFByb2plY3RlZEVudiB9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKG9wdGlvbnMoKS5ncm91bmQpIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCBbb3B0aW9uc109XCJvcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH0gQGVsc2UgaWYgKG9wdGlvbnMoKS5tYXApIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCBbb3B0aW9uc109XCJvcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH0gQGVsc2UgaWYgKGNvbnRlbnQoKSkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtcG9ydGFsIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIFtjb250ZW50XT1cIiRhbnkoY29udGVudCgpKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1jdWJlIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fVxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50Q3ViZSwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RzRW52aXJvbm1lbnRQb3J0YWwsIE5ndHNFbnZpcm9ubWVudEdyb3VuZF0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBOZ3RzRW52aXJvbm1lbnRPcHRpb25zKTtcblx0Y29udGVudCA9IGNvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZik7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xufVxuIl19
462
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxTQUFTLEVBR1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsTUFBTSxFQUNOLFlBQVksRUFDWixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLEVBQUUsRUFDRixJQUFJLEVBQ0osT0FBTyxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQW1CLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUNOLFVBQVUsRUFDVixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUVoQyxhQUFhLEVBRWIsS0FBSyxFQUVMLHFCQUFxQixHQUNyQixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxTQUFTLEVB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QUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBbkJXLHFCQUFxQjtrR0FBckIscUJBQXFCLDRQQVJ2Qjs7O0VBR1QsNERBelBXLGtCQUFrQiwyR0EwUEEsT0FBTzs7MkZBSXpCLHFCQUFxQjtrQkFYakMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7RUFHVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0M7O0FBeUNELE1BQU0sT0FBTyxlQUFlO0lBbEI1QjtRQW1CQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQTRCLENBQUMsQ0FBQztRQUM5QyxZQUFPLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztLQUN4Qjs4R0FKWSxlQUFlO2tHQUFmLGVBQWUsMFJBRUosV0FBVyxnRUFqQnhCOzs7Ozs7Ozs7O0VBVVQsNERBaFBXLG1CQUFtQiw0R0FqRG5CLGtCQUFrQiwyR0ErSGxCLHFCQUFxQix5SEErSHJCLHFCQUFxQjs7MkZBd0NyQixlQUFlO2tCQWxCM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0VBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLENBQUM7b0JBQ2hHLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdERpcmVjdGl2ZSxcblx0RWZmZWN0UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0VGVtcGxhdGVSZWYsXG5cdGFmdGVyTmV4dFJlbmRlcixcblx0Y29tcHV0ZWQsXG5cdGNvbnRlbnRDaGlsZCxcblx0aW5qZWN0LFxuXHRpbnB1dCxcblx0b3V0cHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdhaW5NYXBMb2FkZXIsIEhEUkpQR0xvYWRlciB9IGZyb20gJ0Btb25vZ3JpZC9nYWlubWFwLWpzJztcbmltcG9ydCB7XG5cdE5ndEFyZ3MsXG5cdE5ndFBvcnRhbCxcblx0Tmd0UG9ydGFsQ29udGVudCxcblx0YXBwbHlQcm9wcyxcblx0ZXh0ZW5kLFxuXHRpbmplY3RMb2FkZXIsXG5cdGluamVjdE5leHRCZWZvcmVSZW5kZXIsXG5cdGluamVjdFN0b3JlLFxuXHRpcyxcblx0cGljayxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBMaW5lYXJFbmNvZGluZywgVGV4dHVyZUVuY29kaW5nLCBzUkdCRW5jb2RpbmcgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7XG5cdEN1YmVDYW1lcmEsXG5cdEN1YmVSZWZsZWN0aW9uTWFwcGluZyxcblx0Q3ViZVRleHR1cmUsXG5cdEN1YmVUZXh0dXJlTG9hZGVyLFxuXHRFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyxcblx0RXVsZXIsXG5cdEhhbGZGbG9hdFR5cGUsXG5cdExvYWRlcixcblx0U2NlbmUsXG5cdFRleHR1cmUsXG5cdFdlYkdMQ3ViZVJlbmRlclRhcmdldCxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBHcm91bmRQcm9qZWN0ZWRFbnYsIFJHQkVMb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9yYXcuZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzQ1NjA2MGEyNmJiZWI4ZmRmNzkzMjZmMjI0YjZkOTliOGJjY2U3MzYvaGRyaS8nO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlRfUFJFU0VUUyA9IHtcblx0YXBhcnRtZW50OiAnbGVib21ib18xay5oZHInLFxuXHRjaXR5OiAncG90c2RhbWVyX3BsYXR6XzFrLmhkcicsXG5cdGRhd246ICdraWFyYV8xX2Rhd25fMWsuaGRyJyxcblx0Zm9yZXN0OiAnZm9yZXN0X3Nsb3BlXzFrLmhkcicsXG5cdGxvYmJ5OiAnc3RfZmFnYW5zX2ludGVyaW9yXzFrLmhkcicsXG5cdG5pZ2h0OiAnZGlraG9sb2xvX25pZ2h0XzFrLmhkcicsXG5cdHBhcms6ICdyb29pdG91X3BhcmtfMWsuaGRyJyxcblx0c3R1ZGlvOiAnc3R1ZGlvX3NtYWxsXzAzXzFrLmhkcicsXG5cdHN1bnNldDogJ3ZlbmljZV9zdW5zZXRfMWsuaGRyJyxcblx0d2FyZWhvdXNlOiAnZW1wdHlfd2FyZWhvdXNlXzAxXzFrLmhkcicsXG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzID0ga2V5b2YgdHlwZW9mIEVOVklST05NRU5UX1BSRVNFVFM7XG5cbmZ1bmN0aW9uIHJlc29sdmVTY2VuZShzY2VuZTogU2NlbmUgfCBFbGVtZW50UmVmPFNjZW5lPikge1xuXHRyZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZnVuY3Rpb24gc2V0RW52UHJvcHMoXG5cdGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG5cdHNjZW5lOiBTY2VuZSB8IEVsZW1lbnRSZWY8U2NlbmU+IHwgdW5kZWZpbmVkLFxuXHRkZWZhdWx0U2NlbmU6IFNjZW5lLFxuXHR0ZXh0dXJlOiBUZXh0dXJlLFxuXHRzY2VuZVByb3BzOiBQYXJ0aWFsPE5ndHNFbnZpcm9ubWVudE9wdGlvbnM+ID0ge30sXG4pIHtcblx0c2NlbmVQcm9wcy5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA/Pz0gc2NlbmVQcm9wcy5ibHVyID8/IDA7XG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZEludGVuc2l0eSA/Pz0gMTtcblx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIGl0J3Mgb2ssIHdlJ3JlIHNlbmRpbmcgdGhyb3VnaCBhcHBseVByb3BzXG5cdHNjZW5lUHJvcHMuYmFja2dyb3VuZFJvdGF0aW9uID8/PSBbMCwgMCwgMF07XG5cdHNjZW5lUHJvcHMuZW52aXJvbm1lbnRJbnRlbnNpdHkgPz89IDE7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3IgLSBpdCdzIG9rLCB3ZSdyZSBzZW5kaW5nIHRocm91Z2ggYXBwbHlQcm9wc1xuXHRzY2VuZVByb3BzLmVudmlyb25tZW50Um90YXRpb24gPz89IFswLCAwLCAwXTtcblxuXHRjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcblx0Y29uc3Qgb2xkYmcgPSB0YXJnZXQuYmFja2dyb3VuZDtcblx0Y29uc3Qgb2xkZW52ID0gdGFyZ2V0LmVudmlyb25tZW50O1xuXHRjb25zdCBvbGRTY2VuZVByb3BzID0ge1xuXHRcdGJhY2tncm91bmRCbHVycmluZXNzOiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0YmFja2dyb3VuZEludGVuc2l0eTogdGFyZ2V0LmJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0YmFja2dyb3VuZFJvdGF0aW9uOiB0YXJnZXQuYmFja2dyb3VuZFJvdGF0aW9uPy5jbG9uZT8uKCkgPz8gWzAsIDAsIDBdLFxuXHRcdGVudmlyb25tZW50SW50ZW5zaXR5OiB0YXJnZXQuZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0ZW52aXJvbm1lbnRSb3RhdGlvbjogdGFyZ2V0LmVudmlyb25tZW50Um90YXRpb24/LmNsb25lPy4oKSA/PyBbMCwgMCwgMF0sXG5cdH07XG5cblx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gdGV4dHVyZTtcblx0YXBwbHlQcm9wcyh0YXJnZXQsIHNjZW5lUHJvcHMpO1xuXG5cdHJldHVybiAoKSA9PiB7XG5cdFx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gb2xkZW52O1xuXHRcdGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuXHRcdGFwcGx5UHJvcHModGFyZ2V0LCBvbGRTY2VuZVByb3BzKTtcblx0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zIHtcblx0ZmlsZXM6IHN0cmluZyB8IHN0cmluZ1tdO1xuXHRwYXRoOiBzdHJpbmc7XG5cdHByZXNldD86IE5ndHNFbnZpcm9ubWVudFByZXNldHM7XG5cdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBMb2FkZXIpID0+IHZvaWQ7XG5cdGVuY29kaW5nPzogVGV4dHVyZUVuY29kaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RW52aXJvbm1lbnQoXG5cdG9wdGlvbnM6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50T3B0aW9ucz4gPSAoKSA9PiAoe30pLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEVudmlyb25tZW50LCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGFkanVzdGVkT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB7IGZpbGVzLCBwYXRoLCBwcmVzZXQsIGV4dGVuc2lvbnMsIGVuY29kaW5nIH0gPSBvcHRpb25zKCk7XG5cblx0XHRcdGlmIChmaWxlcyA9PSBudWxsKSB7XG5cdFx0XHRcdGZpbGVzID0gWycvcHgucG5nJywgJy9ueC5wbmcnLCAnL3B5LnBuZycsICcvbnkucG5nJywgJy9wei5wbmcnLCAnL256LnBuZyddO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocGF0aCA9PSBudWxsKSB7XG5cdFx0XHRcdHBhdGggPSAnJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHByZXNldCkge1xuXHRcdFx0XHRpZiAoIShwcmVzZXQgaW4gRU5WSVJPTk1FTlRfUFJFU0VUUykpXG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhFTlZJUk9OTUVOVF9QUkVTRVRTKS5qb2luKCcsICcpKTtcblx0XHRcdFx0ZmlsZXMgPSBFTlZJUk9OTUVOVF9QUkVTRVRTW3ByZXNldF07XG5cdFx0XHRcdHBhdGggPSBDVUJFTUFQX1JPT1Q7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdFx0fSk7XG5cblx0XHRjb25zdCByZXN1bHRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRjb25zdCBtdWx0aUZpbGUgPSBBcnJheS5pc0FycmF5KGZpbGVzKTtcblxuXHRcdFx0Y29uc3QgaXNDdWJlTWFwID0gbXVsdGlGaWxlICYmIGZpbGVzLmxlbmd0aCA9PT0gNjtcblx0XHRcdGNvbnN0IGlzR2Fpbm1haW4gPSBtdWx0aUZpbGUgJiYgZmlsZXMubGVuZ3RoID09PSAzICYmIGZpbGVzLnNvbWUoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJ2pzb24nKSk7XG5cdFx0XHRjb25zdCBmaXJzdEVudHJ5ID0gbXVsdGlGaWxlID8gZmlsZXNbMF0gOiBmaWxlcztcblxuXHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gaXNDdWJlTWFwXG5cdFx0XHRcdD8gJ2N1YmUnXG5cdFx0XHRcdDogaXNHYWlubWFpblxuXHRcdFx0XHRcdD8gJ3dlYnAnXG5cdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vZXhyJylcblx0XHRcdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zdGFydHNXaXRoKCdkYXRhOmFwcGxpY2F0aW9uL2hkcicpXG5cdFx0XHRcdFx0XHRcdD8gJ2hkcidcblx0XHRcdFx0XHRcdFx0OiBmaXJzdEVudHJ5LnN0YXJ0c1dpdGgoJ2RhdGE6aW1hZ2UvanBlZycpXG5cdFx0XHRcdFx0XHRcdFx0PyAnanBnJ1xuXHRcdFx0XHRcdFx0XHRcdDogZmlyc3RFbnRyeS5zcGxpdCgnLicpLnBvcCgpPy5zcGxpdCgnPycpPy5zaGlmdCgpPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIHsgbXVsdGlGaWxlLCBleHRlbnNpb24sIGlzQ3ViZU1hcCB9O1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgbG9hZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgeyBleHRlbnNpb24gfSA9IHJlc3VsdE9wdGlvbnMoKTtcblx0XHRcdGNvbnN0IGxvYWRlciA9XG5cdFx0XHRcdGV4dGVuc2lvbiA9PT0gJ2N1YmUnXG5cdFx0XHRcdFx0PyBDdWJlVGV4dHVyZUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnaGRyJ1xuXHRcdFx0XHRcdFx0PyBSR0JFTG9hZGVyXG5cdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ2V4cidcblx0XHRcdFx0XHRcdFx0PyBFWFJMb2FkZXJcblx0XHRcdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdqcGcnIHx8IGV4dGVuc2lvbiA9PT0gJ2pwZWcnXG5cdFx0XHRcdFx0XHRcdFx0PyAoSERSSlBHTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHQ6IGV4dGVuc2lvbiA9PT0gJ3dlYnAnXG5cdFx0XHRcdFx0XHRcdFx0XHQ/IChHYWluTWFwTG9hZGVyIGFzIHVua25vd24gYXMgdHlwZW9mIExvYWRlcilcblx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbDtcblxuXHRcdFx0aWYgKCFsb2FkZXIpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdpbmplY3RFbnZpcm9ubWVudDogVW5yZWNvZ25pemVkIGZpbGUgZXh0ZW5zaW9uOiAnICsgZXh0ZW5zaW9uKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxvYWRlciBhcyB0eXBlb2YgTG9hZGVyO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgYXNzZXJ0ZWRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3QgZ2wgPSBzdG9yZS5zZWxlY3QoJ2dsJyk7XG5cblx0XHRjb25zdCB0ZXh0dXJlID0gc2lnbmFsPFRleHR1cmUgfCBDdWJlVGV4dHVyZSB8IG51bGw+KG51bGwpO1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBpbmplY3RMb2FkZXIoXG5cdFx0XHRcdGxvYWRlcixcblx0XHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0XHQoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cdFx0XHRcdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gW2ZpbGVzXSA6IGZpbGVzO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aW5qZWN0b3I6IGFzc2VydGVkSW5qZWN0b3IsXG5cdFx0XHRcdFx0ZXh0ZW5zaW9uczogKGxvYWRlcikgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgeyBleHRlbnNpb25zLCBwYXRoIH0gPSBhZGp1c3RlZE9wdGlvbnMoKTtcblx0XHRcdFx0XHRcdGNvbnN0IHsgZXh0ZW5zaW9uIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uID09PSAnd2VicCcgfHwgZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJykge1xuXHRcdFx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gR2Fpbm1hcCByZXF1aXJlcyBhIHJlbmRlcmVyXG5cdFx0XHRcdFx0XHRcdGxvYWRlci5zZXRSZW5kZXJlcihnbCgpKTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0bG9hZGVyLnNldFBhdGg/LihwYXRoKTtcblx0XHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSxcblx0XHRcdCk7XG5cdFx0XHQvL1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxvYWRlclJlc3VsdCA9IHJlc3VsdCgpO1xuXHRcdFx0XHRpZiAoIWxvYWRlclJlc3VsdCkgcmV0dXJuO1xuXG5cdFx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBtdWx0aUZpbGUsIGV4dGVuc2lvbiwgaXNDdWJlTWFwIH0gPSByZXN1bHRPcHRpb25zKCk7XG5cdFx0XHRcdFx0Y29uc3QgeyBlbmNvZGluZyB9ID0gYWRqdXN0ZWRPcHRpb25zKCk7XG5cblx0XHRcdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdFx0XHRcdFx0bGV0IHRleHR1cmVSZXN1bHQgPSAobXVsdGlGaWxlID8gbG9hZGVyUmVzdWx0WzBdIDogbG9hZGVyUmVzdWx0KSBhcyBUZXh0dXJlIHwgQ3ViZVRleHR1cmU7XG5cblx0XHRcdFx0XHRpZiAoZXh0ZW5zaW9uID09PSAnanBnJyB8fCBleHRlbnNpb24gPT09ICdqcGVnJyB8fCBleHRlbnNpb24gPT09ICd3ZWJwJykge1xuXHRcdFx0XHRcdFx0dGV4dHVyZVJlc3VsdCA9ICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkucmVuZGVyVGFyZ2V0Py50ZXh0dXJlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHRleHR1cmVSZXN1bHQubWFwcGluZyA9IGlzQ3ViZU1hcCA/IEN1YmVSZWZsZWN0aW9uTWFwcGluZyA6IEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nO1xuXG5cdFx0XHRcdFx0aWYgKCdjb2xvclNwYWNlJyBpbiB0ZXh0dXJlUmVzdWx0KVxuXHRcdFx0XHRcdFx0KHRleHR1cmVSZXN1bHQgYXMgYW55KS5jb2xvclNwYWNlID0gZW5jb2RpbmcgPz8gaXNDdWJlTWFwID8gJ3NyZ2InIDogJ3NyZ2ItbGluZWFyJztcblx0XHRcdFx0XHRlbHNlICh0ZXh0dXJlUmVzdWx0IGFzIGFueSkuZW5jb2RpbmcgPSBlbmNvZGluZyA/PyBpc0N1YmVNYXAgPyBzUkdCRW5jb2RpbmcgOiBMaW5lYXJFbmNvZGluZztcblxuXHRcdFx0XHRcdHRleHR1cmUuc2V0KHRleHR1cmVSZXN1bHQpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmUuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzRW52aXJvbm1lbnRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RzSW5qZWN0RW52aXJvbm1lbnRPcHRpb25zPiB7XG5cdGZyYW1lcz86IG51bWJlcjtcblx0bmVhcj86IG51bWJlcjtcblx0ZmFyPzogbnVtYmVyO1xuXHRyZXNvbHV0aW9uPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kPzogYm9vbGVhbiB8ICdvbmx5JztcblxuXHQvKiogZGVwcmVjYXRlZCwgdXNlIGJhY2tncm91bmRCbHVycmluZXNzICovXG5cdGJsdXI/OiBudW1iZXI7XG5cdGJhY2tncm91bmRCbHVycmluZXNzPzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kSW50ZW5zaXR5PzogbnVtYmVyO1xuXHRiYWNrZ3JvdW5kUm90YXRpb24/OiBFdWxlcjtcblx0ZW52aXJvbm1lbnRJbnRlbnNpdHk/OiBudW1iZXI7XG5cdGVudmlyb25tZW50Um90YXRpb24/OiBFdWxlcjtcblxuXHRtYXA/OiBUZXh0dXJlO1xuXHRwcmVzZXQ/OiBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzO1xuXHRzY2VuZT86IFNjZW5lIHwgRWxlbWVudFJlZjxTY2VuZT47XG5cdGdyb3VuZD86IGJvb2xlYW4gfCB7IHJhZGl1cz86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyOyBzY2FsZT86IG51bWJlciB9O1xufVxuXG5jb25zdCBkZWZhdWx0QmFja2dyb3VuZDogTmd0c0Vudmlyb25tZW50T3B0aW9ucyA9IHtcblx0YmFja2dyb3VuZDogZmFsc2UsXG59O1xuXG5ARGlyZWN0aXZlKHsgc3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LW1hcCcgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRNYXAge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdEJhY2tncm91bmQsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0QmFja2dyb3VuZCkgfSk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0ZGVmYXVsdFNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0ZW52Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHtcblx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9ID0gdGhpcy5vcHRpb25zKCk7XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0YmFja2dyb3VuZCxcblx0XHRcdHNjZW5lLFxuXHRcdFx0Ymx1cixcblx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHR9O1xuXHR9KTtcblxuXHRtYXAgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21hcCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBtYXAgPSB0aGlzLm1hcCgpO1xuXHRcdFx0XHRpZiAoIW1hcCkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCBtYXAsIGNvbmZpZyk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtY3ViZScgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRDdWJlIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRCYWNrZ3JvdW5kLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdEJhY2tncm91bmQpIH0pO1xuXHRlbnZTZXQgPSBvdXRwdXQ8dm9pZD4oKTtcblxuXHRhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdGRlZmF1bHRTY2VuZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpO1xuXG5cdGVudkNvbmZpZyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7XG5cdFx0XHRiYWNrZ3JvdW5kID0gZmFsc2UsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fSA9IHRoaXMub3B0aW9ucygpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdGJhY2tncm91bmQsXG5cdFx0XHRzY2VuZSxcblx0XHRcdGJsdXIsXG5cdFx0XHRiYWNrZ3JvdW5kQmx1cnJpbmVzcyxcblx0XHRcdGJhY2tncm91bmRJbnRlbnNpdHksXG5cdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRlbnZpcm9ubWVudEludGVuc2l0eSxcblx0XHRcdGVudmlyb25tZW50Um90YXRpb24sXG5cdFx0fTtcblx0fSk7XG5cblx0ZW52aXJvbm1lbnRPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IHsgZW5jb2RpbmcsIHByZXNldCwgZmlsZXMsIHBhdGgsIGV4dGVuc2lvbnMgfSA9IHRoaXMub3B0aW9ucygpO1xuXHRcdHJldHVybiB7IGVuY29kaW5nLCBwcmVzZXQsIGZpbGVzLCBwYXRoLCBleHRlbnNpb25zIH07XG5cdH0pO1xuXHR0ZXh0dXJlID0gaW5qZWN0RW52aXJvbm1lbnQodGhpcy5lbnZpcm9ubWVudE9wdGlvbnMpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB0ZXh0dXJlID0gdGhpcy50ZXh0dXJlKCk7XG5cdFx0XHRcdGlmICghdGV4dHVyZSkgcmV0dXJuO1xuXHRcdFx0XHRjb25zdCB7IGJhY2tncm91bmQgPSBmYWxzZSwgc2NlbmUsIC4uLmNvbmZpZyB9ID0gdGhpcy5lbnZDb25maWcoKTtcblx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IHNldEVudlByb3BzKGJhY2tncm91bmQsIHNjZW5lLCB0aGlzLmRlZmF1bHRTY2VuZSgpLCB0ZXh0dXJlLCBjb25maWcpO1xuXHRcdFx0XHR0aGlzLmVudlNldC5lbWl0KCk7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBjbGVhbnVwKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LXBvcnRhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb3J0YWwgW2NvbnRhaW5lcl09XCJ2aXJ0dWFsU2NlbmVcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBwb3J0YWxDb250ZW50IGxldC1pbmplY3Rvcj1cImluamVjdG9yXCIgbGV0LWNvbnRhaW5lcj1cImNvbnRhaW5lclwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudCgpXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBpbmplY3RvciwgY29udGFpbmVyIH1cIlxuXHRcdFx0XHQvPlxuXG5cdFx0XHRcdDxuZ3QtY3ViZS1jYW1lcmEgI2N1YmVDYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiAvPlxuXG5cdFx0XHRcdEBpZiAoZmlsZXMoKSB8fCBwcmVzZXQoKSkge1xuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW29wdGlvbnNdPVwiZW52Q3ViZU9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH0gQGVsc2UgaWYgKG1hcCgpKSB7XG5cdFx0XHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwIFtvcHRpb25zXT1cImVudk1hcE9wdGlvbnMoKVwiIChlbnZTZXQpPVwib25FbnZTZXQoKVwiIC8+XG5cdFx0XHRcdH1cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50Q3ViZSwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RBcmdzLCBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwge1xuXHRwcml2YXRlIGRlZmF1bHRPcHRpb25zOiBOZ3RzRW52aXJvbm1lbnRPcHRpb25zID0ge1xuXHRcdG5lYXI6IDEsXG5cdFx0ZmFyOiAxMDAwLFxuXHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRmcmFtZXM6IDEsXG5cdFx0YmFja2dyb3VuZDogZmFsc2UsXG5cdH07XG5cdG9wdGlvbnMgPSBpbnB1dCh0aGlzLmRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHModGhpcy5kZWZhdWx0T3B0aW9ucykgfSk7XG5cdGNvbnRlbnQgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcblx0ZW52U2V0ID0gb3V0cHV0PHZvaWQ+KCk7XG5cblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBkZWZhdWx0U2NlbmUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXG5cdGNhbWVyYSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEN1YmVDYW1lcmE+PignY3ViZUNhbWVyYScpO1xuXG5cdG1hcCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFwJyk7XG5cdGZpbGVzID0gcGljayh0aGlzLm9wdGlvbnMsICdmaWxlcycpO1xuXHRwcmVzZXQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3ByZXNldCcpO1xuXHRwcml2YXRlIGV4dGVuc2lvbnMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2V4dGVuc2lvbnMnKTtcblx0cHJpdmF0ZSBwYXRoID0gcGljayh0aGlzLm9wdGlvbnMsICdwYXRoJyk7XG5cblx0ZW52TWFwT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7IGJhY2tncm91bmQ6IHRydWUsIG1hcDogdGhpcy5tYXAoKSwgZXh0ZW5zaW9uczogdGhpcy5leHRlbnNpb25zKCkgfSkpO1xuXHRlbnZDdWJlT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+ICh7XG5cdFx0YmFja2dyb3VuZDogdHJ1ZSxcblx0XHRmaWxlczogdGhpcy5maWxlcygpLFxuXHRcdHByZXNldDogdGhpcy5wcmVzZXQoKSxcblx0XHRleHRlbnNpb25zOiB0aGlzLmV4dGVuc2lvbnMoKSxcblx0XHRwYXRoOiB0aGlzLnBhdGgoKSxcblx0fSkpO1xuXG5cdHByaXZhdGUgbmVhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnbmVhcicpO1xuXHRwcml2YXRlIGZhciA9IHBpY2sodGhpcy5vcHRpb25zLCAnZmFyJyk7XG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMucmVzb2x1dGlvbigpKTtcblx0XHRmYm8udGV4dHVyZS50eXBlID0gSGFsZkZsb2F0VHlwZTtcblx0XHRyZXR1cm4gZmJvO1xuXHR9KTtcblxuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMubmVhcigpLCB0aGlzLmZhcigpLCB0aGlzLmZibygpXSk7XG5cblx0dmlydHVhbFNjZW5lID0gcHJlcGFyZShuZXcgU2NlbmUoKSk7XG5cblx0cHJpdmF0ZSBzZXRFbnZFZmZlY3RSZWY/OiBFZmZlY3RSZWY7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBbZmlsZXMsIHByZXNldCwgbWFwXSA9IFt0aGlzLmZpbGVzKCksIHRoaXMucHJlc2V0KCksIHRoaXMubWFwKCldO1xuXHRcdFx0XHQvLyBOT1RFOiB3aGVuIHRoZXJlJ3Mgbm9uZSBvZiB0aGlzLCB3ZSBkb24ndCByZW5kZXIgY3ViZSBvciBtYXAgc28gd2UgbmVlZCB0byBzZXRFbnYgaGVyZVxuXHRcdFx0XHRpZiAoISFmaWxlcyB8fCAhIXByZXNldCB8fCAhIW1hcCkgcmV0dXJuO1xuXHRcdFx0XHR0aGlzLm9uRW52U2V0KCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGxldCBjb3VudCA9IDE7XG5cdFx0aW5qZWN0TmV4dEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBmcmFtZXMgPSB0aGlzLm9wdGlvbnMoKS5mcmFtZXM7XG5cdFx0XHRpZiAoZnJhbWVzID09PSBJbmZpbml0eSB8fCAoZnJhbWVzICE9IG51bGwgJiYgY291bnQgPCBmcmFtZXMpKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk/Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmIChjYW1lcmEpIHtcblx0XHRcdFx0XHRjYW1lcmEudXBkYXRlKHRoaXMuZ2woKSwgdGhpcy52aXJ0dWFsU2NlbmUpO1xuXHRcdFx0XHRcdGNvdW50Kys7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8vIE5PVEU6IHdlIHVzZSBvbkVudlNldCBoZXJlIHRvIGVuc3VyZSB0aGF0IEVudmlyb25tZW50Q3ViZSBvciBFbnZpcm9ubWVudE1hcCBzZXRzIHRoZSBlbnYgYmVmb3JlIHRoZSBwb3J0YWxcblx0b25FbnZTZXQoKSB7XG5cdFx0aWYgKHRoaXMuc2V0RW52RWZmZWN0UmVmKSB0aGlzLnNldEVudkVmZmVjdFJlZi5kZXN0cm95KCk7XG5cdFx0dGhpcy5zZXRFbnZFZmZlY3RSZWYgPSB0aGlzLmF1dG9FZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhKCk7XG5cdFx0XHRcdGlmICghY2FtZXJhPy5uYXRpdmVFbGVtZW50KSByZXR1cm47XG5cblx0XHRcdFx0Y29uc3QgW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGZyYW1lcyxcblx0XHRcdFx0XHRcdGJhY2tncm91bmQgPSBmYWxzZSxcblx0XHRcdFx0XHRcdHNjZW5lLFxuXHRcdFx0XHRcdFx0Ymx1cixcblx0XHRcdFx0XHRcdGJhY2tncm91bmRCbHVycmluZXNzLFxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdFx0XHRcdGJhY2tncm91bmRSb3RhdGlvbixcblx0XHRcdFx0XHRcdGVudmlyb25tZW50SW50ZW5zaXR5LFxuXHRcdFx0XHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGdsLFxuXHRcdFx0XHRcdGZibyxcblx0XHRcdFx0XHRkZWZhdWx0U2NlbmUsXG5cdFx0XHRcdF0gPSBbdGhpcy5vcHRpb25zKCksIHRoaXMuZ2woKSwgdGhpcy5mYm8oKSwgdGhpcy5kZWZhdWx0U2NlbmUoKV07XG5cblx0XHRcdFx0aWYgKGZyYW1lcyA9PT0gMSkgY2FtZXJhLm5hdGl2ZUVsZW1lbnQudXBkYXRlKGdsLCB0aGlzLnZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdGNvbnN0IGNsZWFudXAgPSBzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kLCBzY2VuZSwgZGVmYXVsdFNjZW5lLCBmYm8udGV4dHVyZSwge1xuXHRcdFx0XHRcdGJsdXIsXG5cdFx0XHRcdFx0YmFja2dyb3VuZEJsdXJyaW5lc3MsXG5cdFx0XHRcdFx0YmFja2dyb3VuZEludGVuc2l0eSxcblx0XHRcdFx0XHRiYWNrZ3JvdW5kUm90YXRpb24sXG5cdFx0XHRcdFx0ZW52aXJvbm1lbnRJbnRlbnNpdHksXG5cdFx0XHRcdFx0ZW52aXJvbm1lbnRSb3RhdGlvbixcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHRoaXMuZW52U2V0LmVtaXQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IGNsZWFudXAoKTtcblx0XHRcdH0sXG5cdFx0XHR7IG1hbnVhbENsZWFudXA6IHRydWUgfSxcblx0XHQpO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtZ3JvdW5kJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0cy1lbnZpcm9ubWVudC1tYXAgW29wdGlvbnNdPVwiZW52TWFwT3B0aW9ucygpXCIgKGVudlNldCk9XCJlbnZTZXQuZW1pdCgpXCIgLz5cblx0XHQ8bmd0LWdyb3VuZC1wcm9qZWN0ZWQtZW52ICphcmdzPVwiYXJncygpXCIgW3NjYWxlXT1cInNjYWxlKClcIiBbaGVpZ2h0XT1cImhlaWdodCgpXCIgW3JhZGl1c109XCJyYWRpdXMoKVwiIC8+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRHcm91bmQge1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgTmd0c0Vudmlyb25tZW50T3B0aW9ucyk7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xuXG5cdHByaXZhdGUgZGVmYXVsdFRleHR1cmUgPSBpbmplY3RFbnZpcm9ubWVudCh0aGlzLm9wdGlvbnMpO1xuXHRwcml2YXRlIHRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5tYXAgfHwgdGhpcy5kZWZhdWx0VGV4dHVyZSgpKTtcblxuXHRhcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMudGV4dHVyZSgpXSk7XG5cdGhlaWdodCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKS5ncm91bmQgYXMgYW55KT8uaGVpZ2h0KTtcblx0cmFkaXVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMub3B0aW9ucygpLmdyb3VuZCBhcyBhbnkpPy5yYWRpdXMpO1xuXHRzY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKS5ncm91bmQgYXMgYW55KT8uc2NhbGUgPz8gMTAwMCk7XG5cblx0ZW52TWFwT3B0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCB7IG1hcDogXywgLi4ub3B0aW9ucyB9ID0gdGhpcy5vcHRpb25zKCk7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24ob3B0aW9ucywgeyBtYXA6IHRoaXMudGV4dHVyZSgpIH0pIGFzIE5ndHNFbnZpcm9ubWVudE9wdGlvbnM7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VuZFByb2plY3RlZEVudiB9KTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKG9wdGlvbnMoKS5ncm91bmQpIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCBbb3B0aW9uc109XCJvcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH0gQGVsc2UgaWYgKG9wdGlvbnMoKS5tYXApIHtcblx0XHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCBbb3B0aW9uc109XCJvcHRpb25zKClcIiAoZW52U2V0KT1cImVudlNldC5lbWl0KClcIiAvPlxuXHRcdH0gQGVsc2UgaWYgKGNvbnRlbnQoKSkge1xuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtcG9ydGFsIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIFtjb250ZW50XT1cIiRhbnkoY29udGVudCgpKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fSBAZWxzZSB7XG5cdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1jdWJlIFtvcHRpb25zXT1cIm9wdGlvbnMoKVwiIChlbnZTZXQpPVwiZW52U2V0LmVtaXQoKVwiIC8+XG5cdFx0fVxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c0Vudmlyb25tZW50Q3ViZSwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RzRW52aXJvbm1lbnRQb3J0YWwsIE5ndHNFbnZpcm9ubWVudEdyb3VuZF0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudCB7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBOZ3RzRW52aXJvbm1lbnRPcHRpb25zKTtcblx0Y29udGVudCA9IGNvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZik7XG5cdGVudlNldCA9IG91dHB1dDx2b2lkPigpO1xufVxuIl19
@@ -3,7 +3,7 @@ import { NgtArgs, extend, omit, pick } from 'angular-three';
3
3
  import { getVersion } from 'angular-three-soba/misc';
4
4
  import { injectAutoEffect } from 'ngxtension/auto-effect';
5
5
  import { mergeInputs } from 'ngxtension/inject-inputs';
6
- import { DirectionalLight, Group, MathUtils, OrthographicCamera, Vector3 } from 'three';
6
+ import { DirectionalLight, Group, MathUtils, OrthographicCamera, Vector2, Vector3 } from 'three';
7
7
  import { injectAccumulativeShadowsApi } from './accumulative-shadows';
8
8
  import * as i0 from "@angular/core";
9
9
  const defaultOptions = {
@@ -20,7 +20,6 @@ const defaultOptions = {
20
20
  intensity: getVersion() >= 155 ? Math.PI : 1,
21
21
  ambient: 0.5,
22
22
  };
23
- extend({ Group, DirectionalLight, OrthographicCamera });
24
23
  export class NgtsRandomizedLights {
25
24
  constructor() {
26
25
  this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
@@ -41,6 +40,7 @@ export class NgtsRandomizedLights {
41
40
  this.far = pick(this.options, 'far');
42
41
  this.cameraArgs = computed(() => [-this.size(), this.size(), this.size(), -this.size(), this.near(), this.far()]);
43
42
  this.updateOptions = pick(this.options, ['ambient', 'radius', 'position']);
43
+ extend({ Group, DirectionalLight, OrthographicCamera, Vector2 });
44
44
  afterNextRender(() => {
45
45
  this.autoEffect(() => {
46
46
  const lights = this.lights().nativeElement;
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
106
106
  changeDetection: ChangeDetectionStrategy.OnPush,
107
107
  }]
108
108
  }], ctorParameters: () => [] });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9taXplZC1saWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL3JhbmRvbWl6ZWQtbGlnaHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFZLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUE4QnRFLE1BQU0sY0FBYyxHQUErQjtJQUNsRCxVQUFVLEVBQUUsSUFBSTtJQUNoQixJQUFJLEVBQUUsS0FBSztJQUNYLE9BQU8sRUFBRSxHQUFHO0lBQ1osSUFBSSxFQUFFLENBQUM7SUFDUCxJQUFJLEVBQUUsR0FBRztJQUNULEdBQUcsRUFBRSxHQUFHO0lBQ1IsTUFBTSxFQUFFLENBQUM7SUFDVCxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuQixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxDQUFDO0lBQ1QsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFD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QU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RBcmdzLCBOZ3RHcm91cCwgZXh0ZW5kLCBvbWl0LCBwaWNrIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBnZXRWZXJzaW9uIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxMaWdodCwgR3JvdXAsIE1hdGhVdGlscywgT2JqZWN0M0QsIE9ydGhvZ3JhcGhpY0NhbWVyYSwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGluamVjdEFjY3VtdWxhdGl2ZVNoYWRvd3NBcGkgfSBmcm9tICcuL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzUmFuZG9taXplZExpZ2h0T3B0aW9ucyBleHRlbmRzIFBhcnRpYWw8Tmd0R3JvdXA+IHtcblx0LyoqIEhvdyBtYW55IGZyYW1lcyBpdCB3aWxsIGppZ2dsZSB0aGUgbGlnaHRzLCAxLlxuXHQgKiAgRnJhbWVzIGlzIGNvbnRleHQgYXdhcmUsIGlmIGEgcHJvdmlkZXIgbGlrZSBBY2N1bXVsYXRpdmVTaGFkb3dzIGV4aXN0cywgZnJhbWVzIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGVyZSEgICovXG5cdGZyYW1lczogbnVtYmVyO1xuXHQvKiogTGlnaHQgcG9zaXRpb24sIFswLCAwLCAwXSAqL1xuXHRwb3NpdGlvbjogW3g6IG51bWJlciwgeTogbnVtYmVyLCB6OiBudW1iZXJdO1xuXHQvKiogUmFkaXVzIG9mIHRoZSBqaWdnbGUsIGhpZ2hlciB2YWx1ZXMgbWFrZSBzb2Z0ZXIgbGlnaHQsIDUgKi9cblx0cmFkaXVzOiBudW1iZXI7XG5cdC8qKiBBbW91bnQgb2YgbGlnaHRzLCA4ICovXG5cdGFtb3VudDogbnVtYmVyO1xuXHQvKiogTGlnaHQgaW50ZW5zaXR5LCAxICovXG5cdGludGVuc2l0eTogbnVtYmVyO1xuXHQvKiogQW1iaWVudCBvY2NsdXNpb24sIGxvd2VyIHZhbHVlcyBtZWFuIGxlc3MgQU8sIGhpZ2h0IG1vcmUsIHlvdSBjYW4gbWl4IEFPIGFuZCBkaXJlY3Rpb25hbCBsaWdodCwgMC41ICovXG5cdGFtYmllbnQ6IG51bWJlcjtcblx0LyoqIElmIHRoZSBsaWdodHMgY2FzdCBzaGFkb3dzLCB0aGlzIGlzIHRydWUgYnkgZGVmYXVsdCAqL1xuXHRjYXN0U2hhZG93OiBib29sZWFuO1xuXHQvKiogRGVmYXVsdCBzaGFkb3cgYmlhcywgMCAqL1xuXHRiaWFzOiBudW1iZXI7XG5cdC8qKiBEZWZhdWx0IG1hcCBzaXplLCA1MTIgKi9cblx0bWFwU2l6ZTogbnVtYmVyO1xuXHQvKiogRGVmYXVsdCBzaXplIG9mIHRoZSBzaGFkb3cgY2FtZXJhLCAxMCAqL1xuXHRzaXplOiBudW1iZXI7XG5cdC8qKiBEZWZhdWx0IHNoYWRvdyBjYW1lcmEgbmVhciwgMC41ICovXG5cdG5lYXI6IG51bWJlcjtcblx0LyoqIERlZmF1bHQgc2hhZG93IGNhbWVyYSBmYXIsIDUwMCAqL1xuXHRmYXI6IG51bWJlcjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNSYW5kb21pemVkTGlnaHRPcHRpb25zID0ge1xuXHRjYXN0U2hhZG93OiB0cnVlLFxuXHRiaWFzOiAwLjAwMSxcblx0bWFwU2l6ZTogNTEyLFxuXHRzaXplOiA1LFxuXHRuZWFyOiAwLjUsXG5cdGZhcjogNTAwLFxuXHRmcmFtZXM6IDEsXG5cdHBvc2l0aW9uOiBbMCwgMCwgMF0sXG5cdHJhZGl1czogMSxcblx0YW1vdW50OiA4LFxuXHRpbnRlbnNpdHk6IGdldFZlcnNpb24oKSA+PSAxNTUgPyBNYXRoLlBJIDogMSxcblx0YW1iaWVudDogMC41LFxufTtcblxuZXh0ZW5kKHsgR3JvdXAsIERpcmVjdGlvbmFsTGlnaHQsIE9ydGhvZ3JhcGhpY0NhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1yYW5kb21pemVkLWxpZ2h0cycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCAjbGlnaHRzIFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiPlxuXHRcdFx0QGZvciAoaSBvZiBjb3VudCgpOyB0cmFjayAkaW5kZXgpIHtcblx0XHRcdFx0PG5ndC1kaXJlY3Rpb25hbC1saWdodCBbY2FzdFNoYWRvd109XCJjYXN0U2hhZG93KClcIiBbaW50ZW5zaXR5XT1cImludGVuc2l0eSgpIC8gYW1vdW50KClcIj5cblx0XHRcdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJiaWFzKClcIiBhdHRhY2g9XCJzaGFkb3cuYmlhc1wiPjwvbmd0LXZhbHVlPlxuXHRcdFx0XHRcdDxuZ3QtdmVjdG9yMiAqYXJncz1cIlttYXBTaXplKCksIG1hcFNpemUoKV1cIiBhdHRhY2g9XCJzaGFkb3cubWFwU2l6ZVwiPjwvbmd0LXZlY3RvcjI+XG5cdFx0XHRcdFx0PG5ndC1vcnRob2dyYXBoaWMtY2FtZXJhICphcmdzPVwiY2FtZXJhQXJncygpXCIgYXR0YWNoPVwic2hhZG93LmNhbWVyYVwiPjwvbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmE+XG5cdFx0XHRcdDwvbmd0LWRpcmVjdGlvbmFsLWxpZ2h0PlxuXHRcdFx0fVxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNSYW5kb21pemVkTGlnaHRzIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIE9iamVjdC5rZXlzKGRlZmF1bHRPcHRpb25zKSBhcyBBcnJheTxrZXlvZiBOZ3RzUmFuZG9taXplZExpZ2h0T3B0aW9ucz4pO1xuXG5cdGxpZ2h0cyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2xpZ2h0cycpO1xuXG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0cHJpdmF0ZSBzaGFkb3dzQXBpID0gaW5qZWN0QWNjdW11bGF0aXZlU2hhZG93c0FwaSgpO1xuXG5cdGNhc3RTaGFkb3cgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2Nhc3RTaGFkb3cnKTtcblx0YmlhcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmlhcycpO1xuXHRtYXBTaXplID0gcGljayh0aGlzLm9wdGlvbnMsICdtYXBTaXplJyk7XG5cdGludGVuc2l0eSA9IHBpY2sodGhpcy5vcHRpb25zLCAnaW50ZW5zaXR5Jyk7XG5cdGFtb3VudCA9IHBpY2sodGhpcy5vcHRpb25zLCAnYW1vdW50Jyk7XG5cblx0cHJpdmF0ZSBwb3NpdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncG9zaXRpb24nKTtcblx0bGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4gbmV3IFZlY3RvcjMoLi4udGhpcy5wb3NpdGlvbigpKS5sZW5ndGgoKSk7XG5cblx0Y291bnQgPSBjb21wdXRlZCgoKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmFtb3VudCgpIH0sIChfLCBpbmRleCkgPT4gaW5kZXgpKTtcblxuXHRwcml2YXRlIHNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3NpemUnKTtcblx0cHJpdmF0ZSBuZWFyID0gcGljayh0aGlzLm9wdGlvbnMsICduZWFyJyk7XG5cdHByaXZhdGUgZmFyID0gcGljayh0aGlzLm9wdGlvbnMsICdmYXInKTtcblx0Y2FtZXJhQXJncyA9IGNvbXB1dGVkKCgpID0+IFstdGhpcy5zaXplKCksIHRoaXMuc2l6ZSgpLCB0aGlzLnNpemUoKSwgLXRoaXMuc2l6ZSgpLCB0aGlzLm5lYXIoKSwgdGhpcy5mYXIoKV0pO1xuXG5cdHByaXZhdGUgdXBkYXRlT3B0aW9ucyA9IHBpY2sodGhpcy5vcHRpb25zLCBbJ2FtYmllbnQnLCAncmFkaXVzJywgJ3Bvc2l0aW9uJ10pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBsaWdodHMgPSB0aGlzLmxpZ2h0cygpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmICghbGlnaHRzKSByZXR1cm47XG5cdFx0XHRcdGNvbnN0IFtzaGFkb3dzQXBpXSA9IFt0aGlzLnNoYWRvd3NBcGkoKSwgdGhpcy51cGRhdGVPcHRpb25zKCksIHRoaXMubGVuZ3RoKCldO1xuXHRcdFx0XHRpZiAoIXNoYWRvd3NBcGkpIHJldHVybjtcblx0XHRcdFx0c2hhZG93c0FwaS5saWdodHMuc2V0KGxpZ2h0cy51dWlkLCB0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHNoYWRvd3NBcGkubGlnaHRzLmRlbGV0ZShsaWdodHMudXVpZCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZSgpIHtcblx0XHRsZXQgbGlnaHQ6IE9iamVjdDNEIHwgdW5kZWZpbmVkO1xuXHRcdGNvbnN0IGxpZ2h0cyA9IHRoaXMubGlnaHRzKCkubmF0aXZlRWxlbWVudDtcblx0XHRpZiAobGlnaHRzKSB7XG5cdFx0XHRjb25zdCBbeyBhbWJpZW50LCByYWRpdXMsIHBvc2l0aW9uIH0sIGxlbmd0aF0gPSBbdGhpcy51cGRhdGVPcHRpb25zKCksIHRoaXMubGVuZ3RoKCldO1xuXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxpZ2h0cy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRsaWdodCA9IGxpZ2h0cy5jaGlsZHJlbltpXTtcblx0XHRcdFx0aWYgKE1hdGgucmFuZG9tKCkgPiBhbWJpZW50KSB7XG5cdFx0XHRcdFx0bGlnaHQucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdFx0cG9zaXRpb25bMF0gKyBNYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKHJhZGl1cyksXG5cdFx0XHRcdFx0XHRwb3NpdGlvblsxXSArIE1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQocmFkaXVzKSxcblx0XHRcdFx0XHRcdHBvc2l0aW9uWzJdICsgTWF0aFV0aWxzLnJhbmRGbG9hdFNwcmVhZChyYWRpdXMpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29uc3QgbGFtYmRhID0gTWF0aC5hY29zKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSkgLSBNYXRoLlBJIC8gMi4wO1xuXHRcdFx0XHRcdGNvbnN0IHBoaSA9IDIgKiBNYXRoLlBJICogTWF0aC5yYW5kb20oKTtcblx0XHRcdFx0XHRsaWdodC5wb3NpdGlvbi5zZXQoXG5cdFx0XHRcdFx0XHRNYXRoLmNvcyhsYW1iZGEpICogTWF0aC5jb3MocGhpKSAqIGxlbmd0aCxcblx0XHRcdFx0XHRcdE1hdGguYWJzKE1hdGguY29zKGxhbWJkYSkgKiBNYXRoLnNpbihwaGkpICogbGVuZ3RoKSxcblx0XHRcdFx0XHRcdE1hdGguc2luKGxhbWJkYSkgKiBsZW5ndGgsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9taXplZC1saWdodHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbGliL3JhbmRvbWl6ZWQtbGlnaHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxlQUFlLEVBQ2YsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFZLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDM0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBOEJ0RSxNQUFNLGNBQWMsR0FBK0I7SUFDbEQsVUFBVSxFQUFFLElBQUk7SUFDaEIsSUFBSSxFQUFFLEtBQUs7SUFDWCxPQUFPLEVBQUUsR0FBRztJQUNaLElBQUksRUFBRSxDQUFDO0lBQ1AsSUFBSSxFQUFFLEdBQUc7SUFDVCxHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxDQUFDO0lBQ1QsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsQ0FBQztJQUNULFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxHQUFH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LEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGNvbXB1dGVkLFxuXHRpbnB1dCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndEdyb3VwLCBleHRlbmQsIG9taXQsIHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGdldFZlcnNpb24gfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5pbXBvcnQgeyBpbmplY3RBdXRvRWZmZWN0IH0gZnJvbSAnbmd4dGVuc2lvbi9hdXRvLWVmZmVjdCc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbExpZ2h0LCBHcm91cCwgTWF0aFV0aWxzLCBPYmplY3QzRCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBWZWN0b3IyLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QWNjdW11bGF0aXZlU2hhZG93c0FwaSB9IGZyb20gJy4vYWNjdW11bGF0aXZlLXNoYWRvd3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNSYW5kb21pemVkTGlnaHRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKiogSG93IG1hbnkgZnJhbWVzIGl0IHdpbGwgamlnZ2xlIHRoZSBsaWdodHMsIDEuXG5cdCAqICBGcmFtZXMgaXMgY29udGV4dCBhd2FyZSwgaWYgYSBwcm92aWRlciBsaWtlIEFjY3VtdWxhdGl2ZVNoYWRvd3MgZXhpc3RzLCBmcmFtZXMgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZXJlISAgKi9cblx0ZnJhbWVzOiBudW1iZXI7XG5cdC8qKiBMaWdodCBwb3NpdGlvbiwgWzAsIDAsIDBdICovXG5cdHBvc2l0aW9uOiBbeDogbnVtYmVyLCB5OiBudW1iZXIsIHo6IG51bWJlcl07XG5cdC8qKiBSYWRpdXMgb2YgdGhlIGppZ2dsZSwgaGlnaGVyIHZhbHVlcyBtYWtlIHNvZnRlciBsaWdodCwgNSAqL1xuXHRyYWRpdXM6IG51bWJlcjtcblx0LyoqIEFtb3VudCBvZiBsaWdodHMsIDggKi9cblx0YW1vdW50OiBudW1iZXI7XG5cdC8qKiBMaWdodCBpbnRlbnNpdHksIDEgKi9cblx0aW50ZW5zaXR5OiBudW1iZXI7XG5cdC8qKiBBbWJpZW50IG9jY2x1c2lvbiwgbG93ZXIgdmFsdWVzIG1lYW4gbGVzcyBBTywgaGlnaHQgbW9yZSwgeW91IGNhbiBtaXggQU8gYW5kIGRpcmVjdGlvbmFsIGxpZ2h0LCAwLjUgKi9cblx0YW1iaWVudDogbnVtYmVyO1xuXHQvKiogSWYgdGhlIGxpZ2h0cyBjYXN0IHNoYWRvd3MsIHRoaXMgaXMgdHJ1ZSBieSBkZWZhdWx0ICovXG5cdGNhc3RTaGFkb3c6IGJvb2xlYW47XG5cdC8qKiBEZWZhdWx0IHNoYWRvdyBiaWFzLCAwICovXG5cdGJpYXM6IG51bWJlcjtcblx0LyoqIERlZmF1bHQgbWFwIHNpemUsIDUxMiAqL1xuXHRtYXBTaXplOiBudW1iZXI7XG5cdC8qKiBEZWZhdWx0IHNpemUgb2YgdGhlIHNoYWRvdyBjYW1lcmEsIDEwICovXG5cdHNpemU6IG51bWJlcjtcblx0LyoqIERlZmF1bHQgc2hhZG93IGNhbWVyYSBuZWFyLCAwLjUgKi9cblx0bmVhcjogbnVtYmVyO1xuXHQvKiogRGVmYXVsdCBzaGFkb3cgY2FtZXJhIGZhciwgNTAwICovXG5cdGZhcjogbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c1JhbmRvbWl6ZWRMaWdodE9wdGlvbnMgPSB7XG5cdGNhc3RTaGFkb3c6IHRydWUsXG5cdGJpYXM6IDAuMDAxLFxuXHRtYXBTaXplOiA1MTIsXG5cdHNpemU6IDUsXG5cdG5lYXI6IDAuNSxcblx0ZmFyOiA1MDAsXG5cdGZyYW1lczogMSxcblx0cG9zaXRpb246IFswLCAwLCAwXSxcblx0cmFkaXVzOiAxLFxuXHRhbW91bnQ6IDgsXG5cdGludGVuc2l0eTogZ2V0VmVyc2lvbigpID49IDE1NSA/IE1hdGguUEkgOiAxLFxuXHRhbWJpZW50OiAwLjUsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXJhbmRvbWl6ZWQtbGlnaHRzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNsaWdodHMgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHRAZm9yIChpIG9mIGNvdW50KCk7IHRyYWNrICRpbmRleCkge1xuXHRcdFx0XHQ8bmd0LWRpcmVjdGlvbmFsLWxpZ2h0IFtjYXN0U2hhZG93XT1cImNhc3RTaGFkb3coKVwiIFtpbnRlbnNpdHldPVwiaW50ZW5zaXR5KCkgLyBhbW91bnQoKVwiPlxuXHRcdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImJpYXMoKVwiIGF0dGFjaD1cInNoYWRvdy5iaWFzXCI+PC9uZ3QtdmFsdWU+XG5cdFx0XHRcdFx0PG5ndC12ZWN0b3IyICphcmdzPVwiW21hcFNpemUoKSwgbWFwU2l6ZSgpXVwiIGF0dGFjaD1cInNoYWRvdy5tYXBTaXplXCI+PC9uZ3QtdmVjdG9yMj5cblx0XHRcdFx0XHQ8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiBhdHRhY2g9XCJzaGFkb3cuY2FtZXJhXCI+PC9uZ3Qtb3J0aG9ncmFwaGljLWNhbWVyYT5cblx0XHRcdFx0PC9uZ3QtZGlyZWN0aW9uYWwtbGlnaHQ+XG5cdFx0XHR9XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1JhbmRvbWl6ZWRMaWdodHMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgT2JqZWN0LmtleXMoZGVmYXVsdE9wdGlvbnMpIGFzIEFycmF5PGtleW9mIE5ndHNSYW5kb21pemVkTGlnaHRPcHRpb25zPik7XG5cblx0bGlnaHRzID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignbGlnaHRzJyk7XG5cblx0cHJpdmF0ZSBhdXRvRWZmZWN0ID0gaW5qZWN0QXV0b0VmZmVjdCgpO1xuXHRwcml2YXRlIHNoYWRvd3NBcGkgPSBpbmplY3RBY2N1bXVsYXRpdmVTaGFkb3dzQXBpKCk7XG5cblx0Y2FzdFNoYWRvdyA9IHBpY2sodGhpcy5vcHRpb25zLCAnY2FzdFNoYWRvdycpO1xuXHRiaWFzID0gcGljayh0aGlzLm9wdGlvbnMsICdiaWFzJyk7XG5cdG1hcFNpemUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ21hcFNpemUnKTtcblx0aW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdpbnRlbnNpdHknKTtcblx0YW1vdW50ID0gcGljayh0aGlzLm9wdGlvbnMsICdhbW91bnQnKTtcblxuXHRwcml2YXRlIHBvc2l0aW9uID0gcGljayh0aGlzLm9wdGlvbnMsICdwb3NpdGlvbicpO1xuXHRsZW5ndGggPSBjb21wdXRlZCgoKSA9PiBuZXcgVmVjdG9yMyguLi50aGlzLnBvc2l0aW9uKCkpLmxlbmd0aCgpKTtcblxuXHRjb3VudCA9IGNvbXB1dGVkKCgpID0+IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuYW1vdW50KCkgfSwgKF8sIGluZGV4KSA9PiBpbmRleCkpO1xuXG5cdHByaXZhdGUgc2l6ZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2l6ZScpO1xuXHRwcml2YXRlIG5lYXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ25lYXInKTtcblx0cHJpdmF0ZSBmYXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2ZhcicpO1xuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gWy10aGlzLnNpemUoKSwgdGhpcy5zaXplKCksIHRoaXMuc2l6ZSgpLCAtdGhpcy5zaXplKCksIHRoaXMubmVhcigpLCB0aGlzLmZhcigpXSk7XG5cblx0cHJpdmF0ZSB1cGRhdGVPcHRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsIFsnYW1iaWVudCcsICdyYWRpdXMnLCAncG9zaXRpb24nXSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAsIERpcmVjdGlvbmFsTGlnaHQsIE9ydGhvZ3JhcGhpY0NhbWVyYSwgVmVjdG9yMiB9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBsaWdodHMgPSB0aGlzLmxpZ2h0cygpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmICghbGlnaHRzKSByZXR1cm47XG5cdFx0XHRcdGNvbnN0IFtzaGFkb3dzQXBpXSA9IFt0aGlzLnNoYWRvd3NBcGkoKSwgdGhpcy51cGRhdGVPcHRpb25zKCksIHRoaXMubGVuZ3RoKCldO1xuXHRcdFx0XHRpZiAoIXNoYWRvd3NBcGkpIHJldHVybjtcblx0XHRcdFx0c2hhZG93c0FwaS5saWdodHMuc2V0KGxpZ2h0cy51dWlkLCB0aGlzLnVwZGF0ZS5iaW5kKHRoaXMpKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHNoYWRvd3NBcGkubGlnaHRzLmRlbGV0ZShsaWdodHMudXVpZCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZSgpIHtcblx0XHRsZXQgbGlnaHQ6IE9iamVjdDNEIHwgdW5kZWZpbmVkO1xuXHRcdGNvbnN0IGxpZ2h0cyA9IHRoaXMubGlnaHRzKCkubmF0aXZlRWxlbWVudDtcblx0XHRpZiAobGlnaHRzKSB7XG5cdFx0XHRjb25zdCBbeyBhbWJpZW50LCByYWRpdXMsIHBvc2l0aW9uIH0sIGxlbmd0aF0gPSBbdGhpcy51cGRhdGVPcHRpb25zKCksIHRoaXMubGVuZ3RoKCldO1xuXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGxpZ2h0cy5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRsaWdodCA9IGxpZ2h0cy5jaGlsZHJlbltpXTtcblx0XHRcdFx0aWYgKE1hdGgucmFuZG9tKCkgPiBhbWJpZW50KSB7XG5cdFx0XHRcdFx0bGlnaHQucG9zaXRpb24uc2V0KFxuXHRcdFx0XHRcdFx0cG9zaXRpb25bMF0gKyBNYXRoVXRpbHMucmFuZEZsb2F0U3ByZWFkKHJhZGl1cyksXG5cdFx0XHRcdFx0XHRwb3NpdGlvblsxXSArIE1hdGhVdGlscy5yYW5kRmxvYXRTcHJlYWQocmFkaXVzKSxcblx0XHRcdFx0XHRcdHBvc2l0aW9uWzJdICsgTWF0aFV0aWxzLnJhbmRGbG9hdFNwcmVhZChyYWRpdXMpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0Y29uc3QgbGFtYmRhID0gTWF0aC5hY29zKDIgKiBNYXRoLnJhbmRvbSgpIC0gMSkgLSBNYXRoLlBJIC8gMi4wO1xuXHRcdFx0XHRcdGNvbnN0IHBoaSA9IDIgKiBNYXRoLlBJICogTWF0aC5yYW5kb20oKTtcblx0XHRcdFx0XHRsaWdodC5wb3NpdGlvbi5zZXQoXG5cdFx0XHRcdFx0XHRNYXRoLmNvcyhsYW1iZGEpICogTWF0aC5jb3MocGhpKSAqIGxlbmd0aCxcblx0XHRcdFx0XHRcdE1hdGguYWJzKE1hdGguY29zKGxhbWJkYSkgKiBNYXRoLnNpbihwaGkpICogbGVuZ3RoKSxcblx0XHRcdFx0XHRcdE1hdGguc2luKGxhbWJkYSkgKiBsZW5ndGgsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { input, viewChild, computed, afterNextRender, Component, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, signal, untracked, Directive, output, inject, Injector, contentChild, TemplateRef, ViewContainerRef, DestroyRef } from '@angular/core';
3
- import { extend, createApiToken, omit, injectStore, pick, getLocalState, injectNextBeforeRender, vector3, NgtArgs, is, applyProps, injectLoader, prepare, NgtPortal, NgtPortalContent, injectBeforeRender } from 'angular-three';
3
+ import { createApiToken, omit, injectStore, pick, extend, getLocalState, injectNextBeforeRender, vector3, NgtArgs, is, applyProps, injectLoader, prepare, NgtPortal, NgtPortalContent, injectBeforeRender } from 'angular-three';
4
4
  import { SoftShadowMaterial, DiscardMaterial } from 'angular-three-soba/shaders';
5
5
  import { injectAutoEffect } from 'ngxtension/auto-effect';
6
6
  import { mergeInputs } from 'ngxtension/inject-inputs';
@@ -12,7 +12,6 @@ import { sRGBEncoding, LinearEncoding, getVersion, injectFBO } from 'angular-thr
12
12
  import { assertInjector } from 'ngxtension/assert-injector';
13
13
  import { injectTexture } from 'angular-three-soba/loaders';
14
14
 
15
- extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
16
15
  const [injectAccumulativeShadowsApi, provideAccumulativeShadowsApi] = createApiToken(() => NgtsAccumulativeShadows);
17
16
  const defaultOptions$7 = {
18
17
  frames: 40,
@@ -123,6 +122,7 @@ class NgtsAccumulativeShadows {
123
122
  };
124
123
  return api;
125
124
  });
125
+ extend({ Group, SoftShadowMaterial, Mesh, PlaneGeometry });
126
126
  afterNextRender(() => {
127
127
  this.autoEffect(() => {
128
128
  const [pLM, plane] = [this.pLM(), this.plane()];
@@ -1006,6 +1006,15 @@ class NgtsEnvironmentPortal {
1006
1006
  this.cameraArgs = computed(() => [this.near(), this.far(), this.fbo()]);
1007
1007
  this.virtualScene = prepare(new Scene());
1008
1008
  extend({ CubeCamera });
1009
+ afterNextRender(() => {
1010
+ this.autoEffect(() => {
1011
+ const [files, preset, map] = [this.files(), this.preset(), this.map()];
1012
+ // NOTE: when there's none of this, we don't render cube or map so we need to setEnv here
1013
+ if (!!files || !!preset || !!map)
1014
+ return;
1015
+ this.onEnvSet();
1016
+ });
1017
+ });
1009
1018
  let count = 1;
1010
1019
  injectNextBeforeRender(() => {
1011
1020
  const frames = this.options().frames;
@@ -1494,7 +1503,6 @@ const defaultOptions$1 = {
1494
1503
  intensity: getVersion() >= 155 ? Math.PI : 1,
1495
1504
  ambient: 0.5,
1496
1505
  };
1497
- extend({ Group, DirectionalLight, OrthographicCamera });
1498
1506
  class NgtsRandomizedLights {
1499
1507
  constructor() {
1500
1508
  this.options = input(defaultOptions$1, { transform: mergeInputs(defaultOptions$1) });
@@ -1515,6 +1523,7 @@ class NgtsRandomizedLights {
1515
1523
  this.far = pick(this.options, 'far');
1516
1524
  this.cameraArgs = computed(() => [-this.size(), this.size(), this.size(), -this.size(), this.near(), this.far()]);
1517
1525
  this.updateOptions = pick(this.options, ['ambient', 'radius', 'position']);
1526
+ extend({ Group, DirectionalLight, OrthographicCamera, Vector2 });
1518
1527
  afterNextRender(() => {
1519
1528
  this.autoEffect(() => {
1520
1529
  const lights = this.lights().nativeElement;