@smartbit4all/ng-client 3.0.30 → 3.0.32

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.
@@ -1,8 +1,8 @@
1
1
  /*
2
2
  * Public API Surface of smartdialog
3
3
  */
4
- export * from './smartdialog.service';
4
+ export * from './smartdialog.abstract.service';
5
5
  export * from './smartdialog.component';
6
6
  export * from './smartdialog.module';
7
7
  export * from './smartdialog.model';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1kaWFsb2cvcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNtYXJ0ZGlhbG9nXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGRpYWxvZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0ZGlhbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRkaWFsb2cubW9kZWwnO1xyXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1kaWFsb2cvcHJvamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHNtYXJ0ZGlhbG9nXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGRpYWxvZy5hYnN0cmFjdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zbWFydGRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NtYXJ0ZGlhbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc21hcnRkaWFsb2cubW9kZWwnO1xyXG4iXX0=
@@ -0,0 +1,48 @@
1
+ export class SmartAbstractdialogService {
2
+ constructor(dialog, router) {
3
+ this.dialog = dialog;
4
+ this.router = router;
5
+ }
6
+ createDialog(smartDialog, component) {
7
+ this.dialogData = smartDialog;
8
+ this.dialogRef = this.dialog.open(component, { data: this.dialogData });
9
+ this.dialogRef.afterClosed().subscribe((result) => {
10
+ this.handleAfterClosed(result);
11
+ this.closeDialog();
12
+ });
13
+ return this.dialogRef;
14
+ }
15
+ createDialogRef(smartDialog, component) {
16
+ const dialogRef = this.dialog.open(component, { data: smartDialog });
17
+ dialogRef.afterClosed().subscribe((result) => {
18
+ this.handleAfterClosed(result);
19
+ dialogRef.close();
20
+ });
21
+ return dialogRef;
22
+ }
23
+ openComponentAsDialog(component, viewName) {
24
+ let smartDialog = {
25
+ size: {},
26
+ content: {
27
+ title: viewName,
28
+ },
29
+ customComponent: component,
30
+ };
31
+ return this.createDialog(smartDialog, component);
32
+ }
33
+ handleAfterClosed(result) { }
34
+ openDialog() {
35
+ throw new Error('openDialog function is not implemented!');
36
+ }
37
+ async closeDialog() {
38
+ if (this.dialogData?.outlets) {
39
+ await this.router.navigate([
40
+ {
41
+ outlets: this.dialogData.outlets,
42
+ },
43
+ ]);
44
+ }
45
+ this.dialogRef?.close();
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRkaWFsb2cuYWJzdHJhY3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWRpYWxvZy9zbWFydGRpYWxvZy5hYnN0cmFjdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsMEJBQTBCO0lBQzlDLFlBQXNCLE1BQWlCLEVBQVksTUFBYztRQUEzQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFLckUsWUFBWSxDQUNWLFdBQTRCLEVBQzVCLFNBQTZCO1FBRTdCLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsZUFBZSxDQUNiLFdBQTRCLEVBQzVCLFNBQTZCO1FBRTdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQTZCLEVBQUUsUUFBZ0I7UUFDbkUsSUFBSSxXQUFXLEdBQW9CO1lBQ2pDLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1lBQ0QsZUFBZSxFQUFFLFNBQVM7U0FDM0IsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQVcsSUFBUyxDQUFDO0lBRXZDLFVBQVU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRTtZQUM1QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2dCQUN6QjtvQkFDRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO2lCQUNqQzthQUNGLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU21hcnREaWFsb2dEYXRhIH0gZnJvbSAnLi9zbWFydGRpYWxvZy5tb2RlbCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU21hcnRBYnN0cmFjdGRpYWxvZ1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZywgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuICBwcml2YXRlIGRpYWxvZ1JlZiE6IE1hdERpYWxvZ1JlZjxhbnk+O1xyXG4gIHByaXZhdGUgZGlhbG9nRGF0YSE6IFNtYXJ0RGlhbG9nRGF0YTtcclxuXHJcbiAgY3JlYXRlRGlhbG9nKFxyXG4gICAgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSxcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+XHJcbiAgKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICB0aGlzLmRpYWxvZ0RhdGEgPSBzbWFydERpYWxvZztcclxuXHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCB7IGRhdGE6IHRoaXMuZGlhbG9nRGF0YSB9KTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0KTtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEaWFsb2dSZWYoXHJcbiAgICBzbWFydERpYWxvZzogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT5cclxuICApOiBNYXREaWFsb2dSZWY8YW55LCBhbnk+IHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCB7IGRhdGE6IHNtYXJ0RGlhbG9nIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0KTtcclxuICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbXBvbmVudEFzRGlhbG9nKGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+LCB2aWV3TmFtZTogc3RyaW5nKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICBsZXQgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcclxuICAgICAgc2l6ZToge30sXHJcbiAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICB0aXRsZTogdmlld05hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudDogY29tcG9uZW50LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEaWFsb2coc21hcnREaWFsb2csIGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBZnRlckNsb3NlZChyZXN1bHQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb3BlbkRpYWxvZygpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignb3BlbkRpYWxvZyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQhJyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjbG9zZURpYWxvZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGE/Lm91dGxldHMpIHtcclxuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG91dGxldHM6IHRoaXMuZGlhbG9nRGF0YS5vdXRsZXRzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { lastValueFrom, Subject } from 'rxjs';
3
- import { SmartAbstractdialogService } from '../smart-dialog/smartdialog.service';
3
+ import { SmartAbstractdialogService } from '../smart-dialog/projects';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./api/grid-api";
6
6
  import * as i2 from "@angular/material/dialog";
@@ -69,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
69
69
  providedIn: 'root',
70
70
  }]
