@provoly/dashboard 1.2.3 → 1.2.5

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 (25) hide show
  1. package/esm2022/components/data-format/data-format.pipe.mjs +2 -2
  2. package/esm2022/lib/core/components/snackbar/snackbar.service.mjs +3 -3
  3. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +6 -3
  4. package/esm2022/presentation/components/presentation.component.mjs +6 -3
  5. package/esm2022/toolbox/components/toolbox.component.mjs +2 -6
  6. package/esm2022/widgets/widget-analytic/component/widget-analytic.component.mjs +3 -3
  7. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +3 -3
  8. package/fesm2022/provoly-dashboard-components-data-format.mjs +1 -1
  9. package/fesm2022/provoly-dashboard-components-data-format.mjs.map +1 -1
  10. package/fesm2022/provoly-dashboard-presentation.mjs +10 -4
  11. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  12. package/fesm2022/provoly-dashboard-toolbox.mjs +1 -5
  13. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  14. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs +2 -2
  15. package/fesm2022/provoly-dashboard-widgets-widget-analytic.mjs.map +1 -1
  16. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +2 -2
  17. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  18. package/fesm2022/provoly-dashboard.mjs +2 -2
  19. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  20. package/package.json +37 -37
  21. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +2 -1
  22. package/presentation/components/presentation.component.d.ts +2 -1
  23. package/styles/components/_o-widget.scss +1 -1
  24. package/styles-theme/components-theme/_o-widget.theme.scss +4 -1
  25. package/widgets/widget-analytic/component/widget-analytic.component.d.ts +1 -1
@@ -24,9 +24,9 @@ const toLocaleString = (value) => {
24
24
  case 'number':
25
25
  return new Intl.NumberFormat().format(value);
26
26
  case 'string':
27
- return parseInt(value, 10) || parseFloat(value) ? new Intl.NumberFormat().format(Number(value)) : value;
27
+ return value;
28
28
  default:
29
29
  return value;
30
30
  }
31
31
  };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvZGF0YS1mb3JtYXQvZGF0YS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVoQixTQUFTLENBQUMsS0FBVyxFQUFFLFFBQWtCLEVBQUUsTUFBZSxFQUFFLEdBQUcsSUFBVztRQUN4RSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBYlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTs7QUFpQjVCLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBdUIsRUFBRSxFQUFFO0lBQ2pELFFBQVEsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNyQixLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMxRztZQUNFLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ2RhdGFGb3JtYXQnIH0pXG5leHBvcnQgY2xhc3MgRGF0YUZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHRyYW5zZm9ybSh2YWx1ZT86IGFueSwgdG9Mb2NhbGU/OiBib29sZWFuLCBzdWZmaXg/OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcbiAgICBsZXQgcmVzdWx0ID0gdmFsdWU7XG4gICAgaWYgKHRvTG9jYWxlKSB7XG4gICAgICByZXN1bHQgPSB0b0xvY2FsZVN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIGlmIChzdWZmaXgpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCArICcgJyArIHN1ZmZpeDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbmNvbnN0IHRvTG9jYWxlU3RyaW5nID0gKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyKSA9PiB7XG4gIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQoKS5mb3JtYXQodmFsdWUpO1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUsIDEwKSB8fCBwYXJzZUZsb2F0KHZhbHVlKSA/IG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdChOdW1iZXIodmFsdWUpKSA6IHZhbHVlO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvZGF0YS1mb3JtYXQvZGF0YS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsZ0JBQWUsQ0FBQztJQUVoQixTQUFTLENBQUMsS0FBVyxFQUFFLFFBQWtCLEVBQUUsTUFBZSxFQUFFLEdBQUcsSUFBVztRQUN4RSxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7OEdBYlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTs7QUFpQjVCLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBdUIsRUFBRSxFQUFFO0lBQ2pELFFBQVEsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNyQixLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxLQUFLLFFBQVE7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNmO1lBQ0UsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAnZGF0YUZvcm1hdCcgfSlcbmV4cG9ydCBjbGFzcyBEYXRhRm9ybWF0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgdHJhbnNmb3JtKHZhbHVlPzogYW55LCB0b0xvY2FsZT86IGJvb2xlYW4sIHN1ZmZpeD86IHN0cmluZywgLi4uYXJnczogYW55W10pOiBhbnkge1xuICAgIGxldCByZXN1bHQgPSB2YWx1ZTtcbiAgICBpZiAodG9Mb2NhbGUpIHtcbiAgICAgIHJlc3VsdCA9IHRvTG9jYWxlU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHN1ZmZpeCkge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJyAnICsgc3VmZml4O1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgdG9Mb2NhbGVTdHJpbmcgPSAodmFsdWU/OiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdCh2YWx1ZSk7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuIl19
@@ -2,7 +2,7 @@ import { OverlayConfig } from '@angular/cdk/overlay';
2
2
  import { ComponentPortal } from '@angular/cdk/portal';
3
3
  import { Injectable } from '@angular/core';
4
4
  import equal from 'fast-deep-equal/es6';
5
- import { Subject } from 'rxjs';
5
+ import { Subject, switchMap, windowTime } from 'rxjs';
6
6
  import { distinctUntilChanged } from 'rxjs/operators';
7
7
  import { PrySnackbarComponent } from './snackbar/snackbar.component';
8
8
  import * as i0 from "@angular/core";
@@ -25,7 +25,7 @@ export class PrySnackbarService {
25
25
  this.messageEvents$.next(pryMessage);
26
26
  }, false);
27
27
  this.messageEvents$
28
- .pipe(distinctUntilChanged((p, v) => equal(p, v)))
28
+ .pipe(windowTime(1000), switchMap((source) => source.pipe(distinctUntilChanged((p, v) => equal(p, v)))))
29
29
  .subscribe((message) => this.notMitigatedOpen(message));
30
30
  }
31
31
  setRootViewContainerRef(viewContainerRef) {
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
68
68
  providedIn: 'root'
69
69
  }]
