@rocketshow/designer 1.36.0 → 1.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/assets/i18n/de.json +11 -8
  2. package/assets/i18n/en.json +11 -8
  3. package/esm2022/lib/designer.component.mjs +10 -10
  4. package/esm2022/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.mjs +181 -33
  5. package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +30 -8
  6. package/esm2022/lib/models/fixture-capability.mjs +47 -4
  7. package/esm2022/lib/preview/models/color-changer-3d.mjs +15 -27
  8. package/esm2022/lib/preview/models/fixture-3d.mjs +91 -105
  9. package/esm2022/lib/preview/models/moving-head-3d.mjs +32 -41
  10. package/esm2022/lib/preview/preview.component.mjs +4 -4
  11. package/esm2022/lib/services/fixture.service.mjs +1 -1
  12. package/esm2022/lib/services/preset.service.mjs +3 -3
  13. package/esm2022/lib/services/preview.service.mjs +19 -3
  14. package/esm2022/lib/user/user-register/user-register.component.mjs +3 -3
  15. package/fesm2022/rocketshow-designer.mjs +422 -229
  16. package/fesm2022/rocketshow-designer.mjs.map +1 -1
  17. package/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.d.ts +9 -2
  18. package/lib/fixture/fixture-capability/fixture-capability.component.d.ts +5 -1
  19. package/lib/models/fixture-capability.d.ts +47 -4
  20. package/lib/preview/models/color-changer-3d.d.ts +4 -5
  21. package/lib/preview/models/fixture-3d.d.ts +17 -16
  22. package/lib/preview/models/moving-head-3d.d.ts +4 -5
  23. package/lib/services/preview.service.d.ts +5 -1
  24. package/package.json +1 -1
  25. package/rocketshow-designer-1.38.0.tgz +0 -0
  26. package/rocketshow-designer-1.36.0.tgz +0 -0
@@ -53,13 +53,13 @@ function FixtureCapabilityComponent_div_2_Template(rf, ctx) { if (rf & 1) {
53
53
  const ctx_r2 = i0.ɵɵnextContext();
54
54
  i0.ɵɵclassProp("h-100", ctx_r2.isChrome());
55
55
  i0.ɵɵadvance();
56
- i0.ɵɵproperty("ngIf", ctx_r2.presetService.hasCapabilityDimmer());
56
+ i0.ɵɵproperty("ngIf", ctx_r2.hasCapabilityDimmer);
57
57
  i0.ɵɵadvance();
58
- i0.ɵɵproperty("ngIf", ctx_r2.presetService.hasCapabilityColorOrColorWheel());
58
+ i0.ɵɵproperty("ngIf", ctx_r2.hasCapabilityColorOrColorWheel);
59
59
  i0.ɵɵadvance();
60
60
  i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(4, 6, ctx_r2.colorWheelChannels));
61
61
  i0.ɵɵadvance(2);
62
- i0.ɵɵproperty("ngIf", ctx_r2.presetService.hasCapabilityPanTilt());
62
+ i0.ɵɵproperty("ngIf", ctx_r2.hasCapabilityPanTilt);
63
63
  } }
64
64
  function FixtureCapabilityComponent_div_3_Template(rf, ctx) { if (rf & 1) {
65
65
  i0.ɵɵelementStart(0, "div", 10)(1, "p", 11);
@@ -79,6 +79,15 @@ function FixtureCapabilityComponent_div_4_Template(rf, ctx) { if (rf & 1) {
79
79
  i0.ɵɵadvance(2);
80
80
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "designer.fixture.no-fixtures-selected"));
81
81
  } }
82
+ function FixtureCapabilityComponent_div_5_Template(rf, ctx) { if (rf & 1) {
83
+ i0.ɵɵelementStart(0, "div", 10)(1, "p", 11);
84
+ i0.ɵɵtext(2);
85
+ i0.ɵɵpipe(3, "translate");
86
+ i0.ɵɵelementEnd()();
87
+ } if (rf & 2) {
88
+ i0.ɵɵadvance(2);
89
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "designer.fixture.no-capabilities-available"));
90
+ } }
82
91
  export class FixtureCapabilityComponent {
83
92
  constructor(presetService, fixtureService, changeDetectorRef, projectService, introService) {
84
93
  this.presetService = presetService;
@@ -88,6 +97,9 @@ export class FixtureCapabilityComponent {
88
97
  this.introService = introService;
89
98
  // map containing the profile and the channel name containing the wheel
90
99
  this.colorWheelChannels = new Map();
100
+ this.hasCapabilityDimmer = false;
101
+ this.hasCapabilityColorOrColorWheel = false;
102
+ this.hasCapabilityPanTilt = false;
91
103
  this.fixtureSelectionChangedSubscription = this.presetService.fixtureSelectionChanged.subscribe(() => {
92
104
  this.update();
93
105
  });
@@ -98,7 +110,9 @@ export class FixtureCapabilityComponent {
98
110
  this.changeDetectorRef.detectChanges();
99
111
  });
100
112
  }
101
- ngOnInit() { }
113
+ ngOnInit() {
114
+ this.update();
115
+ }
102
116
  ngOnDestroy() {
103
117
  this.fixtureSelectionChangedSubscription.unsubscribe();
104
118
  this.previewSelectionChangedSubscription.unsubscribe();
@@ -136,8 +150,14 @@ export class FixtureCapabilityComponent {
136
150
  }
137
151
  }
138
152
  }
153
+ updateCapabilities() {
154
+ this.hasCapabilityDimmer = this.presetService.hasCapabilityDimmer();
155
+ this.hasCapabilityColorOrColorWheel = this.presetService.hasCapabilityColorOrColorWheel();
156
+ this.hasCapabilityPanTilt = this.presetService.hasCapabilityPanTilt();
157
+ }
139
158
  update() {
140
159
  this.updateColorWheels();
160
+ this.updateCapabilities();
141
161
  this.changeDetectorRef.detectChanges();
142
162
  }
143
163
  isChrome() {
@@ -147,9 +167,9 @@ export class FixtureCapabilityComponent {
147
167
  return false;
148
168
  }
149
169
  static { this.ɵfac = function FixtureCapabilityComponent_Factory(t) { return new (t || FixtureCapabilityComponent)(i0.ɵɵdirectiveInject(i1.PresetService), i0.ɵɵdirectiveInject(i2.FixtureService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i3.ProjectService), i0.ɵɵdirectiveInject(i4.IntroService)); }; }
150
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FixtureCapabilityComponent, selectors: [["lib-app-fixture-capability"]], decls: 5, vars: 5, consts: [[1, "card", "border-secondary", "panel", "h-100"], [1, "card-body", "capability-container", "d-flex", "h-100", 2, "overflow-y", "hidden"], ["class", "row m-0 pl-3", 3, "h-100", 4, "ngIf"], ["class", "m-auto", 4, "ngIf"], [1, "row", "m-0", "pl-3"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngIf"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngFor", "ngForOf"], [1, "col", "col-auto", "p-0", "my-3", "mr-3"], [1, "col", "col-auto", "p-0", "my-3", "mr-3", 2, "height", "calc(100% - 2rem)"], [3, "profile", "channel", "wheelIndex", "showContainer"], [1, "m-auto"], [1, "m-auto", 2, "color", "#717171"]], template: function FixtureCapabilityComponent_Template(rf, ctx) { if (rf & 1) {
170
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FixtureCapabilityComponent, selectors: [["lib-app-fixture-capability"]], decls: 6, vars: 6, consts: [[1, "card", "border-secondary", "panel", "h-100"], [1, "card-body", "capability-container", "d-flex", "h-100", 2, "overflow-y", "hidden"], ["class", "row m-0 pl-3", 3, "h-100", 4, "ngIf"], ["class", "m-auto", 4, "ngIf"], [1, "row", "m-0", "pl-3"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngIf"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngFor", "ngForOf"], [1, "col", "col-auto", "p-0", "my-3", "mr-3"], [1, "col", "col-auto", "p-0", "my-3", "mr-3", 2, "height", "calc(100% - 2rem)"], [3, "profile", "channel", "wheelIndex", "showContainer"], [1, "m-auto"], [1, "m-auto", 2, "color", "#717171"]], template: function FixtureCapabilityComponent_Template(rf, ctx) { if (rf & 1) {
151
171
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
152
- i0.ɵɵtemplate(2, FixtureCapabilityComponent_div_2_Template, 8, 8, "div", 2)(3, FixtureCapabilityComponent_div_3_Template, 4, 3, "div", 3)(4, FixtureCapabilityComponent_div_4_Template, 4, 3, "div", 3);
172
+ i0.ɵɵtemplate(2, FixtureCapabilityComponent_div_2_Template, 8, 8, "div", 2)(3, FixtureCapabilityComponent_div_3_Template, 4, 3, "div", 3)(4, FixtureCapabilityComponent_div_4_Template, 4, 3, "div", 3)(5, FixtureCapabilityComponent_div_5_Template, 4, 3, "div", 3);
153
173
  i0.ɵɵelementEnd()();
154
174
  } if (rf & 2) {
155
175
  i0.ɵɵclassProp("card-intro-active", ctx.introService.showStep("capabilities"));
@@ -159,11 +179,13 @@ export class FixtureCapabilityComponent {
159
179
  i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length == 0);
160
180
  i0.ɵɵadvance();
161
181
  i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.fixtures.length == 0);
182
+ i0.ɵɵadvance();
183
+ i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.fixtures.length > 0 && !ctx.hasCapabilityColorOrColorWheel && !ctx.hasCapabilityPanTilt);
162
184
  } }, dependencies: [i5.NgForOf, i5.NgIf, i6.FixtureCapabilityColorComponent, i7.FixtureCapabilityDimmerComponent, i8.FixtureCapabilityPanTiltComponent, i9.FixtureCapabilityColorWheelComponent, i5.KeyValuePipe, i10.TranslatePipe], changeDetection: 0 }); }