71
71
  }], ctorParameters: function () { return [{ type: i1.GridService }, { type: i2.MatDialog }, { type: i3.Router }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9zbWFydC1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7QUFLakYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLDBCQUEwQjtJQUc5RCxZQUFvQixHQUFnQixFQUFFLE1BQWlCLEVBQUUsTUFBYztRQUNyRSxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREosUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUZwQyxxQkFBZ0IsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUloRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDN0MsSUFBSSxlQUFlLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsSUFBWSxFQUNaLGNBQXNCLEVBQ3RCLE1BQWMsRUFDZCxLQUFhO1FBRWIsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQW9CLEVBQUUsY0FBOEI7UUFDN0QsSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRzthQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUM7YUFDL0UsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLEtBQWE7UUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHO2FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVMsRUFBRSxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQzthQUN0RSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLE9BQWdCO1FBQ2pELE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRzthQUNsQixNQUFNLENBQ0wsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQzdCLFNBQVMsQ0FBQyxjQUFjLEVBQ3hCLE9BQU8sQ0FBQyxFQUFHLEVBQ1gsT0FBTyxDQUFDLFFBQVEsQ0FDakI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFvQixFQUFFLFFBQWlCO1FBQ3JELE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRzthQUNsQixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7YUFDNUUsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsVUFBMEI7UUFDdkUsSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsNEJBQTRCO0lBQzVCLElBQUk7SUFFSyxpQkFBaUI7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxVQUFVLENBQUMsU0FBZ0MsRUFBRSxNQUFjO1FBQ2pFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlCO2FBQU07WUFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQzs7NkdBekVVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyaWRNb2RlbCwgR3JpZFJvdywgR3JpZFNlcnZpY2UsIEdyaWRVcGRhdGVEYXRhIH0gZnJvbSAnLi9hcGkvZ3JpZC1hcGknO1xyXG5pbXBvcnQgeyBTbWFydEdyaWQgfSBmcm9tICcuL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRBYnN0cmFjdGRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1kaWFsb2cvc21hcnRkaWFsb2cuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRHcmlkU2VydmljZSBleHRlbmRzIFNtYXJ0QWJzdHJhY3RkaWFsb2dTZXJ2aWNlIHtcclxuICBncmlkTW9kZWxDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBncmlkTW9kZWwhOiBHcmlkTW9kZWw7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IEdyaWRTZXJ2aWNlLCBkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHN1cGVyKGRpYWxvZywgcm91dGVyKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWQodXVpZDogc3RyaW5nLCBncmlkSWRlbnRpZmllcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZ3JpZE1vZGVsUmVzdWx0ID0gYXdhaXQgbGFzdFZhbHVlRnJvbSh0aGlzLmFwaS5sb2FkKHV1aWQsIGdyaWRJZGVudGlmaWVyKSk7XHJcbiAgICB0aGlzLnVwZGF0ZUdyaWQoZ3JpZE1vZGVsUmVzdWx0LCAnbG9hZCcpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc2V0UGFnZShcclxuICAgIHV1aWQ6IHN0cmluZyxcclxuICAgIGdyaWRJZGVudGlmaWVyOiBzdHJpbmcsXHJcbiAgICBvZmZzZXQ6IHN0cmluZyxcclxuICAgIGxpbWl0OiBzdHJpbmdcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5hcGkuc2V0UGFnZSh1dWlkLCBncmlkSWRlbnRpZmllciwgb2Zmc2V0LCBsaW1pdCkpO1xyXG4gICAgYXdhaXQgdGhpcy5sb2FkKHV1aWQsIGdyaWRJZGVudGlmaWVyKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNvcnQoc21hcnRHcmlkOiBTbWFydEdyaWQsIGdyaWRVcGRhdGVEYXRhOiBHcmlkVXBkYXRlRGF0YSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGdyaWRNb2RlbFJlc3VsdCA9IGF3YWl0IHRoaXMuYXBpXHJcbiAgICAgIC51cGRhdGUoc21hcnRHcmlkLmdyaWRNb2RlbC52aWV3VXVpZCEsIHNtYXJ0R3JpZC5ncmlkSWRlbnRpZmllciwgZ3JpZFVwZGF0ZURhdGEpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIHRoaXMudXBkYXRlR3JpZChncmlkTW9kZWxSZXN1bHQsICdzb3J0Jyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHBhbmQoc21hcnRHcmlkOiBTbWFydEdyaWQsIHJvd0lkOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXBpXHJcbiAgICAgIC5leHBhbmQoc21hcnRHcmlkLmdyaWRNb2RlbC52aWV3VXVpZCEsIHNtYXJ0R3JpZC5ncmlkSWRlbnRpZmllciwgcm93SWQpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbGVjdChzbWFydEdyaWQ6IFNtYXJ0R3JpZCwgZ3JpZFJvdzogR3JpZFJvdyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBncmlkUm93LnNlbGVjdGVkID0gIWdyaWRSb3cuc2VsZWN0ZWQ7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hcGlcclxuICAgICAgLnNlbGVjdChcclxuICAgICAgICBzbWFydEdyaWQuZ3JpZE1vZGVsLnZpZXdVdWlkISxcclxuICAgICAgICBzbWFydEdyaWQuZ3JpZElkZW50aWZpZXIsXHJcbiAgICAgICAgZ3JpZFJvdy5pZCEsXHJcbiAgICAgICAgZ3JpZFJvdy5zZWxlY3RlZFxyXG4gICAgICApXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNlbGVjdEFsbChzbWFydEdyaWQ6IFNtYXJ0R3JpZCwgc2VsZWN0ZWQ6IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXBpXHJcbiAgICAgIC5zZWxlY3RBbGwoc21hcnRHcmlkLmdyaWRNb2RlbC52aWV3VXVpZCEsIHNtYXJ0R3JpZC5ncmlkSWRlbnRpZmllciwgc2VsZWN0ZWQpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHVwZGF0ZSh1dWlkOiBzdHJpbmcsIGlkZW50aWZpZXI6IHN0cmluZywgdXBkYXRlRGF0YTogR3JpZFVwZGF0ZURhdGEpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBncmlkTW9kZWxSZXN1bHQgPSBhd2FpdCB0aGlzLmFwaS51cGRhdGUodXVpZCwgaWRlbnRpZmllciwgdXBkYXRlRGF0YSkudG9Qcm9taXNlKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUdyaWQoZ3JpZE1vZGVsUmVzdWx0LCAndXBkYXRlJyk7XHJcbiAgfVxyXG5cclxuICAvLyBvdmVycmlkZSBhc3luYyBjbG9zZURpYWxvZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIHRoaXMuZGlhbG9nLmNsb3NlQWxsKCk7XHJcbiAgLy8gfVxyXG5cclxuICBvdmVycmlkZSBoYW5kbGVBZnRlckNsb3NlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZE1vZGVsQ2hhbmdlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUdyaWQoZ3JpZE1vZGVsOiBHcmlkTW9kZWwgfCB1bmRlZmluZWQsIG1ldGhvZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoZ3JpZE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZ3JpZE1vZGVsID0gZ3JpZE1vZGVsO1xyXG4gICAgICB0aGlzLmdyaWRNb2RlbENoYW5nZWQubmV4dCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgR3JpZE1vZGVsIGlzIHVuZGVmaW5lZCBpbiBzZXJ2aWNlIGFmdGVyICR7bWV0aG9kfSFgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9zbWFydC1ncmlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUc5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFLdEUsTUFBTSxPQUFPLGdCQUFpQixTQUFRLDBCQUEwQjtJQUc5RCxZQUFvQixHQUFnQixFQUFFLE1BQWlCLEVBQUUsTUFBYztRQUNyRSxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBREosUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUZwQyxxQkFBZ0IsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUloRCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFZLEVBQUUsY0FBc0I7UUFDN0MsSUFBSSxlQUFlLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQ1gsSUFBWSxFQUNaLGNBQXNCLEVBQ3RCLE1BQWMsRUFDZCxLQUFhO1FBRWIsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQW9CLEVBQUUsY0FBOEI7UUFDN0QsSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRzthQUNqQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUM7YUFDL0UsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLEtBQWE7UUFDOUMsT0FBTyxNQUFNLElBQUksQ0FBQyxHQUFHO2FBQ2xCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVMsRUFBRSxTQUFTLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQzthQUN0RSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFvQixFQUFFLE9BQWdCO1FBQ2pELE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRzthQUNsQixNQUFNLENBQ0wsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQzdCLFNBQVMsQ0FBQyxjQUFjLEVBQ3hCLE9BQU8sQ0FBQyxFQUFHLEVBQ1gsT0FBTyxDQUFDLFFBQVEsQ0FDakI7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFvQixFQUFFLFFBQWlCO1FBQ3JELE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRzthQUNsQixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFTLEVBQUUsU0FBUyxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUM7YUFDNUUsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWSxFQUFFLFVBQWtCLEVBQUUsVUFBMEI7UUFDdkUsSUFBSSxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RGLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsNEJBQTRCO0lBQzVCLElBQUk7SUFFSyxpQkFBaUI7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxVQUFVLENBQUMsU0FBZ0MsRUFBRSxNQUFjO1FBQ2pFLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1NBQzlCO2FBQU07WUFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQzs7NkdBekVVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyaWRNb2RlbCwgR3JpZFJvdywgR3JpZFNlcnZpY2UsIEdyaWRVcGRhdGVEYXRhIH0gZnJvbSAnLi9hcGkvZ3JpZC1hcGknO1xyXG5pbXBvcnQgeyBTbWFydEdyaWQgfSBmcm9tICcuL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRBYnN0cmFjdGRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9zbWFydC1kaWFsb2cvcHJvamVjdHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0R3JpZFNlcnZpY2UgZXh0ZW5kcyBTbWFydEFic3RyYWN0ZGlhbG9nU2VydmljZSB7XHJcbiAgZ3JpZE1vZGVsQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZ3JpZE1vZGVsITogR3JpZE1vZGVsO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpOiBHcmlkU2VydmljZSwgZGlhbG9nOiBNYXREaWFsb2csIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICBzdXBlcihkaWFsb2csIHJvdXRlcik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkKHV1aWQ6IHN0cmluZywgZ3JpZElkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGdyaWRNb2RlbFJlc3VsdCA9IGF3YWl0IGxhc3RWYWx1ZUZyb20odGhpcy5hcGkubG9hZCh1dWlkLCBncmlkSWRlbnRpZmllcikpO1xyXG4gICAgdGhpcy51cGRhdGVHcmlkKGdyaWRNb2RlbFJlc3VsdCwgJ2xvYWQnKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNldFBhZ2UoXHJcbiAgICB1dWlkOiBzdHJpbmcsXHJcbiAgICBncmlkSWRlbnRpZmllcjogc3RyaW5nLFxyXG4gICAgb2Zmc2V0OiBzdHJpbmcsXHJcbiAgICBsaW1pdDogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuYXBpLnNldFBhZ2UodXVpZCwgZ3JpZElkZW50aWZpZXIsIG9mZnNldCwgbGltaXQpKTtcclxuICAgIGF3YWl0IHRoaXMubG9hZCh1dWlkLCBncmlkSWRlbnRpZmllcik7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzb3J0KHNtYXJ0R3JpZDogU21hcnRHcmlkLCBncmlkVXBkYXRlRGF0YTogR3JpZFVwZGF0ZURhdGEpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBncmlkTW9kZWxSZXN1bHQgPSBhd2FpdCB0aGlzLmFwaVxyXG4gICAgICAudXBkYXRlKHNtYXJ0R3JpZC5ncmlkTW9kZWwudmlld1V1aWQhLCBzbWFydEdyaWQuZ3JpZElkZW50aWZpZXIsIGdyaWRVcGRhdGVEYXRhKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUdyaWQoZ3JpZE1vZGVsUmVzdWx0LCAnc29ydCcpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhwYW5kKHNtYXJ0R3JpZDogU21hcnRHcmlkLCByb3dJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmFwaVxyXG4gICAgICAuZXhwYW5kKHNtYXJ0R3JpZC5ncmlkTW9kZWwudmlld1V1aWQhLCBzbWFydEdyaWQuZ3JpZElkZW50aWZpZXIsIHJvd0lkKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZWxlY3Qoc21hcnRHcmlkOiBTbWFydEdyaWQsIGdyaWRSb3c6IEdyaWRSb3cpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgZ3JpZFJvdy5zZWxlY3RlZCA9ICFncmlkUm93LnNlbGVjdGVkO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXBpXHJcbiAgICAgIC5zZWxlY3QoXHJcbiAgICAgICAgc21hcnRHcmlkLmdyaWRNb2RlbC52aWV3VXVpZCEsXHJcbiAgICAgICAgc21hcnRHcmlkLmdyaWRJZGVudGlmaWVyLFxyXG4gICAgICAgIGdyaWRSb3cuaWQhLFxyXG4gICAgICAgIGdyaWRSb3cuc2VsZWN0ZWRcclxuICAgICAgKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZWxlY3RBbGwoc21hcnRHcmlkOiBTbWFydEdyaWQsIHNlbGVjdGVkOiBib29sZWFuKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmFwaVxyXG4gICAgICAuc2VsZWN0QWxsKHNtYXJ0R3JpZC5ncmlkTW9kZWwudmlld1V1aWQhLCBzbWFydEdyaWQuZ3JpZElkZW50aWZpZXIsIHNlbGVjdGVkKVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGUodXVpZDogc3RyaW5nLCBpZGVudGlmaWVyOiBzdHJpbmcsIHVwZGF0ZURhdGE6IEdyaWRVcGRhdGVEYXRhKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZ3JpZE1vZGVsUmVzdWx0ID0gYXdhaXQgdGhpcy5hcGkudXBkYXRlKHV1aWQsIGlkZW50aWZpZXIsIHVwZGF0ZURhdGEpLnRvUHJvbWlzZSgpO1xyXG4gICAgdGhpcy51cGRhdGVHcmlkKGdyaWRNb2RlbFJlc3VsdCwgJ3VwZGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgLy8gb3ZlcnJpZGUgYXN5bmMgY2xvc2VEaWFsb2coKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgLy8gICB0aGlzLmRpYWxvZy5jbG9zZUFsbCgpO1xyXG4gIC8vIH1cclxuXHJcbiAgb3ZlcnJpZGUgaGFuZGxlQWZ0ZXJDbG9zZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyaWRNb2RlbENoYW5nZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVHcmlkKGdyaWRNb2RlbDogR3JpZE1vZGVsIHwgdW5kZWZpbmVkLCBtZXRob2Q6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGdyaWRNb2RlbCkge1xyXG4gICAgICB0aGlzLmdyaWRNb2RlbCA9IGdyaWRNb2RlbDtcclxuICAgICAgdGhpcy5ncmlkTW9kZWxDaGFuZ2VkLm5leHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEdyaWRNb2RlbCBpcyB1bmRlZmluZWQgaW4gc2VydmljZSBhZnRlciAke21ldGhvZH0hYCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,19 +2,19 @@ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/material/dialog";
4
4
  import * as i2 from "@angular/router";
5
- export class SmartdialogService {
5
+ export class SmartViewContextDialogService {
6
6
  constructor(dialog, router) {
7
7
  this.dialog = dialog;
8
8
  this.router = router;
9
9
  }
10
10
  createDialog(smartDialog, component) {
11
- let dialogData = smartDialog;
12
- let dialogRef = this.dialog.open(component, { data: dialogData });
13
- dialogRef.afterClosed().subscribe((result) => {
11
+ this.dialogData = smartDialog;
12
+ this.dialogRef = this.dialog.open(component, { data: this.dialogData });
13
+ this.dialogRef.afterClosed().subscribe((result) => {
14
14
  this.handleAfterClosed(result);
15
- this.closeDialog(dialogRef, dialogData);
15
+ this.closeDialog();
16
16
  });
17
- return dialogRef;
17
+ return this.dialogRef;
18
18
  }
19
19
  createDialogRef(smartDialog, component) {
20
20
  const dialogRef = this.dialog.open(component, { data: smartDialog });
@@ -38,23 +38,23 @@ export class SmartdialogService {
38
38
  openDialog() {
39
39
  throw new Error('openDialog function is not implemented!');
40
40
  }
41
- async closeDialog(dialogRef, dialogData) {
42
- if (dialogData?.outlets) {
41
+ async closeDialog() {
42
+ if (this.dialogData?.outlets) {
43
43
  await this.router.navigate([
44
44
  {
45
- outlets: dialogData.outlets,
45
+ outlets: this.dialogData.outlets,
46
46
  },
47
47
  ]);
48
48
  }
49
- dialogRef?.close();
49
+ this.dialogRef?.close();
50
50
  }
51
51
  }
52
- SmartdialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
53
- SmartdialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, providedIn: 'root' });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, decorators: [{
52
+ SmartViewContextDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, deps: [{ token: i1.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
53
+ SmartViewContextDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, providedIn: 'root' });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, decorators: [{
55
55
  type: Injectable,
56
56
  args: [{
57
57
  providedIn: 'root',
58
58
  }]
59
59
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFBOEIsTUFBaUIsRUFBWSxNQUFjO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUU3RSxZQUFZLENBQ1YsV0FBNEIsRUFDNUIsU0FBNkI7UUFFN0IsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDO1FBRTdCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUNiLFdBQTRCLEVBQzVCLFNBQTZCO1FBRTdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXJFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQTZCLEVBQUUsUUFBZ0I7UUFDbkUsSUFBSSxXQUFXLEdBQW9CO1lBQ2pDLElBQUksRUFBRSxFQUFFO1lBQ1IsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxRQUFRO2FBQ2hCO1lBQ0QsZUFBZSxFQUFFLFNBQVM7U0FDM0IsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQVcsSUFBUyxDQUFDO0lBRXZDLFVBQVU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBaUMsRUFBRSxVQUEyQjtRQUM5RSxJQUFJLFVBQVUsRUFBRSxPQUFPLEVBQUU7WUFDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDekI7b0JBQ0UsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2lCQUM1QjthQUNGLENBQUMsQ0FBQztTQUNKO1FBQ0QsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7OytHQTNEVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEgfSBmcm9tICcuLi9zbWFydC1kaWFsb2cvc21hcnRkaWFsb2cubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0ZGlhbG9nU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgY3JlYXRlRGlhbG9nKFxyXG4gICAgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSxcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+XHJcbiAgKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICBsZXQgZGlhbG9nRGF0YSA9IHNtYXJ0RGlhbG9nO1xyXG5cclxuICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGNvbXBvbmVudCwgeyBkYXRhOiBkaWFsb2dEYXRhIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0KTtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZyhkaWFsb2dSZWYsIGRpYWxvZ0RhdGEpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRGlhbG9nUmVmKFxyXG4gICAgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSxcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+XHJcbiAgKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKGNvbXBvbmVudCwgeyBkYXRhOiBzbWFydERpYWxvZyB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUFmdGVyQ2xvc2VkKHJlc3VsdCk7XHJcbiAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRpYWxvZ1JlZjtcclxuICB9XHJcblxyXG4gIG9wZW5Db21wb25lbnRBc0RpYWxvZyhjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8YW55Piwgdmlld05hbWU6IHN0cmluZyk6IE1hdERpYWxvZ1JlZjxhbnksIGFueT4ge1xyXG4gICAgbGV0IHNtYXJ0RGlhbG9nOiBTbWFydERpYWxvZ0RhdGEgPSB7XHJcbiAgICAgIHNpemU6IHt9LFxyXG4gICAgICBjb250ZW50OiB7XHJcbiAgICAgICAgdGl0bGU6IHZpZXdOYW1lLFxyXG4gICAgICB9LFxyXG4gICAgICBjdXN0b21Db21wb25lbnQ6IGNvbXBvbmVudCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlhbG9nKHNtYXJ0RGlhbG9nLCBjb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0OiBhbnkpOiB2b2lkIHt9XHJcblxyXG4gIG9wZW5EaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29wZW5EaWFsb2cgZnVuY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIScpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY2xvc2VEaWFsb2coZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55LCBhbnk+LCBkaWFsb2dEYXRhOiBTbWFydERpYWxvZ0RhdGEpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChkaWFsb2dEYXRhPy5vdXRsZXRzKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBvdXRsZXRzOiBkaWFsb2dEYXRhLm91dGxldHMsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgICBkaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC1kaWFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTNDLE1BQU0sT0FBTyw2QkFBNkI7SUFDeEMsWUFBOEIsTUFBaUIsRUFBWSxNQUFjO1FBQTNDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUs3RSxZQUFZLENBQ1YsV0FBNEIsRUFDNUIsU0FBNkI7UUFFN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFFOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxlQUFlLENBQ2IsV0FBNEIsRUFDNUIsU0FBNkI7UUFFN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFckUsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBNkIsRUFBRSxRQUFnQjtRQUNuRSxJQUFJLFdBQVcsR0FBb0I7WUFDakMsSUFBSSxFQUFFLEVBQUU7WUFDUixPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLFFBQVE7YUFDaEI7WUFDRCxlQUFlLEVBQUUsU0FBUztTQUMzQixDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBVyxJQUFTLENBQUM7SUFFdkMsVUFBVTtRQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFO1lBQzVCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCO29CQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87aUJBQ2pDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7OzBIQTlEVSw2QkFBNkI7OEhBQTdCLDZCQUE2QixjQUY1QixNQUFNOzJGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEgfSBmcm9tICcuLi9zbWFydC1kaWFsb2cvc21hcnRkaWFsb2cubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Vmlld0NvbnRleHREaWFsb2dTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBkaWFsb2c6IE1hdERpYWxvZywgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyKSB7fVxyXG5cclxuICBwcml2YXRlIGRpYWxvZ0RhdGEhOiBTbWFydERpYWxvZ0RhdGE7XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWYhOiBNYXREaWFsb2dSZWY8YW55PjtcclxuXHJcbiAgY3JlYXRlRGlhbG9nKFxyXG4gICAgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSxcclxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+XHJcbiAgKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICB0aGlzLmRpYWxvZ0RhdGEgPSBzbWFydERpYWxvZztcclxuXHJcbiAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCB7IGRhdGE6IHRoaXMuZGlhbG9nRGF0YSB9KTtcclxuXHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0KTtcclxuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVEaWFsb2dSZWYoXHJcbiAgICBzbWFydERpYWxvZzogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT5cclxuICApOiBNYXREaWFsb2dSZWY8YW55LCBhbnk+IHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oY29tcG9uZW50LCB7IGRhdGE6IHNtYXJ0RGlhbG9nIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDbG9zZWQocmVzdWx0KTtcclxuICAgICAgZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gZGlhbG9nUmVmO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbXBvbmVudEFzRGlhbG9nKGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+LCB2aWV3TmFtZTogc3RyaW5nKTogTWF0RGlhbG9nUmVmPGFueSwgYW55PiB7XHJcbiAgICBsZXQgc21hcnREaWFsb2c6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcclxuICAgICAgc2l6ZToge30sXHJcbiAgICAgIGNvbnRlbnQ6IHtcclxuICAgICAgICB0aXRsZTogdmlld05hbWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudDogY29tcG9uZW50LFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEaWFsb2coc21hcnREaWFsb2csIGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBZnRlckNsb3NlZChyZXN1bHQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb3BlbkRpYWxvZygpOiB2b2lkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignb3BlbkRpYWxvZyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQhJyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBjbG9zZURpYWxvZygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGE/Lm91dGxldHMpIHtcclxuICAgICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG91dGxldHM6IHRoaXMuZGlhbG9nRGF0YS5vdXRsZXRzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, } from '../smart-view-context.service';
3
- import { SmartViewContextErrorDialogComponent } from './smart-view-context-error-dialog.component';
4
3
  import { SmartAbstractdialogService } from '../../smart-dialog/projects';
4
+ import { SmartViewContextErrorDialogComponent } from './smart-view-context-error-dialog.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/material/dialog";
7
7
  import * as i2 from "@angular/router";
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
66
66
  providedIn: 'root',
67
67
  }]
68
68
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.Router }, { type: i3.SmartViewContextService }]; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LWVycm9yLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC1lcnJvci1kaWFsb2cvc21hcnQtdmlldy1jb250ZXh0LWVycm9yLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxrQ0FBa0MsRUFDbEMsZ0NBQWdDLEdBRWpDLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFtQixNQUFNLDZCQUE2QixDQUFDOzs7OztBQUsxRixNQUFNLE9BQU8sa0NBQW1DLFNBQVEsMEJBQTBCO0lBS2hGLFlBQVksTUFBaUIsRUFBRSxNQUFjLEVBQVUsV0FBb0M7UUFDekYsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUQrQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFGM0YsZUFBVSxHQUE2QixFQUFFLENBQUM7SUFJMUMsQ0FBQztJQUVRLGlCQUFpQixDQUFDLE1BQVcsSUFBUyxDQUFDO0lBRXZDLFVBQVU7UUFDakIsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsb0NBQW9DO1NBQ3RELENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVRLEtBQUssQ0FBQyxXQUFXO1FBQ3hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCO1FBQy9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUU7WUFDM0IsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RjtRQUVELElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksT0FBTyxDQUFDO1FBRVosSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFO1lBQ3JDLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO2lCQUNsRCxHQUFHLENBQUMsZ0NBQWdDLENBQUM7aUJBQ3JDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7aUJBQ2xELEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDM0MsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtpQkFDOUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDO2lCQUN2QyxTQUFTLEVBQUUsQ0FBQztTQUNoQjthQUFNO1lBQ0wsV0FBVyxHQUFHLElBQUksQ0FBQztZQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztTQUNuQztRQUVELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLElBQUksT0FBTztZQUM5QyxXQUFXO1lBQ1gsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDOzsrSEExRFUsa0NBQWtDO21JQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTsyRkFFUCxrQ0FBa0M7a0JBSDlDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBWaWV3QXBpRXJyb3IgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3IgfSBmcm9tICcuLi9zbWFydC12aWV3LWNvbnRleHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0J1dHRvbkxhYmVsLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ01lc3NhZ2UsXHJcbiAgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nVGl0bGUsXHJcbiAgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpZXctY29udGV4dC1lcnJvci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRBYnN0cmFjdGRpYWxvZ1NlcnZpY2UsIFNtYXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL3NtYXJ0LWRpYWxvZy9wcm9qZWN0cyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0QWJzdHJhY3RkaWFsb2dTZXJ2aWNlIHtcclxuICB2aWV3QXBpRXJyb3I/OiBWaWV3QXBpRXJyb3I7XHJcblxyXG4gIGRpYWxvZ1JlZnM6IE1hdERpYWxvZ1JlZjxhbnksIGFueT5bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihkaWFsb2csIHJvdXRlcik7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBoYW5kbGVBZnRlckNsb3NlZChyZXN1bHQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb3ZlcnJpZGUgb3BlbkRpYWxvZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcclxuICAgICAgY29udGVudDoge1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgc2l6ZToge30sXHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudDogU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmcy5wdXNoKHRoaXMuY3JlYXRlRGlhbG9nUmVmKGRpYWxvZ0RhdGEsIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0NvbXBvbmVudCkpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2VEaWFsb2coKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dSZWZzLnBvcCgpO1xyXG4gICAgZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U21hcnRWaWV3Q29udGV4dEFwaUVycm9yKCk6IFByb21pc2U8U21hcnRWaWV3Q29udGV4dEFwaUVycm9yPiB7XHJcbiAgICBpZiAodGhpcy52aWV3QXBpRXJyb3I/LmNvZGUpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmlld0NvbnRleHQuZ2V0U21hcnRWaWV3Q29udGV4dEFwaUVycm9yQnlDb2RlKHRoaXMudmlld0FwaUVycm9yLmNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkaWFsb2dUaXRsZTtcclxuICAgIGxldCBidXR0b25MYWJlbDtcclxuICAgIGxldCBtZXNzYWdlO1xyXG5cclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgZGlhbG9nVGl0bGUgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0KFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ1RpdGxlKVxyXG4gICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgICAgYnV0dG9uTGFiZWwgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0KFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0J1dHRvbkxhYmVsKVxyXG4gICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgICAgbWVzc2FnZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5nZXQoU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nTWVzc2FnZSlcclxuICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBidXR0b25MYWJlbCA9ICdPayc7XHJcbiAgICAgIGRpYWxvZ1RpdGxlID0gJ0hpYmEnO1xyXG4gICAgICBtZXNzYWdlID0gJ0FuIGVycm9yIGhhcyBvY2N1cmVkLic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29kZTogdGhpcy52aWV3QXBpRXJyb3I/LmNvZGUgPz8gJycsXHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMudmlld0FwaUVycm9yPy5tZXNzYWdlID8/IG1lc3NhZ2UsXHJcbiAgICAgIGJ1dHRvbkxhYmVsLFxyXG4gICAgICBkaWFsb2dUaXRsZSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LWVycm9yLWRpYWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXZpZXctY29udGV4dC1lcnJvci1kaWFsb2cvc21hcnQtdmlldy1jb250ZXh0LWVycm9yLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUNMLHNDQUFzQyxFQUN0QyxrQ0FBa0MsRUFDbEMsZ0NBQWdDLEdBRWpDLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDBCQUEwQixFQUFtQixNQUFNLDZCQUE2QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7OztBQUtuRyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsMEJBQTBCO0lBS2hGLFlBQVksTUFBaUIsRUFBRSxNQUFjLEVBQVUsV0FBb0M7UUFDekYsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUQrQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFGM0YsZUFBVSxHQUE2QixFQUFFLENBQUM7SUFJMUMsQ0FBQztJQUVRLGlCQUFpQixDQUFDLE1BQVcsSUFBUyxDQUFDO0lBRXZDLFVBQVU7UUFDakIsTUFBTSxVQUFVLEdBQW9CO1lBQ2xDLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsRUFBRTthQUNWO1lBQ0QsSUFBSSxFQUFFLEVBQUU7WUFDUixlQUFlLEVBQUUsb0NBQW9DO1NBQ3RELENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVRLEtBQUssQ0FBQyxXQUFXO1FBQ3hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEMsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxLQUFLLENBQUMsMkJBQTJCO1FBQy9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUU7WUFDM0IsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RjtRQUVELElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksT0FBTyxDQUFDO1FBRVosSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFO1lBQ3JDLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCO2lCQUNsRCxHQUFHLENBQUMsZ0NBQWdDLENBQUM7aUJBQ3JDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7aUJBQ2xELEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDM0MsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQjtpQkFDOUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDO2lCQUN2QyxTQUFTLEVBQUUsQ0FBQztTQUNoQjthQUFNO1lBQ0wsV0FBVyxHQUFHLElBQUksQ0FBQztZQUNuQixXQUFXLEdBQUcsTUFBTSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztTQUNuQztRQUVELE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksRUFBRTtZQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLElBQUksT0FBTztZQUM5QyxXQUFXO1lBQ1gsV0FBVztTQUNaLENBQUM7SUFDSixDQUFDOzsrSEExRFUsa0NBQWtDO21JQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTsyRkFFUCxrQ0FBa0M7a0JBSDlDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBWaWV3QXBpRXJyb3IgfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3IgfSBmcm9tICcuLi9zbWFydC12aWV3LWNvbnRleHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0J1dHRvbkxhYmVsLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ01lc3NhZ2UsXHJcbiAgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nVGl0bGUsXHJcbiAgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFic3RyYWN0ZGlhbG9nU2VydmljZSwgU21hcnREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vc21hcnQtZGlhbG9nL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWV3LWNvbnRleHQtZXJyb3ItZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nU2VydmljZSBleHRlbmRzIFNtYXJ0QWJzdHJhY3RkaWFsb2dTZXJ2aWNlIHtcclxuICB2aWV3QXBpRXJyb3I/OiBWaWV3QXBpRXJyb3I7XHJcblxyXG4gIGRpYWxvZ1JlZnM6IE1hdERpYWxvZ1JlZjxhbnksIGFueT5bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihkaWFsb2c6IE1hdERpYWxvZywgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihkaWFsb2csIHJvdXRlcik7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBoYW5kbGVBZnRlckNsb3NlZChyZXN1bHQ6IGFueSk6IHZvaWQge31cclxuXHJcbiAgb3ZlcnJpZGUgb3BlbkRpYWxvZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ0RhdGE6IFNtYXJ0RGlhbG9nRGF0YSA9IHtcclxuICAgICAgY29udGVudDoge1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgfSxcclxuICAgICAgc2l6ZToge30sXHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudDogU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgfTtcclxuICAgIHRoaXMuZGlhbG9nUmVmcy5wdXNoKHRoaXMuY3JlYXRlRGlhbG9nUmVmKGRpYWxvZ0RhdGEsIFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0NvbXBvbmVudCkpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2VEaWFsb2coKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dSZWZzLnBvcCgpO1xyXG4gICAgZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0U21hcnRWaWV3Q29udGV4dEFwaUVycm9yKCk6IFByb21pc2U8U21hcnRWaWV3Q29udGV4dEFwaUVycm9yPiB7XHJcbiAgICBpZiAodGhpcy52aWV3QXBpRXJyb3I/LmNvZGUpIHtcclxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmlld0NvbnRleHQuZ2V0U21hcnRWaWV3Q29udGV4dEFwaUVycm9yQnlDb2RlKHRoaXMudmlld0FwaUVycm9yLmNvZGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBkaWFsb2dUaXRsZTtcclxuICAgIGxldCBidXR0b25MYWJlbDtcclxuICAgIGxldCBtZXNzYWdlO1xyXG5cclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgZGlhbG9nVGl0bGUgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0KFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ1RpdGxlKVxyXG4gICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgICAgYnV0dG9uTGFiZWwgPSBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgICAuZ2V0KFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ0J1dHRvbkxhYmVsKVxyXG4gICAgICAgIC50b1Byb21pc2UoKTtcclxuICAgICAgbWVzc2FnZSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5nZXQoU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nTWVzc2FnZSlcclxuICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBidXR0b25MYWJlbCA9ICdPayc7XHJcbiAgICAgIGRpYWxvZ1RpdGxlID0gJ0hpYmEnO1xyXG4gICAgICBtZXNzYWdlID0gJ0FuIGVycm9yIGhhcyBvY2N1cmVkLic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY29kZTogdGhpcy52aWV3QXBpRXJyb3I/LmNvZGUgPz8gJycsXHJcbiAgICAgIG1lc3NhZ2U6IHRoaXMudmlld0FwaUVycm9yPy5tZXNzYWdlID8/IG1lc3NhZ2UsXHJcbiAgICAgIGJ1dHRvbkxhYmVsLFxyXG4gICAgICBkaWFsb2dUaXRsZSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -530,14 +530,14 @@ export class SmartViewContextService {
530
530
  return change;
531
531
  }
532
532
  }
533
- SmartViewContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, deps: [{ token: i1.ViewService }, { token: i2.SmartSessionService }, { token: i3.SmartNavigationService }, { token: i4.SmartdialogService }, { token: ApiQueueService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
533
+ SmartViewContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, deps: [{ token: i1.ViewService }, { token: i2.SmartSessionService }, { token: i3.SmartNavigationService }, { token: i4.SmartViewContextDialogService }, { token: ApiQueueService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
534
534
  SmartViewContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, providedIn: 'root' });
535
535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, decorators: [{
536
536
  type: Injectable,
537
537
  args: [{
538
538
  providedIn: 'root',
539
539
  }]
540
- }], ctorParameters: function () { return [{ type: i1.ViewService }, { type: i2.SmartSessionService }, { type: i3.SmartNavigationService }, { type: i4.SmartdialogService }, { type: ApiQueueService }, { type: i0.Injector }]; } });
540
+ }], ctorParameters: function () { return [{ type: i1.ViewService }, { type: i2.SmartSessionService }, { type: i3.SmartNavigationService }, { type: i4.SmartViewContextDialogService }, { type: ApiQueueService }, { type: i0.Injector }]; } });
541
541
  export const IS_ASYNC_PARAM_NAME = 'isAsync';
542
542
  export class ApiQueueService {
543
543
  constructor() {
@@ -583,4 +583,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
583
583
  providedIn: 'root',
584
584
  }]
585
585
  }], ctorParameters: function () { return []; } });