70
70
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i2.PryI18nService }] });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7QUFFckUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDO0FBS2pELE1BQU0sT0FBTyxrQkFBa0I7YUFFdEIsVUFBSyxHQUFHLENBQUMsQUFBSixDQUFLO0lBTWpCLFlBQW9CLE9BQWdCLEVBQVUsU0FBeUI7UUFBbkQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBRi9ELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFHdEQsK0VBQStFO1FBQy9FLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsb0JBQW9CLEVBQ3BCLENBQUMsQ0FBUSxFQUFFLEVBQUU7WUFDWCxNQUFNLFVBQVUsR0FBSSxDQUFrQyxDQUFDLE1BQU0s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IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdGFibGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBQcnlTbmFja01lc3NhZ2UgfSBmcm9tICcuL3NuYWNrLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTVNHX1RJTUVPVVQgPSAzMDAwO1xuZXhwb3J0IGNvbnN0IERFTEFZX0ZPUl9ISURFID0gMjAwO1xuXG5leHBvcnQgY29uc3QgUFJZX0NVU1RPTUVWRU5UX1RZUEUgPSAnQHByeS5zbmFjayc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeVNuYWNrYmFyU2VydmljZSB7XG4gIHJvb3RWaWV3Q29udGFpbmVyPzogVmlld0NvbnRhaW5lclJlZjtcbiAgc3RhdGljIGNvdW50ID0gMDtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgbWVzc2FnZUV2ZW50cyQgPSBuZXcgU3ViamVjdDxQcnlTbmFja01lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIHRyYW5zbGF0ZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICAvLyBBbGxvd3MgdG8gYWNjZXNzIHNuYWNrYmFyIGZyb20gamF2YXNjcmlwdCwgZm9yIGV4YW1wbGUgdG8gbWFuYWdlIFZlZ2EgZXJyb3JzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFBSWV9DVVNUT01FVkVOVF9UWVBFLFxuICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByeU1lc3NhZ2UgPSAoZSBhcyBDdXN0b21FdmVudDxQcnlTbmFja01lc3NhZ2U+KS5kZXRhaWw7XG4gICAgICAgIHByeU1lc3NhZ2UubWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJ5TWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgcHJ5TWVzc2FnZS5hY3Rpb24gPSAhIXByeU1lc3NhZ2UuYWN0aW9uID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcnlNZXNzYWdlLmFjdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChwcnlNZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLm1lc3NhZ2VFdmVudHMkXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgocCwgdikgPT4gZXF1YWwocCwgdikpKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4gdGhpcy5ub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIHNldFJvb3RWaWV3Q29udGFpbmVyUmVmKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB0aGlzLnJvb3RWaWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lclJlZjtcbiAgfVxuXG4gIGRpc3BhdGNoT3BlbkV2ZW50KG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFBSWV9DVVNUT01FVkVOVF9UWVBFLCB7IGRldGFpbDogbWVzc2FnZSB9KSk7XG4gIH1cblxuICBub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSk6IE9ic2VydmFibGU8dm9pZD4gfCBudWxsIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2VcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFByeVNuYWNrYmFyQ29tcG9uZW50LCB0aGlzLnJvb3RWaWV3Q29udGFpbmVyKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbXBvbmVudFBvcnRhbCk7XG5cbiAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YSA9IG1lc3NhZ2U7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmxpc3RJbmRleCA9IFByeVNuYWNrYmFyU2VydmljZS5jb3VudCsrO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLyogRmlyc3QgaGlkZSBjb21wb25lbnQgc28gaXQgdXNlcyBhbmltYXRpb24gKi9cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5oaWRkZW5Gcm9tQWN0aW9uID0gdHJ1ZTtcbiAgICAgIFByeVNuYWNrYmFyU2VydmljZS5jb3VudC0tO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLyogdGhlbiBjbGVhbiBieSByZW1vdmluZyBpdCAqL1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuYWN0aW9uQ2xpY2tlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgIH0sIERFTEFZX0ZPUl9ISURFKTtcbiAgICB9LCBtZXNzYWdlLnRpbWVvdXQgPz8gREVGQVVMVF9NU0dfVElNRU9VVCk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQ7XG4gIH1cblxuICBvcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChtZXNzYWdlKTtcbiAgfVxufVxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9jb3JlL2NvbXBvbmVudHMvc25hY2tiYXIvc25hY2tiYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sS0FBSyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUVyRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxZQUFZLENBQUM7QUFLakQsTUFBTSxPQUFPLGtCQUFrQjthQUV0QixVQUFLLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFNakIsWUFDVSxPQUFnQixFQUNoQixTQUF5QjtRQUR6QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBSjNCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFNdEQsK0VBQStFO1FBQy9FLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDdkIsb0JBQW9CLEVBQ3BCLENBQUMsQ0FBUSxFQUFFLEVBQUU7WUFDWCxNQUFNLFVBQVUs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SEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHdpbmRvd1RpbWUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBQcnlTbmFja01lc3NhZ2UgfSBmcm9tICcuL3NuYWNrLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcnlTbmFja2JhckNvbXBvbmVudCB9IGZyb20gJy4vc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTVNHX1RJTUVPVVQgPSAzMDAwO1xuZXhwb3J0IGNvbnN0IERFTEFZX0ZPUl9ISURFID0gMjAwO1xuXG5leHBvcnQgY29uc3QgUFJZX0NVU1RPTUVWRU5UX1RZUEUgPSAnQHByeS5zbmFjayc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByeVNuYWNrYmFyU2VydmljZSB7XG4gIHJvb3RWaWV3Q29udGFpbmVyPzogVmlld0NvbnRhaW5lclJlZjtcbiAgc3RhdGljIGNvdW50ID0gMDtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgbWVzc2FnZUV2ZW50cyQgPSBuZXcgU3ViamVjdDxQcnlTbmFja01lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICAvLyBBbGxvd3MgdG8gYWNjZXNzIHNuYWNrYmFyIGZyb20gamF2YXNjcmlwdCwgZm9yIGV4YW1wbGUgdG8gbWFuYWdlIFZlZ2EgZXJyb3JzXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgIFBSWV9DVVNUT01FVkVOVF9UWVBFLFxuICAgICAgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHByeU1lc3NhZ2UgPSAoZSBhcyBDdXN0b21FdmVudDxQcnlTbmFja01lc3NhZ2U+KS5kZXRhaWw7XG4gICAgICAgIHByeU1lc3NhZ2UubWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJ5TWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgcHJ5TWVzc2FnZS5hY3Rpb24gPSAhIXByeU1lc3NhZ2UuYWN0aW9uID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcnlNZXNzYWdlLmFjdGlvbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChwcnlNZXNzYWdlKTtcbiAgICAgIH0sXG4gICAgICBmYWxzZVxuICAgICk7XG5cbiAgICB0aGlzLm1lc3NhZ2VFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgd2luZG93VGltZSgxMDAwKSxcbiAgICAgICAgc3dpdGNoTWFwKChzb3VyY2UpID0+IHNvdXJjZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwLCB2KSA9PiBlcXVhbChwLCB2KSkpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZSkgPT4gdGhpcy5ub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2UpKTtcbiAgfVxuXG4gIHNldFJvb3RWaWV3Q29udGFpbmVyUmVmKHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICB0aGlzLnJvb3RWaWV3Q29udGFpbmVyID0gdmlld0NvbnRhaW5lclJlZjtcbiAgfVxuXG4gIGRpc3BhdGNoT3BlbkV2ZW50KG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIGRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KFBSWV9DVVNUT01FVkVOVF9UWVBFLCB7IGRldGFpbDogbWVzc2FnZSB9KSk7XG4gIH1cblxuICBub3RNaXRpZ2F0ZWRPcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSk6IE9ic2VydmFibGU8dm9pZD4gfCBudWxsIHtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2VcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFByeVNuYWNrYmFyQ29tcG9uZW50LCB0aGlzLnJvb3RWaWV3Q29udGFpbmVyKTtcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKGNvbXBvbmVudFBvcnRhbCk7XG5cbiAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YSA9IG1lc3NhZ2U7XG4gICAgY29tcG9uZW50Lmluc3RhbmNlLmxpc3RJbmRleCA9IFByeVNuYWNrYmFyU2VydmljZS5jb3VudCsrO1xuICAgIGNvbXBvbmVudC5pbnN0YW5jZS5hY3Rpb25DbGlja2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLyogRmlyc3QgaGlkZSBjb21wb25lbnQgc28gaXQgdXNlcyBhbmltYXRpb24gKi9cbiAgICAgIGNvbXBvbmVudC5pbnN0YW5jZS5oaWRkZW5Gcm9tQWN0aW9uID0gdHJ1ZTtcbiAgICAgIFByeVNuYWNrYmFyU2VydmljZS5jb3VudC0tO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLyogdGhlbiBjbGVhbiBieSByZW1vdmluZyBpdCAqL1xuICAgICAgICBjb21wb25lbnQuaW5zdGFuY2UuYWN0aW9uQ2xpY2tlZC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgICAgY29tcG9uZW50LmRlc3Ryb3koKTtcbiAgICAgIH0sIERFTEFZX0ZPUl9ISURFKTtcbiAgICB9LCBtZXNzYWdlLnRpbWVvdXQgPz8gREVGQVVMVF9NU0dfVElNRU9VVCk7XG5cbiAgICByZXR1cm4gY29tcG9uZW50Lmluc3RhbmNlLmFjdGlvbkNsaWNrZWQ7XG4gIH1cblxuICBvcGVuKG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSkge1xuICAgIHRoaXMubWVzc2FnZUV2ZW50cyQubmV4dChtZXNzYWdlKTtcbiAgfVxufVxuIl19
@@ -23,6 +23,7 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
23
23
  this.router = router;