163
185
  }
164
186
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FixtureCapabilityComponent, [{
165
187
  type: Component,
166
- args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"presetService.hasCapabilityDimmer()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"presetService.hasCapabilityColorOrColorWheel()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"presetService.hasCapabilityPanTilt()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\">&nbsp;</div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.fixtures.length == 0\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-selected' | translate }}</p>\n </div>\n </div>\n</div>\n" }]
188
+ args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"hasCapabilityDimmer\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"hasCapabilityColorOrColorWheel\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"hasCapabilityPanTilt\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\">&nbsp;</div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.fixtures.length == 0\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-selected' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 &&\n presetService.selectedPreset &&\n presetService.selectedPreset.fixtures.length > 0 &&\n !hasCapabilityColorOrColorWheel &&\n !hasCapabilityPanTilt\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-capabilities-available' | translate }}</p>\n </div>\n </div>\n</div>\n" }]
167
189
  }], () => [{ type: i1.PresetService }, { type: i2.FixtureService }, { type: i0.ChangeDetectorRef }, { type: i3.ProjectService }, { type: i4.IntroService }], null); })();
168
190
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixtureCapabilityComponent, { className: "FixtureCapabilityComponent" }); })();
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0MxRCw4QkFBc0g7SUFDcEgsb0RBQXVFO0lBQ3pFLGlCQUFNOzs7SUFJTiw4QkFBaUk7SUFDL0gsbURBQXFFO0lBQ3ZFLGlCQUFNOzs7SUFHTiw4QkFJQztJQUNDLDREQUswQztJQUM1QyxpQkFBTTs7Ozs7SUFMRixjQUFxQjtJQUdyQixBQURBLEFBREEsQUFEQSxzQ0FBcUIsMkJBQ0Usb0JBQ1AscURBQzZCOzs7SUFLakQsOEJBQXVIO0lBQ3JILHNEQUEyRTtJQUM3RSxpQkFBTTs7O0lBL0JSLDhCQUEwRjtJQWV4RixBQUxBLEFBTkEsaUZBQXNILG9FQU1XLG9FQVNoSTs7SUFVRCxpRkFBdUg7SUFLdkgsOEJB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QUpBLEFBckNBLDJFQUEwRiw4REFxQ2xCLDhEQVN2RTtZQUlMLEFBREUsaUJBQU0sRUFDRjs7WUF2RHlDLDhFQUFpRTtZQUt0RyxlQUFrQztZQUFsQyx1REFBa0M7WUFxQ2xDLGNBQWlEO1lBQWpELHNFQUFpRDtZQUtwRCxjQUdQO1lBSE8sa0tBR1A7OztpRkRsQ2EsMEJBQTBCO2NBTnRDLFNBQVM7MkJBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNOztrRkFFcEMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1wcm9maWxlJztcbmltcG9ydCB7IEZpeHR1cmVXaGVlbFNsb3RUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtd2hlZWwtc2xvdCc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnRyb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnRyby5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLy8gbWFwIGNvbnRhaW5pbmcgdGhlIHByb2ZpbGUgYW5kIHRoZSBjaGFubmVsIG5hbWUgY29udGFpbmluZyB0aGUgd2hlZWxcbiAgY29sb3JXaGVlbENoYW5uZWxzOiBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPiA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gIHByaXZhdGUgZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwcmV2aWV3U2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHVibGljIGludHJvU2VydmljZTogSW50cm9TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRyb1NlcnZpY2Uuc3RlcENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHdoZWVsSW5MaXN0KHdoZWVsczogTWFwPEZpeHR1cmVQcm9maWxlLCBDYWNoZWRGaXh0dXJlQ2hhbm5lbD4sIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlLCBjaGFubmVsOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIHdoZWVscy5mb3JFYWNoKChleGlzdGluZ0NoYW5uZWw6IENhY2hlZEZpeHR1cmVDaGFubmVsLCBleGlzdGluZ1Byb2ZpbGU6IEZpeHR1cmVQcm9maWxlKSA9PiB7XG4gICAgICBpZiAoZXhpc3RpbmdQcm9maWxlLnV1aWQgPT09IHByb2ZpbGUudXVpZCAmJiBleGlzdGluZ0NoYW5uZWwubmFtZSA9PT0gY2hhbm5lbC5uYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xvcldoZWVscygpIHtcbiAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscyA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gICAgaWYgKCF0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByZXNlckZpeHR1cmUgb2YgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVzKSB7XG4gICAgICBjb25zdCBmaXh0dXJlID0gdGhpcy5maXh0dXJlU2VydmljZS5nZXRDYWNoZWRGaXh0dXJlQnlVdWlkKHByZXNlckZpeHR1cmUuZml4dHVyZVV1aWQsIHByZXNlckZpeHR1cmUucGl4ZWxLZXkpO1xuICAgICAgZm9yIChjb25zdCBjaGFubmVsIG9mIGZpeHR1cmUuY2hhbm5lbHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9mIGNoYW5uZWwuY2FwYWJpbGl0aWVzKSB7XG4gICAgICAgICAgaWYgKGNhcGFiaWxpdHkud2hlZWwgJiYgY2FwYWJpbGl0eS53aGVlbFNsb3RzICYmIGNhcGFiaWxpdHkud2hlZWxTbG90cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maXh0dXJlU2VydmljZS53aGVlbEhhc1Nsb3RUeXBlKGNhcGFiaWxpdHkud2hlZWwsIEZpeHR1cmVXaGVlbFNsb3RUeXBlLkNvbG9yKSkge1xuICAgICAgICAgICAgICAvLyBjb2xvciB3aGVlbFxuICAgICAgICAgICAgICBpZiAoIXRoaXMud2hlZWxJbkxpc3QodGhpcy5jb2xvcldoZWVsQ2hhbm5lbHMsIGZpeHR1cmUucHJvZmlsZSwgY2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscy5zZXQoZml4dHVyZS5wcm9maWxlLCBjaGFubmVsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpeHR1cmVTZXJ2aWNlLndoZWVsSGFzU2xvdFR5cGUoY2FwYWJpbGl0eS53aGVlbCwgRml4dHVyZVdoZWVsU2xvdFR5cGUuR29ibykpIHtcbiAgICAgICAgICAgICAgLy8gZ29ibyB3aGVlbFxuICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xvcldoZWVscygpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ0Nocm9tZS8nKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci1zZWNvbmRhcnkgcGFuZWwgaC0xMDBcIiBbY2xhc3MuY2FyZC1pbnRyby1hY3RpdmVdPVwiaW50cm9TZXJ2aWNlLnNob3dTdGVwKCdjYXBhYmlsaXRpZXMnKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGNhcGFiaWxpdHktY29udGFpbmVyIGQtZmxleCBoLTEwMFwiIHN0eWxlPVwib3ZlcmZsb3cteTogaGlkZGVuXCI+XG4gICAgPCEtLSBoLTEwMCBuZWVkcyB0byBiZSBhcHBsaWVkIGluIGNocm9tZSB0byBhdm9pZCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBtYW55IGxheW91dHMgKHJlZmxvd3MpXG4gICAgZHVyaW5nIHNsaWRpbmcuIEJ1dCB0aGUgY2xhc3MgbXVzdCBub3QgYmUgYXBwbGllZCBlLmcuIGluIFNhZmFyaSwgYmVjYXVzZSB0aGUgYm90dG9tIG1hcmdpbiBpcyBub3QgY29ycmVjdFxuICAgIGFueW1vcmUgYWZ0ZXJ3YXJkcy4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIiBjbGFzcz1cInJvdyBtLTAgcGwtM1wiIFtjbGFzcy5oLTEwMF09XCJpc0Nocm9tZSgpXCI+XG4gICAgICA8IS0tIERpbW1lciAtLT5cbiAgICAgIDwhLS0gdGhlIGhlaWdodCBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggbWFueSBsYXlvdXRzIChyZWZsb3dzKVxuICAgICAgaW4gQ2hyb21lIGR1cmluZyBzbGlkaW5nIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eURpbW1lcigpXCIgY2xhc3M9XCJjb2wgY29sLWF1dG8gcC0wIG15LTMgbXItM1wiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMCUgLSAycmVtKVwiPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29sb3IgLS0+XG4gICAgICA8IS0tIEFsc28gc2hvdyBmb3IgY29sb3Igd2hlZWwgZml4dHVyZXMgdG8gYXBwcm94LiB0aGUgY29sb3IgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwicHJlc2V0U2VydmljZS5oYXNDYXBhYmlsaXR5Q29sb3JPckNvbG9yV2hlZWwoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3I+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb2xvciB3aGVlbHMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBjb2xvcldoZWVsQ2hhbm5lbHMgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIlxuICAgICAgICBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIlxuICAgICAgPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3Itd2hlZWxcbiAgICAgICAgICBbcHJvZmlsZV09XCJlbnRyeS5rZXlcIlxuICAgICAgICAgIFtjaGFubmVsXT1cImVudHJ5LnZhbHVlXCJcbiAgICAgICAgICBbd2hlZWxJbmRleF09XCJpXCJcbiAgICAgICAgICBbc2hvd0NvbnRhaW5lcl09XCJjb2xvcldoZWVsQ2hhbm5lbHMuc2l6ZSA+IDFcIlxuICAgICAgICA+PC9saWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci13aGVlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFBhbi9UaWx0IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0PjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGaXggc3BhY2luZyBhdCB0aGUgZW5kIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCI+Jm5ic3A7PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1maXh0dXJlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBwcm9qZWN0U2VydmljZS5wcm9qZWN0LmZpeHR1cmVzLmxlbmd0aCA+IDAgJiYgcHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCAmJiBwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVzLmxlbmd0aCA9PSAwXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJtLWF1dG9cIlxuICAgID5cbiAgICAgIDxwIGNsYXNzPVwibS1hdXRvXCIgc3R5bGU9XCJjb2xvcjogIzcxNzE3MVwiPnt7ICdkZXNpZ25lci5maXh0dXJlLm5vLWZpeHR1cmVzLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0MxRCw4QkFBc0c7SUFDcEcsb0RBQXVFO0lBQ3pFLGlCQUFNOzs7SUFJTiw4QkFBaUg7SUFDL0csbURBQXFFO0lBQ3ZFLGlCQUFNOzs7SUFHTiw4QkFJQztJQUNDLDREQUswQztJQUM1QyxpQkFBTTs7Ozs7SUFMRixjQUFxQjtJQUdyQixBQURBLEFBREEsQUFEQSxzQ0FBcUIsMkJBQ0Usb0JBQ1AscURBQzZCOzs7SUFLakQsOEJBQXVHO0lBQ3JHLHNEQUEyRTtJQUM3RSxpQkFBTTs7O0lBL0JSLDhCQUEwRjtJQWV4RixBQUxBLEFBTkEsaUZBQXNHLG9FQU1XLG9FQVNoSDs7SUFVRCxpRkFBdUc7SUFLdkcsOEJB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R0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDMUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7MkZBN0ZVLDBCQUEwQjtvRUFBMUIsMEJBQTBCO1lDZnJDLEFBREYsOEJBQWlILGFBQzNCO1lBc0RsRixBQVRBLEFBSkEsQUFyQ0EsMkVBQTBGLDhEQXFDbEIsOERBU3ZFLDhEQWFBO1lBSUwsQUFERSxpQkFBTSxFQUNGOztZQXBFeUMsOEVBQWlFO1lBS3RHLGVBQWtDO1lBQWxDLHVEQUFrQztZQXFDbEMsY0FBaUQ7WUFBakQsc0VBQWlEO1lBS3BELGNBR1A7WUFITyxrS0FHUDtZQU1PLGNBT1A7WUFQTyxxT0FPUDs7O2lGRC9DYSwwQkFBMEI7Y0FOdEMsU0FBUzsyQkFDRSw0QkFBNEIsbUJBR3JCLHVCQUF1QixDQUFDLE1BQU07O2tGQUVwQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FjaGVkRml4dHVyZUNoYW5uZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FjaGVkLWZpeHR1cmUtY2hhbm5lbCc7XG5pbXBvcnQgeyBGaXh0dXJlUHJvZmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9maXh0dXJlLXByb2ZpbGUnO1xuaW1wb3J0IHsgRml4dHVyZVdoZWVsU2xvdFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS13aGVlbC1zbG90JztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IEludHJvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ludHJvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHknLFxuICB0ZW1wbGF0ZVVybDogJy4vZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZpeHR1cmVDYXBhYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGZpeHR1cmVTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcHJldmlld1NlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAvLyBtYXAgY29udGFpbmluZyB0aGUgcHJvZmlsZSBhbmQgdGhlIGNoYW5uZWwgbmFtZSBjb250YWluaW5nIHRoZSB3aGVlbFxuICBjb2xvcldoZWVsQ2hhbm5lbHM6IE1hcDxGaXh0dXJlUHJvZmlsZSwgQ2FjaGVkRml4dHVyZUNoYW5uZWw+ID0gbmV3IE1hcDxGaXh0dXJlUHJvZmlsZSwgQ2FjaGVkRml4dHVyZUNoYW5uZWw+KCk7XG4gIGhhc0NhcGFiaWxpdHlEaW1tZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaGFzQ2FwYWJpbGl0eUNvbG9yT3JDb2xvcldoZWVsOiBib29sZWFuID0gZmFsc2U7XG4gIGhhc0NhcGFiaWxpdHlQYW5UaWx0OiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZSxcbiAgICBwdWJsaWMgaW50cm9TZXJ2aWNlOiBJbnRyb1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucHJldmlld1NlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld1NlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmludHJvU2VydmljZS5zdGVwQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucHJldmlld1NlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2hlZWxJbkxpc3Qod2hlZWxzOiBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPiwgcHJvZmlsZTogRml4dHVyZVByb2ZpbGUsIGNoYW5uZWw6IENhY2hlZEZpeHR1cmVDaGFubmVsKSB7XG4gICAgd2hlZWxzLmZvckVhY2goKGV4aXN0aW5nQ2hhbm5lbDogQ2FjaGVkRml4dHVyZUNoYW5uZWwsIGV4aXN0aW5nUHJvZmlsZTogRml4dHVyZVByb2ZpbGUpID0+IHtcbiAgICAgIGlmIChleGlzdGluZ1Byb2ZpbGUudXVpZCA9PT0gcHJvZmlsZS51dWlkICYmIGV4aXN0aW5nQ2hhbm5lbC5uYW1lID09PSBjaGFubmVsLm5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbG9yV2hlZWxzKCkge1xuICAgIHRoaXMuY29sb3JXaGVlbENoYW5uZWxzID0gbmV3IE1hcDxGaXh0dXJlUHJvZmlsZSwgQ2FjaGVkRml4dHVyZUNoYW5uZWw+KCk7XG5cbiAgICBpZiAoIXRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJlc2VyRml4dHVyZSBvZiB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQuZml4dHVyZXMpIHtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSB0aGlzLmZpeHR1cmVTZXJ2aWNlLmdldENhY2hlZEZpeHR1cmVCeVV1aWQocHJlc2VyRml4dHVyZS5maXh0dXJlVXVpZCwgcHJlc2VyRml4dHVyZS5waXhlbEtleSk7XG4gICAgICBmb3IgKGNvbnN0IGNoYW5uZWwgb2YgZml4dHVyZS5jaGFubmVscykge1xuICAgICAgICBmb3IgKGNvbnN0IGNhcGFiaWxpdHkgb2YgY2hhbm5lbC5jYXBhYmlsaXRpZXMpIHtcbiAgICAgICAgICBpZiAoY2FwYWJpbGl0eS53aGVlbCAmJiBjYXBhYmlsaXR5LndoZWVsU2xvdHMgJiYgY2FwYWJpbGl0eS53aGVlbFNsb3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZpeHR1cmVTZXJ2aWNlLndoZWVsSGFzU2xvdFR5cGUoY2FwYWJpbGl0eS53aGVlbCwgRml4dHVyZVdoZWVsU2xvdFR5cGUuQ29sb3IpKSB7XG4gICAgICAgICAgICAgIC8vIGNvbG9yIHdoZWVsXG4gICAgICAgICAgICAgIGlmICghdGhpcy53aGVlbEluTGlzdCh0aGlzLmNvbG9yV2hlZWxDaGFubmVscywgZml4dHVyZS5wcm9maWxlLCBjaGFubmVsKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sb3JXaGVlbENoYW5uZWxzLnNldChmaXh0dXJlLnByb2ZpbGUsIGNoYW5uZWwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZml4dHVyZVNlcnZpY2Uud2hlZWxIYXNTbG90VHlwZShjYXBhYmlsaXR5LndoZWVsLCBGaXh0dXJlV2hlZWxTbG90VHlwZS5Hb2JvKSkge1xuICAgICAgICAgICAgICAvLyBnb2JvIHdoZWVsXG4gICAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNhcGFiaWxpdGllcygpIHtcbiAgICB0aGlzLmhhc0NhcGFiaWxpdHlEaW1tZXIgPSB0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eURpbW1lcigpO1xuICAgIHRoaXMuaGFzQ2FwYWJpbGl0eUNvbG9yT3JDb2xvcldoZWVsID0gdGhpcy5wcmVzZXRTZXJ2aWNlLmhhc0NhcGFiaWxpdHlDb2xvck9yQ29sb3JXaGVlbCgpO1xuICAgIHRoaXMuaGFzQ2FwYWJpbGl0eVBhblRpbHQgPSB0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlKCkge1xuICAgIHRoaXMudXBkYXRlQ29sb3JXaGVlbHMoKTtcbiAgICB0aGlzLnVwZGF0ZUNhcGFiaWxpdGllcygpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ0Nocm9tZS8nKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci1zZWNvbmRhcnkgcGFuZWwgaC0xMDBcIiBbY2xhc3MuY2FyZC1pbnRyby1hY3RpdmVdPVwiaW50cm9TZXJ2aWNlLnNob3dTdGVwKCdjYXBhYmlsaXRpZXMnKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGNhcGFiaWxpdHktY29udGFpbmVyIGQtZmxleCBoLTEwMFwiIHN0eWxlPVwib3ZlcmZsb3cteTogaGlkZGVuXCI+XG4gICAgPCEtLSBoLTEwMCBuZWVkcyB0byBiZSBhcHBsaWVkIGluIGNocm9tZSB0byBhdm9pZCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBtYW55IGxheW91dHMgKHJlZmxvd3MpXG4gICAgZHVyaW5nIHNsaWRpbmcuIEJ1dCB0aGUgY2xhc3MgbXVzdCBub3QgYmUgYXBwbGllZCBlLmcuIGluIFNhZmFyaSwgYmVjYXVzZSB0aGUgYm90dG9tIG1hcmdpbiBpcyBub3QgY29ycmVjdFxuICAgIGFueW1vcmUgYWZ0ZXJ3YXJkcy4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIiBjbGFzcz1cInJvdyBtLTAgcGwtM1wiIFtjbGFzcy5oLTEwMF09XCJpc0Nocm9tZSgpXCI+XG4gICAgICA8IS0tIERpbW1lciAtLT5cbiAgICAgIDwhLS0gdGhlIGhlaWdodCBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggbWFueSBsYXlvdXRzIChyZWZsb3dzKVxuICAgICAgaW4gQ2hyb21lIGR1cmluZyBzbGlkaW5nIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImhhc0NhcGFiaWxpdHlEaW1tZXJcIiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwJSAtIDJyZW0pXCI+XG4gICAgICAgIDxsaWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1kaW1tZXI+PC9saWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1kaW1tZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb2xvciAtLT5cbiAgICAgIDwhLS0gQWxzbyBzaG93IGZvciBjb2xvciB3aGVlbCBmaXh0dXJlcyB0byBhcHByb3guIHRoZSBjb2xvciAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJoYXNDYXBhYmlsaXR5Q29sb3JPckNvbG9yV2hlZWxcIiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCIgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwJSAtIDJyZW0pXCI+XG4gICAgICAgIDxsaWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvcj48L2xpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29sb3Igd2hlZWxzIC0tPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgZW50cnkgb2YgY29sb3JXaGVlbENoYW5uZWxzIHwga2V5dmFsdWU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCJcbiAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IGNhbGMoMTAwJSAtIDJyZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yLXdoZWVsXG4gICAgICAgICAgW3Byb2ZpbGVdPVwiZW50cnkua2V5XCJcbiAgICAgICAgICBbY2hhbm5lbF09XCJlbnRyeS52YWx1ZVwiXG4gICAgICAgICAgW3doZWVsSW5kZXhdPVwiaVwiXG4gICAgICAgICAgW3Nob3dDb250YWluZXJdPVwiY29sb3JXaGVlbENoYW5uZWxzLnNpemUgPiAxXCJcbiAgICAgICAgPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3Itd2hlZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBQYW4vVGlsdCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJoYXNDYXBhYmlsaXR5UGFuVGlsdFwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0PjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGaXggc3BhY2luZyBhdCB0aGUgZW5kIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCI+Jm5ic3A7PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1maXh0dXJlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBwcm9qZWN0U2VydmljZS5wcm9qZWN0LmZpeHR1cmVzLmxlbmd0aCA+IDAgJiYgcHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCAmJiBwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVzLmxlbmd0aCA9PSAwXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJtLWF1dG9cIlxuICAgID5cbiAgICAgIDxwIGNsYXNzPVwibS1hdXRvXCIgc3R5bGU9XCJjb2xvcjogIzcxNzE3MVwiPnt7ICdkZXNpZ25lci5maXh0dXJlLm5vLWZpeHR1cmVzLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIHByb2plY3RTZXJ2aWNlLnByb2plY3QuZml4dHVyZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICBwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0ICYmXG4gICAgICAgIHByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQuZml4dHVyZXMubGVuZ3RoID4gMCAmJlxuICAgICAgICAhaGFzQ2FwYWJpbGl0eUNvbG9yT3JDb2xvcldoZWVsICYmXG4gICAgICAgICFoYXNDYXBhYmlsaXR5UGFuVGlsdFxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwibS1hdXRvXCJcbiAgICA+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1jYXBhYmlsaXRpZXMtYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -67,18 +67,61 @@ export class FixtureCapability {
67
67
  return;
68
68
  }
