@bizdoc/core 1.8.19 → 1.8.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/bizdoc-core.umd.js +180 -152
- package/bundles/bizdoc-core.umd.js.map +1 -1
- package/esm2015/lib/compose/trace/flow.component.js +5 -3
- package/esm2015/lib/compose/trace/trace.component.js +37 -30
- package/esm2015/lib/compose/trace/trace.pane.component.js +5 -1
- package/esm2015/lib/core/slots/slots.component.js +2 -1
- package/esm2015/lib/core/translate.service.js +5 -5
- package/esm2015/lib/dashboard/recents/recents.widget.js +20 -11
- package/fesm2015/bizdoc-core.js +79 -58
- package/fesm2015/bizdoc-core.js.map +1 -1
- package/lib/dashboard/recents/recents.widget.d.ts +1 -0
- package/package.json +1 -1
@@ -13,8 +13,9 @@ import * as i8 from "@angular/common";
|
|
13
13
|
import * as i9 from "../../core/popup/tooltip.directive";
|
14
14
|
import * as i10 from "../../core/pipes/sanitize-html.pipe";
|
15
15
|
import * as i11 from "../../core/pipes/translate.pipe";
|
16
|
-
import * as i12 from "../../core/pipes/
|
17
|
-
import * as i13 from "
|
16
|
+
import * as i12 from "../../core/pipes/action.pipe";
|
17
|
+
import * as i13 from "../../core/pipes/duration.pipe";
|
18
|
+
import * as i14 from "ngx-moment";
|
18
19
|
const moment = require('moment');
|
19
20
|
const You = 'you';
|
20
21
|
/** component showing trace table */
|
@@ -43,31 +44,7 @@ export class TraceViewComponent extends TraceBase {
|
|
43
44
|
});
|
44
45
|
return __awaiter(this, void 0, void 0, function* () {
|
45
46
|
const { ownerId, ownerById, issued, log, recipients } = this.model;
|
46
|
-
const
|
47
|
-
type: 'Owner',
|
48
|
-
time: issued
|
49
|
-
}, trace = [node];
|
50
|
-
if (ownerById) {
|
51
|
-
const owner = yield this._userOf(ownerId).toPromise();
|
52
|
-
if (ownerById === this._session.userId)
|
53
|
-
node.name = this._translate.get('ByYou', this._nameOf(owner));
|
54
|
-
else {
|
55
|
-
const by = yield this._userOf(ownerById).toPromise();
|
56
|
-
node.name = this._translate.get('By', this._nameOf(owner), this._nameOf(by));
|
57
|
-
if (by.role)
|
58
|
-
node.role = by.role;
|
59
|
-
}
|
60
|
-
}
|
61
|
-
else {
|
62
|
-
if (ownerId === this._session.userId)
|
63
|
-
node.name = this._translate.get('You');
|
64
|
-
else {
|
65
|
-
const owner = yield this._userOf(ownerId).toPromise();
|
66
|
-
node.name = this._nameOf(owner);
|
67
|
-
if (owner.role)
|
68
|
-
node.role = owner.role;
|
69
|
-
}
|
70
|
-
}
|
47
|
+
const trace = [];
|
71
48
|
for (let i = 0; i < log.length; i++) {
|
72
49
|
let l = log[i];
|
73
50
|
let action;
|
@@ -81,6 +58,36 @@ export class TraceViewComponent extends TraceBase {
|
|
81
58
|
}
|
82
59
|
case 'ModelChange':
|
83
60
|
break;
|
61
|
+
case 'Submit':
|
62
|
+
if (l.estimate)
|
63
|
+
continue;
|
64
|
+
const node = {
|
65
|
+
type: 'Owner',
|
66
|
+
time: l.time
|
67
|
+
};
|
68
|
+
if (ownerById) {
|
69
|
+
const owner = yield this._userOf(ownerId).toPromise();
|
70
|
+
if (ownerById === this._session.userId)
|
71
|
+
node.name = this._translate.get('ByYou', this._nameOf(owner));
|
72
|
+
else {
|
73
|
+
const by = yield this._userOf(ownerById).toPromise();
|
74
|
+
node.name = this._translate.get('By', this._nameOf(owner), this._nameOf(by));
|
75
|
+
if (by.role)
|
76
|
+
node.role = by.role;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
if (ownerId === this._session.userId)
|
81
|
+
node.name = this._translate.get('You');
|
82
|
+
else {
|
83
|
+
const owner = yield this._userOf(ownerId).toPromise();
|
84
|
+
node.name = this._nameOf(owner);
|
85
|
+
if (owner.role)
|
86
|
+
node.role = owner.role;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
trace.push(node);
|
90
|
+
continue;
|
84
91
|
default:
|
85
92
|
continue;
|
86
93
|
}
|
@@ -241,7 +248,7 @@ export class TraceViewComponent extends TraceBase {
|
|
241
248
|
}
|
242
249
|
trace.push(step);
|
243
250
|
}
|
244
|
-
this.data = trace.sort((a, b) => a.time > b.time ?
|
251
|
+
this.data = trace.sort((a, b) => a.time > b.time ? 1 : a.time === b.time ? 0 : -1);
|
245
252
|
});
|
246
253
|
}
|
247
254
|
refresh() {
|
@@ -301,7 +308,7 @@ export class TraceViewComponent extends TraceBase {
|
|
301
308
|
}
|
302
309
|
}
|
303
310
|
TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: TraceViewComponent, deps: [{ token: i1.SessionService }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.ChatInfo }, { token: i5.HubService }], target: i0.ɵɵFactoryTarget.Component });
|
304
|
-
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table class=\"mat-table\">\r\n <thead role=\"rowgroup\">\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\">\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <span *ngSwitchCase=\"'ActionTaken'\">{{ l.action }}</span>\r\n <span *ngSwitchCase=\"'Owner'\">{{'
|
311
|
+
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.12", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table class=\"mat-table\">\r\n <thead role=\"rowgroup\">\r\n <tr class=\"mat-header-row\">\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n <th class=\"mat-header-cell\"></th>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\">\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <span *ngSwitchCase=\"'ActionTaken'\">{{ l.action | action : 'past' }}</span>\r\n <span *ngSwitchCase=\"'Owner'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.model\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}td{padding:0 4px}:host ::ng-deep .mat-icon{vertical-align:sub}\n"], components: [{ type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i8.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "sanitizeHtml": i10.SanitizeHtmlPipe, "translate": i11.TranslatePipe, "action": i12.ActionPipe, "amDurationFormat": i13.DurationFormatPipe, "amDuration": i14.DurationPipe, "amCalendar": i14.CalendarPipe } });
|
305
312
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImport: i0, type: TraceViewComponent, decorators: [{
|
306
313
|
type: Component,
|
307
314
|
args: [{
|
@@ -314,4 +321,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
314
321
|
}], versionSelected: [{
|
315
322
|
type: Output
|
316
323
|
}] } });
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFRakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBTnpDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQVVqQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFJbEIsb0NBQW9DO0FBTXBDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBVS9DLFlBQW9CLFFBQXdCLEVBQ2xDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEtBQWUsRUFDdkIsR0FBZTtRQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUxPLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFYTixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDOUQsU0FBSSxHQUFZLEVBQUUsQ0FBQztRQUNWLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTO1lBQ3RELFFBQVEsRUFBRSxZQUFZO1lBQ3RCLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENB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QUksQ0FBQyxDQUFhO1FBQ2hCLE1BQU0sTUFBTSxHQUFJLENBQUMsQ0FBQyxVQUEwQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxNQUFNO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnSEFqU1Usa0JBQWtCO29HQUFsQixrQkFBa0IsNktDdEIvQix1MkVBMkNBOzRGRHJCYSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSxzQkFBc0I7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQztpTkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2EsZUFBZTtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5jb25zdCBtb21lbnQgPSByZXF1aXJlKCdtb21lbnQnKTtcclxuaW1wb3J0IHsgQ2FsZW5kYXJTcGVjIH0gZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBVc2VySW5mbywgTG9nVHlwZSwgRG9jdW1lbnRNb2RlbCwgQWN0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFjZUJhc2UgfSBmcm9tIFwiLi90cmFjZS5iYXNlXCI7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9odWIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDaGF0SW5mbyB9IGZyb20gXCIuLi8uLi9jaGF0L2NoYXQtaW5mb1wiO1xyXG5cclxuY29uc3QgWW91ID0gJ3lvdSc7XHJcblxyXG50eXBlIFVzZXJJbmZvWW91ID0gVXNlckluZm8gfCAneW91JztcclxuXHJcbi8qKiBjb21wb25lbnQgc2hvd2luZyB0cmFjZSB0YWJsZSAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy10cmFjZScsXHJcbiAgdGVtcGxhdGVVcmw6ICd0cmFjZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ3RyYWNlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYWNlVmlld0NvbXBvbmVudCBleHRlbmRzIFRyYWNlQmFzZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbW9kZWw6IERvY3VtZW50TW9kZWw8YW55PjtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmVyc2lvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIGRhdGE6IFRyYWNlW10gPSBbXTtcclxuICByZWFkb25seSBDQUxFTkRBUl9TUEVDOiBDYWxlbmRhclNwZWMgPSB7XHJcbiAgICBsYXN0RGF5OiBgWyR7dGhpcy5fdHJhbnNsYXRlLmdldCgnWWVzdGVyZGF5Jyl9XSBISDptbWAsXHJcbiAgICBsYXN0V2VlazogJ2RkZGQgSEg6bW0nLFxyXG4gICAgc2FtZURheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RvZGF5Jyl9XSBISDptbWAsXHJcbiAgICBzYW1lRWxzZTogJ01NTSBEbyBISDptbSdcclxuICB9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhdDogQ2hhdEluZm8sXHJcbiAgICBodWI6IEh1YlNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh1Yik7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pbml0aWFsaXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgYXN5bmMgX2luaXRpYWxpc2UoKSB7XHJcbiAgICBjb25zdCB7IG93bmVySWQsIG93bmVyQnlJZCwgaXNzdWVkLCBsb2csIHJlY2lwaWVudHMgfSA9IHRoaXMubW9kZWw7XHJcblxyXG4gICAgY29uc3Qgbm9kZSA9IHtcclxuICAgICAgdHlwZTogJ093bmVyJyxcclxuICAgICAgdGltZTogaXNzdWVkXHJcbiAgICB9IGFzIFRyYWNlLFxyXG4gICAgICB0cmFjZTogVHJhY2VbXSA9IFtub2RlXTtcclxuXHJcbiAgICBpZiAob3duZXJCeUlkKSB7XHJcbiAgICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy5fdXNlck9mKG93bmVySWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAob3duZXJCeUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZihvd25lcikpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lckJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgdGhpcy5fbmFtZU9mKG93bmVyKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgaWYgKGJ5LnJvbGUpIG5vZGUucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAob3duZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy5fdXNlck9mKG93bmVySWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX25hbWVPZihvd25lcik7XHJcblxyXG4gICAgICAgIGlmIChvd25lci5yb2xlKSBub2RlLnJvbGUgPSBvd25lci5yb2xlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxvZy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgbCA9IGxvZ1tpXTtcclxuICAgICAgbGV0IGFjdGlvbjogQWN0aW9uO1xyXG4gICAgICBzd2l0Y2ggKGwudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0FjdGlvblRha2VuJzpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbC5hY3Rpb24pO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uICYmIGFjdGlvbi5sb2dnYWJsZSA9PT0gZmFsc2UpXHJcbiAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgJ01vZGVsQ2hhbmdlJzpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzdGVwID0geyAuLi5sIH0gYXMgVHJhY2U7XHJcblxyXG4gICAgICBjb25zdCB3aG8gPSBhd2FpdCB0aGlzLl91c2VyT2YobC51c2VySWQpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgaWYgKGwucmVjaXBpZW50SWQpIHtcclxuICAgICAgICBjb25zdCByZWNpcGllbnQgPSByZWNpcGllbnRzLmZpbmQociA9PiByLmlkID09PSBsLnJlY2lwaWVudElkKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50LnJvbGUpIHN0ZXAucm9sZSA9IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKTtcclxuICAgICAgICBpZiAocmVjaXBpZW50Lm5vZGVJZCkge1xyXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHJlY2lwaWVudC5ub2RlSWQpO1xyXG4gICAgICAgICAgc3RlcC5meWkgPSBub2RlICYmIG5vZGUuZnlpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkge1xyXG4gICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgaWYgKGwuYnlJZCkge1xyXG4gICAgICAgICAgICBpZiAobC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmdCeVlvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIFlvdSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2YobC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdWJzdGl0dXRpbmdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBieSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBlbHNlIGlmIChsLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdZb3VTdWJzdGl0dXRlJywgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5R2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgICAgfSBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIHdobykgOiBsLmFjdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAobC5ieUlkKSB7XHJcbiAgICAgICAgICBpZiAobC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBZb3UpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKGwuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgIHN0ZXAuYWN0aW9uID0gYWN0aW9uID8gdGhpcy5fYWN0aW9uTmFtZShhY3Rpb24sIGJ5KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAobC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl9uYW1lT2Yod2hvKTtcclxuICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCB3aG8pIDogbC5hY3Rpb247XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuICAgIGZvciAodmFyIHIgPSAwOyByIDwgcmVjaXBpZW50cy5sZW5ndGg7IHIrKykge1xyXG4gICAgICBsZXQgcmVjaXBpZW50ID0gcmVjaXBpZW50c1tyXTtcclxuICAgICAgaWYgKCFyZWNpcGllbnQucGVuZGluZyAmJiAhcmVjaXBpZW50LmVzdGltYXRlKSBjb250aW51ZTtcclxuICAgICAgY29uc3Qgc3RlcCA9IHtcclxuICAgICAgICAuLi5yZWNpcGllbnQsXHJcbiAgICAgICAgdHlwZTogcmVjaXBpZW50LmVzdGltYXRlID8gJ0VzdGltYXRlJyA6ICdQZW5kaW5nJyxcclxuICAgICAgICB0aW1lOiByZWNpcGllbnQucmVjZWl2ZWQsXHJcbiAgICAgICAgZHVyYXRpb246IHJlY2lwaWVudC5wZW5kaW5nID8gbW9tZW50KCkuZGlmZihyZWNpcGllbnQucmVjZWl2ZWQsICdzJykgOiBudWxsLFxyXG4gICAgICAgIHJvbGU6IHJlY2lwaWVudC5yb2xlID8gdGhpcy5fcm9sZU5hbWUocmVjaXBpZW50LnJvbGUpIDogbnVsbFxyXG4gICAgICB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5tb2RlbC53b3JrZmxvdy5ub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gcmVjaXBpZW50Lm5vZGVJZCk7XHJcbiAgICAgICAgaWYgKG5vZGUpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuZXN0aW1hdGUpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gc3VwZXIuX2VzdGltYXRlVGltZShub2RlKTtcclxuICAgICAgICAgICAgaWYgKG1heClcclxuICAgICAgICAgICAgICBzdGVwLmR1cmF0aW9uTWluID0gbWluLFxyXG4gICAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1heCA9IG1heDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZS5meWk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC51c2VySWQpLnRvUHJvbWlzZSgpO1xyXG5cclxuICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZCkge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGluZyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBsZXQgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTdWJzdGl0dXRpbmdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSwgdGhpcy5fbmFtZU9mKGJ5KSk7XHJcbiAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nRm9yWW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSBpZiAocmVjaXBpZW50LnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdTdWJzdGl0dXRpbmcnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC5ieUlkKSB7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ieUlkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5JywgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IGJ5LnJvbGU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGVzY2FsYXRpb25zID0gdGhpcy5tb2RlbC5sb2cuZmlsdGVyKGwgPT4gbC50aW1lID4gdGhpcy5tb2RlbC5pc3N1ZWQgJiYgbC50eXBlID09PSAnRXNjYWxhdGlvbicgJiYgbC5yZWNpcGllbnRJZCA9PT0gcmVjaXBpZW50LmlkKTtcclxuXHJcbiAgICAgICAgaWYgKGVzY2FsYXRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgbGV0IGVzY2FsYXRlID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGVzY2FsYXRpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgIGxldCB3aG8gPSBhd2FpdCB0aGlzLl91c2VyT2YoZXNjYWxhdGlvbnNbal0udXNlcklkKTtcclxuICAgICAgICAgICAgZXNjYWxhdGUucHVzaCh3aG8pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVzY2FsYXRpb25zLmxlbmd0aCA9PT0gMSAmJiBlc2NhbGF0ZVswXSA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0VzY2FsYXRlZEJ5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl90cmFuc2xhdGUuam9pbihlc2NhbGF0ZS5tYXAoZSA9PiB0aGlzLl9uYW1lT2YoZSkpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZb3UnKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl9uYW1lT2Yod2hvKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0cmFjZS5wdXNoKHN0ZXApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YSA9IHRyYWNlLnNvcnQoKGEsIGIpID0+IGEudGltZSA+IGIudGltZSA/IC0xIDogYS50aW1lID09PSBiLnRpbWUgPyAwIDogMSlcclxuICB9XHJcbiAgcHVibGljIHJlZnJlc2goKSB7XHJcbiAgICB0aGlzLm5nT25DaGFuZ2VzKG51bGwpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB1c2VyIG5hbWUsIGNoYXQgYW5jaG9yIHRhZyBvciBZb3VcclxuICAgKiBAcGFyYW0gdXNlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgX25hbWVPZih1c2VyOiBVc2VySW5mbyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2hhdC5mb3JtYXQodXNlcik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB1c2VySWRcclxuICAgKi9cclxuICBwcml2YXRlIF91c2VyT2YodXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWNjb3VudHMuZ2V0KHVzZXJJZCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3JvbGVOYW1lKG5hbWUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgcm9sZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5yb2xlcy5maW5kKHIgPT4gci5uYW1lID09PSBuYW1lKTtcclxuICAgIHJldHVybiByb2xlID8gcm9sZS50aXRsZSA6IG5hbWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBhY3Rpb25cclxuICAgKiBAcGFyYW0gdXNlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FjdGlvbk5hbWUoYWN0aW9uOiBBY3Rpb24sIHVzZXI6IFVzZXJJbmZvWW91KTogc3RyaW5nIHtcclxuICAgIGlmICh1c2VyID09PSBZb3UpIHtcclxuICAgICAgY29uc3QgZ2VuZGVyID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5R2VuZGVyIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5nZW5kZXI7XHJcbiAgICAgIHJldHVybiAoZ2VuZGVyID09PSAnTWFsZScgPyAoYWN0aW9uLnlvdU1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgIGdlbmRlciA9PT0gJ0ZlbWFsZScgPyAoYWN0aW9uLnlvdUZlbWFsZSB8fCBhY3Rpb24ueW91KSA6XHJcbiAgICAgICAgICBhY3Rpb24ueW91KSB8fFxyXG4gICAgICAgIGFjdGlvbi5wYXN0IHx8XHJcbiAgICAgICAgYWN0aW9uLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZ2VuZGVyIH0gPSB1c2VyO1xyXG4gICAgICByZXR1cm4gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi5wYXN0TWFsZSB8fCBhY3Rpb24ucGFzdCkgOlxyXG4gICAgICAgIGdlbmRlciA9PT0gJ0ZlbWFsZScgPyAoYWN0aW9uLnBhc3RGZW1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICAgIGFjdGlvbi5wYXN0KVxyXG4gICAgICAgIHx8IGFjdGlvbi50aXRsZTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hhdChlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB1c2VySWQgPSAoZS5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaW5mbycpO1xyXG4gICAgdXNlcklkICYmXHJcbiAgICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBtb2RlbCB2ZXJzaW9uIGNvbXBhcmUsIGZvcm0gY29tcG9uZW50IGluICdjb21wYXJlJyB2aWV3IG1vZGVcclxuICAgKiBAcGFyYW0gbG9nXHJcbiAgICovXHJcbiAgY29tcGFyZShsb2c6IFRyYWNlKSB7XHJcbiAgICB0aGlzLnZlcnNpb25TZWxlY3RlZC5lbWl0KGxvZy50aW1lKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIFRyYWNlIHtcclxuICBmeWk/OiBib29sZWFuO1xyXG4gIHR5cGU6IExvZ1R5cGUgfCAnT3duZXInIHwgJ1BlbmRpbmcnIHwgJ0VzdGltYXRlJztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGVzdGltYXRlPzogYm9vbGVhbjtcclxuICBwZW5kaW5nPzogYm9vbGVhbjtcclxuICBhY3Rpb24/OiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICBub3RlPzogc3RyaW5nO1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWluPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uTWF4PzogbnVtYmVyO1xyXG4gIHRpbWU/OiBEYXRlO1xyXG4gIG1vZGVsPzoge307XHJcbn1cclxuIiwiPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCI+XHJcbiAgPHRoZWFkIHJvbGU9XCJyb3dncm91cFwiPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LWhlYWRlci1yb3dcIj5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHkgcm9sZT1cInJvd2dyb3VwXCI+XHJcbiAgICA8dHIgY2xhc3M9XCJtYXQtcm93XCIgKm5nRm9yPVwibGV0IGwgb2YgZGF0YVwiPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibC5uYW1lIHwgc2FuaXRpemVIdG1sXCIgKGNsaWNrKT1cImNoYXQoJGV2ZW50KVwiPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1sLnJvbGU+e3snSm9pbkNvbW1hJ3x0cmFuc2xhdGV9fXt7bC5yb2xlfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwibC50eXBlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0FjdGlvblRha2VuJ1wiPnt7IGwuYWN0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidPd25lcidcIj57eydPd25lcicgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInUGVuZGluZydcIj57eydJc1BlbmRpbmcnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ0VzdGltYXRlJ1wiPnt7J0VzdGltYXRlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidNb2RlbENoYW5nZSdcIj57eydDaGFuZ2VkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwibC5meWlcIj4mbmJzcDt7eydGWUknfHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiIFtuZ1N3aXRjaF09XCJsLmVzdGltYXRlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggPT09IGwuZHVyYXRpb25NaW5cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWUnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1heCB8IGFtRHVyYXRpb246J3MnKX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmR1cmF0aW9uTWF4ICYmIGwuZHVyYXRpb25NYXggIT09IGwuZHVyYXRpb25NaW5cIlxyXG4gICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwibC5kdXJhdGlvbk1heHxhbUR1cmF0aW9uRm9ybWF0XCI+e3snRXN0aW1hdGVUaW1lUmFuZ2UnfCB0cmFuc2xhdGUgOiAobC5kdXJhdGlvbk1pbiB8IGFtRHVyYXRpb246J3MnKSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPHNwYW4+e3tsLnRpbWUgfCBhbUNhbGVuZGFyIDogbnVsbCA6IENBTEVOREFSX1NQRUMgfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25cIiBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9ufGFtRHVyYXRpb25Gb3JtYXRcIj4mbmJzcDsoe3tsLmR1cmF0aW9uIHwgYW1EdXJhdGlvbjoncyd9fSk8L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJsLm5vdGVcIj57e2wubm90ZX19PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwibC5tb2RlbFwiIChjbGljayk9XCJjb21wYXJlKGwpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbXBhcmUnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cInN0YXJ0XCI+PG1hdC1pY29uPm1vcmVfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG4iXX0=
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3RyYWNlL3RyYWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS90cmFjZS90cmFjZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFRakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU56QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFVakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDO0FBSWxCLG9DQUFvQztBQU1wQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUztJQVUvQyxZQUFvQixRQUF3QixFQUNsQyxVQUE0QixFQUM1QixTQUF5QixFQUN6QixLQUFlLEVBQ3ZCLEdBQWU7UUFDZixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFMTyxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUNsQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBWE4sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzlELFNBQUksR0FBWSxFQUFFLENBQUM7UUFDVixrQkFBYSxHQUFpQjtZQUNyQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUztZQUN0RCxRQUFRLEVBQUUsWUFBWTtZQUN0QixPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxD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TSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQzttQkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyxDQUFhO1FBQ2hCLE1BQU0sTUFBTSxHQUFJLENBQUMsQ0FBQyxVQUEwQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxNQUFNO1lBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxHQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOztnSEF0U1Usa0JBQWtCO29HQUFsQixrQkFBa0IsNktDdEIvQiwwM0VBMkNBOzRGRHJCYSxrQkFBa0I7a0JBTDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFdBQVcsRUFBRSxzQkFBc0I7b0JBQ25DLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQztpTkFFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2EsZUFBZTtzQkFBakMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuY29uc3QgbW9tZW50ID0gcmVxdWlyZSgnbW9tZW50Jyk7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHsgVXNlckluZm8sIExvZ1R5cGUsIERvY3VtZW50TW9kZWwsIEFjdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhY2VCYXNlIH0gZnJvbSBcIi4vdHJhY2UuYmFzZVwiO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvaHViLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tIFwiLi4vLi4vY2hhdC9jaGF0LWluZm9cIjtcclxuXHJcbmNvbnN0IFlvdSA9ICd5b3UnO1xyXG5cclxudHlwZSBVc2VySW5mb1lvdSA9IFVzZXJJbmZvIHwgJ3lvdSc7XHJcblxyXG4vKiogY29tcG9uZW50IHNob3dpbmcgdHJhY2UgdGFibGUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtdHJhY2UnLFxyXG4gIHRlbXBsYXRlVXJsOiAndHJhY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyd0cmFjZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFjZUJhc2UgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZlcnNpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBkYXRhOiBUcmFjZVtdID0gW107XHJcbiAgcmVhZG9ubHkgQ0FMRU5EQVJfU1BFQzogQ2FsZW5kYXJTcGVjID0ge1xyXG4gICAgbGFzdERheTogYFske3RoaXMuX3RyYW5zbGF0ZS5nZXQoJ1llc3RlcmRheScpfV0gSEg6bW1gLFxyXG4gICAgbGFzdFdlZWs6ICdkZGRkIEhIOm1tJyxcclxuICAgIHNhbWVEYXk6IGBbJHt0aGlzLl90cmFuc2xhdGUuZ2V0KCdUb2RheScpfV0gSEg6bW1gLFxyXG4gICAgc2FtZUVsc2U6ICdNTU0gRG8gSEg6bW0nXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgaHViOiBIdWJTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihodWIpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5faW5pdGlhbGlzZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIGFzeW5jIF9pbml0aWFsaXNlKCkge1xyXG4gICAgY29uc3QgeyBvd25lcklkLCBvd25lckJ5SWQsIGlzc3VlZCwgbG9nLCByZWNpcGllbnRzIH0gPSB0aGlzLm1vZGVsO1xyXG5cclxuICAgIGNvbnN0IHRyYWNlOiBUcmFjZVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsb2cubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IGwgPSBsb2dbaV07XHJcbiAgICAgIGxldCBhY3Rpb246IEFjdGlvbjtcclxuICAgICAgc3dpdGNoIChsLnR5cGUpIHtcclxuICAgICAgICBjYXNlICdBY3Rpb25UYWtlbic6XHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IGwuYWN0aW9uKTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb24ubG9nZ2FibGUgPT09IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICBjYXNlICdNb2RlbENoYW5nZSc6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdTdWJtaXQnOlxyXG4gICAgICAgICAgaWYgKGwuZXN0aW1hdGUpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgY29uc3Qgbm9kZSA9IHtcclxuICAgICAgICAgICAgdHlwZTogJ093bmVyJyxcclxuICAgICAgICAgICAgdGltZTogbC50aW1lXHJcbiAgICAgICAgICB9IGFzIFRyYWNlO1xyXG4gICAgICAgICAgaWYgKG93bmVyQnlJZCkge1xyXG4gICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgaWYgKG93bmVyQnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgbm9kZS5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yob3duZXIpKTtcclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgYnkgPSBhd2FpdCB0aGlzLl91c2VyT2Yob3duZXJCeUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZihvd25lciksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKSBub2RlLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKG93bmVySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIG5vZGUubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMuX3VzZXJPZihvd25lcklkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBub2RlLm5hbWUgPSB0aGlzLl9uYW1lT2Yob3duZXIpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAob3duZXIucm9sZSkgbm9kZS5yb2xlID0gb3duZXIucm9sZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdHJhY2UucHVzaChub2RlKTtcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc3RlcCA9IHsgLi4ubCB9IGFzIFRyYWNlO1xyXG5cclxuICAgICAgY29uc3Qgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGwudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChsLnJlY2lwaWVudElkKSB7XHJcbiAgICAgICAgY29uc3QgcmVjaXBpZW50ID0gcmVjaXBpZW50cy5maW5kKHIgPT4gci5pZCA9PT0gbC5yZWNpcGllbnRJZCk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5yb2xlKSBzdGVwLnJvbGUgPSB0aGlzLl9yb2xlTmFtZShyZWNpcGllbnQucm9sZSk7XHJcbiAgICAgICAgaWYgKHJlY2lwaWVudC5ub2RlSWQpIHtcclxuICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLm1vZGVsLndvcmtmbG93Lm5vZGVzLmZpbmQobiA9PiBuLmlkID09PSByZWNpcGllbnQubm9kZUlkKTtcclxuICAgICAgICAgIHN0ZXAuZnlpID0gbm9kZSAmJiBub2RlLmZ5aTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIGlmIChsLmJ5SWQpIHtcclxuICAgICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0J5WW91JywgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nQnlZb3UnLCB3aG8uZ2VuZGVyLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZykpO1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBZb3UpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKGwuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgYnkpIDogbC5hY3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgICAgZWxzZSBpZiAobC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnWW91U3Vic3RpdHV0ZScsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciwgdGhpcy5fbmFtZU9mKHdobykpO1xyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZycsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2Yoc3Vic3RpdHV0aW5nKSk7XHJcbiAgICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgICAgc3RlcC5yb2xlID0gd2hvLnJvbGU7XHJcbiAgICAgICAgICAgIH0gaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCB3aG8pIDogbC5hY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGwuYnlJZCkge1xyXG4gICAgICAgICAgaWYgKGwuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGlmIChhY3Rpb24pXHJcbiAgICAgICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgWW91KSA6IGwuYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihsLmJ5SWQpLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgICAgaWYgKGJ5LnJvbGUpXHJcbiAgICAgICAgICAgICAgc3RlcC5yb2xlID0gYnkucm9sZTtcclxuICAgICAgICAgICAgaWYgKGFjdGlvbilcclxuICAgICAgICAgICAgICBzdGVwLmFjdGlvbiA9IGFjdGlvbiA/IHRoaXMuX2FjdGlvbk5hbWUoYWN0aW9uLCBieSkgOiBsLmFjdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgaWYgKGwudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1lvdScpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICBpZiAod2hvLnJvbGUpXHJcbiAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWN0aW9uKVxyXG4gICAgICAgICAgc3RlcC5hY3Rpb24gPSBhY3Rpb24gPyB0aGlzLl9hY3Rpb25OYW1lKGFjdGlvbiwgd2hvKSA6IGwuYWN0aW9uO1xyXG4gICAgICB9XHJcbiAgICAgIHRyYWNlLnB1c2goc3RlcCk7XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciByID0gMDsgciA8IHJlY2lwaWVudHMubGVuZ3RoOyByKyspIHtcclxuICAgICAgbGV0IHJlY2lwaWVudCA9IHJlY2lwaWVudHNbcl07XHJcbiAgICAgIGlmICghcmVjaXBpZW50LnBlbmRpbmcgJiYgIXJlY2lwaWVudC5lc3RpbWF0ZSkgY29udGludWU7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSB7XHJcbiAgICAgICAgLi4ucmVjaXBpZW50LFxyXG4gICAgICAgIHR5cGU6IHJlY2lwaWVudC5lc3RpbWF0ZSA/ICdFc3RpbWF0ZScgOiAnUGVuZGluZycsXHJcbiAgICAgICAgdGltZTogcmVjaXBpZW50LnJlY2VpdmVkLFxyXG4gICAgICAgIGR1cmF0aW9uOiByZWNpcGllbnQucGVuZGluZyA/IG1vbWVudCgpLmRpZmYocmVjaXBpZW50LnJlY2VpdmVkLCAncycpIDogbnVsbCxcclxuICAgICAgICByb2xlOiByZWNpcGllbnQucm9sZSA/IHRoaXMuX3JvbGVOYW1lKHJlY2lwaWVudC5yb2xlKSA6IG51bGxcclxuICAgICAgfSBhcyBUcmFjZTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQubm9kZUlkKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMubW9kZWwud29ya2Zsb3cubm9kZXMuZmluZChuID0+IG4uaWQgPT09IHJlY2lwaWVudC5ub2RlSWQpO1xyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICBpZiAocmVjaXBpZW50LmVzdGltYXRlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHN1cGVyLl9lc3RpbWF0ZVRpbWUobm9kZSk7XHJcbiAgICAgICAgICAgIGlmIChtYXgpXHJcbiAgICAgICAgICAgICAgc3RlcC5kdXJhdGlvbk1pbiA9IG1pbixcclxuICAgICAgICAgICAgICAgIHN0ZXAuZHVyYXRpb25NYXggPSBtYXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzdGVwLmZ5aSA9IG5vZGUuZnlpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IHdobyA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQudXNlcklkKS50b1Byb21pc2UoKTtcclxuXHJcbiAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQpIHtcclxuICAgICAgICBpZiAocmVjaXBpZW50LmJ5SWQpIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpIHtcclxuICAgICAgICAgICAgaWYgKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnQnlZb3UnLCB0aGlzLl9uYW1lT2Yod2hvKSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0J5WW91Jywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBzdWJzdGl0dXRpbmcgPSBhd2FpdCB0aGlzLl91c2VyT2YocmVjaXBpZW50LnN1YnN0aXR1dGluZ0lkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgbGV0IGJ5ID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5ieUlkKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnU3Vic3RpdHV0aW5nQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fbmFtZU9mKHN1YnN0aXR1dGluZyksIHRoaXMuX25hbWVPZihieSkpO1xyXG4gICAgICAgICAgICBpZiAoYnkucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQuc3Vic3RpdHV0aW5nSWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1N1YnN0aXR1dGluZ0ZvcllvdScsIHdoby5nZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2UgaWYgKHJlY2lwaWVudC51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUucGVyc29uYWxpemUoJ1lvdVN1YnN0aXR1dGUnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuYnlHZW5kZXIsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgc3Vic3RpdHV0aW5nID0gYXdhaXQgdGhpcy5fdXNlck9mKHJlY2lwaWVudC5zdWJzdGl0dXRpbmdJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHN0ZXAubmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5wZXJzb25hbGl6ZSgnU3Vic3RpdHV0aW5nJywgd2hvLmdlbmRlciwgdGhpcy5fbmFtZU9mKHdobyksIHRoaXMuX25hbWVPZihzdWJzdGl0dXRpbmcpKTtcclxuICAgICAgICAgICAgaWYgKHdoby5yb2xlKVxyXG4gICAgICAgICAgICAgIHN0ZXAucm9sZSA9IHdoby5yb2xlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChyZWNpcGllbnQuYnlJZCkge1xyXG4gICAgICAgIGlmIChyZWNpcGllbnQuYnlJZCA9PT0gdGhpcy5fc2Vzc2lvbi51c2VySWQpXHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGxldCBieSA9IGF3YWl0IHRoaXMuX3VzZXJPZihyZWNpcGllbnQuYnlJZCkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdCeScsIHRoaXMuX25hbWVPZih3aG8pLCB0aGlzLl9uYW1lT2YoYnkpKTtcclxuICAgICAgICAgIGlmIChieS5yb2xlKVxyXG4gICAgICAgICAgICBzdGVwLnJvbGUgPSBieS5yb2xlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCBlc2NhbGF0aW9ucyA9IHRoaXMubW9kZWwubG9nLmZpbHRlcihsID0+IGwudGltZSA+IHRoaXMubW9kZWwuaXNzdWVkICYmIGwudHlwZSA9PT0gJ0VzY2FsYXRpb24nICYmIGwucmVjaXBpZW50SWQgPT09IHJlY2lwaWVudC5pZCk7XHJcblxyXG4gICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICAgIGxldCBlc2NhbGF0ZSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBlc2NhbGF0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgd2hvID0gYXdhaXQgdGhpcy5fdXNlck9mKGVzY2FsYXRpb25zW2pdLnVzZXJJZCk7XHJcbiAgICAgICAgICAgIGVzY2FsYXRlLnB1c2god2hvKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlc2NhbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgZXNjYWxhdGVbMF0gPT09IHRoaXMuX3Nlc3Npb24udXNlcklkKVxyXG4gICAgICAgICAgICBzdGVwLm5hbWUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdFc2NhbGF0ZWRCeVlvdScsIHRoaXMuX25hbWVPZih3aG8pKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnRXNjYWxhdGVkQnknLCB0aGlzLl9uYW1lT2Yod2hvKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4oZXNjYWxhdGUubWFwKGUgPT4gdGhpcy5fbmFtZU9mKGUpKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChyZWNpcGllbnQudXNlcklkID09PSB0aGlzLl9zZXNzaW9uLnVzZXJJZClcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnWW91Jyk7XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc3RlcC5uYW1lID0gdGhpcy5fbmFtZU9mKHdobyk7XHJcbiAgICAgICAgICAgIGlmICh3aG8ucm9sZSlcclxuICAgICAgICAgICAgICBzdGVwLnJvbGUgPSB3aG8ucm9sZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdHJhY2UucHVzaChzdGVwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGEgPSB0cmFjZS5zb3J0KChhLCBiKSA9PiBhLnRpbWUgPiBiLnRpbWUgPyAxIDogYS50aW1lID09PSBiLnRpbWUgPyAwIDogLTEpXHJcbiAgfVxyXG4gIHB1YmxpYyByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5uZ09uQ2hhbmdlcyhudWxsKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogdXNlciBuYW1lLCBjaGF0IGFuY2hvciB0YWcgb3IgWW91XHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9uYW1lT2YodXNlcjogVXNlckluZm8pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoYXQuZm9ybWF0KHVzZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXNlcklkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfdXNlck9mKHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VySW5mbz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjY291bnRzLmdldCh1c2VySWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9yb2xlTmFtZShuYW1lKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUucm9sZXMuZmluZChyID0+IHIubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gcm9sZSA/IHJvbGUudGl0bGUgOiBuYW1lO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYWN0aW9uXHJcbiAgICogQHBhcmFtIHVzZXJcclxuICAgKi9cclxuICBwcml2YXRlIF9hY3Rpb25OYW1lKGFjdGlvbjogQWN0aW9uLCB1c2VyOiBVc2VySW5mb1lvdSk6IHN0cmluZyB7XHJcbiAgICBpZiAodXNlciA9PT0gWW91KSB7XHJcbiAgICAgIGNvbnN0IGdlbmRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ieUdlbmRlciB8fCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZ2VuZGVyO1xyXG4gICAgICByZXR1cm4gKGdlbmRlciA9PT0gJ01hbGUnID8gKGFjdGlvbi55b3VNYWxlIHx8IGFjdGlvbi55b3UpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi55b3VGZW1hbGUgfHwgYWN0aW9uLnlvdSkgOlxyXG4gICAgICAgICAgYWN0aW9uLnlvdSkgfHxcclxuICAgICAgICBhY3Rpb24ucGFzdCB8fFxyXG4gICAgICAgIGFjdGlvbi50aXRsZTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGdlbmRlciB9ID0gdXNlcjtcclxuICAgICAgcmV0dXJuIChnZW5kZXIgPT09ICdNYWxlJyA/IChhY3Rpb24ucGFzdE1hbGUgfHwgYWN0aW9uLnBhc3QpIDpcclxuICAgICAgICBnZW5kZXIgPT09ICdGZW1hbGUnID8gKGFjdGlvbi5wYXN0RmVtYWxlIHx8IGFjdGlvbi5wYXN0KSA6XHJcbiAgICAgICAgICBhY3Rpb24ucGFzdClcclxuICAgICAgICB8fCBhY3Rpb24udGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoYXQoZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdXNlcklkID0gKGUuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWluZm8nKTtcclxuICAgIHVzZXJJZCAmJlxyXG4gICAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogbW9kZWwgdmVyc2lvbiBjb21wYXJlLCBmb3JtIGNvbXBvbmVudCBpbiAnY29tcGFyZScgdmlldyBtb2RlXHJcbiAgICogQHBhcmFtIGxvZ1xyXG4gICAqL1xyXG4gIGNvbXBhcmUobG9nOiBUcmFjZSkge1xyXG4gICAgdGhpcy52ZXJzaW9uU2VsZWN0ZWQuZW1pdChsb2cudGltZSk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBUcmFjZSB7XHJcbiAgZnlpPzogYm9vbGVhbjtcclxuICB0eXBlOiBMb2dUeXBlIHwgJ093bmVyJyB8ICdQZW5kaW5nJyB8ICdFc3RpbWF0ZSc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBlc3RpbWF0ZT86IGJvb2xlYW47XHJcbiAgcGVuZGluZz86IGJvb2xlYW47XHJcbiAgYWN0aW9uPzogc3RyaW5nO1xyXG4gIHJvbGU/OiBzdHJpbmc7XHJcbiAgbm90ZT86IHN0cmluZztcclxuICBkdXJhdGlvbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1pbj86IG51bWJlcjtcclxuICBkdXJhdGlvbk1heD86IG51bWJlcjtcclxuICB0aW1lPzogRGF0ZTtcclxuICBtb2RlbD86IHt9O1xyXG59XHJcbiIsIjx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiPlxyXG4gIDx0aGVhZCByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5IHJvbGU9XCJyb3dncm91cFwiPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBsIG9mIGRhdGFcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImwubmFtZSB8IHNhbml0aXplSHRtbFwiIChjbGljayk9XCJjaGF0KCRldmVudClcIj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9bC5yb2xlPnt7J0pvaW5Db21tYSd8dHJhbnNsYXRlfX17e2wucm9sZX19PC9zcGFuPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImwudHlwZVwiPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidBY3Rpb25UYWtlbidcIj57eyBsLmFjdGlvbiB8IGFjdGlvbiA6ICdwYXN0JyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInT3duZXInXCI+e3snSXNzdWVkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidQZW5kaW5nJ1wiPnt7J0lzUGVuZGluZycgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInRXN0aW1hdGUnXCI+e3snRXN0aW1hdGUnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ01vZGVsQ2hhbmdlJ1wiPnt7J0NoYW5nZWQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJsLmZ5aVwiPiZuYnNwO3t7J0ZZSSd8dHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCIgW25nU3dpdGNoXT1cImwuZXN0aW1hdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJ0cnVlXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCA9PT0gbC5kdXJhdGlvbk1pblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb25NYXh8YW1EdXJhdGlvbkZvcm1hdFwiPnt7J0VzdGltYXRlVGltZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWF4IHwgYW1EdXJhdGlvbjoncycpfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImwuZHVyYXRpb25NYXggJiYgbC5kdXJhdGlvbk1heCAhPT0gbC5kdXJhdGlvbk1pblwiXHJcbiAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCJsLmR1cmF0aW9uTWF4fGFtRHVyYXRpb25Gb3JtYXRcIj57eydFc3RpbWF0ZVRpbWVSYW5nZSd8IHRyYW5zbGF0ZSA6IChsLmR1cmF0aW9uTWluIHwgYW1EdXJhdGlvbjoncycpIDogKGwuZHVyYXRpb25NYXggfCBhbUR1cmF0aW9uOidzJyl9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICAgICAgICA8c3Bhbj57e2wudGltZSB8IGFtQ2FsZW5kYXIgOiBudWxsIDogQ0FMRU5EQVJfU1BFQyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwibC5kdXJhdGlvblwiIFtiaXpkb2NUb29sdGlwXT1cImwuZHVyYXRpb258YW1EdXJhdGlvbkZvcm1hdFwiPiZuYnNwOyh7e2wuZHVyYXRpb24gfCBhbUR1cmF0aW9uOidzJ319KTwvc3Bhbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImwubm90ZVwiPnt7bC5ub3RlfX08L3NwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJsLm1vZGVsXCIgKGNsaWNrKT1cImNvbXBhcmUobClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tcGFyZSd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwic3RhcnRcIj48bWF0LWljb24+bW9yZV9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+XHJcbiJdfQ==
|
@@ -15,6 +15,10 @@ export class TracePaneComponent {
|
|
15
15
|
}
|
16
16
|
ngOnInit() {
|
17
17
|
this._pane.dataChange.subscribe(d => {
|
18
|
+
if (this.model == d['item']) {
|
19
|
+
this.trace.refresh();
|
20
|
+
this.flow.refresh();
|
21
|
+
}
|
18
22
|
this.model = d['item'];
|
19
23
|
this._pane.group = `#${this.model.number}`;
|
20
24
|
});
|
@@ -49,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
49
53
|
type: ViewChild,
|
50
54
|
args: [FlowViewComponent, { static: true }]
|
51
55
|
}] } });
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UucGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksU0FBMkIsRUFDN0IsS0FBa0MsRUFDbEMsT0FBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUU1QixLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtZQUM1RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSzthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQTlCVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiw2SEFFbEIsa0JBQWtCLHFGQUNsQixpQkFBaUIsOERDbEI5QixnSkFHQTs0RkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLDZCQUE2QjtvQkFDMUMsU0FBUyxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzFDLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDtpQkFDRjt1SkFHa0QsS0FBSztzQkFBckQsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0MsSUFBSTtzQkFBbkQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGbG93Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vZmxvdy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUcmFjZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RyYWNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhY2UucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFjZVBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG1vZGVsOiBEb2N1bWVudE1vZGVsPGFueT47XHJcbiAgQFZpZXdDaGlsZChUcmFjZVZpZXdDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHRyYWNlOiBUcmFjZVZpZXdDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZChGbG93Vmlld0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgZmxvdzogRmxvd1ZpZXdDb21wb25lbnQ7XHJcbiAgY29uc3RydWN0b3IodHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxUcmFjZVBhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlclxyXG4gICkge1xyXG4gICAgX3BhbmUudGl0bGUgPSB0cmFuc2xhdGUuZ2V0KCdUcmFjZScpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BhbmUuZGF0YUNoYW5nZS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsID09IGRbJ2l0ZW0nXSkge1xyXG4gICAgICAgIHRoaXMudHJhY2UucmVmcmVzaCgpO1xyXG4gICAgICAgIHRoaXMuZmxvdy5yZWZyZXNoKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbCA9IGRbJ2l0ZW0nXTtcclxuICAgICAgdGhpcy5fcGFuZS5ncm91cCA9IGAjJHt0aGlzLm1vZGVsLm51bWJlcn1gO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZsb3cucmVzaXplKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgdmVyc2lvbih0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWycuLicsICd2ZXJzaW9uJywgbmV3IERhdGUodGltZSkudmFsdWVPZigpLmVuY29kZUlkKCldLCB7XHJcbiAgICAgIHJlbGF0aXZlVG86IHRoaXMuX3BhbmUsXHJcbiAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgaXRlbTogdGhpcy5tb2RlbFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGJpemRvYy10cmFjZSBbbW9kZWxdPVwibW9kZWxcIiAodmVyc2lvblNlbGVjdGVkKT1cInZlcnNpb24oJGV2ZW50KVwiPjwvYml6ZG9jLXRyYWNlPlxyXG5cclxuPGJpemRvYy1mbG93IFttb2RlbF09XCJtb2RlbFwiPjwvYml6ZG9jLWZsb3c+XHJcbiJdfQ==
|