586
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFJTCxJQUFJLEVBV0osU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBUW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBSXpELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLHdDQUF3QyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLGtDQUFrQyxDQUFDO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLG9DQUFvQyxDQUFDO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGVBQWUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBVSxvQkFBb0IsQ0FBQyxDQUFDO0FBS3RGLE1BQU0sT0FBTyx1QkFBdUI7SUE0Q2xDLFlBQ1UsSUFBaUIsRUFDakIsT0FBNEIsRUFDNUIsVUFBa0MsRUFDbEMsTUFBMEIsRUFDMUIsZUFBZ0MsRUFDaEMsTUFBZ0I7UUFMaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsV0FBTSxHQUFOLE1BQU0sQ0FBVTtRQWpEbEIsY0FBUyxHQUFXLGlCQUFpQixDQUFDO1FBQ3RDLHdCQUFtQixHQUFXLGlCQUFpQixDQUFDO1FBSWhELGlCQUFZLEdBQWlDLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekQsb0JBQWUsR0FBa0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUM3QyxtQkFBYyxHQUFvQixJQUFJLEtBQUssRUFBRSxDQUFDO1FBRTlDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMxQyw2QkFBd0IsR0FBb0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdFLDZCQUF3QixHQUFrQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFLM0Usa0JBQWEsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hFLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUVuQyxlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQU12QyxvQkFBZSxHQUFtQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBZ0I1RCw0QkFBdUIsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBUzlFLENBQUM7SUF2QkosSUFBVyxnQkFBZ0IsQ0FBQyxnQkFBbUQ7UUFDN0UsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBQzFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1NBQy9CO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQWNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFZLEVBQUUsWUFBK0I7UUFDekQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDTSxRQUFRLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sb0JBQW9CLENBQUMsaUJBQWtEO1FBQzVFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDM0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUEwQztRQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBd0M7UUFDOUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLGFBQWEsQ0FBQztJQUNqRCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsaUJBQXlCO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNyQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFNBQVMsRUFBRSxzQkFBc0I7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUM5QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQUMsSUFBYTtRQUM5QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBWTtRQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLLENBQUMsNEJBQTRCLENBQUMsUUFBZ0I7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxlQUFlLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWdCLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFNUMsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztTQUM5RDtRQUNELE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsaUJBQW9DO1FBRXBDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFcEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYTtRQUM1QixjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDMUIsVUFBVSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDcEMsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLGNBQWMsR0FBZ0MsTUFBTSxJQUFJLENBQUMsSUFBSTthQUM5RCxpQkFBaUIsRUFBRTthQUNuQixTQUFTLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSyxDQUFDLENBQUM7UUFFcEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQWE7UUFDbkMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDM0M7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUQsSUFBSTtnQkFDRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDbEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw4RkFBOEYsQ0FDL0YsQ0FBQztpQkFDSDtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUM7aUJBQ3BGO2dCQUNELElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3BCLElBQUk7d0JBQ0YsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNqQztvQkFBQyxPQUFPLEdBQUcsRUFBRTt3QkFDWixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO3FCQUMvQjtpQkFDRjtxQkFBTTtvQkFDTCxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUMvQjtnQkFFRCxPQUFPLElBQUksQ0FBQyxXQUFZLENBQUM7YUFDMUI7b0JBQVM7Z0JBQ1IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBWSxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQzthQUNwQztTQUNGO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFjO1FBQzVCLElBQUksV0FBVyxHQUFzQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDekUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FDNUMsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDdkY7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM5RSxDQUFDO2FBQ0g7WUFDRCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNGLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1lBQzlCLElBQUk7Z0JBQ0Ysa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUM1RDtZQUFDLE1BQU07Z0JBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO2FBQzVEO1lBQ0QsU0FBUyxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztZQUM1QyxrREFBa0Q7WUFDbEQsZ0VBQWdFO1lBQ2hFLE1BQU07WUFDTixJQUFJO1lBQ0osSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUN2QixTQUFTO3FCQUNOLFdBQVcsRUFBRTtxQkFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFNBQVM7YUFDVixDQUFDLENBQUM7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLElBQUksV0FBVyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7Z0JBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzVGO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxRDthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBRTlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNyQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsSUFBYztRQUM3QixJQUFJLFdBQVcsR0FBc0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3pFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQzVDLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZGO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDakMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQ2xDLENBQUMsU0FBNkIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUNoRSxDQUFDO1lBQ0YsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDcEQ7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3hDLDZCQUE2QjtZQUM3Qiw0REFBNEQ7U0FDN0Q7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUU5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQztZQUNyQixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNO29CQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLElBQVk7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLFdBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBYyxFQUFFLEVBQUU7WUFDN0MsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNsQixLQUFLLFNBQVMsQ0FBQyxNQUFNO29CQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQixNQUFNO2dCQUNSLEtBQUssU0FBUyxDQUFDLE9BQU87b0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3JCLE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQ2hELENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQ3JCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLO2FBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDOUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDN0IsQ0FBQztRQUNGLElBQUksZUFBZSxFQUFFLE1BQU0sRUFBRTtZQUMzQixlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxDQUFDLFVBQVU7WUFDakMsUUFBUSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUM1QyxLQUFLLE1BQU07b0JBQ1QsTUFBTSxHQUFHLE9BQU8sQ0FBQztvQkFDakIsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsTUFBTSxHQUFHLFFBQVEsQ0FBQztvQkFDbEIsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxHQUFHLFNBQVMsQ0FBQztvQkFDbkIsTUFBTTtnQkFDUixLQUFLLEtBQUs7b0JBQ1IsTUFBTSxHQUFHLE1BQU0sQ0FBQztvQkFDaEIsTUFBTTthQUNUO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNwRDtZQUNELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRVMsVUFBVSxDQUFDLFFBQWMsSUFBRyxDQUFDO0lBRWhDLGFBQWEsQ0FBQyxRQUFnQjtRQUNuQyxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsUUFBUSxvQkFBb0IsQ0FBQyxDQUFDO1NBQzlEO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUF3QixFQUFFLGFBQTRCO1FBQ3pFLE1BQU0sSUFBSSxDQUFDLElBQUk7YUFDWixPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7YUFDcEUsU0FBUyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxLQUFLLENBQUMsaUNBQWlDLENBQUMsSUFBWTtRQUN6RCxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ3RDLEdBQUcsQ0FBQyxzQ0FBc0MsQ0FBQztpQkFDM0MsU0FBUyxFQUFFLENBQUM7WUFDZixXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDNUYsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzNGO2FBQU07WUFDTCxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ25CLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFDckIsT0FBTyxHQUFHLHVCQUF1QixDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNuQyxPQUFPO2dCQUNMLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxXQUFXO2dCQUNYLFdBQVc7YUFDWixDQUFDO1NBQ0g7UUFDRCxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQ2hGLENBQUMsUUFBa0MsRUFBRSxFQUFFO1lBQ3JDLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7UUFDaEMsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsaUJBQWlCLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLElBQUksc0JBQXNCLENBQUMsQ0FBQztZQUVoRixPQUFPO2dCQUNMLElBQUk7Z0JBQ0osT0FBTztnQkFDUCxXQUFXO2dCQUNYLFdBQVc7YUFDWixDQUFDO1NBQ0g7UUFDRCxPQUFPLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBWTtRQUN6QyxJQUFJLHNCQUFzQixHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRixJQUFJLENBQUMsc0JBQXNCO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RSxPQUFPLHNCQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBZSxFQUFFLElBQVk7UUFDMUQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLHVDQUF1QztRQUN2QywyQkFBMkI7UUFFM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVyQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdELE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQVksRUFBRSxJQUFZO1FBQ3RELE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBWSxFQUFFLGVBQWdDO1FBQ3ZFLE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQy9CLElBQUk7WUFDSixlQUFlO1NBQ2hCLENBQUMsQ0FBQztRQUNILDJDQUEyQztRQUMzQyxvQ0FBb0M7UUFDcEMsOENBQThDO1FBQzlDLGNBQWM7UUFDZCxZQUFZO1FBQ1osdUJBQXVCO1FBQ3ZCLE9BQU87UUFDUCxpQkFBaUI7UUFDakIsTUFBTTtRQUNOLHdDQUF3QztJQUMxQyxDQUFDO0lBRU0sS0FBSyxDQUFDLG1CQUFtQixDQUM5QixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsTUFBYyxFQUNkLGVBQWdDO1FBRWhDLE9BQU8sTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLDJDQUEyQztRQUMzQyxvQ0FBb0M7UUFDcEMsb0RBQW9EO1FBQ3BELGNBQWM7UUFDZCxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCx1QkFBdUI7UUFDdkIsT0FBTztRQUNQLGlCQUFpQjtRQUNqQixNQUFNO1FBQ04sd0NBQXdDO0lBQzFDLENBQUM7SUFFTSxLQUFLLENBQUMsdUJBQXVCLENBQ2xDLElBQVksRUFDWixRQUFnQixFQUNoQixlQUFnQztRQUVoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLDJDQUEyQztRQUMzQyxvQ0FBb0M7UUFDcEMsd0RBQXdEO1FBQ3hELGNBQWM7UUFDZCxZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QixPQUFPO1FBQ1AsaUJBQWlCO1FBQ2pCLE1BQU07UUFDTix3Q0FBd0M7SUFDMUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsSUFBWSxFQUNaLGVBQWdDLEVBQ2hDLEtBQXlCLEVBQ3pCLE9BQVk7UUFFWixJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDeEIsSUFBSTtZQUNKLGVBQWU7WUFDZixLQUFLO1lBQ0wsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsMkJBQTJCLENBQ3RDLElBQVksRUFDWixlQUFnQyxFQUNoQyxLQUF5QixFQUN6QixPQUFjO1FBRWQsSUFBSSxDQUFDLDRCQUE0QixDQUFDO1lBQ2hDLElBQUk7WUFDSixlQUFlO1lBQ2YsS0FBSztZQUNMLE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFZLEVBQUUsVUFBc0I7UUFDM0QsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNyRCwyQ0FBMkM7UUFDM0MsbUNBQW1DO1FBQ25DLE1BQU07UUFDTiw4Q0FBOEM7UUFDOUMsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxvQkFBb0I7UUFDcEIsU0FBUztRQUNULG1CQUFtQjtRQUNuQixPQUFPO1FBQ1AsU0FBUztRQUNULEtBQUs7UUFDTCx3Q0FBd0M7SUFDMUMsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBVztRQUN0QyxPQUFPLE1BQU0sSUFBSSxDQUFDLDJCQUEyQixDQUMzQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUMvRSxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFXO1FBQzVDLE9BQU8sTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQzNDLE1BQU0sSUFBSSxDQUFDLElBQUk7YUFDWixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDO2FBQ3hGLFNBQVMsRUFBRSxDQUNmLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQVc7UUFDaEQsT0FBTyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FDM0MsTUFBTSxJQUFJLENBQUMsSUFBSTthQUNaLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDO2FBQzdFLFNBQVMsRUFBRSxDQUNmLENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDLE1BQVc7UUFDNUMsT0FBTyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FDM0MsTUFBTSxJQUFJLENBQUMsSUFBSTthQUNaLFlBQVksQ0FDWCxNQUFNLENBQUMsSUFBSSxFQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUN0QyxNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxPQUFPLENBQ2Y7YUFDQSxTQUFTLEVBQUUsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUNPLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxNQUFXO1FBQ3BELE9BQU8sTUFBTSxJQUFJLENBQUMsMkJBQTJCLENBQzNDLE1BQU0sSUFBSSxDQUFDLElBQUk7YUFDWixvQkFBb0IsQ0FDbkIsTUFBTSxDQUFDLElBQUksRUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFDdEMsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsT0FBTyxDQUNmO2FBQ0EsU0FBUyxFQUFFLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQVc7UUFDcEMsT0FBTyxNQUFNLElBQUksQ0FBQywyQkFBMkIsQ0FDM0MsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsMkJBQTJCLENBQ3RDLGlCQUFnRDtRQUVoRCxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztRQUNsRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxpQkFBaUIsRUFBRSxPQUFPLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0M7UUFDeEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUEwQyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxZQUFZLEdBQW1ELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUN6RixvQkFBb0IsQ0FBQyxJQUFJLENBQzFCLENBQUM7WUFDRixJQUFJLFlBQVksRUFBRTtnQkFDaEIsWUFBWSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFZO1FBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQVk7UUFDN0IsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOztvSEEzb0JVLHVCQUF1Qix3SkFpRFAsZUFBZTt3SEFqRC9CLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7NExBa0Q0QixlQUFlO0FBNmxCNUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0FBVzdDLE1BQU0sT0FBTyxlQUFlO0lBTzFCO1FBTlEsY0FBUyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpDLFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGlCQUFZLEdBQWtCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUdyRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBa0IsRUFBRSxXQUFvQixLQUFLO1FBQ3RELElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw4REFBOEQ7U0FDekY7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsdURBQXVEO1NBQy9FO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs0R0F0Q1UsZUFBZTtnSEFBZixlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudE1vZGVsLFxyXG4gIENvbXBvbmVudE1vZGVsQ2hhbmdlLFxyXG4gIERhdGFDaGFuZ2UsXHJcbiAgTGluayxcclxuICBNZXNzYWdlRGF0YSxcclxuICBNZXNzYWdlUmVzdWx0LFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvblJlcXVlc3QsXHJcbiAgVmlld0NvbnN0cmFpbnQsXHJcbiAgVmlld0NvbnRleHRDaGFuZ2UsXHJcbiAgVmlld0NvbnRleHREYXRhLFxyXG4gIFZpZXdDb250ZXh0VXBkYXRlLFxyXG4gIFZpZXdEYXRhLFxyXG4gIFZpZXdTZXJ2aWNlLFxyXG4gIFZpZXdTdGF0ZSxcclxuICBWaWV3VHlwZSxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UtZGlhbG9nL21lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcixcclxuICBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzLFxyXG4gIFNtYXJ0Vmlld0RpYWxvZ1JlZixcclxuICBTbWFydFZpZXdIYW5kbGVyTW9kZWwsXHJcbn0gZnJvbSAnLi9zbWFydC12aWV3LWNvbnRleHQubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LW5hdmlnYXRpb24vcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydGRpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXZpZXctY29udGV4dC1kaWFsb2cuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQnV0dG9uTGFiZWwgPSAnU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQnV0dG9uTGFiZWwnO1xyXG5leHBvcnQgY29uc3QgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nVGl0bGUgPSAnU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nVGl0bGUnO1xyXG5leHBvcnQgY29uc3QgU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nTWVzc2FnZSA9ICdTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dNZXNzYWdlJztcclxuZXhwb3J0IGNvbnN0IERlZmF1bHRVaUFjdGlvbkNvZGVfQ0xPU0UgPSAnREVGQVVMVF9DTE9TRSc7XHJcblxyXG5leHBvcnQgY29uc3QgRElBTE9HX0RJU0FCTEVfQ0xPU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2RpYWxvZ0Rpc2FibGVDbG9zZScpO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHRhYklkTmFtZTogc3RyaW5nID0gJ3ZpZXdDb250ZXh0VXVpZCc7XHJcbiAgcHJpdmF0ZSB0YWJJZGh0dHBIZWFkZXJOYW1lOiBzdHJpbmcgPSAndmlld0NvbnRleHRVdWlkJztcclxuICBwdWJsaWMgbWVzc2FnZURpYWxvZ25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIHVybD86IHN0cmluZztcclxuICBwcml2YXRlIHZpZXdDb250ZXh0PzogVmlld0NvbnRleHREYXRhO1xyXG4gIHByaXZhdGUgdmlld0hhbmRsZXJzOiBBcnJheTxTbWFydFZpZXdIYW5kbGVyTW9kZWw+ID0gbmV3IEFycmF5KCk7XHJcbiAgcHJpdmF0ZSBvcGVuZWRWaWV3VXVpZHM6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXkoKTtcclxuICBwcml2YXRlIG9wZW5lZFZpZXdEYXRhOiBBcnJheTxWaWV3RGF0YT4gPSBuZXcgQXJyYXkoKTtcclxuXHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIHB1YmxpYyB1dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gIHB1YmxpYyB2aWV3Q29udGV4dEhhc0JlZW5TeW5jZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVSdW5uaW5nOiBTdWJqZWN0PFZpZXdDb250ZXh0RGF0YT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBzbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzPzogU21hcnRWaWV3Q29udGV4dEFwaUVycm9ycztcclxuXHJcbiAgcHVibGljIG9wZW5TbWFydExpbms6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICBwdWJsaWMgaXNPcGVuaW5nU21hcnRMaW5rOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgZGlhbG9nUmVmczogU21hcnRWaWV3RGlhbG9nUmVmW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBhY3Rpb25EZXNjcmlwdG9ycz86IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj47XHJcblxyXG4gIHB1YmxpYyBjb21tb25GZWVkYmFja1RleHQ/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBzbWFydEFwaUNsaWVudHM6IE1hcDxzdHJpbmcsIFNtYXJ0U3ViamVjdDxhbnk+PiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgcHVibGljIHNldCB0cmFuc2xhdGVTZXJ2aWNlKHRyYW5zbGF0ZVNlcnZpY2U6IFNtYXJ0VHJhbnNsYXRlU2VydmljZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZSA9IHRyYW5zbGF0ZVNlcnZpY2U7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VDaGFuZ2VkLm5leHQoKTtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZUNoYW5nZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNsYXRlU2VydmljZSgpOiBTbWFydFRyYW5zbGF0ZVNlcnZpY2UgfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcclxuICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHZpZXc6IFZpZXdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uOiBTbWFydFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXZpZ2F0aW9uOiBTbWFydE5hdmlnYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IFNtYXJ0ZGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpUXVldWVTZXJ2aWNlOiBBcGlRdWV1ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdDogSW5qZWN0b3JcclxuICApIHt9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmb2xsb3codXVpZDogc3RyaW5nLCBkZXRlY3RDaGFuZ2U6IFNtYXJ0U3ViamVjdDxhbnk+KTogdm9pZCB7XHJcbiAgICB0aGlzLnNtYXJ0QXBpQ2xpZW50cy5zZXQodXVpZCwgZGV0ZWN0Q2hhbmdlKTtcclxuICB9XHJcbiAgcHVibGljIHVuZm9sbG93KHV1aWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydEFwaUNsaWVudHMuZGVsZXRlKHV1aWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEFjdGlvbkRlc2NyaXB0b3JzKGFjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+KTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0b3JzID0gYWN0aW9uRGVzY3JpcHRvcnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aW9uRGVzY3JpcHRvcnMoKTogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoIXRoaXMuYWN0aW9uRGVzY3JpcHRvcnMpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignTm8gYWN0aW9uIGRlc2NyaXB0b3JzIGhhcyBiZWVuIHNldCB0byBWaWV3Q29udGV4dC4nKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmFjdGlvbkRlc2NyaXB0b3JzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpZXdIYW5kbGVycyh2aWV3SGFuZGxlcnM6IEFycmF5PFNtYXJ0Vmlld0hhbmRsZXJNb2RlbD4pOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0hhbmRsZXJzID0gdmlld0hhbmRsZXJzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpZXdBcGlFcnJvcnModmlld0FwaUVycm9yczogU21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyk6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzID0gdmlld0FwaUVycm9ycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRNZXNzYWdlRGlhbG9nTmFtZShtZXNzYWdlRGlhbG9nTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lc3NhZ2VEaWFsb2duYW1lID0gbWVzc2FnZURpYWxvZ05hbWU7XHJcbiAgICB0aGlzLnZpZXdIYW5kbGVycy5wdXNoKHtcclxuICAgICAgbmFtZTogbWVzc2FnZURpYWxvZ05hbWUsXHJcbiAgICAgIGNvbXBvbmVudDogTWVzc2FnZURpYWxvZ0NvbXBvbmVudCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcFVybEZvclZpZXdTZXJ2aWNlKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3LmNvbmZpZ3VyYXRpb24uYmFzZVBhdGggPSB0aGlzLnVybDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudXJsID0gdXJsICsgJy92aWV3JztcclxuICAgIHRoaXMuc2V0VXBVcmxGb3JWaWV3U2VydmljZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFuZFN5bmNWaWV3Q29udGV4dCh1dWlkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXV1aWQpIHtcclxuICAgICAgdXVpZCA9IHRoaXMuZ2V0VXVpZE9mUGFnZSh0aGlzLnRhYklkTmFtZSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnN5bmNWaWV3KCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRWaWV3Q29udGV4dCh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YT4ge1xyXG4gICAgdGhpcy52aWV3Q29udGV4dCA9IGF3YWl0IHRoaXMudmlldy5nZXRWaWV3Q29udGV4dCh1dWlkKS50b1Byb21pc2UoKTtcclxuICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZpZXdDb250ZXh0IGRvZXMgbm90IGV4aXN0IHdpdGggdGhlIGdpdmVuIHV1aWQuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRWaWV3Q29udGV4dERhdGFCeVBhZ2VOYW1lKHBhZ2VOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFZpZXdEYXRhPiB7XHJcbiAgICBpZiAoIXRoaXMudmlld0NvbnRleHQpIHtcclxuICAgICAgbGV0IHZpZXdDb250ZXh0VXVpZCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy50YWJJZE5hbWUpO1xyXG4gICAgICBpZiAoIXZpZXdDb250ZXh0VXVpZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVmlldyBjb250ZXh0IGlzIG5vdCBpbml0aWFsaXplZCEnKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHZpZXdDb250ZXh0VXVpZCEpO1xyXG4gICAgfVxyXG4gICAgbGV0IHBhZ2VVdWlkID0gdGhpcy5nZXRVdWlkT2ZQYWdlKHBhZ2VOYW1lKTtcclxuXHJcbiAgICBsZXQgdmlld0NvbnRleHRCeVBhZ2VOYW1lID0gdGhpcy52aWV3Q29udGV4dD8udmlld3MuZmluZCgodmlldykgPT4gdmlldy51dWlkID09PSBwYWdlVXVpZCk7XHJcbiAgICBpZiAoIXZpZXdDb250ZXh0QnlQYWdlTmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBWaWV3RGF0YSBvZiAke3BhZ2VOYW1lfSBpcyBub3QgZm91bmQhYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmlld0NvbnRleHRCeVBhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZVZpZXdDb250ZXh0KFxyXG4gICAgdmlld0NvbnRleHRVcGRhdGU6IFZpZXdDb250ZXh0VXBkYXRlXHJcbiAgKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGEgfCB1bmRlZmluZWQ+IHtcclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBhd2FpdCB0aGlzLnZpZXcudXBkYXRlVmlld0NvbnRleHQodmlld0NvbnRleHRVcGRhdGUpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclNlc3Npb25TdG9yYWdlKCk6IHZvaWQge1xyXG4gICAgc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIHRoaXMub3BlbmVkVmlld0RhdGEgPSBbXTtcclxuICAgIHRoaXMub3BlbmVkVmlld1V1aWRzID0gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRhYklkKHRhYklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy50YWJJZE5hbWUsIHRhYklkKTtcclxuICAgIHRoaXMuc2Vzc2lvbi5hZGRIZWFkZXJQYXJhbSh7XHJcbiAgICAgIGhlYWRlck5hbWU6IHRoaXMudGFiSWRodHRwSGVhZGVyTmFtZSxcclxuICAgICAgdmFsdWU6IHRhYklkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc3RhcnRWaWV3Q29udGV4dCgpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YT4ge1xyXG4gICAgdGhpcy5jbGVhclNlc3Npb25TdG9yYWdlKCk7XHJcblxyXG4gICAgbGV0IG5ld1ZpZXdDb250ZXh0OiBWaWV3Q29udGV4dERhdGEgfCB1bmRlZmluZWQgPSBhd2FpdCB0aGlzLnZpZXdcclxuICAgICAgLmNyZWF0ZVZpZXdDb250ZXh0KClcclxuICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgaWYgKCFuZXdWaWV3Q29udGV4dCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIFZpZXdDb250ZXh0IHdhcyBjcmVhdGVkJyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0ID0gbmV3Vmlld0NvbnRleHQ7XHJcbiAgICB0aGlzLnNldFRhYklkKG5ld1ZpZXdDb250ZXh0LnV1aWQhKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplKHV1aWQ/OiBzdHJpbmcpOiBQcm9taXNlPFZpZXdDb250ZXh0RGF0YSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcudG9Qcm9taXNlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVSdW5uaW5nID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlld0hhbmRsZXJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBcIlRoZXJlIGFyZW4ndCBhbnkgdmlld0hhbmRsZXJzIGluIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlISBQcm92aWRlIHNvbWUgdG8gdXNlIGl0cyBmdW5jdGlvbnMuXCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgbWVzc2FnZURpYWxvZ05hbWUgcHJvdmlkZWQgYnkgdGhlIGJhY2tlbmQgaGFzIG5vdCBiZWVuIHNldC4nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHV1aWQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0VGFiSWQodXVpZCk7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RhcnRWaWV3Q29udGV4dCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0Vmlld0NvbnRleHQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdDb250ZXh0ITtcclxuICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVSdW5uaW5nLm5leHQodGhpcy52aWV3Q29udGV4dCEpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVJ1bm5pbmcuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVSdW5uaW5nID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblZpZXcodmlldzogVmlld0RhdGEpOiB2b2lkIHtcclxuICAgIGxldCB2aWV3SGFuZGxlcjogU21hcnRWaWV3SGFuZGxlck1vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy52aWV3SGFuZGxlcnMuZmluZChcclxuICAgICAgKGhhbmRsZXIpID0+IGhhbmRsZXIubmFtZSA9PT0gdmlldy52aWV3TmFtZVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIXZpZXdIYW5kbGVyKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU21hcnRWaWV3SGFuZGxlck1vZGVsIHdhcyBub3QgZm91bmQgYnkgdmlldyBuYW1lOiAke3ZpZXcudmlld05hbWV9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5EaWFsb2cpIHtcclxuICAgICAgaWYgKCF2aWV3SGFuZGxlci5jb21wb25lbnQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICBgQ29tcG9uZW50IGlzIHVuZGVmaW5lZCBpbiBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2l0aCBuYW1lOiAke3ZpZXcudmlld05hbWV9YFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW5Db21wb25lbnRBc0RpYWxvZyh2aWV3SGFuZGxlci5jb21wb25lbnQsIHZpZXdIYW5kbGVyLm5hbWUpO1xyXG4gICAgICBsZXQgZGlhbG9nRGlzYWJsZUNsb3NlID0gdHJ1ZTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBkaWFsb2dEaXNhYmxlQ2xvc2UgPSB0aGlzLmluamVjdC5nZXQoRElBTE9HX0RJU0FCTEVfQ0xPU0UpO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBkdXJpbmcgcmVhZGluZyBESUFMT0dfRElTQUJMRV9DTE9TRScpO1xyXG4gICAgICB9XHJcbiAgICAgIGRpYWxvZ1JlZi5kaXNhYmxlQ2xvc2UgPSBkaWFsb2dEaXNhYmxlQ2xvc2U7XHJcbiAgICAgIC8vIGlmICh2aWV3LnZpZXdOYW1lID09PSB0aGlzLm1lc3NhZ2VEaWFsb2duYW1lKSB7XHJcbiAgICAgIC8vICAgaWYgKHZpZXcubWVzc2FnZT8ub3B0aW9ucyAmJiB2aWV3Lm1lc3NhZ2Uub3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIH1cclxuICAgICAgaWYgKCFkaWFsb2dEaXNhYmxlQ2xvc2UpIHtcclxuICAgICAgICBkaWFsb2dSZWZcclxuICAgICAgICAgIC5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGVyZm9ybUFjdGlvbih2aWV3LnV1aWQsIHsgY29kZTogRGVmYXVsdFVpQWN0aW9uQ29kZV9DTE9TRSwgcGFyYW1zOiB7fSB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmcy5wdXNoKHtcclxuICAgICAgICB1dWlkOiB2aWV3LnV1aWQsXHJcbiAgICAgICAgZGlhbG9nUmVmLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5Ob3JtYWwpIHtcclxuICAgICAgaWYgKHZpZXdIYW5kbGVyLnJvdXRlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRlIGlzIHVuZGVmaW5lZCBpbiBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2l0aCBuYW1lOiAke3ZpZXcudmlld05hbWV9YCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uLm5hdmlnYXRlVG8odmlld0hhbmRsZXIucm91dGUuc3BsaXQoJy8nKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB0eXBlIG9mIHRoZSB2aWV3IGFuZCBpdHMgdmlld0hhbmRsZXIgaXMgbm90IHRoZSBzYW1lIScpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpZXcuc3RhdGUgPSBWaWV3U3RhdGUuT3BlbmVkO1xyXG5cclxuICAgIHRoaXMub3BlbmVkVmlld1V1aWRzLnB1c2godmlldy51dWlkKTtcclxuICAgIHRoaXMub3BlbmVkVmlld0RhdGEucHVzaCh2aWV3KTtcclxuXHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHZpZXcudmlld05hbWUsIHZpZXcudXVpZCk7XHJcbiAgICB0aGlzLnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZC5uZXh0KHZpZXcudmlld05hbWUpO1xyXG5cclxuICAgIHRoaXMudXBkYXRlVmlld0NvbnRleHQoe1xyXG4gICAgICB1cGRhdGVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgc3RhdGU6IFZpZXdTdGF0ZS5PcGVuZWQsXHJcbiAgICAgICAgICB1dWlkOiB2aWV3LnV1aWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlVmlldyh2aWV3OiBWaWV3RGF0YSk6IHZvaWQge1xyXG4gICAgbGV0IHZpZXdIYW5kbGVyOiBTbWFydFZpZXdIYW5kbGVyTW9kZWwgfCB1bmRlZmluZWQgPSB0aGlzLnZpZXdIYW5kbGVycy5maW5kKFxyXG4gICAgICAoaGFuZGxlcikgPT4gaGFuZGxlci5uYW1lID09PSB2aWV3LnZpZXdOYW1lXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghdmlld0hhbmRsZXIpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTbWFydFZpZXdIYW5kbGVyTW9kZWwgd2FzIG5vdCBmb3VuZCBieSB2aWV3IG5hbWU6ICR7dmlldy52aWV3TmFtZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5EaWFsb2cpIHtcclxuICAgICAgbGV0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nUmVmcy5maW5kKFxyXG4gICAgICAgIChkaWFsb2dSZWY6IFNtYXJ0Vmlld0RpYWxvZ1JlZikgPT4gZGlhbG9nUmVmLnV1aWQgPT09IHZpZXcudXVpZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoZGlhbG9nUmVmKSB7XHJcbiAgICAgICAgZGlhbG9nUmVmLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMuZGlhbG9nUmVmcy5pbmRleE9mKGRpYWxvZ1JlZik7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWZzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWFsb2dSZWYgaXMgbm90IGZvdW5kIGJ5IHV1aWQuJyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmlldy50eXBlID09PSBWaWV3VHlwZS5Ob3JtYWwpIHtcclxuICAgICAgLy8gVE9ETzogY2xvc2Ugbm9ybWFsIHBhZ2U/Pz9cclxuICAgICAgLy8gdGhpcy5uYXZpZ2F0aW9uLm5hdmlnYXRlVG8odmlld0hhbmRsZXIucm91dGUuc3BsaXQoXCIvXCIpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIHR5cGUgb2YgdGhlIHZpZXcgYW5kIGl0cyB2aWV3SGFuZGxlciBpcyBub3QgdGhlIHNhbWUhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdmlldy5zdGF0ZSA9IFZpZXdTdGF0ZS5DbG9zZWQ7XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5lZFZpZXdVdWlkcy5pbmRleE9mKHZpZXcudXVpZCk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm9wZW5lZFZpZXdEYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odmlldy52aWV3TmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVWaWV3Q29udGV4dCh7XHJcbiAgICAgIHVwZGF0ZXM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBzdGF0ZTogVmlld1N0YXRlLkNsb3NlZCxcclxuICAgICAgICAgIHV1aWQ6IHZpZXcudXVpZCxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICB1dWlkOiB0aGlzLnZpZXdDb250ZXh0Py51dWlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVzdG9yZVZpZXdzKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZ2V0Vmlld0NvbnRleHQodXVpZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0IS52aWV3cy5tYXAoKHZpZXc6IFZpZXdEYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMub3BlblZpZXcodmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzeW5jVmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRleHQ/LnZpZXdzLm1hcCgodmlldzogVmlld0RhdGEpID0+IHtcclxuICAgICAgc3dpdGNoICh2aWV3LnN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSBWaWV3U3RhdGUuVG9PcGVuOlxyXG4gICAgICAgICAgdGhpcy5vcGVuVmlldyh2aWV3KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgVmlld1N0YXRlLlRvQ2xvc2U6XHJcbiAgICAgICAgICB0aGlzLmNsb3NlVmlldyh2aWV3KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB2aWV3RGF0YVRvQ2xvc2UgPSB0aGlzLm9wZW5lZFZpZXdEYXRhLmZpbHRlcihcclxuICAgICAgKHZpZXdEYXRhOiBWaWV3RGF0YSkgPT5cclxuICAgICAgICAhdGhpcy52aWV3Q29udGV4dD8udmlld3NcclxuICAgICAgICAgIC5mbGF0TWFwKCh2aWV3RGF0YTogVmlld0RhdGEpID0+IHZpZXdEYXRhLnV1aWQpXHJcbiAgICAgICAgICAuaW5jbHVkZXModmlld0RhdGEudXVpZClcclxuICAgICk7XHJcbiAgICBpZiAodmlld0RhdGFUb0Nsb3NlPy5sZW5ndGgpIHtcclxuICAgICAgdmlld0RhdGFUb0Nsb3NlLm1hcCgodmlld0RhdGE6IFZpZXdEYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVZpZXcodmlld0RhdGEpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Py5saW5rcz8ubWFwKChkYXRhOiBMaW5rKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgIGxldCB0YXJnZXQgPSAnX2JsYW5rJzsgLy8gZGVmYXVsdFxyXG4gICAgICBzd2l0Y2ggKGRhdGEudGFyZ2V0ID8/IExpbmsuVGFyZ2V0RW51bS5CbGFuaykge1xyXG4gICAgICAgIGNhc2UgJ1NFTEYnOlxyXG4gICAgICAgICAgdGFyZ2V0ID0gJ19zZWxmJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0JMQU5LJzpcclxuICAgICAgICAgIHRhcmdldCA9ICdfYmxhbmsnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUEFSRU5UJzpcclxuICAgICAgICAgIHRhcmdldCA9ICdfcGFyZW50JztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ1RPUCc6XHJcbiAgICAgICAgICB0YXJnZXQgPSAnX3RvcCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBsaW5rLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgdGFyZ2V0KTtcclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBkYXRhLnVybCk7XHJcbiAgICAgIGlmIChkYXRhLmRvd25sb2FkKSB7XHJcbiAgICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZGF0YS5maWxlbmFtZSA/PyAnJyk7XHJcbiAgICAgIH1cclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICBsaW5rLnJlbW92ZSgpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dEhhc0JlZW5TeW5jZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZUxpbmsobGlua0RhdGE6IExpbmspIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRVdWlkT2ZQYWdlKHBhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHV1aWQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHBhZ2VOYW1lKTtcclxuICAgIGlmICghdXVpZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSB1dWlkIG9mICR7cGFnZU5hbWV9IGlzIG5vdCBhdmFpbGFibGUuYCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXVpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBtZXNzYWdlKG1lc3NhZ2VEYXRhOiBNZXNzYWdlRGF0YSwgbWVzc2FnZVJlc3VsdDogTWVzc2FnZVJlc3VsdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy52aWV3XHJcbiAgICAgIC5tZXNzYWdlKG1lc3NhZ2VEYXRhLnZpZXdVdWlkID8/ICcnLCBtZXNzYWdlRGF0YS51dWlkLCBtZXNzYWdlUmVzdWx0KVxyXG4gICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICBhd2FpdCB0aGlzLmdldEFuZFN5bmNWaWV3Q29udGV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvckJ5Q29kZShjb2RlOiBzdHJpbmcpOiBQcm9taXNlPFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcj4ge1xyXG4gICAgbGV0IGJ1dHRvbkxhYmVsO1xyXG4gICAgbGV0IGRpYWxvZ1RpdGxlO1xyXG4gICAgbGV0IG1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICAgIGJ1dHRvbkxhYmVsID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgICAgLmdldChTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dCdXR0b25MYWJlbClcclxuICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgIGRpYWxvZ1RpdGxlID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dUaXRsZSkudG9Qcm9taXNlKCk7XHJcbiAgICAgIG1lc3NhZ2UgPSBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KFNtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ01lc3NhZ2UpLnRvUHJvbWlzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYnV0dG9uTGFiZWwgPSAnT2snO1xyXG4gICAgICBkaWFsb2dUaXRsZSA9ICdIaWJhJztcclxuICAgICAgbWVzc2FnZSA9ICdBbiBlcnJvciBoYXMgb2NjdXJlZC4nO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5zbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzKSB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgY29kZSxcclxuICAgICAgICBtZXNzYWdlLFxyXG4gICAgICAgIGJ1dHRvbkxhYmVsLFxyXG4gICAgICAgIGRpYWxvZ1RpdGxlLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IGFwaUVycm9yc1dpdGhDb2RlID0gdGhpcy5zbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzLnZpZXdDb250ZXh0QXBpRXJyb3JzLmZpbHRlcihcclxuICAgICAgKGFwaUVycm9yOiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3IpID0+IHtcclxuICAgICAgICByZXR1cm4gYXBpRXJyb3IuY29kZSA9PT0gY29kZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICghYXBpRXJyb3JzV2l0aENvZGUgfHwgKGFwaUVycm9yc1dpdGhDb2RlICYmICFhcGlFcnJvcnNXaXRoQ29kZS5sZW5ndGgpKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvciB3aXRoIGNvZGUgJHtjb2RlfSBjb3VsZCBub3QgYmUgZm91bmQuYCk7XHJcblxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgbWVzc2FnZSxcclxuICAgICAgICBidXR0b25MYWJlbCxcclxuICAgICAgICBkaWFsb2dUaXRsZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBhcGlFcnJvcnNXaXRoQ29kZVswXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRWaWV3Q29uc3RyYWludCh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPFZpZXdDb25zdHJhaW50PiB7XHJcbiAgICBsZXQgdmlld0NvbnN0cmFpbnRSZXNwb25zZSA9IGF3YWl0IHRoaXMudmlldy5nZXRWaWV3Q29uc3RyYWludCh1dWlkKS50b1Byb21pc2UoKTtcclxuICAgIGlmICghdmlld0NvbnN0cmFpbnRSZXNwb25zZSlcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZ2V0IFZpZXdDb25zdHJhaW50IHdpdGggdGhlIGdpdmVuIHV1aWQuJyk7XHJcbiAgICByZXR1cm4gdmlld0NvbnN0cmFpbnRSZXNwb25zZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaG93UHVibGlzaGVkVmlldyhjaGFubmVsOiBzdHJpbmcsIHV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5zZXNzaW9uLmluaXRpYWxpemUoKTtcclxuICAgIC8vIFRPRE8gaW5pdCB2aWV3IGNvbnRleHQgYXV0b21hdGljYWxseVxyXG4gICAgLy8gYXdhaXQgdGhpcy5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgdGhpcy5pc09wZW5pbmdTbWFydExpbmsgPSB0cnVlO1xyXG4gICAgdGhpcy5vcGVuU21hcnRMaW5rLm5leHQoKTtcclxuICAgIGF3YWl0IHRoaXMub3BlblNtYXJ0TGluay50b1Byb21pc2UoKTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLnZpZXcuc2hvd1B1Ymxpc2hlZFZpZXcoY2hhbm5lbCwgdXVpZCkudG9Qcm9taXNlKCk7XHJcbiAgICBhd2FpdCB0aGlzLmdldEFuZFN5bmNWaWV3Q29udGV4dCgpO1xyXG4gICAgdGhpcy5pc09wZW5pbmdTbWFydExpbmsgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkb3dubG9hZFJlc291cmNlKHV1aWQ6IHN0cmluZywgaXRlbTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnZpZXcuZG93bmxvYWRJdGVtKHV1aWQsIGl0ZW0pLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBlcmZvcm1BY3Rpb24odXVpZDogc3RyaW5nLCB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3BlcmZvcm1BY3Rpb24oe1xyXG4gICAgICB1dWlkLFxyXG4gICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICB9KTtcclxuICAgIC8vIGNvbnN0IGlzQ29tcGxldGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIC8vIHRoaXMuYXBpUXVldWVTZXJ2aWNlLmFkZFRvUXVldWUoe1xyXG4gICAgLy8gICBjYWxsYmFjazogdGhpcy5fcGVyZm9ybUFjdGlvbi5iaW5kKHRoaXMpLFxyXG4gICAgLy8gICBjb25maWc6IHtcclxuICAgIC8vICAgICB1dWlkLFxyXG4gICAgLy8gICAgIHVpQWN0aW9uUmVxdWVzdCxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAgaXNDb21wbGV0ZWQsXHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHJldHVybiBhd2FpdCBpc0NvbXBsZXRlZC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZXJmb3JtV2lkZ2V0QWN0aW9uKFxyXG4gICAgdXVpZDogc3RyaW5nLFxyXG4gICAgd2lkZ2V0SWQ6IHN0cmluZyxcclxuICAgIG5vZGVJZDogc3RyaW5nLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9wZXJmb3JtV2lkZ2V0QWN0aW9uKHsgdXVpZCwgd2lkZ2V0SWQsIG5vZGVJZCwgdWlBY3Rpb25SZXF1ZXN0IH0pO1xyXG4gICAgLy8gY29uc3QgaXNDb21wbGV0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgLy8gdGhpcy5hcGlRdWV1ZVNlcnZpY2UuYWRkVG9RdWV1ZSh7XHJcbiAgICAvLyAgIGNhbGxiYWNrOiB0aGlzLl9wZXJmb3JtV2lkZ2V0QWN0aW9uLmJpbmQodGhpcyksXHJcbiAgICAvLyAgIGNvbmZpZzoge1xyXG4gICAgLy8gICAgIHV1aWQsXHJcbiAgICAvLyAgICAgd2lkZ2V0SWQsXHJcbiAgICAvLyAgICAgbm9kZUlkLFxyXG4gICAgLy8gICAgIHVpQWN0aW9uUmVxdWVzdCxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAgaXNDb21wbGV0ZWQsXHJcbiAgICAvLyB9KTtcclxuICAgIC8vIHJldHVybiBhd2FpdCBpc0NvbXBsZXRlZC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZXJmb3JtV2lkZ2V0TWFpbkFjdGlvbihcclxuICAgIHV1aWQ6IHN0cmluZyxcclxuICAgIHdpZGdldElkOiBzdHJpbmcsXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX3BlcmZvcm1XaWRnZXRNYWluQWN0aW9uKHsgdXVpZCwgd2lkZ2V0SWQsIHVpQWN0aW9uUmVxdWVzdCB9KTtcclxuICAgIC8vIGNvbnN0IGlzQ29tcGxldGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIC8vIHRoaXMuYXBpUXVldWVTZXJ2aWNlLmFkZFRvUXVldWUoe1xyXG4gICAgLy8gICBjYWxsYmFjazogdGhpcy5fcGVyZm9ybVdpZGdldE1haW5BY3Rpb24uYmluZCh0aGlzKSxcclxuICAgIC8vICAgY29uZmlnOiB7XHJcbiAgICAvLyAgICAgdXVpZCxcclxuICAgIC8vICAgICB3aWRnZXRJZCxcclxuICAgIC8vICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIGlzQ29tcGxldGVkLFxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyByZXR1cm4gYXdhaXQgaXNDb21wbGV0ZWQudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGVyZm9ybVVwbG9hZEFjdGlvbihcclxuICAgIHV1aWQ6IHN0cmluZyxcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgcGFyYW06ICdpbnB1dCcgfCAnaW5wdXRcIicsXHJcbiAgICBjb250ZW50OiBhbnlcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX3BlcmZvcm1VcGxvYWRBY3Rpb24oe1xyXG4gICAgICB1dWlkLFxyXG4gICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBjb250ZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGVyZm9ybVVwbG9hZE11bHRpcGxlQWN0aW9uKFxyXG4gICAgdXVpZDogc3RyaW5nLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXHJcbiAgICBwYXJhbTogJ2lucHV0JyB8ICdpbnB1dDInLFxyXG4gICAgY29udGVudDogYW55W11cclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX3BlcmZvcm1VcGxvYWRNdWx0aXBsZUFjdGlvbih7XHJcbiAgICAgIHV1aWQsXHJcbiAgICAgIHVpQWN0aW9uUmVxdWVzdCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIGNvbnRlbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkYXRhQ2hhbmdlZCh1dWlkOiBzdHJpbmcsIGRhdGFDaGFuZ2U6IERhdGFDaGFuZ2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9kYXRhQ2hhbmdlZCh7IHV1aWQsIGRhdGFDaGFuZ2UgfSk7XHJcbiAgICAvLyBjb25zdCBpc0NvbXBsZXRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAvLyB0aGlzLmFwaVF1ZXVlU2VydmljZS5hZGRUb1F1ZXVlKFxyXG4gICAgLy8gICB7XHJcbiAgICAvLyAgICAgY2FsbGJhY2s6IHRoaXMuX2RhdGFDaGFuZ2VkLmJpbmQodGhpcyksXHJcbiAgICAvLyAgICAgY29uZmlnOiB7XHJcbiAgICAvLyAgICAgICB1dWlkLFxyXG4gICAgLy8gICAgICAgZGF0YUNoYW5nZSxcclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIGlzQ29tcGxldGVkLFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICB0cnVlXHJcbiAgICAvLyApO1xyXG4gICAgLy8gcmV0dXJuIGF3YWl0IGlzQ29tcGxldGVkLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcGVyZm9ybUFjdGlvbihjb25maWc6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnZpZXcucGVyZm9ybUFjdGlvbihjb25maWcudXVpZCwgY29uZmlnLnVpQWN0aW9uUmVxdWVzdCkudG9Qcm9taXNlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9wZXJmb3JtV2lkZ2V0QWN0aW9uKGNvbmZpZzogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMudmlld1xyXG4gICAgICAgIC5wZXJmb3JtV2lkZ2V0QWN0aW9uKGNvbmZpZy51dWlkLCBjb25maWcud2lkZ2V0SWQsIGNvbmZpZy5ub2RlSWQsIGNvbmZpZy51aUFjdGlvblJlcXVlc3QpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcGVyZm9ybVdpZGdldE1haW5BY3Rpb24oY29uZmlnOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy52aWV3XHJcbiAgICAgICAgLnBlcmZvcm1XaWRnZXRNYWluQWN0aW9uKGNvbmZpZy51dWlkLCBjb25maWcud2lkZ2V0SWQsIGNvbmZpZy51aUFjdGlvblJlcXVlc3QpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcGVyZm9ybVVwbG9hZEFjdGlvbihjb25maWc6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdcclxuICAgICAgICAudXBsb2FkQWN0aW9uKFxyXG4gICAgICAgICAgY29uZmlnLnV1aWQsXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShjb25maWcudWlBY3Rpb25SZXF1ZXN0KSxcclxuICAgICAgICAgIGNvbmZpZy5wYXJhbSxcclxuICAgICAgICAgIGNvbmZpZy5jb250ZW50XHJcbiAgICAgICAgKVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfcGVyZm9ybVVwbG9hZE11bHRpcGxlQWN0aW9uKGNvbmZpZzogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMudmlld1xyXG4gICAgICAgIC51cGxvYWRNdWx0aXBsZUFjdGlvbihcclxuICAgICAgICAgIGNvbmZpZy51dWlkLFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoY29uZmlnLnVpQWN0aW9uUmVxdWVzdCksXHJcbiAgICAgICAgICBjb25maWcucGFyYW0sXHJcbiAgICAgICAgICBjb25maWcuY29udGVudFxyXG4gICAgICAgIClcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9kYXRhQ2hhbmdlZChjb25maWc6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnZpZXcuZGF0YUNoYW5nZWQoY29uZmlnLnV1aWQsIGNvbmZpZy5kYXRhQ2hhbmdlKS50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICB2aWV3Q29udGV4dENoYW5nZTogVmlld0NvbnRleHRDaGFuZ2UgfCB1bmRlZmluZWRcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudmlld0NvbnRleHQgPSB2aWV3Q29udGV4dENoYW5nZT8udmlld0NvbnRleHQ7XHJcbiAgICB0aGlzLnN5bmNWaWV3KCk7XHJcblxyXG4gICAgaWYgKHZpZXdDb250ZXh0Q2hhbmdlPy5jaGFuZ2VzKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlcyh2aWV3Q29udGV4dENoYW5nZS5jaGFuZ2VzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ2hhbmdlcyhjaGFuZ2VzOiBBcnJheTxDb21wb25lbnRNb2RlbENoYW5nZT4pOiB2b2lkIHtcclxuICAgIGNoYW5nZXMuZm9yRWFjaCgoY29tcG9uZW50TW9kZWxDaGFuZ2U6IENvbXBvbmVudE1vZGVsQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGxldCBkZXRlY3RDaGFuZ2U6IFNtYXJ0U3ViamVjdDxDb21wb25lbnRNb2RlbENoYW5nZT4gfCB1bmRlZmluZWQgPSB0aGlzLnNtYXJ0QXBpQ2xpZW50cy5nZXQoXHJcbiAgICAgICAgY29tcG9uZW50TW9kZWxDaGFuZ2UudXVpZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoZGV0ZWN0Q2hhbmdlKSB7XHJcbiAgICAgICAgZGV0ZWN0Q2hhbmdlLm5leHQoY29tcG9uZW50TW9kZWxDaGFuZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2FkKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Q29tcG9uZW50TW9kZWwgfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnZpZXcuZ2V0Q29tcG9uZW50TW9kZWwodXVpZCkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZDIodXVpZDogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29udGV4dENoYW5nZSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgbGV0IGNoYW5nZSA9IGF3YWl0IHRoaXMudmlldy5nZXRDb21wb25lbnRNb2RlbDIodXVpZCkudG9Qcm9taXNlKCk7XHJcbiAgICB0aGlzLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShjaGFuZ2UpO1xyXG4gICAgcmV0dXJuIGNoYW5nZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBJU19BU1lOQ19QQVJBTV9OQU1FID0gJ2lzQXN5bmMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcGlRdWV1ZUNhbGwge1xyXG4gIGNhbGxiYWNrOiAoY29uZmlnOiBhbnkpID0+IFByb21pc2U8YW55PjtcclxuICBjb25maWc6IGFueTtcclxuICBpc0NvbXBsZXRlZDogU3ViamVjdDx2b2lkPjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaVF1ZXVlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIHF1ZXVlOiBBcGlRdWV1ZUNhbGxbXSA9IFtdO1xyXG4gIHByaXZhdGUgaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBxdWV1ZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnF1ZXVlU3ViamVjdC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnByb2Nlc3NRdWV1ZSgpKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYWRkVG9RdWV1ZShjYWxsOiBBcGlRdWV1ZUNhbGwsIHByaW9yaXR5OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmIChwcmlvcml0eSkge1xyXG4gICAgICB0aGlzLnF1ZXVlLnVuc2hpZnQoY2FsbCk7IC8vIEFkZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBxdWV1ZSBpZiBpdCBoYXMgaGlnaGVyIHByaW9yaXR5XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnF1ZXVlLnB1c2goY2FsbCk7IC8vIEFkZCBhdCB0aGUgZW5kIG9mIHRoZSBxdWV1ZSBpZiBpdCBoYXMgbG93ZXIgcHJpb3JpdHlcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc1Byb2Nlc3NpbmcpIHtcclxuICAgICAgdGhpcy5wcm9jZXNzUXVldWUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHByb2Nlc3NRdWV1ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLnF1ZXVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYXBpUXVldWVDYWxsID0gdGhpcy5xdWV1ZS5zaGlmdCgpO1xyXG4gICAgaWYgKGFwaVF1ZXVlQ2FsbCkge1xyXG4gICAgICBhd2FpdCBhcGlRdWV1ZUNhbGwuY2FsbGJhY2soYXBpUXVldWVDYWxsLmNvbmZpZyk7XHJcbiAgICAgIGFwaVF1ZXVlQ2FsbC5pc0NvbXBsZXRlZC5jb21wbGV0ZSgpO1xyXG4gICAgICB0aGlzLnF1ZXVlU3ViamVjdC5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
586
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFJTCxJQUFJLEVBV0osU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBUW5GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBSXpELE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUFHLHdDQUF3QyxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLGtDQUFrQyxDQUFDO0FBQ25GLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLG9DQUFvQyxDQUFDO0FBQ3ZGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLGVBQWUsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBVSxvQkFBb0IsQ0FBQyxDQUFDO0FBS3RGLE1BQU0sT0FBTyx1QkFBdUI7SUE0Q2xDLFlBQ1UsSUFBaUIsRUFDakIsT0FBNEIsRUFDNUIsVUFBa0MsRUFDbEMsTUFBcUMsRUFDckMsZUFBZ0MsRUFDaEMsTUFBZ0I7UUFMaEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUEr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QUFZO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsTUFBTSxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNqRCxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDOzs0R0F0Q1UsZUFBZTtnSEFBZixlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTbWFydFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9zbWFydC1zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudE1vZGVsLFxyXG4gIENvbXBvbmVudE1vZGVsQ2hhbmdlLFxyXG4gIERhdGFDaGFuZ2UsXHJcbiAgTGluayxcclxuICBNZXNzYWdlRGF0YSxcclxuICBNZXNzYWdlUmVzdWx0LFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICBVaUFjdGlvblJlcXVlc3QsXHJcbiAgVmlld0NvbnN0cmFpbnQsXHJcbiAgVmlld0NvbnRleHRDaGFuZ2UsXHJcbiAgVmlld0NvbnRleHREYXRhLFxyXG4gIFZpZXdDb250ZXh0VXBkYXRlLFxyXG4gIFZpZXdEYXRhLFxyXG4gIFZpZXdTZXJ2aWNlLFxyXG4gIFZpZXdTdGF0ZSxcclxuICBWaWV3VHlwZSxcclxufSBmcm9tICcuL2FwaSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL21lc3NhZ2UtZGlhbG9nL21lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcixcclxuICBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzLFxyXG4gIFNtYXJ0Vmlld0RpYWxvZ1JlZixcclxuICBTbWFydFZpZXdIYW5kbGVyTW9kZWwsXHJcbn0gZnJvbSAnLi9zbWFydC12aWV3LWNvbnRleHQubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnROYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LW5hdmlnYXRpb24vcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0RGlhbG9nU2VydmljZSB9IGZyb20gJy4vc21hcnQtdmlldy1jb250ZXh0LWRpYWxvZy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dCdXR0b25MYWJlbCA9ICdTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dCdXR0b25MYWJlbCc7XHJcbmV4cG9ydCBjb25zdCBTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dUaXRsZSA9ICdTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dUaXRsZSc7XHJcbmV4cG9ydCBjb25zdCBTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dNZXNzYWdlID0gJ1NtYXJ0Vmlld0NvbnRleHRFcnJvckRpYWxvZ01lc3NhZ2UnO1xyXG5leHBvcnQgY29uc3QgRGVmYXVsdFVpQWN0aW9uQ29kZV9DTE9TRSA9ICdERUZBVUxUX0NMT1NFJztcclxuXHJcbmV4cG9ydCBjb25zdCBESUFMT0dfRElTQUJMRV9DTE9TRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignZGlhbG9nRGlzYWJsZUNsb3NlJyk7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRWaWV3Q29udGV4dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgdGFiSWROYW1lOiBzdHJpbmcgPSAndmlld0NvbnRleHRVdWlkJztcclxuICBwcml2YXRlIHRhYklkaHR0cEhlYWRlck5hbWU6IHN0cmluZyA9ICd2aWV3Q29udGV4dFV1aWQnO1xyXG4gIHB1YmxpYyBtZXNzYWdlRGlhbG9nbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgdXJsPzogc3RyaW5nO1xyXG4gIHByaXZhdGUgdmlld0NvbnRleHQ/OiBWaWV3Q29udGV4dERhdGE7XHJcbiAgcHJpdmF0ZSB2aWV3SGFuZGxlcnM6IEFycmF5PFNtYXJ0Vmlld0hhbmRsZXJNb2RlbD4gPSBuZXcgQXJyYXkoKTtcclxuICBwcml2YXRlIG9wZW5lZFZpZXdVdWlkczogQXJyYXk8c3RyaW5nPiA9IG5ldyBBcnJheSgpO1xyXG4gIHByaXZhdGUgb3BlbmVkVmlld0RhdGE6IEFycmF5PFZpZXdEYXRhPiA9IG5ldyBBcnJheSgpO1xyXG5cclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIHV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgcHVibGljIHZpZXdDb250ZXh0SGFzQmVlblN5bmNlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVJ1bm5pbmc6IFN1YmplY3Q8Vmlld0NvbnRleHREYXRhPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIHNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnM/OiBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JzO1xyXG5cclxuICBwdWJsaWMgb3BlblNtYXJ0TGluazogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gIHB1YmxpYyBpc09wZW5pbmdTbWFydExpbms6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWZzOiBTbWFydFZpZXdEaWFsb2dSZWZbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGFjdGlvbkRlc2NyaXB0b3JzPzogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPjtcclxuXHJcbiAgcHVibGljIGNvbW1vbkZlZWRiYWNrVGV4dD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIHNtYXJ0QXBpQ2xpZW50czogTWFwPHN0cmluZywgU21hcnRTdWJqZWN0PGFueT4+ID0gbmV3IE1hcCgpO1xyXG5cclxuICBwdWJsaWMgc2V0IHRyYW5zbGF0ZVNlcnZpY2UodHJhbnNsYXRlU2VydmljZTogU21hcnRUcmFuc2xhdGVTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlID0gdHJhbnNsYXRlU2VydmljZTtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZUNoYW5nZWQubmV4dCgpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlQ2hhbmdlZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2xhdGVTZXJ2aWNlKCk6IFNtYXJ0VHJhbnNsYXRlU2VydmljZSB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodGhpcy5fdHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlU2VydmljZTtcclxuICAgIH1cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlPzogU21hcnRUcmFuc2xhdGVTZXJ2aWNlO1xyXG4gIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdmlldzogVmlld1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlc3Npb246IFNtYXJ0U2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdmlnYXRpb246IFNtYXJ0TmF2aWdhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogU21hcnRWaWV3Q29udGV4dERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwaVF1ZXVlU2VydmljZTogQXBpUXVldWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3Q6IEluamVjdG9yXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZm9sbG93KHV1aWQ6IHN0cmluZywgZGV0ZWN0Q2hhbmdlOiBTbWFydFN1YmplY3Q8YW55Pik6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydEFwaUNsaWVudHMuc2V0KHV1aWQsIGRldGVjdENoYW5nZSk7XHJcbiAgfVxyXG4gIHB1YmxpYyB1bmZvbGxvdyh1dWlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRBcGlDbGllbnRzLmRlbGV0ZSh1dWlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRBY3Rpb25EZXNjcmlwdG9ycyhhY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3Rpb25EZXNjcmlwdG9ycyA9IGFjdGlvbkRlc2NyaXB0b3JzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjdGlvbkRlc2NyaXB0b3JzKCk6IE1hcDxzdHJpbmcsIFVpQWN0aW9uRGVzY3JpcHRvcj4gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKCF0aGlzLmFjdGlvbkRlc2NyaXB0b3JzKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIGFjdGlvbiBkZXNjcmlwdG9ycyBoYXMgYmVlbiBzZXQgdG8gVmlld0NvbnRleHQuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25EZXNjcmlwdG9ycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaWV3SGFuZGxlcnModmlld0hhbmRsZXJzOiBBcnJheTxTbWFydFZpZXdIYW5kbGVyTW9kZWw+KTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdIYW5kbGVycyA9IHZpZXdIYW5kbGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaWV3QXBpRXJyb3JzKHZpZXdBcGlFcnJvcnM6IFNtYXJ0Vmlld0NvbnRleHRBcGlFcnJvcnMpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycyA9IHZpZXdBcGlFcnJvcnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TWVzc2FnZURpYWxvZ05hbWUobWVzc2FnZURpYWxvZ05hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSA9IG1lc3NhZ2VEaWFsb2dOYW1lO1xyXG4gICAgdGhpcy52aWV3SGFuZGxlcnMucHVzaCh7XHJcbiAgICAgIG5hbWU6IG1lc3NhZ2VEaWFsb2dOYW1lLFxyXG4gICAgICBjb21wb25lbnQ6IE1lc3NhZ2VEaWFsb2dDb21wb25lbnQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBVcmxGb3JWaWV3U2VydmljZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlldy5jb25maWd1cmF0aW9uLmJhc2VQYXRoID0gdGhpcy51cmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VXJsKHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnVybCA9IHVybCArICcvdmlldyc7XHJcbiAgICB0aGlzLnNldFVwVXJsRm9yVmlld1NlcnZpY2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBbmRTeW5jVmlld0NvbnRleHQodXVpZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF1dWlkKSB7XHJcbiAgICAgIHV1aWQgPSB0aGlzLmdldFV1aWRPZlBhZ2UodGhpcy50YWJJZE5hbWUpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5zeW5jVmlldygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Vmlld0NvbnRleHQodXVpZDogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGE+IHtcclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Vmlld0NvbnRleHQodXVpZCkudG9Qcm9taXNlKCk7XHJcbiAgICBpZiAoIXRoaXMudmlld0NvbnRleHQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWaWV3Q29udGV4dCBkb2VzIG5vdCBleGlzdCB3aXRoIHRoZSBnaXZlbiB1dWlkLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Vmlld0NvbnRleHREYXRhQnlQYWdlTmFtZShwYWdlTmFtZTogc3RyaW5nKTogUHJvbWlzZTxWaWV3RGF0YT4ge1xyXG4gICAgaWYgKCF0aGlzLnZpZXdDb250ZXh0KSB7XHJcbiAgICAgIGxldCB2aWV3Q29udGV4dFV1aWQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMudGFiSWROYW1lKTtcclxuICAgICAgaWYgKCF2aWV3Q29udGV4dFV1aWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZpZXcgY29udGV4dCBpcyBub3QgaW5pdGlhbGl6ZWQhJyk7XHJcbiAgICAgIH1cclxuICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh2aWV3Q29udGV4dFV1aWQhKTtcclxuICAgIH1cclxuICAgIGxldCBwYWdlVXVpZCA9IHRoaXMuZ2V0VXVpZE9mUGFnZShwYWdlTmFtZSk7XHJcblxyXG4gICAgbGV0IHZpZXdDb250ZXh0QnlQYWdlTmFtZSA9IHRoaXMudmlld0NvbnRleHQ/LnZpZXdzLmZpbmQoKHZpZXcpID0+IHZpZXcudXVpZCA9PT0gcGFnZVV1aWQpO1xyXG4gICAgaWYgKCF2aWV3Q29udGV4dEJ5UGFnZU5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgVmlld0RhdGEgb2YgJHtwYWdlTmFtZX0gaXMgbm90IGZvdW5kIWApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZpZXdDb250ZXh0QnlQYWdlTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVWaWV3Q29udGV4dChcclxuICAgIHZpZXdDb250ZXh0VXBkYXRlOiBWaWV3Q29udGV4dFVwZGF0ZVxyXG4gICk6IFByb21pc2U8Vmlld0NvbnRleHREYXRhIHwgdW5kZWZpbmVkPiB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0ID0gYXdhaXQgdGhpcy52aWV3LnVwZGF0ZVZpZXdDb250ZXh0KHZpZXdDb250ZXh0VXBkYXRlKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJTZXNzaW9uU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcbiAgICB0aGlzLm9wZW5lZFZpZXdEYXRhID0gW107XHJcbiAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUYWJJZCh0YWJJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMudGFiSWROYW1lLCB0YWJJZCk7XHJcbiAgICB0aGlzLnNlc3Npb24uYWRkSGVhZGVyUGFyYW0oe1xyXG4gICAgICBoZWFkZXJOYW1lOiB0aGlzLnRhYklkaHR0cEhlYWRlck5hbWUsXHJcbiAgICAgIHZhbHVlOiB0YWJJZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHN0YXJ0Vmlld0NvbnRleHQoKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGE+IHtcclxuICAgIHRoaXMuY2xlYXJTZXNzaW9uU3RvcmFnZSgpO1xyXG5cclxuICAgIGxldCBuZXdWaWV3Q29udGV4dDogVmlld0NvbnRleHREYXRhIHwgdW5kZWZpbmVkID0gYXdhaXQgdGhpcy52aWV3XHJcbiAgICAgIC5jcmVhdGVWaWV3Q29udGV4dCgpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICAgIGlmICghbmV3Vmlld0NvbnRleHQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBWaWV3Q29udGV4dCB3YXMgY3JlYXRlZCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3Q29udGV4dCA9IG5ld1ZpZXdDb250ZXh0O1xyXG4gICAgdGhpcy5zZXRUYWJJZChuZXdWaWV3Q29udGV4dC51dWlkISk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudmlld0NvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSh1dWlkPzogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29udGV4dERhdGEgfCB1bmRlZmluZWQ+IHtcclxuICAgIGlmICh0aGlzLmluaXRpYWxpemVSdW5uaW5nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVSdW5uaW5nLnRvUHJvbWlzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplUnVubmluZyA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGlmICh0aGlzLnZpZXdIYW5kbGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgXCJUaGVyZSBhcmVuJ3QgYW55IHZpZXdIYW5kbGVycyBpbiBTbWFydFZpZXdDb250ZXh0U2VydmljZSEgUHJvdmlkZSBzb21lIHRvIHVzZSBpdHMgZnVuY3Rpb25zLlwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRoaXMubWVzc2FnZURpYWxvZ25hbWUpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIG1lc3NhZ2VEaWFsb2dOYW1lIHByb3ZpZGVkIGJ5IHRoZSBiYWNrZW5kIGhhcyBub3QgYmVlbiBzZXQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh1dWlkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFRhYklkKHV1aWQpO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5nZXRWaWV3Q29udGV4dCh1dWlkKTtcclxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0Vmlld0NvbnRleHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5zdGFydFZpZXdDb250ZXh0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy52aWV3Q29udGV4dCE7XHJcbiAgICAgIH0gZmluYWxseSB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUnVubmluZy5uZXh0KHRoaXMudmlld0NvbnRleHQhKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVSdW5uaW5nLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUnVubmluZyA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5WaWV3KHZpZXc6IFZpZXdEYXRhKTogdm9pZCB7XHJcbiAgICBsZXQgdmlld0hhbmRsZXI6IFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB8IHVuZGVmaW5lZCA9IHRoaXMudmlld0hhbmRsZXJzLmZpbmQoXHJcbiAgICAgIChoYW5kbGVyKSA9PiBoYW5kbGVyLm5hbWUgPT09IHZpZXcudmlld05hbWVcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCF2aWV3SGFuZGxlcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNtYXJ0Vmlld0hhbmRsZXJNb2RlbCB3YXMgbm90IGZvdW5kIGJ5IHZpZXcgbmFtZTogJHt2aWV3LnZpZXdOYW1lfWApO1xyXG4gICAgfVxyXG4gICAgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuRGlhbG9nKSB7XHJcbiAgICAgIGlmICghdmlld0hhbmRsZXIuY29tcG9uZW50KSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYENvbXBvbmVudCBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuQ29tcG9uZW50QXNEaWFsb2codmlld0hhbmRsZXIuY29tcG9uZW50LCB2aWV3SGFuZGxlci5uYW1lKTtcclxuICAgICAgbGV0IGRpYWxvZ0Rpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgZGlhbG9nRGlzYWJsZUNsb3NlID0gdGhpcy5pbmplY3QuZ2V0KERJQUxPR19ESVNBQkxFX0NMT1NFKTtcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZHVyaW5nIHJlYWRpbmcgRElBTE9HX0RJU0FCTEVfQ0xPU0UnKTtcclxuICAgICAgfVxyXG4gICAgICBkaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gZGlhbG9nRGlzYWJsZUNsb3NlO1xyXG4gICAgICAvLyBpZiAodmlldy52aWV3TmFtZSA9PT0gdGhpcy5tZXNzYWdlRGlhbG9nbmFtZSkge1xyXG4gICAgICAvLyAgIGlmICh2aWV3Lm1lc3NhZ2U/Lm9wdGlvbnMgJiYgdmlldy5tZXNzYWdlLm9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICAgIGlmICghZGlhbG9nRGlzYWJsZUNsb3NlKSB7XHJcbiAgICAgICAgZGlhbG9nUmVmXHJcbiAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1BY3Rpb24odmlldy51dWlkLCB7IGNvZGU6IERlZmF1bHRVaUFjdGlvbkNvZGVfQ0xPU0UsIHBhcmFtczoge30gfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRpYWxvZ1JlZnMucHVzaCh7XHJcbiAgICAgICAgdXVpZDogdmlldy51dWlkLFxyXG4gICAgICAgIGRpYWxvZ1JlZixcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuTm9ybWFsKSB7XHJcbiAgICAgIGlmICh2aWV3SGFuZGxlci5yb3V0ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSb3V0ZSBpcyB1bmRlZmluZWQgaW4gU21hcnRWaWV3SGFuZGxlck1vZGVsIHdpdGggbmFtZTogJHt2aWV3LnZpZXdOYW1lfWApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZVRvKHZpZXdIYW5kbGVyLnJvdXRlLnNwbGl0KCcvJykpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgdHlwZSBvZiB0aGUgdmlldyBhbmQgaXRzIHZpZXdIYW5kbGVyIGlzIG5vdCB0aGUgc2FtZSEnKTtcclxuICAgIH1cclxuXHJcbiAgICB2aWV3LnN0YXRlID0gVmlld1N0YXRlLk9wZW5lZDtcclxuXHJcbiAgICB0aGlzLm9wZW5lZFZpZXdVdWlkcy5wdXNoKHZpZXcudXVpZCk7XHJcbiAgICB0aGlzLm9wZW5lZFZpZXdEYXRhLnB1c2godmlldyk7XHJcblxyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2aWV3LnZpZXdOYW1lLCB2aWV3LnV1aWQpO1xyXG4gICAgdGhpcy51dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWQubmV4dCh2aWV3LnZpZXdOYW1lKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZpZXdDb250ZXh0KHtcclxuICAgICAgdXBkYXRlczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHN0YXRlOiBWaWV3U3RhdGUuT3BlbmVkLFxyXG4gICAgICAgICAgdXVpZDogdmlldy51dWlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHV1aWQ6IHRoaXMudmlld0NvbnRleHQ/LnV1aWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVZpZXcodmlldzogVmlld0RhdGEpOiB2b2lkIHtcclxuICAgIGxldCB2aWV3SGFuZGxlcjogU21hcnRWaWV3SGFuZGxlck1vZGVsIHwgdW5kZWZpbmVkID0gdGhpcy52aWV3SGFuZGxlcnMuZmluZChcclxuICAgICAgKGhhbmRsZXIpID0+IGhhbmRsZXIubmFtZSA9PT0gdmlldy52aWV3TmFtZVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIXZpZXdIYW5kbGVyKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU21hcnRWaWV3SGFuZGxlck1vZGVsIHdhcyBub3QgZm91bmQgYnkgdmlldyBuYW1lOiAke3ZpZXcudmlld05hbWV9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuRGlhbG9nKSB7XHJcbiAgICAgIGxldCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1JlZnMuZmluZChcclxuICAgICAgICAoZGlhbG9nUmVmOiBTbWFydFZpZXdEaWFsb2dSZWYpID0+IGRpYWxvZ1JlZi51dWlkID09PSB2aWV3LnV1aWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGRpYWxvZ1JlZikge1xyXG4gICAgICAgIGRpYWxvZ1JlZi5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLmRpYWxvZ1JlZnMuaW5kZXhPZihkaWFsb2dSZWYpO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nUmVmcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGlhbG9nUmVmIGlzIG5vdCBmb3VuZCBieSB1dWlkLicpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHZpZXcudHlwZSA9PT0gVmlld1R5cGUuTm9ybWFsKSB7XHJcbiAgICAgIC8vIFRPRE86IGNsb3NlIG5vcm1hbCBwYWdlPz8/XHJcbiAgICAgIC8vIHRoaXMubmF2aWdhdGlvbi5uYXZpZ2F0ZVRvKHZpZXdIYW5kbGVyLnJvdXRlLnNwbGl0KFwiL1wiKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSB0eXBlIG9mIHRoZSB2aWV3IGFuZCBpdHMgdmlld0hhbmRsZXIgaXMgbm90IHRoZSBzYW1lIScpO1xyXG4gICAgfVxyXG5cclxuICAgIHZpZXcuc3RhdGUgPSBWaWV3U3RhdGUuQ2xvc2VkO1xyXG5cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVuZWRWaWV3VXVpZHMuaW5kZXhPZih2aWV3LnV1aWQpO1xyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5vcGVuZWRWaWV3VXVpZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5vcGVuZWRWaWV3RGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHZpZXcudmlld05hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlVmlld0NvbnRleHQoe1xyXG4gICAgICB1cGRhdGVzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgc3RhdGU6IFZpZXdTdGF0ZS5DbG9zZWQsXHJcbiAgICAgICAgICB1dWlkOiB2aWV3LnV1aWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgdXVpZDogdGhpcy52aWV3Q29udGV4dD8udXVpZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc3RvcmVWaWV3cyh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy52aWV3Q29udGV4dCkge1xyXG4gICAgICBhd2FpdCB0aGlzLmdldFZpZXdDb250ZXh0KHV1aWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3Q29udGV4dCEudmlld3MubWFwKCh2aWV3OiBWaWV3RGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5WaWV3KHZpZXcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3luY1ZpZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0Py52aWV3cy5tYXAoKHZpZXc6IFZpZXdEYXRhKSA9PiB7XHJcbiAgICAgIHN3aXRjaCAodmlldy5zdGF0ZSkge1xyXG4gICAgICAgIGNhc2UgVmlld1N0YXRlLlRvT3BlbjpcclxuICAgICAgICAgIHRoaXMub3BlblZpZXcodmlldyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFZpZXdTdGF0ZS5Ub0Nsb3NlOlxyXG4gICAgICAgICAgdGhpcy5jbG9zZVZpZXcodmlldyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3Qgdmlld0RhdGFUb0Nsb3NlID0gdGhpcy5vcGVuZWRWaWV3RGF0YS5maWx0ZXIoXHJcbiAgICAgICh2aWV3RGF0YTogVmlld0RhdGEpID0+XHJcbiAgICAgICAgIXRoaXMudmlld0NvbnRleHQ/LnZpZXdzXHJcbiAgICAgICAgICAuZmxhdE1hcCgodmlld0RhdGE6IFZpZXdEYXRhKSA9PiB2aWV3RGF0YS51dWlkKVxyXG4gICAgICAgICAgLmluY2x1ZGVzKHZpZXdEYXRhLnV1aWQpXHJcbiAgICApO1xyXG4gICAgaWYgKHZpZXdEYXRhVG9DbG9zZT8ubGVuZ3RoKSB7XHJcbiAgICAgIHZpZXdEYXRhVG9DbG9zZS5tYXAoKHZpZXdEYXRhOiBWaWV3RGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2VWaWV3KHZpZXdEYXRhKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dD8ubGlua3M/Lm1hcCgoZGF0YTogTGluaykgPT4ge1xyXG4gICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICBsZXQgdGFyZ2V0ID0gJ19ibGFuayc7IC8vIGRlZmF1bHRcclxuICAgICAgc3dpdGNoIChkYXRhLnRhcmdldCA/PyBMaW5rLlRhcmdldEVudW0uQmxhbmspIHtcclxuICAgICAgICBjYXNlICdTRUxGJzpcclxuICAgICAgICAgIHRhcmdldCA9ICdfc2VsZic7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdCTEFOSyc6XHJcbiAgICAgICAgICB0YXJnZXQgPSAnX2JsYW5rJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ1BBUkVOVCc6XHJcbiAgICAgICAgICB0YXJnZXQgPSAnX3BhcmVudCc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdUT1AnOlxyXG4gICAgICAgICAgdGFyZ2V0ID0gJ190b3AnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgbGluay5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsIHRhcmdldCk7XHJcbiAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdocmVmJywgZGF0YS51cmwpO1xyXG4gICAgICBpZiAoZGF0YS5kb3dubG9hZCkge1xyXG4gICAgICAgIGxpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGRhdGEuZmlsZW5hbWUgPz8gJycpO1xyXG4gICAgICB9XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcbiAgICAgIGxpbmsuY2xpY2soKTtcclxuICAgICAgbGluay5yZW1vdmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHRIYXNCZWVuU3luY2VkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVMaW5rKGxpbmtEYXRhOiBMaW5rKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0VXVpZE9mUGFnZShwYWdlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCB1dWlkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShwYWdlTmFtZSk7XHJcbiAgICBpZiAoIXV1aWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdXVpZCBvZiAke3BhZ2VOYW1lfSBpcyBub3QgYXZhaWxhYmxlLmApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHV1aWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbWVzc2FnZShtZXNzYWdlRGF0YTogTWVzc2FnZURhdGEsIG1lc3NhZ2VSZXN1bHQ6IE1lc3NhZ2VSZXN1bHQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMudmlld1xyXG4gICAgICAubWVzc2FnZShtZXNzYWdlRGF0YS52aWV3VXVpZCA/PyAnJywgbWVzc2FnZURhdGEudXVpZCwgbWVzc2FnZVJlc3VsdClcclxuICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRBbmRTeW5jVmlld0NvbnRleHQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTbWFydFZpZXdDb250ZXh0QXBpRXJyb3JCeUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTxTbWFydFZpZXdDb250ZXh0QXBpRXJyb3I+IHtcclxuICAgIGxldCBidXR0b25MYWJlbDtcclxuICAgIGxldCBkaWFsb2dUaXRsZTtcclxuICAgIGxldCBtZXNzYWdlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgICBidXR0b25MYWJlbCA9IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5nZXQoU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nQnV0dG9uTGFiZWwpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgICBkaWFsb2dUaXRsZSA9IGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoU21hcnRWaWV3Q29udGV4dEVycm9yRGlhbG9nVGl0bGUpLnRvUHJvbWlzZSgpO1xyXG4gICAgICBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChTbWFydFZpZXdDb250ZXh0RXJyb3JEaWFsb2dNZXNzYWdlKS50b1Byb21pc2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGJ1dHRvbkxhYmVsID0gJ09rJztcclxuICAgICAgZGlhbG9nVGl0bGUgPSAnSGliYSc7XHJcbiAgICAgIG1lc3NhZ2UgPSAnQW4gZXJyb3IgaGFzIG9jY3VyZWQuJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycykge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGNvZGUsXHJcbiAgICAgICAgbWVzc2FnZSxcclxuICAgICAgICBidXR0b25MYWJlbCxcclxuICAgICAgICBkaWFsb2dUaXRsZSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGxldCBhcGlFcnJvcnNXaXRoQ29kZSA9IHRoaXMuc21hcnRWaWV3Q29udGV4dEFwaUVycm9ycy52aWV3Q29udGV4dEFwaUVycm9ycy5maWx0ZXIoXHJcbiAgICAgIChhcGlFcnJvcjogU21hcnRWaWV3Q29udGV4dEFwaUVycm9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGFwaUVycm9yLmNvZGUgPT09IGNvZGU7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoIWFwaUVycm9yc1dpdGhDb2RlIHx8IChhcGlFcnJvcnNXaXRoQ29kZSAmJiAhYXBpRXJyb3JzV2l0aENvZGUubGVuZ3RoKSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBTbWFydFZpZXdDb250ZXh0QXBpRXJyb3Igd2l0aCBjb2RlICR7Y29kZX0gY291bGQgbm90IGJlIGZvdW5kLmApO1xyXG5cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBjb2RlLFxyXG4gICAgICAgIG1lc3NhZ2UsXHJcbiAgICAgICAgYnV0dG9uTGFiZWwsXHJcbiAgICAgICAgZGlhbG9nVGl0bGUsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXBpRXJyb3JzV2l0aENvZGVbMF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Vmlld0NvbnN0cmFpbnQodXVpZDogc3RyaW5nKTogUHJvbWlzZTxWaWV3Q29uc3RyYWludD4ge1xyXG4gICAgbGV0IHZpZXdDb25zdHJhaW50UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Vmlld0NvbnN0cmFpbnQodXVpZCkudG9Qcm9taXNlKCk7XHJcbiAgICBpZiAoIXZpZXdDb25zdHJhaW50UmVzcG9uc2UpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGdldCBWaWV3Q29uc3RyYWludCB3aXRoIHRoZSBnaXZlbiB1dWlkLicpO1xyXG4gICAgcmV0dXJuIHZpZXdDb25zdHJhaW50UmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2hvd1B1Ymxpc2hlZFZpZXcoY2hhbm5lbDogc3RyaW5nLCB1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuc2Vzc2lvbi5pbml0aWFsaXplKCk7XHJcbiAgICAvLyBUT0RPIGluaXQgdmlldyBjb250ZXh0IGF1dG9tYXRpY2FsbHlcclxuICAgIC8vIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIHRoaXMuaXNPcGVuaW5nU21hcnRMaW5rID0gdHJ1ZTtcclxuICAgIHRoaXMub3BlblNtYXJ0TGluay5uZXh0KCk7XHJcbiAgICBhd2FpdCB0aGlzLm9wZW5TbWFydExpbmsudG9Qcm9taXNlKCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy52aWV3LnNob3dQdWJsaXNoZWRWaWV3KGNoYW5uZWwsIHV1aWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5nZXRBbmRTeW5jVmlld0NvbnRleHQoKTtcclxuICAgIHRoaXMuaXNPcGVuaW5nU21hcnRMaW5rID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZG93bmxvYWRSZXNvdXJjZSh1dWlkOiBzdHJpbmcsIGl0ZW06IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy52aWV3LmRvd25sb2FkSXRlbSh1dWlkLCBpdGVtKS50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZXJmb3JtQWN0aW9uKHV1aWQ6IHN0cmluZywgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9wZXJmb3JtQWN0aW9uKHtcclxuICAgICAgdXVpZCxcclxuICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgfSk7XHJcbiAgICAvLyBjb25zdCBpc0NvbXBsZXRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAvLyB0aGlzLmFwaVF1ZXVlU2VydmljZS5hZGRUb1F1ZXVlKHtcclxuICAgIC8vICAgY2FsbGJhY2s6IHRoaXMuX3BlcmZvcm1BY3Rpb24uYmluZCh0aGlzKSxcclxuICAgIC8vICAgY29uZmlnOiB7XHJcbiAgICAvLyAgICAgdXVpZCxcclxuICAgIC8vICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIGlzQ29tcGxldGVkLFxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyByZXR1cm4gYXdhaXQgaXNDb21wbGV0ZWQudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGVyZm9ybVdpZGdldEFjdGlvbihcclxuICAgIHV1aWQ6IHN0cmluZyxcclxuICAgIHdpZGdldElkOiBzdHJpbmcsXHJcbiAgICBub2RlSWQ6IHN0cmluZyxcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fcGVyZm9ybVdpZGdldEFjdGlvbih7IHV1aWQsIHdpZGdldElkLCBub2RlSWQsIHVpQWN0aW9uUmVxdWVzdCB9KTtcclxuICAgIC8vIGNvbnN0IGlzQ29tcGxldGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIC8vIHRoaXMuYXBpUXVldWVTZXJ2aWNlLmFkZFRvUXVldWUoe1xyXG4gICAgLy8gICBjYWxsYmFjazogdGhpcy5fcGVyZm9ybVdpZGdldEFjdGlvbi5iaW5kKHRoaXMpLFxyXG4gICAgLy8gICBjb25maWc6IHtcclxuICAgIC8vICAgICB1dWlkLFxyXG4gICAgLy8gICAgIHdpZGdldElkLFxyXG4gICAgLy8gICAgIG5vZGVJZCxcclxuICAgIC8vICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAvLyAgIH0sXHJcbiAgICAvLyAgIGlzQ29tcGxldGVkLFxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyByZXR1cm4gYXdhaXQgaXNDb21wbGV0ZWQudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcGVyZm9ybVdpZGdldE1haW5BY3Rpb24oXHJcbiAgICB1dWlkOiBzdHJpbmcsXHJcbiAgICB3aWRnZXRJZDogc3RyaW5nLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLl9wZXJmb3JtV2lkZ2V0TWFpbkFjdGlvbih7IHV1aWQsIHdpZGdldElkLCB1aUFjdGlvblJlcXVlc3QgfSk7XHJcbiAgICAvLyBjb25zdCBpc0NvbXBsZXRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICAvLyB0aGlzLmFwaVF1ZXVlU2VydmljZS5hZGRUb1F1ZXVlKHtcclxuICAgIC8vICAgY2FsbGJhY2s6IHRoaXMuX3BlcmZvcm1XaWRnZXRNYWluQWN0aW9uLmJpbmQodGhpcyksXHJcbiAgICAvLyAgIGNvbmZpZzoge1xyXG4gICAgLy8gICAgIHV1aWQsXHJcbiAgICAvLyAgICAgd2lkZ2V0SWQsXHJcbiAgICAvLyAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgLy8gICB9LFxyXG4gICAgLy8gICBpc0NvbXBsZXRlZCxcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gcmV0dXJuIGF3YWl0IGlzQ29tcGxldGVkLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBlcmZvcm1VcGxvYWRBY3Rpb24oXHJcbiAgICB1dWlkOiBzdHJpbmcsXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIHBhcmFtOiAnaW5wdXQnIHwgJ2lucHV0XCInLFxyXG4gICAgY29udGVudDogYW55XHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9wZXJmb3JtVXBsb2FkQWN0aW9uKHtcclxuICAgICAgdXVpZCxcclxuICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgY29udGVudCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHBlcmZvcm1VcGxvYWRNdWx0aXBsZUFjdGlvbihcclxuICAgIHV1aWQ6IHN0cmluZyxcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgcGFyYW06ICdpbnB1dCcgfCAnaW5wdXQyJyxcclxuICAgIGNvbnRlbnQ6IGFueVtdXHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9wZXJmb3JtVXBsb2FkTXVsdGlwbGVBY3Rpb24oe1xyXG4gICAgICB1dWlkLFxyXG4gICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICBjb250ZW50LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGF0YUNoYW5nZWQodXVpZDogc3RyaW5nLCBkYXRhQ2hhbmdlOiBEYXRhQ2hhbmdlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fZGF0YUNoYW5nZWQoeyB1dWlkLCBkYXRhQ2hhbmdlIH0pO1xyXG4gICAgLy8gY29uc3QgaXNDb21wbGV0ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgLy8gdGhpcy5hcGlRdWV1ZVNlcnZpY2UuYWRkVG9RdWV1ZShcclxuICAgIC8vICAge1xyXG4gICAgLy8gICAgIGNhbGxiYWNrOiB0aGlzLl9kYXRhQ2hhbmdlZC5iaW5kKHRoaXMpLFxyXG4gICAgLy8gICAgIGNvbmZpZzoge1xyXG4gICAgLy8gICAgICAgdXVpZCxcclxuICAgIC8vICAgICAgIGRhdGFDaGFuZ2UsXHJcbiAgICAvLyAgICAgfSxcclxuICAgIC8vICAgICBpc0NvbXBsZXRlZCxcclxuICAgIC8vICAgfSxcclxuICAgIC8vICAgdHJ1ZVxyXG4gICAgLy8gKTtcclxuICAgIC8vIHJldHVybiBhd2FpdCBpc0NvbXBsZXRlZC50b1Byb21pc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3BlcmZvcm1BY3Rpb24oY29uZmlnOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy52aWV3LnBlcmZvcm1BY3Rpb24oY29uZmlnLnV1aWQsIGNvbmZpZy51aUFjdGlvblJlcXVlc3QpLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcGVyZm9ybVdpZGdldEFjdGlvbihjb25maWc6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdcclxuICAgICAgICAucGVyZm9ybVdpZGdldEFjdGlvbihjb25maWcudXVpZCwgY29uZmlnLndpZGdldElkLCBjb25maWcubm9kZUlkLCBjb25maWcudWlBY3Rpb25SZXF1ZXN0KVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3BlcmZvcm1XaWRnZXRNYWluQWN0aW9uKGNvbmZpZzogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoXHJcbiAgICAgIGF3YWl0IHRoaXMudmlld1xyXG4gICAgICAgIC5wZXJmb3JtV2lkZ2V0TWFpbkFjdGlvbihjb25maWcudXVpZCwgY29uZmlnLndpZGdldElkLCBjb25maWcudWlBY3Rpb25SZXF1ZXN0KVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3BlcmZvcm1VcGxvYWRBY3Rpb24oY29uZmlnOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy52aWV3XHJcbiAgICAgICAgLnVwbG9hZEFjdGlvbihcclxuICAgICAgICAgIGNvbmZpZy51dWlkLFxyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoY29uZmlnLnVpQWN0aW9uUmVxdWVzdCksXHJcbiAgICAgICAgICBjb25maWcucGFyYW0sXHJcbiAgICAgICAgICBjb25maWcuY29udGVudFxyXG4gICAgICAgIClcclxuICAgICAgICAudG9Qcm9taXNlKClcclxuICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgYXN5bmMgX3BlcmZvcm1VcGxvYWRNdWx0aXBsZUFjdGlvbihjb25maWc6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdcclxuICAgICAgICAudXBsb2FkTXVsdGlwbGVBY3Rpb24oXHJcbiAgICAgICAgICBjb25maWcudXVpZCxcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGNvbmZpZy51aUFjdGlvblJlcXVlc3QpLFxyXG4gICAgICAgICAgY29uZmlnLnBhcmFtLFxyXG4gICAgICAgICAgY29uZmlnLmNvbnRlbnRcclxuICAgICAgICApXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZGF0YUNoYW5nZWQoY29uZmlnOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVBlcmZvcm1BY3Rpb25SZXNwb25zZShcclxuICAgICAgYXdhaXQgdGhpcy52aWV3LmRhdGFDaGFuZ2VkKGNvbmZpZy51dWlkLCBjb25maWcuZGF0YUNoYW5nZSkudG9Qcm9taXNlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUGVyZm9ybUFjdGlvblJlc3BvbnNlKFxyXG4gICAgdmlld0NvbnRleHRDaGFuZ2U6IFZpZXdDb250ZXh0Q2hhbmdlIHwgdW5kZWZpbmVkXHJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0ID0gdmlld0NvbnRleHRDaGFuZ2U/LnZpZXdDb250ZXh0O1xyXG4gICAgdGhpcy5zeW5jVmlldygpO1xyXG5cclxuICAgIGlmICh2aWV3Q29udGV4dENoYW5nZT8uY2hhbmdlcykge1xyXG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZXModmlld0NvbnRleHRDaGFuZ2UuY2hhbmdlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZXMoY2hhbmdlczogQXJyYXk8Q29tcG9uZW50TW9kZWxDaGFuZ2U+KTogdm9pZCB7XHJcbiAgICBjaGFuZ2VzLmZvckVhY2goKGNvbXBvbmVudE1vZGVsQ2hhbmdlOiBDb21wb25lbnRNb2RlbENoYW5nZSkgPT4ge1xyXG4gICAgICBsZXQgZGV0ZWN0Q2hhbmdlOiBTbWFydFN1YmplY3Q8Q29tcG9uZW50TW9kZWxDaGFuZ2U+IHwgdW5kZWZpbmVkID0gdGhpcy5zbWFydEFwaUNsaWVudHMuZ2V0KFxyXG4gICAgICAgIGNvbXBvbmVudE1vZGVsQ2hhbmdlLnV1aWRcclxuICAgICAgKTtcclxuICAgICAgaWYgKGRldGVjdENoYW5nZSkge1xyXG4gICAgICAgIGRldGVjdENoYW5nZS5uZXh0KGNvbXBvbmVudE1vZGVsQ2hhbmdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbG9hZCh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy52aWV3LmdldENvbXBvbmVudE1vZGVsKHV1aWQpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvYWQyKHV1aWQ6IHN0cmluZyk6IFByb21pc2U8Vmlld0NvbnRleHRDaGFuZ2UgfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCBjaGFuZ2UgPSBhd2FpdCB0aGlzLnZpZXcuZ2V0Q29tcG9uZW50TW9kZWwyKHV1aWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgdGhpcy5oYW5kbGVQZXJmb3JtQWN0aW9uUmVzcG9uc2UoY2hhbmdlKTtcclxuICAgIHJldHVybiBjaGFuZ2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgSVNfQVNZTkNfUEFSQU1fTkFNRSA9ICdpc0FzeW5jJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpUXVldWVDYWxsIHtcclxuICBjYWxsYmFjazogKGNvbmZpZzogYW55KSA9PiBQcm9taXNlPGFueT47XHJcbiAgY29uZmlnOiBhbnk7XHJcbiAgaXNDb21wbGV0ZWQ6IFN1YmplY3Q8dm9pZD47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlRdWV1ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBxdWV1ZTogQXBpUXVldWVDYWxsW10gPSBbXTtcclxuICBwcml2YXRlIGlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcXVldWVTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5xdWV1ZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcm9jZXNzUXVldWUoKSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGFkZFRvUXVldWUoY2FsbDogQXBpUXVldWVDYWxsLCBwcmlvcml0eTogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAocHJpb3JpdHkpIHtcclxuICAgICAgdGhpcy5xdWV1ZS51bnNoaWZ0KGNhbGwpOyAvLyBBZGQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcXVldWUgaWYgaXQgaGFzIGhpZ2hlciBwcmlvcml0eVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5xdWV1ZS5wdXNoKGNhbGwpOyAvLyBBZGQgYXQgdGhlIGVuZCBvZiB0aGUgcXVldWUgaWYgaXQgaGFzIGxvd2VyIHByaW9yaXR5XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nKSB7XHJcbiAgICAgIHRoaXMucHJvY2Vzc1F1ZXVlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBwcm9jZXNzUXVldWUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5xdWV1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGFwaVF1ZXVlQ2FsbCA9IHRoaXMucXVldWUuc2hpZnQoKTtcclxuICAgIGlmIChhcGlRdWV1ZUNhbGwpIHtcclxuICAgICAgYXdhaXQgYXBpUXVldWVDYWxsLmNhbGxiYWNrKGFwaVF1ZXVlQ2FsbC5jb25maWcpO1xyXG4gICAgICBhcGlRdWV1ZUNhbGwuaXNDb21wbGV0ZWQuY29tcGxldGUoKTtcclxuICAgICAgdGhpcy5xdWV1ZVN1YmplY3QubmV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -2376,19 +2376,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
2376
2376
  * Public API Surface of smart-navigation