69
69
  this.type = FixtureCapabilityType[data.type];
70
- this.angleStart = data.angleStart;
71
- this.angleEnd = data.angleEnd;
72
70
  this.color = data.color;
73
71
  if (data.dmxRange) {
74
72
  this.dmxRange = data.dmxRange;
75
73
  }
76
74
  this.wheel = data.wheel;
77
75
  this.slotNumber = data.slotNumber;
76
+ this.comment = data.comment;
77
+ this.soundControlled = data.soundControlled;
78
+ this.shutterEffect = data.shutterEffect;
79
+ this.randomTiming = data.randomTiming;
80
+ this.angle = data.angle;
81
+ this.angleStart = data.angleStart;
82
+ this.angleEnd = data.angleEnd;
83
+ this.speed = data.speed;
84
+ this.speedStart = data.speedStart;
85
+ this.speedEnd = data.speedEnd;
78
86
  this.brightness = data.brightness;
79
87
  this.brightnessStart = data.brightnessStart;
80
88
  this.brightnessEnd = data.brightnessEnd;
81
- this.comment = data.comment;
89
+ this.duration = data.duration;
90
+ this.durationStart = data.durationStart;
91
+ this.durationEnd = data.durationEnd;
92
+ this.colorTemperature = data.colorTemperature;
93
+ this.colorTemperatureStart = data.colorTemperatureStart;
94
+ this.colorTemperatureEnd = data.colorTemperatureEnd;
95
+ this.soundSensitivity = data.soundSensitivity;
96
+ this.soundSensitivityStart = data.soundSensitivityStart;
97
+ this.soundSensitivityEnd = data.soundSensitivityEnd;
98
+ this.horizontalAngle = data.horizontalAngle;
99
+ this.horizontalAngleStart = data.horizontalAngleStart;
100
+ this.horizontalAngleEnd = data.horizontalAngleEnd;
101
+ this.verticalAngle = data.verticalAngle;
102
+ this.verticalAngleStart = data.verticalAngleStart;
103
+ this.verticalAngleEnd = data.verticalAngleEnd;
104
+ this.distance = data.distance;
105
+ this.distanceStart = data.distanceStart;
106
+ this.distanceEnd = data.distanceEnd;
107
+ this.openPercent = data.openPercent;
108
+ this.openPercentStart = data.openPercentStart;
109
+ this.openPercentEnd = data.openPercentEnd;
110
+ this.frostIntensity = data.frostIntensity;
111
+ this.frostIntensityStart = data.frostIntensityStart;
112
+ this.frostIntensityEnd = data.frostIntensityEnd;
113
+ this.fogOutput = data.fogOutput;
114
+ this.fogOutputStart = data.fogOutputStart;
115
+ this.fogOutputEnd = data.fogOutputEnd;
116
+ this.time = data.time;
117
+ this.timeStart = data.timeStart;
118
+ this.timeEnd = data.timeEnd;
119
+ this.insertion = data.insertion;
120
+ this.insertionStart = data.insertionStart;
121
+ this.insertionEnd = data.insertionEnd;
122
+ this.colors = data.colors;
123
+ this.colorsStart = data.colorsStart;
124
+ this.colorsEnd = data.colorsEnd;
82
125
  }