24
24
  this.selectedPresentation$ = new BehaviorSubject(null);
25
25
  this.edition = false;
26
+ this.themePrefix = null;
26
27
  this.editionStartUrl = '/';
27
28
  this.image = DEFAULT_DASHBOARD_ICON_URL;
28
29
  this.goBack = new EventEmitter();
@@ -173,15 +174,17 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
173
174
  : this.selectedPresentation$.value?.metadata ?? [];
174
175
  }
175
176
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAddEditPresentationComponent, deps: [{ token: i1.Store }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { edition: "edition", editionStartUrl: "editionStartUrl", selectedPresentation: "selectedPresentation", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"form.invalid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h1>\n <div class=\"o-presentation-form-wrapper\">\n <form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n />\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.touched && form.get('name')?.hasError('required')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.required' | i18n }}\n </label>\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n <label\n for=\"presentation_description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"image = $event\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout *ngIf=\"!edition\"></pry-select-grid-layout>\n </div>\n </form>\n <ng-container *ngIf=\"mode === 'meta'\">\n <div class=\"o-presentation__metadata-editor\" *ngIf=\"selectedPresentation$ | async as selectedPresentation\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n </ng-container>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"form.invalid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i5.SelectGridLayoutComponent, selector: "pry-select-grid-layout" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: i8.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { edition: "edition", themePrefix: "themePrefix", editionStartUrl: "editionStartUrl", selectedPresentation: "selectedPresentation", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"form.invalid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h1>\n <div class=\"o-presentation-form-wrapper\">\n <form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n />\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.touched && form.get('name')?.hasError('required')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.required' | i18n }}\n </label>\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n <label\n for=\"presentation_description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"image = $event\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout *ngIf=\"!edition\"></pry-select-grid-layout>\n </div>\n </form>\n <ng-container *ngIf=\"mode === 'meta'\">\n <div class=\"o-presentation__metadata-editor\" *ngIf=\"selectedPresentation$ | async as selectedPresentation\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n </ng-container>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"form.invalid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked"] }, { kind: "component", type: i5.SelectGridLayoutComponent, selector: "pry-select-grid-layout" }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "component", type: i8.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
177
178
  }
178
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAddEditPresentationComponent, decorators: [{
179
180
  type: Component,
180
- args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"form.invalid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h1>\n <div class=\"o-presentation-form-wrapper\">\n <form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n />\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.touched && form.get('name')?.hasError('required')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.required' | i18n }}\n </label>\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n <label\n for=\"presentation_description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"image = $event\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout *ngIf=\"!edition\"></pry-select-grid-layout>\n </div>\n </form>\n <ng-container *ngIf=\"mode === 'meta'\">\n <div class=\"o-presentation__metadata-editor\" *ngIf=\"selectedPresentation$ | async as selectedPresentation\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n </ng-container>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"form.invalid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n" }]
181
+ args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"form.invalid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h1 class=\"a-h1\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h1>\n <div class=\"o-presentation-form-wrapper\">\n <form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\">{{ '@pry.presentation.form.name' | i18n }}</label>\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n />\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.touched && form.get('name')?.hasError('required')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.required' | i18n }}\n </label>\n <label\n for=\"presentation_name\"\n *ngIf=\"form.get('name')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n <label\n for=\"presentation_description\"\n *ngIf=\"form.get('description')?.hasError('maxlength')\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n </div>\n <div class=\"m-form-label-field -width-full\" *ngIf=\"mode === 'theme'\">\n <label class=\"a-label\" for=\"presentation_theme\">{{ '@pry.presentation.form.theme' | i18n }}</label>\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"image = $event\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout *ngIf=\"!edition\"></pry-select-grid-layout>\n </div>\n </form>\n <ng-container *ngIf=\"mode === 'meta'\">\n <div class=\"o-presentation__metadata-editor\" *ngIf=\"selectedPresentation$ | async as selectedPresentation\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n </ng-container>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"form.invalid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n" }]
181
182
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router, decorators: [{
182
183
  type: Optional
183
184
  }] }], propDecorators: { edition: [{
184
185
  type: Input
186
+ }], themePrefix: [{
187
+ type: Input
185
188
  }], editionStartUrl: [{
186
189
  type: Input
187
190
  }], goBack: [{
@@ -191,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
191
194
  }], mode: [{
192
195
  type: Input
193
196
  }] } });
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUcxQixZQUFZLEVBRVosd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQU1wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBYzNFLElBQWEsb0JBQW9CLENBQUMsWUFBd0M7UUFDeEUsSUFBSSxD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U0FDaEMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTztZQUMxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUU7Z0JBQ3RELENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQztvQkFDRTt3QkFDRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBRTt3QkFDekYsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO3FCQUNuQztpQkFDRjtZQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDdkQsQ0FBQzs4R0F0TVUsK0JBQStCO2tHQUEvQiwrQkFBK0IsdVBDekI1Qyw0dEpBZ0hBOzsyRkR2RmEsK0JBQStCO2tCQUozQyxTQUFTOytCQUNFLDJCQUEyQjs7MEJBeUJsQyxRQUFRO3lDQW5CRixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBT00sb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTCxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIElNZXRhZGF0YSxcbiAgTGlicmFyeVR5cGVzLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUFjdGlvbnMsIE1ldGFkYXRhU2VsZWN0b3JzLCBNZXRhRXZlbnRUeXBlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRkLWVkaXQtcHJlc2VudGF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5QWRkRWRpdFByZXNlbnRhdGlvbkNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHN0YXRpY01hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIHNlbGVjdGVkUHJlc2VudGF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFuaWZlc3REZXNjcmlwdGlvbiB8IG51bGw+KG51bGwpO1xuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVkaXRpb25TdGFydFVybDogc3RyaW5nID0gJy8nO1xuICBmb3JtITogRm9ybUdyb3VwO1xuICBpbWFnZTogc3RyaW5nID0gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gIEBPdXRwdXQoKSBnb0JhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHR5cGU6IExpYnJhcnlUeXBlcyA9IExpYnJhcnlUeXBlcy5JTExVU1RSQVRJT047XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBwb3NzaWJsZVRoZW1lczogc3RyaW5nW10gPSBbXTtcbiAgbWV0YWRhdGFEZWZzOiBJTWV0YWRhdGFbXSB8IHVuZGVmaW5lZDtcbiAgbWV0YWRhdGFUaGVtZUlkOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgbnVsbCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuXG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5sb2FkTWV0YWRhdGEoKSk7XG4gICAgdGhpcy5zdGF0aWNNYW5pZmVzdCQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuc3RhdGljTWFuaWZlc3QpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RhdGljTWFuaWZlc3QkLCB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZ3JpZExheW91dCldKS5zdWJzY3JpYmUoXG4gICAgICAoW3N0YXRpY01hbmlmZXN0LCBncmlkTGF5b3V0XSkgPT4ge1xuICAgICAgICB0aGlzLmNob3NlbkxheW91dCA9XG4gICAgICAgICAgdGhpcy5lZGl0aW9uICYmIHN0YXRpY01hbmlmZXN0LndpbmRvd3NbMF0/LmdyaWQ/LmxheW91dCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHN0YXRpY01hbmlmZXN0LndpbmRvd3NbMF0/LmdyaWQ/LmxheW91dFxuICAgICAgICAgICAgOiBncmlkTGF5b3V0O1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLm1ldGFkYXRhKS5zdWJzY3JpYmUoKG1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubWV0YWRhdGFEZWZzID0gbWV0YWRhdGE7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhVGhlbWUgPSBtZXRhZGF0YT8uZmluZCgobWV0YSkgPT4gbWV0YS5uYW1lID09PSAnX3RoZW1lJyk7XG4gICAgICAgIGlmIChtZXRhZGF0YVRoZW1lKSB7XG4gICAgICAgICAgdGhpcy5tZXRhZGF0YVRoZW1lSWQgPSBtZXRhZGF0YVRoZW1lPy5pZCA/PyAnJztcbiAgICAgICAgICB0aGlzLnBvc3NpYmxlVGhlbWVzID0gbWV0YWRhdGFUaGVtZT8uYWxsb3dlZFZhbHVlcyA/PyBbXTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV0pLFxuICAgICAgZGVzY3JpcHRpb246IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyMDApXSksXG4gICAgICB0aGVtZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogbmV3IEZvcm1Db250cm9sKCcnKVxuICAgIH0pO1xuICAgIHRoaXMuaW1hZ2UgPSB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8uaW1hZ2UgPz8gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnN1YnNjcmliZSgocHJlc2VudGF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gcHJlc2VudGF0aW9uPy5tZXRhZGF0YT8uZmluZCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm1ldGFkYXRhRGVmLm5hbWUgPT09ICdfdGhlbWUnKT8udmFsdWU7XG4gICAgICAgIGlmICghIXRoZW1lKSB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHRoZW1lIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlKSB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICghdGhpcy5lZGl0aW9uKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QoeyBzdGF0aWNNYW5pZmVzdDogeyB3aW5kb3dzOiBbXSB9IH0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0gdGhpcy5kaXNwYXRjaFNhdmUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICBwcmVzZW50YXRpb24sXG4gICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIG5hbWU6IHRoaXMuZm9ybS52YWx1ZS5uYW1lID8/ICcnLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybS52YWx1ZS5kZXNjcmlwdGlvbiA/PyB1bmRlZmluZWQsXG4gICAgICBpbWFnZTogdGhpcy5pbWFnZSA/PyBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTCxcbiAgICAgIG1ldGFkYXRhOiB0aGlzLm1ldGFkYXRhKCksXG4gICAgICBhZGRpdGlvbmFsSW5mb3JtYXRpb246IHRoaXMuZm9ybS52YWx1ZS5hZGRpdGlvbmFsSW5mb3JtYXRpb24gPz8gdW5kZWZpbmVkXG4gICAgfTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0YXRpY01hbmlmZXN0JC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoc3RhdGljTWFuaWZlc3QpID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnNhdmVNYW5pZmVzdCh7XG4gICAgICAgICAgICAuLi5wcmVzZW50YXRpb24sXG4gICAgICAgICAgICBtZXRhZGF0YTogcHJlc2VudGF0aW9uLm1ldGFkYXRhPy5tYXAoKG1ldGFkYXRhKSA9PiAoe1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZklkOiBtZXRhZGF0YS5tZXRhZGF0YURlZi5pZCxcbiAgICAgICAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBtYW5pZmVzdDogc3RhdGljTWFuaWZlc3RcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBwcmVzZW50YXRpb247XG4gIH1cblxuICBjb25maWd1cmVEYXNoYm9hcmQoc2VsZWN0ZWRQcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24pIHtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISxcbiAgICAgIG5hbWU6IHRoaXMuZm9ybS52YWx1ZS5uYW1lID8/ICcnLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybS52YWx1ZS5kZXNjcmlwdGlvbixcbiAgICAgIGltYWdlOiB0aGlzLmltYWdlID8/IERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVNYW5pZmVzdCh7XG4gICAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAgIHdpbmRvd3M6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHdpZGdldHM6IFtdLFxuICAgICAgICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgICAgICAgIGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQsXG4gICAgICAgICAgICAgICAgICBjb2x1bW5zOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5jb2x1bW5zLFxuICAgICAgICAgICAgICAgICAgcm93czogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8ucm93c1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2VsZWN0ZWRJZHM6IFtdLFxuICAgICAgICAgIG1hbmlmZXN0SWQ6IHNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZXRJbml0aWFsUHJlc2VudGF0aW9uKHtcbiAgICAgICAgICBpbml0aWFsOiB7IHdpbmRvd3M6IFt7IHdpZGdldHM6IFtdLCBncmlkOiB7IGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQgYXMgRGFzaGJvYXJkR3JpZExheW91dCB9IH1dIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLFxuICAgICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5DUkVBVElPTlxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5sb2FkUHJlc2VudGF0aW9uKHtcbiAgICAgICAgICBwcmVzZW50YXRpb24sXG4gICAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMucm91dGVyPy5uYXZpZ2F0ZUJ5VXJsKHRoaXMuZWRpdGlvblN0YXJ0VXJsKTtcbiAgfVxuXG4gIGFkZE1ldGFkYXRhKG1ldGFkYXRhOiBNZXRhRXZlbnRUeXBlKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMuYWRkTWFuaWZlc3RNZXRhZGF0YSh7XG4gICAgICAgIHByZXNlbnRhdGlvbklkOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8uaWQhLFxuICAgICAgICBtZXRhZGF0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YUlkLFxuICAgICAgICB2YWx1ZTogbWV0YWRhdGEudmFsdWUgPz8gJydcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlbW92ZU1ldGFkYXRhKG1ldGFkYXRhOiBNZXRhRXZlbnRUeXBlKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMuZGVsZXRlTWFuaWZlc3RNZXRhZGF0YSh7XG4gICAgICAgIHByZXNlbnRhdGlvbklkOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8uaWQhLFxuICAgICAgICBtZXRhZGF0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YUlkXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmdvQmFjay5lbWl0KCk7XG4gIH1cblxuICBtZXRhZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAndGhlbWUnXG4gICAgICA/ICF0aGlzLmZvcm0udmFsdWUudGhlbWUgfHwgdGhpcy5mb3JtLnZhbHVlLnRoZW1lID09PSAnJ1xuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZjogdGhpcy5tZXRhZGF0YURlZnMhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVRoZW1lSWQpISxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybS52YWx1ZS50aGVtZSA/PyAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgIDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/Lm1ldGFkYXRhID8/IFtdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRcIj5cbiAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnQtLXByZXNlbnRhdGlvblwiPlxuICAgIDxoMSBjbGFzcz1cImEtaDFcIj57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkJyArICcucGFnZVRpdGxlJyB8IGkxOG4gfX08L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtLXdyYXBwZXJcIj5cbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiby1wcmVzZW50YXRpb24tZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9uYW1lXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIGlkPVwicHJlc2VudGF0aW9uX25hbWVcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLm5hbWUnIHwgaTE4biB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCI1MFwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJyk/LnRvdWNoZWQgJiYgZm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46ICc1MCcgfSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiPnt7XG4gICAgICAgICAgICAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5kZXNjcmlwdGlvbicgfCBpMThuXG4gICAgICAgICAgfX08L2xhYmVsPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgaWQ9XCJwcmVzZW50YXRpb25fZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGNvbHM9XCIzMFwiXG4gICAgICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIyMDBcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5kZXNjcmlwdGlvbicgfCBpMThuIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGZvcj1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAqbmdJZj1cImZvcm0uZ2V0KCdkZXNjcmlwdGlvbicpPy5oYXNFcnJvcignbWF4bGVuZ3RoJylcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnMjAwJyB9IH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIiAqbmdJZj1cIm1vZGUgPT09ICd0aGVtZSdcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX3RoZW1lXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0udGhlbWUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgIGlkPVwicHJlc2VudGF0aW9uX3RoZW1lXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJwb3NzaWJsZVRoZW1lc1wiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aGVtZVwiXG4gICAgICAgICAgICBbY2xlYXJhYmxlXT1cInRydWVcIlxuICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9pbWFnZVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgICAgICAgIDxwcnktc2VsZWN0LWltYWdlXG4gICAgICAgICAgICAgIGlkPVwicHJlc2VudGF0aW9uX2ltYWdlXCJcbiAgICAgICAgICAgICAgKGNoYW5nZWQpPVwiaW1hZ2UgPSAkZXZlbnRcIlxuICAgICAgICAgICAgICBbaWNvblVybF09XCJpbWFnZVwiXG4gICAgICAgICAgICAgIFttb2RlXT1cInR5cGVcIlxuICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICAgICAgICA8cHJ5LXRleHQtZWRpdG9yIGZvcm1Db250cm9sTmFtZT1cImFkZGl0aW9uYWxJbmZvcm1hdGlvblwiPjwvcHJ5LXRleHQtZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbCBtLWZvcm0tbGFiZWwtZmllbGQtLWlubGluZVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5ncmlkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnRvb2xib3gubGF5b3V0LicgKyB0aGlzLmNob3NlbkxheW91dCB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHByeS1zZWxlY3QtZ3JpZC1sYXlvdXQgKm5nSWY9XCIhZWRpdGlvblwiPjwvcHJ5LXNlbGVjdC1ncmlkLWxheW91dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ21ldGEnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbl9fbWV0YWRhdGEtZWRpdG9yXCIgKm5nSWY9XCJzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYyBhcyBzZWxlY3RlZFByZXNlbnRhdGlvblwiPlxuICAgICAgICAgIDxwcnktbWV0YWRhdGEtZWRpdG9yXG4gICAgICAgICAgICBbdGFyZ2V0SWRdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24uaWRcIlxuICAgICAgICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgW21ldGFkYXRhXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLm1ldGFkYXRhID8/IFtdXCJcbiAgICAgICAgICAgIChyZW1vdmVNZXRhKT1cInJlbW92ZU1ldGFkYXRhKCRldmVudClcIlxuICAgICAgICAgICAgKGFkZE1ldGEpPVwiYWRkTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICBbdHlwZV09XCInbWV0YSdcIlxuICAgICAgICAgID48L3ByeS1tZXRhZGF0YS1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKHNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgID5cbiAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5jb25maWd1cmF0aW9uJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUcxQixZQUFZLEVBRVosd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsSCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7OztBQU1wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBZTNFLElBQWEsb0JBQW9CLENBQUMsWUFBd0M7UUFDeEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBSUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhFLFVBQUssR0FBTCxLQUFLLENBQU87UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckJ0QywwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBNkIsSUFBSSxDQUFDLENBQUM7UUFDckUsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFrQixJQUFJLENBQUM7UUFDbEMsb0JBQWUsR0FBVyxHQUFHLENBQUM7UUFFdkMsVUFBSyxHQUFXLDBCQUEwQixDQUFDO1FBQ2pDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLFNBQUksR0FBaUIsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUMvQyxpQkFBWSxHQUFXLG1CQUFtQixDQUFDLElBQUksQ0FBQztRQUNoRCxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUU5QixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQU1wQixTQUFJLEdBQXFCLE1BQU0sQ0FBQztRQU92QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVFLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDL0YsQ0FBQyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxZQUFZO2dCQUNmLElBQUksQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxLQUFLLFNBQVM7b0JBQ25FLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNO29CQUN6QyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ25CLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25FLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO1lBQzdCLE1BQU0sYUFBYSxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDdkUsSUFBSSxhQUFhLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN4QixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUUsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzFCLHFCQUFxQixFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztTQUMzQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLDBCQUEwQixDQUFDO1FBQ25GLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDcEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxFQUFFLEtBQUssQ0FBQztZQUN4RyxJQUFJLENBQUMsQ0FBQyxLQUFLO2dCQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsRUFBRSxjQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUM7WUFDbEMsWUFBWTtZQUNaLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTztTQUMzQixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBTTtZQUNwQyxFQUFFLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFO1lBQ3BELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNoQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLFNBQVM7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksMEJBQTBCO1lBQy9DLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3pCLHFCQUFxQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixJQUFJLFNBQVM7U0FDMUUsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtZQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO2dCQUM1QixHQUFHLFlBQVk7Z0JBQ2YsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxhQUFhLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUN0QyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7aUJBQ3RCLENBQUMsQ0FBQztnQkFDSCxRQUFRLEVBQUUsY0FBYzthQUN6QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsb0JBQXlDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHO1lBQ25CLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQU07WUFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ2hDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLDBCQUEwQjtZQUMvQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO2dCQUM5QixRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLE9BQU8sRUFBRSxFQUFFOzRCQUNYLElBQUksRUFBRTtnQ0FDSixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVk7Z0NBQ3pCLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU87Z0NBQ25FLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUk7NkJBQzlEO3lCQUNGO3FCQUNGO2lCQUNGO2dCQUNELFdBQVcsRUFBRSxFQUFFO2dCQUNmLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2FBQ3BDLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO2dCQUN0QyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFtQyxFQUFFLEVBQUUsQ0FBQyxFQUFFO2FBQ3BHLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO2dCQUNsQyxZQUFZO2dCQUNaLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTthQUM1QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO2dCQUNoQyxZQUFZO2dCQUNaLFFBQVEsRUFBRSxRQUFRLENBQUMsT0FBTzthQUMzQixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7WUFDbkMsY0FBYyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsRUFBRztZQUNyRCxVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7WUFDL0IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRTtTQUM1QixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBdUI7UUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQ3RDLGNBQWMsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUc7WUFDckQsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1NBQ2hDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDMUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUN0RCxDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUM7b0JBQ0U7d0JBQ0UsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUU7d0JBQ3pGLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtxQkFDbkM7aUJBQ0Y7WUFDTCxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7OEdBdk1VLCtCQUErQjtrR0FBL0IsK0JBQStCLG1SQ3pCNUMsc3dKQWlIQTs7MkZEeEZhLCtCQUErQjtrQkFKM0MsU0FBUzsrQkFDRSwyQkFBMkI7OzBCQTBCbEMsUUFBUTt5Q0FwQkYsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHSSxNQUFNO3NCQUFmLE1BQU07Z0JBT00sb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTCxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIElNZXRhZGF0YSxcbiAgTGlicmFyeVR5cGVzLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUFjdGlvbnMsIE1ldGFkYXRhU2VsZWN0b3JzLCBNZXRhRXZlbnRUeXBlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRkLWVkaXQtcHJlc2VudGF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5QWRkRWRpdFByZXNlbnRhdGlvbkNvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHN0YXRpY01hbmlmZXN0JDogT2JzZXJ2YWJsZTxHbG9iYWxNYW5pZmVzdD47XG4gIHNlbGVjdGVkUHJlc2VudGF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFuaWZlc3REZXNjcmlwdGlvbiB8IG51bGw+KG51bGwpO1xuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIGltYWdlOiBzdHJpbmcgPSBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTDtcbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgdHlwZTogTGlicmFyeVR5cGVzID0gTGlicmFyeVR5cGVzLklMTFVTVFJBVElPTjtcbiAgY2hvc2VuTGF5b3V0OiBzdHJpbmcgPSBEYXNoYm9hcmRHcmlkTGF5b3V0LkZVTEw7XG4gIHBvc3NpYmxlVGhlbWVzOiBzdHJpbmdbXSA9IFtdO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFByZXNlbnRhdGlvbihwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24gfCBudWxsKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQubmV4dChwcmVzZW50YXRpb24pO1xuICB9XG5cbiAgQElucHV0KCkgbW9kZTogJ3RoZW1lJyB8ICdtZXRhJyA9ICdtZXRhJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRNZXRhZGF0YSgpKTtcbiAgICB0aGlzLnN0YXRpY01hbmlmZXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zdGF0aWNNYW5pZmVzdCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgIChbc3RhdGljTWFuaWZlc3QsIGdyaWRMYXlvdXRdKSA9PiB7XG4gICAgICAgIHRoaXMuY2hvc2VuTGF5b3V0ID1cbiAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0XG4gICAgICAgICAgICA6IGdyaWRMYXlvdXQ7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICAgIHRoaXMucG9zc2libGVUaGVtZXMgPSBtZXRhZGF0YVRoZW1lPy5hbGxvd2VkVmFsdWVzID8/IFtdO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSksXG4gICAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCldKSxcbiAgICAgIHRoZW1lOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycpXG4gICAgfSk7XG4gICAgdGhpcy5pbWFnZSA9IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pbWFnZSA/PyBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTDtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQuc3Vic2NyaWJlKChwcmVzZW50YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdGhlbWUgPSBwcmVzZW50YXRpb24/Lm1ldGFkYXRhPy5maW5kKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEubWV0YWRhdGFEZWYubmFtZSA9PT0gJ190aGVtZScpPy52YWx1ZTtcbiAgICAgICAgaWYgKCEhdGhlbWUpIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgdGhlbWUgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUpIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmUoKSB7XG4gICAgaWYgKCF0aGlzLmVkaXRpb24pIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVTdGF0aWNNYW5pZmVzdCh7IHN0YXRpY01hbmlmZXN0OiB7IHdpbmRvd3M6IFtdIH0gfSkpO1xuICAgIH1cbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRpc3BhdGNoU2F2ZSgpOiBNYW5pZmVzdERlc2NyaXB0aW9uIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB7XG4gICAgICAuLi50aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSEsXG4gICAgICBpZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkIHx8IHV1aWR2NCgpLFxuICAgICAgbmFtZTogdGhpcy5mb3JtLnZhbHVlLm5hbWUgPz8gJycsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5mb3JtLnZhbHVlLmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgIGltYWdlOiB0aGlzLmltYWdlID8/IERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKSxcbiAgICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogdGhpcy5mb3JtLnZhbHVlLmFkZGl0aW9uYWxJbmZvcm1hdGlvbiA/PyB1bmRlZmluZWRcbiAgICB9O1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChzdGF0aWNNYW5pZmVzdCkgPT4ge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMuc2F2ZU1hbmlmZXN0KHtcbiAgICAgICAgICAgIC4uLnByZXNlbnRhdGlvbixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBwcmVzZW50YXRpb24ubWV0YWRhdGE/Lm1hcCgobWV0YWRhdGEpID0+ICh7XG4gICAgICAgICAgICAgIG1ldGFkYXRhRGVmSWQ6IG1ldGFkYXRhLm1ldGFkYXRhRGVmLmlkLFxuICAgICAgICAgICAgICB2YWx1ZTogbWV0YWRhdGEudmFsdWVcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIG1hbmlmZXN0OiBzdGF0aWNNYW5pZmVzdFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIHByZXNlbnRhdGlvbjtcbiAgfVxuXG4gIGNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hTYXZlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgbmFtZTogdGhpcy5mb3JtLnZhbHVlLm5hbWUgPz8gJycsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5mb3JtLnZhbHVlLmRlc2NyaXB0aW9uLFxuICAgICAgaW1hZ2U6IHRoaXMuaW1hZ2UgPz8gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkwsXG4gICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YSgpXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5lZGl0aW9uKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0KHtcbiAgICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgICAgd2luZG93czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0czogW10sXG4gICAgICAgICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgICAgICAgbGF5b3V0OiB0aGlzLmNob3NlbkxheW91dCxcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IFdpZGdldFBsYWNlbWVudFV0aWxzLmdldExheW91dCh0aGlzLmNob3NlbkxheW91dCk/LmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICByb3dzOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5yb3dzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZWxlY3RlZElkczogW10sXG4gICAgICAgICAgbWFuaWZlc3RJZDogc2VsZWN0ZWRQcmVzZW50YXRpb24uaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnNldEluaXRpYWxQcmVzZW50YXRpb24oe1xuICAgICAgICAgIGluaXRpYWw6IHsgd2luZG93czogW3sgd2lkZ2V0czogW10sIGdyaWQ6IHsgbGF5b3V0OiB0aGlzLmNob3NlbkxheW91dCBhcyBEYXNoYm9hcmRHcmlkTGF5b3V0IH0gfV0gfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKHtcbiAgICAgICAgICBwcmVzZW50YXRpb24sXG4gICAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkNSRUFUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmxvYWRQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuRURJVElPTlxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwodGhpcy5lZGl0aW9uU3RhcnRVcmwpO1xuICB9XG5cbiAgYWRkTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5hZGRNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZSA/PyAnJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5kZWxldGVNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWRcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZ29CYWNrLmVtaXQoKTtcbiAgfVxuXG4gIG1ldGFkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICd0aGVtZSdcbiAgICAgID8gIXRoaXMuZm9ybS52YWx1ZS50aGVtZSB8fCB0aGlzLmZvcm0udmFsdWUudGhlbWUgPT09ICcnXG4gICAgICAgID8gW11cbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG1ldGFkYXRhRGVmOiB0aGlzLm1ldGFkYXRhRGVmcyEuZmluZCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLmlkID09PSB0aGlzLm1ldGFkYXRhVGhlbWVJZCkhLFxuICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5mb3JtLnZhbHVlLnRoZW1lID8/ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8ubWV0YWRhdGEgPz8gW107XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3hcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+XG4gICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNoZWNrJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dF9fY29udGVudC0tcHJlc2VudGF0aW9uXCI+XG4gICAgPGgxIGNsYXNzPVwiYS1oMVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5hZGQnICsgJy5wYWdlVGl0bGUnIHwgaTE4biB9fTwvaDE+XG4gICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uLWZvcm0td3JhcHBlclwiPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX25hbWVcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5uYW1lJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgaWQ9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZScgfCBpMThuIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGZvcj1cInByZXNlbnRhdGlvbl9uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCAmJiBmb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5yZXF1aXJlZCcgfCBpMThuIH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgIGZvcj1cInByZXNlbnRhdGlvbl9uYW1lXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLm1heExlbmd0aCcgfCBpMThuOiB7IGxlbjogJzUwJyB9IH19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCI+e3tcbiAgICAgICAgICAgICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uJyB8IGkxOG5cbiAgICAgICAgICB9fTwvbGFiZWw+XG4gICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBpZD1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgY29scz1cIjMwXCJcbiAgICAgICAgICAgIHJvd3M9XCI1XCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjIwMFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX1cIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgZm9yPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk/Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdAcHJ5LnByZXNlbnRhdGlvbi5tYXhMZW5ndGgnIHwgaTE4bjogeyBsZW46ICcyMDAnIH0gfX1cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiICpuZ0lmPVwibW9kZSA9PT0gJ3RoZW1lJ1wiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25fdGhlbWVcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS50aGVtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgaWQ9XCJwcmVzZW50YXRpb25fdGhlbWVcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInBvc3NpYmxlVGhlbWVzXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRoZW1lXCJcbiAgICAgICAgICAgIFtjbGVhcmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaTE4blByZWZpeF09XCJ0aGVtZVByZWZpeFwiXG4gICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX2ltYWdlXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0uaW1hZ2UnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tZmlsZS1pbnB1dFwiPlxuICAgICAgICAgICAgPHByeS1zZWxlY3QtaW1hZ2VcbiAgICAgICAgICAgICAgaWQ9XCJwcmVzZW50YXRpb25faW1hZ2VcIlxuICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJpbWFnZSA9ICRldmVudFwiXG4gICAgICAgICAgICAgIFtpY29uVXJsXT1cImltYWdlXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwidHlwZVwiXG4gICAgICAgICAgICA+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgICAgICAgIDxwcnktdGV4dC1lZGl0b3IgZm9ybUNvbnRyb2xOYW1lPVwiYWRkaXRpb25hbEluZm9ybWF0aW9uXCI+PC9wcnktdGV4dC1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dCAqbmdJZj1cIiFlZGl0aW9uXCI+PC9wcnktc2VsZWN0LWdyaWQtbGF5b3V0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnbWV0YSdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19tZXRhZGF0YS1lZGl0b3JcIiAqbmdJZj1cInNlbGVjdGVkUHJlc2VudGF0aW9uJCB8IGFzeW5jIGFzIHNlbGVjdGVkUHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgICAgICAgIFt0YXJnZXRJZF09XCJzZWxlY3RlZFByZXNlbnRhdGlvbi5pZFwiXG4gICAgICAgICAgICBbaXNNb2RpZmljYXRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbWV0YWRhdGFdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24ubWV0YWRhdGEgPz8gW11cIlxuICAgICAgICAgICAgKHJlbW92ZU1ldGEpPVwicmVtb3ZlTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYWRkTWV0YSk9XCJhZGRNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgICAgICAgPjwvcHJ5LW1ldGFkYXRhLWVkaXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJjb25maWd1cmVEYXNoYm9hcmQoc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISlcIlxuICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgPlxuICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNvbmZpZ3VyYXRpb24nIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19