2377
2377
  */
2378
2378
 
2379
- class SmartdialogService {
2379
+ class SmartViewContextDialogService {
2380
2380
  constructor(dialog, router) {
2381
2381
  this.dialog = dialog;
2382
2382
  this.router = router;
2383
2383
  }
2384
2384
  createDialog(smartDialog, component) {
2385
- let dialogData = smartDialog;
2386
- let dialogRef = this.dialog.open(component, { data: dialogData });
2387
- dialogRef.afterClosed().subscribe((result) => {
2385
+ this.dialogData = smartDialog;
2386
+ this.dialogRef = this.dialog.open(component, { data: this.dialogData });
2387
+ this.dialogRef.afterClosed().subscribe((result) => {
2388
2388
  this.handleAfterClosed(result);
2389
- this.closeDialog(dialogRef, dialogData);
2389
+ this.closeDialog();
2390
2390
  });
2391
- return dialogRef;
2391
+ return this.dialogRef;
2392
2392
  }
2393
2393
  createDialogRef(smartDialog, component) {
2394
2394
  const dialogRef = this.dialog.open(component, { data: smartDialog });
@@ -2412,22 +2412,23 @@ class SmartdialogService {
2412
2412
  openDialog() {
2413
2413
  throw new Error('openDialog function is not implemented!');
2414
2414
  }
2415
- closeDialog(dialogRef, dialogData) {
2415
+ closeDialog() {
2416
+ var _a, _b;
2416
2417
  return __awaiter(this, void 0, void 0, function* () {
2417
- if (dialogData === null || dialogData === void 0 ? void 0 : dialogData.outlets) {
2418
+ if ((_a = this.dialogData) === null || _a === void 0 ? void 0 : _a.outlets) {
2418
2419
  yield this.router.navigate([
2419
2420
  {
2420
- outlets: dialogData.outlets,
2421
+ outlets: this.dialogData.outlets,
2421
2422
  },
2422
2423
  ]);
2423
2424
  }
2424
- dialogRef === null || dialogRef === void 0 ? void 0 : dialogRef.close();
2425
+ (_b = this.dialogRef) === null || _b === void 0 ? void 0 : _b.close();
2425
2426
  });
2426
2427
  }
2427
2428
  }
2428
- SmartdialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, deps: [{ token: i1$2.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2429
- SmartdialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, providedIn: 'root' });
2430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartdialogService, decorators: [{
2429
+ SmartViewContextDialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, deps: [{ token: i1$2.MatDialog }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2430
+ SmartViewContextDialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, providedIn: 'root' });
2431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextDialogService, decorators: [{
2431
2432
  type: Injectable,
2432
2433
  args: [{
2433
2434
  providedIn: 'root',
@@ -3017,14 +3018,14 @@ class SmartViewContextService {
3017
3018
  });
3018
3019
  }
3019
3020
  }
3020
- SmartViewContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, deps: [{ token: ViewService }, { token: SmartSessionService }, { token: SmartNavigationService }, { token: SmartdialogService }, { token: ApiQueueService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3021
+ SmartViewContextService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, deps: [{ token: ViewService }, { token: SmartSessionService }, { token: SmartNavigationService }, { token: SmartViewContextDialogService }, { token: ApiQueueService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3021
3022
  SmartViewContextService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, providedIn: 'root' });
3022
3023
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SmartViewContextService, decorators: [{
3023
3024
  type: Injectable,
3024
3025
  args: [{
3025
3026
  providedIn: 'root',
3026
3027
  }]
3027
- }], ctorParameters: function () { return [{ type: ViewService }, { type: SmartSessionService }, { type: SmartNavigationService }, { type: SmartdialogService }, { type: ApiQueueService }, { type: i0.Injector }]; } });
3028
+ }], ctorParameters: function () { return [{ type: ViewService }, { type: SmartSessionService }, { type: SmartNavigationService }, { type: SmartViewContextDialogService }, { type: ApiQueueService }, { type: i0.Injector }]; } });
3028
3029
  const IS_ASYNC_PARAM_NAME = 'isAsync';
3029
3030
  class ApiQueueService {
3030
3031
  constructor() {