83
126
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1jYXBhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQTRDWDtBQTVDRCxXQUFZLHFCQUFxQjtJQUMvQixrREFBeUIsQ0FBQTtJQUN6Qix3REFBK0IsQ0FBQTtJQUMvQixvREFBMkIsQ0FBQTtJQUMzQiwwREFBaUMsQ0FBQTtJQUNqQyxnREFBdUIsQ0FBQTtJQUN2QiwwREFBaUMsQ0FBQTtJQUNqQyxvREFBMkIsQ0FBQTtJQUMzQiw4REFBcUMsQ0FBQTtJQUNyQyxvQ0FBVyxDQUFBO0lBQ1gsd0RBQStCLENBQUE7SUFDL0Isc0NBQWEsQ0FBQTtJQUNiLDBEQUFpQyxDQUFBO0lBQ2pDLHNEQUE2QixDQUFBO0lBQzdCLGdEQUF1QixDQUFBO0lBQ3ZCLGtEQUF5QixDQUFBO0lBQ3pCLGdFQUF1QyxDQUFBO0lBQ3ZDLHdEQUErQixDQUFBO0lBQy9CLG9EQUEyQixDQUFBO0lBQzNCLDBEQUFpQyxDQUFBO0lBQ2pDLDREQUFtQyxDQUFBO0lBQ25DLDhEQUFxQyxDQUFBO0lBQ3JDLHdDQUFlLENBQUE7SUFDZixzQ0FBYSxDQUFBO0lBQ2Isc0NBQWEsQ0FBQTtJQUNiLGtEQUF5QixDQUFBO0lBQ3pCLHdDQUFlLENBQUE7SUFDZixvREFBMkIsQ0FBQTtJQUMzQix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7SUFDL0IsMERBQWlDLENBQUE7SUFDakMsd0RBQStCLENBQUE7SUFDL0Isb0VBQTJDLENBQUE7SUFDM0Msb0NBQVcsQ0FBQTtJQUNYLGdEQUF1QixDQUFBO0lBQ3ZCLDRDQUFtQixDQUFBO0lBQ25CLGdEQUF1QixDQUFBO0lBQ3ZCLDhDQUFxQixDQUFBO0lBQ3JCLHdDQUFlLENBQUE7SUFDZixzQ0FBYSxDQUFBO0lBQ2Isb0RBQTJCLENBQUE7SUFDM0IsNENBQW1CLENBQUE7SUFDbkIsMENBQWlCLENBQUE7SUFDakIsc0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQTVDVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBNENoQztBQUVELE1BQU0sQ0FBTixJQUFZLHNCQWNYO0FBZEQsV0FBWSxzQkFBc0I7SUFDaEMscUNBQVcsQ0FBQTtJQUNYLHlDQUFlLENBQUE7SUFDZix1Q0FBYSxDQUFBO0lBQ2IsdUNBQWEsQ0FBQTtJQUNiLDZDQUFtQixDQUFBO0lBQ25CLDJDQUFpQixDQUFBO0lBQ2pCLHlDQUFlLENBQUE7SUFDZix5Q0FBZSxDQUFBO0lBQ2YsbURBQTJCLENBQUE7SUFDM0IsbURBQTJCLENBQUE7SUFDM0IsbUNBQVMsQ0FBQTtJQUNULHVDQUFhLENBQUE7SUFDYiwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBZFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQWNqQztBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFjNUIsWUFBWSxJQUFVO1FBVHRCLGFBQVEsR0FBYSxFQUFFLENBQUM7UUFVdEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZpeHR1cmVDYXBhYmlsaXR5VHlwZSB7XG4gIE5vRnVuY3Rpb24gPSAnTm9GdW5jdGlvbicsXG4gIFNodXR0ZXJTdHJvYmUgPSAnU2h1dHRlclN0cm9iZScsXG4gIFN0cm9iZVNwZWVkID0gJ1N0cm9iZVNwZWVkJyxcbiAgU3Ryb2JlRHVyYXRpb24gPSAnU3Ryb2JlRHVyYXRpb24nLFxuICBJbnRlbnNpdHkgPSAnSW50ZW5zaXR5JyxcbiAgQ29sb3JJbnRlbnNpdHkgPSAnQ29sb3JJbnRlbnNpdHknLFxuICBDb2xvclByZXNldCA9ICdDb2xvclByZXNldCcsXG4gIENvbG9yVGVtcGVyYXR1cmUgPSAnQ29sb3JUZW1wZXJhdHVyZScsXG4gIFBhbiA9ICdQYW4nLFxuICBQYW5Db250aW51b3VzID0gJ1BhbkNvbnRpbnVvdXMnLFxuICBUaWx0ID0gJ1RpbHQnLFxuICBUaWx0Q29udGludW91cyA9ICdUaWx0Q29udGludW91cycsXG4gIFBhblRpbHRTcGVlZCA9ICdQYW5UaWx0U3BlZWQnLFxuICBXaGVlbFNsb3QgPSAnV2hlZWxTbG90JyxcbiAgV2hlZWxTaGFrZSA9ICdXaGVlbFNoYWtlJyxcbiAgV2hlZWxTbG90Um90YXRpb24gPSAnV2hlZWxTbG90Um90YXRpb24nLFxuICBXaGVlbFJvdGF0aW9uID0gJ1doZWVsUm90YXRpb24nLFxuICBFZmZlY3RTcGVlZCA9ICdFZmZlY3RTcGVlZCcsXG4gIEVmZmVjdER1cmF0aW9uID0gJ0VmZmVjdER1cmF0aW9uJyxcbiAgRWZmZWN0UGFyYW1ldGVyID0gJ0VmZmVjdFBhcmFtZXRlcicsXG4gIFNvdW5kU2Vuc2l0aXZpdHkgPSAnU291bmRTZW5zaXRpdml0eScsXG4gIEZvY3VzID0gJ0ZvY3VzJyxcbiAgWm9vbSA9ICdab29tJyxcbiAgSXJpcyA9ICdJcmlzJyxcbiAgSXJpc0VmZmVjdCA9ICdJcmlzRWZmZWN0JyxcbiAgRnJvc3QgPSAnRnJvc3QnLFxuICBGcm9zdEVmZmVjdCA9ICdGcm9zdEVmZmVjdCcsXG4gIFByaXNtID0gJ1ByaXNtJyxcbiAgUHJpc21Sb3RhdGlvbiA9ICdQcmlzbVJvdGF0aW9uJyxcbiAgQmxhZGVJbnNlcnRpb24gPSAnQmxhZGVJbnNlcnRpb24nLFxuICBCbGFkZVJvdGF0aW9uID0gJ0JsYWRlUm90YXRpb24nLFxuICBCbGFkZVN5c3RlbVJvdGF0aW9uID0gJ0JsYWRlU3lzdGVtUm90YXRpb24nLFxuICBGb2cgPSAnRm9nJyxcbiAgRm9nT3V0cHV0ID0gJ0ZvZ091dHB1dCcsXG4gIEZvZ1R5cGUgPSAnRm9nVHlwZScsXG4gIEJlYW1BbmdsZSA9ICdCZWFtQW5nbGUnLFxuICBSb3RhdGlvbiA9ICdSb3RhdGlvbicsXG4gIFNwZWVkID0gJ1NwZWVkJyxcbiAgVGltZSA9ICdUaW1lJyxcbiAgTWFpbnRlbmFuY2UgPSAnTWFpbnRlbmFuY2UnLFxuICBHZW5lcmljID0gJ0dlbmVyaWMnLFxuICBFZmZlY3QgPSAnRWZmZWN0JyxcbiAgQmVhbVBvc2l0aW9uID0gJ0JlYW1Qb3NpdGlvbicsXG59XG5cbmV4cG9ydCBlbnVtIEZpeHR1cmVDYXBhYmlsaXR5Q29sb3Ige1xuICBSZWQgPSAnUmVkJyxcbiAgR3JlZW4gPSAnR3JlZW4nLFxuICBCbHVlID0gJ0JsdWUnLFxuICBDeWFuID0gJ0N5YW4nLFxuICBNYWdlbnRhID0gJ01hZ2VudGEnLFxuICBZZWxsb3cgPSAnWWVsbG93JyxcbiAgQW1iZXIgPSAnQW1iZXInLFxuICBXaGl0ZSA9ICdXaGl0ZScsXG4gICdXYXJtIFdoaXRlJyA9ICdXYXJtIFdoaXRlJyxcbiAgJ0NvbGQgV2hpdGUnID0gJ0NvbGQgV2hpdGUnLFxuICBVViA9ICdVVicsXG4gIExpbWUgPSAnTGltZScsXG4gIEluZGlnbyA9ICdJbmRpZ28nLFxufVxuXG5leHBvcnQgY2xhc3MgRml4dHVyZUNhcGFiaWxpdHkge1xuICB0eXBlOiBGaXh0dXJlQ2FwYWJpbGl0eVR5cGU7XG4gIGFuZ2xlU3RhcnQ6IHN0cmluZztcbiAgYW5nbGVFbmQ6IHN0cmluZztcbiAgY29sb3I6IEZpeHR1cmVDYXBhYmlsaXR5Q29sb3I7XG4gIGRteFJhbmdlOiBudW1iZXJbXSA9IFtdO1xuICAvLyBtYXkgYmUgZW1wdHkuIGluIHRoaXMgY2FzZSwgdGhlIGNoYW5uZWwgbmFtZSBwb2ludHMgdG8gdGhlIHdoZWVsXG4gIHdoZWVsOiBhbnk7XG4gIHNsb3ROdW1iZXI6IG51bWJlcjtcbiAgYnJpZ2h0bmVzczogc3RyaW5nO1xuICBicmlnaHRuZXNzU3RhcnQ6IHN0cmluZztcbiAgYnJpZ2h0bmVzc0VuZDogc3RyaW5nO1xuICBjb21tZW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZVtkYXRhLnR5cGUgYXMgc3RyaW5nXTtcbiAgICB0aGlzLmFuZ2xlU3RhcnQgPSBkYXRhLmFuZ2xlU3RhcnQ7XG4gICAgdGhpcy5hbmdsZUVuZCA9IGRhdGEuYW5nbGVFbmQ7XG4gICAgdGhpcy5jb2xvciA9IGRhdGEuY29sb3I7XG4gICAgaWYgKGRhdGEuZG14UmFuZ2UpIHtcbiAgICAgIHRoaXMuZG14UmFuZ2UgPSBkYXRhLmRteFJhbmdlO1xuICAgIH1cbiAgICB0aGlzLndoZWVsID0gZGF0YS53aGVlbDtcbiAgICB0aGlzLnNsb3ROdW1iZXIgPSBkYXRhLnNsb3ROdW1iZXI7XG4gICAgdGhpcy5icmlnaHRuZXNzID0gZGF0YS5icmlnaHRuZXNzO1xuICAgIHRoaXMuYnJpZ2h0bmVzc1N0YXJ0ID0gZGF0YS5icmlnaHRuZXNzU3RhcnQ7XG4gICAgdGhpcy5icmlnaHRuZXNzRW5kID0gZGF0YS5icmlnaHRuZXNzRW5kO1xuICAgIHRoaXMuY29tbWVudCA9IGRhdGEuY29tbWVudDtcbiAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1jYXBhYmlsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHFCQTRDWDtBQTVDRCxXQUFZLHFCQUFxQjtJQUMvQixrREFBeUIsQ0FBQTtJQUN6Qix3REFBK0IsQ0FBQTtJQUMvQixvREFBMkIsQ0FBQTtJQUMzQiwwREFBaUMsQ0FBQTtJQUNqQyxnREFBdUIsQ0FBQTtJQUN2QiwwREFBaUMsQ0FBQTtJQUNqQyxvREFBMkIsQ0FBQTtJQUMzQiw4REFBcUMsQ0FBQTtJQUNyQyxvQ0FBVyxDQUFBO0lBQ1gsd0RBQStCLENBQUE7SUFDL0Isc0NBQWEsQ0FBQTtJQUNiLDBEQUFpQyxDQUFBO0lBQ2pDLHNEQUE2QixDQUFBO0lBQzdCLGdEQUF1QixDQUFBO0lBQ3ZCLGtEQUF5QixDQUFBO0lBQ3pCLGdFQUF1QyxDQUFBO0lBQ3ZDLHdEQUErQixDQUFBO0lBQy9CLG9EQUEyQixDQUFBO0lBQzNCLDBEQUFpQyxDQUFBO0lBQ2pDLDREQUFtQyxDQUFBO0lBQ25DLDhEQUFxQyxDQUFBO0lBQ3JDLHdDQUFlLENBQUE7SUFDZixzQ0FBYSxDQUFBO0lBQ2Isc0NBQWEsQ0FBQTtJQUNiLGtEQUF5QixDQUFBO0lBQ3pCLHdDQUFlLENBQUE7SUFDZixvREFBMkIsQ0FBQTtJQUMzQix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7SUFDL0IsMERBQWlDLENBQUE7SUFDakMsd0RBQStCLENBQUE7SUFDL0Isb0VBQTJDLENBQUE7SUFDM0Msb0NBQVcsQ0FBQTtJQUNYLGdEQUF1QixDQUFBO0lBQ3ZCLDRDQUFtQixDQUFBO0lBQ25CLGdEQUF1QixDQUFBO0lBQ3ZCLDhDQUFxQixDQUFBO0lBQ3JCLHdDQUFlLENBQUE7SUFDZixzQ0FBYSxDQUFBO0lBQ2Is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Q0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRml4dHVyZUNhcGFiaWxpdHlUeXBlIHtcbiAgTm9GdW5jdGlvbiA9ICdOb0Z1bmN0aW9uJyxcbiAgU2h1dHRlclN0cm9iZSA9ICdTaHV0dGVyU3Ryb2JlJyxcbiAgU3Ryb2JlU3BlZWQgPSAnU3Ryb2JlU3BlZWQnLFxuICBTdHJvYmVEdXJhdGlvbiA9ICdTdHJvYmVEdXJhdGlvbicsXG4gIEludGVuc2l0eSA9ICdJbnRlbnNpdHknLFxuICBDb2xvckludGVuc2l0eSA9ICdDb2xvckludGVuc2l0eScsXG4gIENvbG9yUHJlc2V0ID0gJ0NvbG9yUHJlc2V0JyxcbiAgQ29sb3JUZW1wZXJhdHVyZSA9ICdDb2xvclRlbXBlcmF0dXJlJyxcbiAgUGFuID0gJ1BhbicsXG4gIFBhbkNvbnRpbnVvdXMgPSAnUGFuQ29udGludW91cycsXG4gIFRpbHQgPSAnVGlsdCcsXG4gIFRpbHRDb250aW51b3VzID0gJ1RpbHRDb250aW51b3VzJyxcbiAgUGFuVGlsdFNwZWVkID0gJ1BhblRpbHRTcGVlZCcsXG4gIFdoZWVsU2xvdCA9ICdXaGVlbFNsb3QnLFxuICBXaGVlbFNoYWtlID0gJ1doZWVsU2hha2UnLFxuICBXaGVlbFNsb3RSb3RhdGlvbiA9ICdXaGVlbFNsb3RSb3RhdGlvbicsXG4gIFdoZWVsUm90YXRpb24gPSAnV2hlZWxSb3RhdGlvbicsXG4gIEVmZmVjdFNwZWVkID0gJ0VmZmVjdFNwZWVkJyxcbiAgRWZmZWN0RHVyYXRpb24gPSAnRWZmZWN0RHVyYXRpb24nLFxuICBFZmZlY3RQYXJhbWV0ZXIgPSAnRWZmZWN0UGFyYW1ldGVyJyxcbiAgU291bmRTZW5zaXRpdml0eSA9ICdTb3VuZFNlbnNpdGl2aXR5JyxcbiAgRm9jdXMgPSAnRm9jdXMnLFxuICBab29tID0gJ1pvb20nLFxuICBJcmlzID0gJ0lyaXMnLFxuICBJcmlzRWZmZWN0ID0gJ0lyaXNFZmZlY3QnLFxuICBGcm9zdCA9ICdGcm9zdCcsXG4gIEZyb3N0RWZmZWN0ID0gJ0Zyb3N0RWZmZWN0JyxcbiAgUHJpc20gPSAnUHJpc20nLFxuICBQcmlzbVJvdGF0aW9uID0gJ1ByaXNtUm90YXRpb24nLFxuICBCbGFkZUluc2VydGlvbiA9ICdCbGFkZUluc2VydGlvbicsXG4gIEJsYWRlUm90YXRpb24gPSAnQmxhZGVSb3RhdGlvbicsXG4gIEJsYWRlU3lzdGVtUm90YXRpb24gPSAnQmxhZGVTeXN0ZW1Sb3RhdGlvbicsXG4gIEZvZyA9ICdGb2cnLFxuICBGb2dPdXRwdXQgPSAnRm9nT3V0cHV0JyxcbiAgRm9nVHlwZSA9ICdGb2dUeXBlJyxcbiAgQmVhbUFuZ2xlID0gJ0JlYW1BbmdsZScsXG4gIFJvdGF0aW9uID0gJ1JvdGF0aW9uJyxcbiAgU3BlZWQgPSAnU3BlZWQnLFxuICBUaW1lID0gJ1RpbWUnLFxuICBNYWludGVuYW5jZSA9ICdNYWludGVuYW5jZScsXG4gIEdlbmVyaWMgPSAnR2VuZXJpYycsXG4gIEVmZmVjdCA9ICdFZmZlY3QnLFxuICBCZWFtUG9zaXRpb24gPSAnQmVhbVBvc2l0aW9uJyxcbn1cblxuZXhwb3J0IGVudW0gRml4dHVyZUNhcGFiaWxpdHlDb2xvciB7XG4gIFJlZCA9ICdSZWQnLFxuICBHcmVlbiA9ICdHcmVlbicsXG4gIEJsdWUgPSAnQmx1ZScsXG4gIEN5YW4gPSAnQ3lhbicsXG4gIE1hZ2VudGEgPSAnTWFnZW50YScsXG4gIFllbGxvdyA9ICdZZWxsb3cnLFxuICBBbWJlciA9ICdBbWJlcicsXG4gIFdoaXRlID0gJ1doaXRlJyxcbiAgJ1dhcm0gV2hpdGUnID0gJ1dhcm0gV2hpdGUnLFxuICAnQ29sZCBXaGl0ZScgPSAnQ29sZCBXaGl0ZScsXG4gIFVWID0gJ1VWJyxcbiAgTGltZSA9ICdMaW1lJyxcbiAgSW5kaWdvID0gJ0luZGlnbycsXG59XG5cbmV4cG9ydCBjbGFzcyBGaXh0dXJlQ2FwYWJpbGl0eSB7XG4gIHR5cGU6IEZpeHR1cmVDYXBhYmlsaXR5VHlwZTtcbiAgY29sb3I6IEZpeHR1cmVDYXBhYmlsaXR5Q29sb3I7XG4gIGRteFJhbmdlOiBudW1iZXJbXSA9IFtdO1xuICBzbG90TnVtYmVyOiBudW1iZXI7XG4gIGNvbW1lbnQ6IHN0cmluZztcbiAgc291bmRDb250cm9sbGVkOiBib29sZWFuO1xuICBzaHV0dGVyRWZmZWN0OiBzdHJpbmc7XG4gIHJhbmRvbVRpbWluZzogYm9vbGVhbjtcblxuICAvLyBtYXkgYmUgZW1wdHkuIGluIHRoaXMgY2FzZSwgdGhlIGNoYW5uZWwgbmFtZSBwb2ludHMgdG8gdGhlIHdoZWVsXG4gIHdoZWVsOiBhbnk7XG5cbiAgYW5nbGU6IHN0cmluZztcbiAgYW5nbGVTdGFydDogc3RyaW5nO1xuICBhbmdsZUVuZDogc3RyaW5nO1xuICBzcGVlZDogc3RyaW5nO1xuICBzcGVlZFN0YXJ0OiBzdHJpbmc7XG4gIHNwZWVkRW5kOiBzdHJpbmc7XG4gIGJyaWdodG5lc3M6IHN0cmluZztcbiAgYnJpZ2h0bmVzc1N0YXJ0OiBzdHJpbmc7XG4gIGJyaWdodG5lc3NFbmQ6IHN0cmluZztcbiAgZHVyYXRpb246IHN0cmluZztcbiAgZHVyYXRpb25TdGFydDogc3RyaW5nO1xuICBkdXJhdGlvbkVuZDogc3RyaW5nO1xuICBjb2xvclRlbXBlcmF0dXJlOiBzdHJpbmc7XG4gIGNvbG9yVGVtcGVyYXR1cmVTdGFydDogc3RyaW5nO1xuICBjb2xvclRlbXBlcmF0dXJlRW5kOiBzdHJpbmc7XG4gIHNvdW5kU2Vuc2l0aXZpdHk6IHN0cmluZztcbiAgc291bmRTZW5zaXRpdml0eVN0YXJ0OiBzdHJpbmc7XG4gIHNvdW5kU2Vuc2l0aXZpdHlFbmQ6IHN0cmluZztcbiAgaG9yaXpvbnRhbEFuZ2xlOiBzdHJpbmc7XG4gIGhvcml6b250YWxBbmdsZVN0YXJ0OiBzdHJpbmc7XG4gIGhvcml6b250YWxBbmdsZUVuZDogc3RyaW5nO1xuICB2ZXJ0aWNhbEFuZ2xlOiBzdHJpbmc7XG4gIHZlcnRpY2FsQW5nbGVTdGFydDogc3RyaW5nO1xuICB2ZXJ0aWNhbEFuZ2xlRW5kOiBzdHJpbmc7XG4gIGRpc3RhbmNlOiBzdHJpbmc7XG4gIGRpc3RhbmNlU3RhcnQ6IHN0cmluZztcbiAgZGlzdGFuY2VFbmQ6IHN0cmluZztcbiAgb3BlblBlcmNlbnQ6IHN0cmluZztcbiAgb3BlblBlcmNlbnRTdGFydDogc3RyaW5nO1xuICBvcGVuUGVyY2VudEVuZDogc3RyaW5nO1xuICBmcm9zdEludGVuc2l0eTogc3RyaW5nO1xuICBmcm9zdEludGVuc2l0eVN0YXJ0OiBzdHJpbmc7XG4gIGZyb3N0SW50ZW5zaXR5RW5kOiBzdHJpbmc7XG4gIGZvZ091dHB1dDogc3RyaW5nO1xuICBmb2dPdXRwdXRTdGFydDogc3RyaW5nO1xuICBmb2dPdXRwdXRFbmQ6IHN0cmluZztcbiAgdGltZTogc3RyaW5nO1xuICB0aW1lU3RhcnQ6IHN0cmluZztcbiAgdGltZUVuZDogc3RyaW5nO1xuICBpbnNlcnRpb246IHN0cmluZztcbiAgaW5zZXJ0aW9uU3RhcnQ6IHN0cmluZztcbiAgaW5zZXJ0aW9uRW5kOiBzdHJpbmc7XG4gIGNvbG9yczogc3RyaW5nW107XG4gIGNvbG9yc1N0YXJ0OiBzdHJpbmdbXTtcbiAgY29sb3JzRW5kOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50eXBlID0gRml4dHVyZUNhcGFiaWxpdHlUeXBlW2RhdGEudHlwZSBhcyBzdHJpbmddO1xuICAgIHRoaXMuY29sb3IgPSBkYXRhLmNvbG9yO1xuICAgIGlmIChkYXRhLmRteFJhbmdlKSB7XG4gICAgICB0aGlzLmRteFJhbmdlID0gZGF0YS5kbXhSYW5nZTtcbiAgICB9XG4gICAgdGhpcy53aGVlbCA9IGRhdGEud2hlZWw7XG4gICAgdGhpcy5zbG90TnVtYmVyID0gZGF0YS5zbG90TnVtYmVyO1xuICAgIHRoaXMuY29tbWVudCA9IGRhdGEuY29tbWVudDtcbiAgICB0aGlzLnNvdW5kQ29udHJvbGxlZCA9IGRhdGEuc291bmRDb250cm9sbGVkO1xuICAgIHRoaXMuc2h1dHRlckVmZmVjdCA9IGRhdGEuc2h1dHRlckVmZmVjdDtcbiAgICB0aGlzLnJhbmRvbVRpbWluZyA9IGRhdGEucmFuZG9tVGltaW5nO1xuXG4gICAgdGhpcy5hbmdsZSA9IGRhdGEuYW5nbGU7XG4gICAgdGhpcy5hbmdsZVN0YXJ0ID0gZGF0YS5hbmdsZVN0YXJ0O1xuICAgIHRoaXMuYW5nbGVFbmQgPSBkYXRhLmFuZ2xlRW5kO1xuICAgIHRoaXMuc3BlZWQgPSBkYXRhLnNwZWVkO1xuICAgIHRoaXMuc3BlZWRTdGFydCA9IGRhdGEuc3BlZWRTdGFydDtcbiAgICB0aGlzLnNwZWVkRW5kID0gZGF0YS5zcGVlZEVuZDtcbiAgICB0aGlzLmJyaWdodG5lc3MgPSBkYXRhLmJyaWdodG5lc3M7XG4gICAgdGhpcy5icmlnaHRuZXNzU3RhcnQgPSBkYXRhLmJyaWdodG5lc3NTdGFydDtcbiAgICB0aGlzLmJyaWdodG5lc3NFbmQgPSBkYXRhLmJyaWdodG5lc3NFbmQ7XG4gICAgdGhpcy5kdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG4gICAgdGhpcy5kdXJhdGlvblN0YXJ0ID0gZGF0YS5kdXJhdGlvblN0YXJ0O1xuICAgIHRoaXMuZHVyYXRpb25FbmQgPSBkYXRhLmR1cmF0aW9uRW5kO1xuICAgIHRoaXMuY29sb3JUZW1wZXJhdHVyZSA9IGRhdGEuY29sb3JUZW1wZXJhdHVyZTtcbiAgICB0aGlzLmNvbG9yVGVtcGVyYXR1cmVTdGFydCA9IGRhdGEuY29sb3JUZW1wZXJhdHVyZVN0YXJ0O1xuICAgIHRoaXMuY29sb3JUZW1wZXJhdHVyZUVuZCA9IGRhdGEuY29sb3JUZW1wZXJhdHVyZUVuZDtcbiAgICB0aGlzLnNvdW5kU2Vuc2l0aXZpdHkgPSBkYXRhLnNvdW5kU2Vuc2l0aXZpdHk7XG4gICAgdGhpcy5zb3VuZFNlbnNpdGl2aXR5U3RhcnQgPSBkYXRhLnNvdW5kU2Vuc2l0aXZpdHlTdGFydDtcbiAgICB0aGlzLnNvdW5kU2Vuc2l0aXZpdHlFbmQgPSBkYXRhLnNvdW5kU2Vuc2l0aXZpdHlFbmQ7XG4gICAgdGhpcy5ob3Jpem9udGFsQW5nbGUgPSBkYXRhLmhvcml6b250YWxBbmdsZTtcbiAgICB0aGlzLmhvcml6b250YWxBbmdsZVN0YXJ0ID0gZGF0YS5ob3Jpem9udGFsQW5nbGVTdGFydDtcbiAgICB0aGlzLmhvcml6b250YWxBbmdsZUVuZCA9IGRhdGEuaG9yaXpvbnRhbEFuZ2xlRW5kO1xuICAgIHRoaXMudmVydGljYWxBbmdsZSA9IGRhdGEudmVydGljYWxBbmdsZTtcbiAgICB0aGlzLnZlcnRpY2FsQW5nbGVTdGFydCA9IGRhdGEudmVydGljYWxBbmdsZVN0YXJ0O1xuICAgIHRoaXMudmVydGljYWxBbmdsZUVuZCA9IGRhdGEudmVydGljYWxBbmdsZUVuZDtcbiAgICB0aGlzLmRpc3RhbmNlID0gZGF0YS5kaXN0YW5jZTtcbiAgICB0aGlzLmRpc3RhbmNlU3RhcnQgPSBkYXRhLmRpc3RhbmNlU3RhcnQ7XG4gICAgdGhpcy5kaXN0YW5jZUVuZCA9IGRhdGEuZGlzdGFuY2VFbmQ7XG4gICAgdGhpcy5vcGVuUGVyY2VudCA9IGRhdGEub3BlblBlcmNlbnQ7XG4gICAgdGhpcy5vcGVuUGVyY2VudFN0YXJ0ID0gZGF0YS5vcGVuUGVyY2VudFN0YXJ0O1xuICAgIHRoaXMub3BlblBlcmNlbnRFbmQgPSBkYXRhLm9wZW5QZXJjZW50RW5kO1xuICAgIHRoaXMuZnJvc3RJbnRlbnNpdHkgPSBkYXRhLmZyb3N0SW50ZW5zaXR5O1xuICAgIHRoaXMuZnJvc3RJbnRlbnNpdHlTdGFydCA9IGRhdGEuZnJvc3RJbnRlbnNpdHlTdGFydDtcbiAgICB0aGlzLmZyb3N0SW50ZW5zaXR5RW5kID0gZGF0YS5mcm9zdEludGVuc2l0eUVuZDtcbiAgICB0aGlzLmZvZ091dHB1dCA9IGRhdGEuZm9nT3V0cHV0O1xuICAgIHRoaXMuZm9nT3V0cHV0U3RhcnQgPSBkYXRhLmZvZ091dHB1dFN0YXJ0O1xuICAgIHRoaXMuZm9nT3V0cHV0RW5kID0gZGF0YS5mb2dPdXRwdXRFbmQ7XG4gICAgdGhpcy50aW1lID0gZGF0YS50aW1lO1xuICAgIHRoaXMudGltZVN0YXJ0ID0gZGF0YS50aW1lU3RhcnQ7XG4gICAgdGhpcy50aW1lRW5kID0gZGF0YS50aW1lRW5kO1xuICAgIHRoaXMuaW5zZXJ0aW9uID0gZGF0YS5pbnNlcnRpb247XG4gICAgdGhpcy5pbnNlcnRpb25TdGFydCA9IGRhdGEuaW5zZXJ0aW9uU3RhcnQ7XG4gICAgdGhpcy5pbnNlcnRpb25FbmQgPSBkYXRhLmluc2VydGlvbkVuZDtcbiAgICB0aGlzLmNvbG9ycyA9IGRhdGEuY29sb3JzO1xuICAgIHRoaXMuY29sb3JzU3RhcnQgPSBkYXRhLmNvbG9yc1N0YXJ0O1xuICAgIHRoaXMuY29sb3JzRW5kID0gZGF0YS5jb2xvcnNFbmQ7XG4gIH1cbn1cbiJdfQ==
@@ -3,24 +3,10 @@ import { map } from 'rxjs/operators';
3
3
  import * as THREE from 'three';
4
4
  import { Fixture3d } from './fixture-3d';
5
5
  export class ColorChanger3d extends Fixture3d {
6
- createObjects() {
7
- super.createObjects();
8
- this.material = new THREE.MeshLambertMaterial({
9
- color: 0x0d0d0d,
10
- emissive: 0x0d0d0d,
11
- });
12
- this.mesh.material = this.material;
13
- this.spotLightHelper = new THREE.SpotLightHelper(this.spotLight);
14
- // scene.add(this.spotLightHelper);
15
- this.objectGroup.add(this.spotlightGroup);
16
- this.objectGroup.add(this.mesh);
17
- // A moving head has about 32 cm in width
18
- this.objectGroup.scale.multiplyScalar(9);
19
- this.scene.add(this.objectGroup);
20
- this.isLoaded = true;
21
- }
22
- constructor(fixtureService, previewMeshService, fixture, scene) {
23
- super(fixtureService, fixture, scene);
6
+ constructor(fixtureService, previewService, previewMeshService, fixture, scene) {
7
+ super(fixtureService, previewService, fixture, scene, true);
8
+ this.fixtureService = fixtureService;
9
+ this.previewService = previewService;
24
10
  this.objectGroup = new THREE.Object3D();
25
11
  forkJoin([previewMeshService.getMesh('color-changer')])
26
12
  .pipe(map(([colorChanger]) => {
@@ -29,8 +15,14 @@ export class ColorChanger3d extends Fixture3d {
29
15
  }))
30
16
  .subscribe();
31
17
  }
32
- getObject() {
33
- return this.objectGroup;
18
+ createObjects() {
19
+ super.createObjects();
20
+ this.mesh.material = this.previewService.fixtureMaterial;
21
+ this.objectGroup.add(this.spotlightGroup);
22
+ this.objectGroup.add(this.mesh);
23
+ this.objectGroup.scale.multiplyScalar(9);
24
+ this.scene.add(this.objectGroup);
25
+ this.isLoaded = true;
34
26
  }
35
27
  updatePreview(channelValues, masterDimmerValue) {
36
28
  if (!this.isLoaded) {
@@ -42,23 +34,19 @@ export class ColorChanger3d extends Fixture3d {
42
34
  if (this.lastSelected !== this.isSelected) {
43
35
  if (this.isSelected) {
44
36
  for (const child of this.mesh.children) {
45
- child.material = this.selectedMaterial;
37
+ child.material = this.previewService.fixtureSelectedMaterial;
46
38
  }
47
39
  }
48
40
  else {
49
41
  for (const child of this.mesh.children) {
50
- child.material = this.material;
42
+ child.material = this.previewService.fixtureMaterial;
51
43
  }
52
44
  }
53
45
  this.lastSelected = this.isSelected;
54
46
  }
55
- // Update the light helpers
56
- // this.spotLightHelper.update();
57
47
  }
58
48
  destroy() {
59
49
  this.scene.remove(this.objectGroup);
60
- this.material.dispose();
61
- this.spotLightHelper.dispose();
62
50
  }
63
51
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVNqQyxhQUFhO1FBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBZ0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUNyRCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLG1DQUFtQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLGNBQThCLEVBQUUsa0JBQXNDLEVBQUUsT0FBc0IsRUFBRSxLQUFVO1FBQ3BILEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBL0JoQyxnQkFBVyxHQUFtQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQWlDekQsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUV6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYSxDQUFDLGFBQW9DLEVBQUUsaUJBQXlCO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEMsS0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2ggfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYWNoZWRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVDaGFubmVsVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXZpZXdNZXNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXZpZXctbWVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpeHR1cmUzZCB9IGZyb20gJy4vZml4dHVyZS0zZCc7XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNoYW5nZXIzZCBleHRlbmRzIEZpeHR1cmUzZCB7XG4gIHByaXZhdGUgbWVzaDogVEhSRUUuTWVzaDtcblxuICBwcml2YXRlIG9iamVjdEdyb3VwOiBUSFJFRS5PYmplY3QzRCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbWF0ZXJpYWw6IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVPYmplY3RzKCkge1xuICAgIHN1cGVyLmNyZWF0ZU9iamVjdHMoKTtcblxuICAgICh0aGlzLm1hdGVyaWFsIGFzIGFueSkgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCh7XG4gICAgICBjb2xvcjogMHgwZDBkMGQsXG4gICAgICBlbWlzc2l2ZTogMHgwZDBkMGQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lc2gubWF0ZXJpYWwgPSB0aGlzLm1hdGVyaWFsO1xuXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuU3BvdExpZ2h0SGVscGVyKHRoaXMuc3BvdExpZ2h0KTtcbiAgICAvLyBzY2VuZS5hZGQodGhpcy5zcG90TGlnaHRIZWxwZXIpO1xuICAgIFxuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMuc3BvdGxpZ2h0R3JvdXApO1xuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMubWVzaCk7XG5cbiAgICAvLyBBIG1vdmluZyBoZWFkIGhhcyBhYm91dCAzMiBjbSBpbiB3aWR0aFxuICAgIHRoaXMub2JqZWN0R3JvdXAuc2NhbGUubXVsdGlwbHlTY2FsYXIoOSk7XG5cbiAgICB0aGlzLnNjZW5lLmFkZCh0aGlzLm9iamVjdEdyb3VwKTtcblxuICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcmV2aWV3TWVzaFNlcnZpY2U6IFByZXZpZXdNZXNoU2VydmljZSwgZml4dHVyZTogQ2FjaGVkRml4dHVyZSwgc2NlbmU6IGFueSkge1xuICAgIHN1cGVyKGZpeHR1cmVTZXJ2aWNlLCBmaXh0dXJlLCBzY2VuZSk7XG5cbiAgICBmb3JrSm9pbihbcHJldmlld01lc2hTZXJ2aWNlLmdldE1lc2goJ2NvbG9yLWNoYW5nZXInKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbY29sb3JDaGFuZ2VyXSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzaCA9IGNvbG9yQ2hhbmdlcjtcblxuICAgICAgICAgIHRoaXMuY3JlYXRlT2JqZWN0cygpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9iamVjdCgpOiBUSFJFRS5PYmplY3QzRCB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0R3JvdXA7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzOiBGaXh0dXJlQ2hhbm5lbFZhbHVlW10sIG1hc3RlckRpbW1lclZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci51cGRhdGVQcmV2aWV3KGNoYW5uZWxWYWx1ZXMsIG1hc3RlckRpbW1lclZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24odGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIG1hdGVyaWFsXG4gICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLm1lc2guY2hpbGRyZW4pIHtcbiAgICAgICAgICAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgPSB0aGlzLnNlbGVjdGVkTWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpZ2h0IGhlbHBlcnNcbiAgICAvLyB0aGlzLnNwb3RMaWdodEhlbHBlci51cGRhdGUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zY2VuZS5yZW1vdmUodGhpcy5vYmplY3RHcm91cCk7XG4gICAgdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCk7XG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUkzQyxZQUNTLGNBQThCLEVBQzlCLGNBQThCLEVBQ3JDLGtCQUFzQyxFQUN0QyxPQUFzQixFQUN0QixLQUFVO1FBRVYsS0FBSyxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQU5yRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSi9CLGdCQUFXLEdBQW1CLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBV3pELFFBQVEsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2FBQ3BELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVTLGFBQWE7UUFDckIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO1FBRXpELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRU0sYUFBYSxDQUFDLGFBQW9DLEVBQUUsaUJBQXlCO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDekUsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUM7Z0JBQ2pFLENBQUM7WUFDSCxDQUFDO1lBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FjaGVkLWZpeHR1cmUnO1xuaW1wb3J0IHsgRml4dHVyZUNoYW5uZWxWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9maXh0dXJlLWNoYW5uZWwtdmFsdWUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJldmlld01lc2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJldmlldy1tZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRml4dHVyZTNkIH0gZnJvbSAnLi9maXh0dXJlLTNkJztcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJldmlldy5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIENvbG9yQ2hhbmdlcjNkIGV4dGVuZHMgRml4dHVyZTNkIHtcbiAgcHJpdmF0ZSBtZXNoOiBUSFJFRS5NZXNoO1xuICBwcml2YXRlIG9iamVjdEdyb3VwOiBUSFJFRS5PYmplY3QzRCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsXG4gICAgcHVibGljIHByZXZpZXdTZXJ2aWNlOiBQcmV2aWV3U2VydmljZSxcbiAgICBwcmV2aWV3TWVzaFNlcnZpY2U6IFByZXZpZXdNZXNoU2VydmljZSxcbiAgICBmaXh0dXJlOiBDYWNoZWRGaXh0dXJlLFxuICAgIHNjZW5lOiBhbnlcbiAgKSB7XG4gICAgc3VwZXIoZml4dHVyZVNlcnZpY2UsIHByZXZpZXdTZXJ2aWNlLCBmaXh0dXJlLCBzY2VuZSwgdHJ1ZSk7XG5cbiAgICBmb3JrSm9pbihbcHJldmlld01lc2hTZXJ2aWNlLmdldE1lc2goJ2NvbG9yLWNoYW5nZXInKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbY29sb3JDaGFuZ2VyXSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzaCA9IGNvbG9yQ2hhbmdlcjtcbiAgICAgICAgICB0aGlzLmNyZWF0ZU9iamVjdHMoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPYmplY3RzKCkge1xuICAgIHN1cGVyLmNyZWF0ZU9iamVjdHMoKTtcblxuICAgIHRoaXMubWVzaC5tYXRlcmlhbCA9IHRoaXMucHJldmlld1NlcnZpY2UuZml4dHVyZU1hdGVyaWFsO1xuXG4gICAgdGhpcy5vYmplY3RHcm91cC5hZGQodGhpcy5zcG90bGlnaHRHcm91cCk7XG4gICAgdGhpcy5vYmplY3RHcm91cC5hZGQodGhpcy5tZXNoKTtcbiAgICB0aGlzLm9iamVjdEdyb3VwLnNjYWxlLm11bHRpcGx5U2NhbGFyKDkpO1xuICAgIHRoaXMuc2NlbmUuYWRkKHRoaXMub2JqZWN0R3JvdXApO1xuXG4gICAgdGhpcy5pc0xvYWRlZCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzOiBGaXh0dXJlQ2hhbm5lbFZhbHVlW10sIG1hc3RlckRpbW1lclZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci51cGRhdGVQcmV2aWV3KGNoYW5uZWxWYWx1ZXMsIG1hc3RlckRpbW1lclZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRoaXMub2JqZWN0R3JvdXApO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBtYXRlcmlhbFxuICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZCAhPT0gdGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5wcmV2aWV3U2VydmljZS5maXh0dXJlU2VsZWN0ZWRNYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLm1lc2guY2hpbGRyZW4pIHtcbiAgICAgICAgICAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgPSB0aGlzLnByZXZpZXdTZXJ2aWNlLmZpeHR1cmVNYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZDtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc2NlbmUucmVtb3ZlKHRoaXMub2JqZWN0R3JvdXApO1xuICB9XG59XG4iXX0=