@seniorsistemas/angular-components 17.1.4 → 17.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/seniorsistemas-angular-components.umd.js +117 -70
- package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
- package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
- package/components/gantt/components/gantt/gantt.d.ts +1 -3
- package/components/gantt/components/side-table/side-table.component.d.ts +4 -1
- package/components/gantt/gantt.component.d.ts +1 -0
- package/components/gantt/models/view-mode.d.ts +1 -0
- package/esm2015/components/gantt/components/gantt/bar.js +2 -2
- package/esm2015/components/gantt/components/gantt/gantt.js +92 -64
- package/esm2015/components/gantt/components/gantt/utils/date-utils.js +3 -2
- package/esm2015/components/gantt/components/side-table/side-table.component.js +7 -1
- package/esm2015/components/gantt/gantt.component.js +14 -3
- package/esm2015/components/gantt/models/view-mode.js +2 -1
- package/esm5/components/gantt/components/gantt/bar.js +2 -2
- package/esm5/components/gantt/components/gantt/gantt.js +95 -67
- package/esm5/components/gantt/components/gantt/utils/date-utils.js +3 -2
- package/esm5/components/gantt/components/side-table/side-table.component.js +7 -1
- package/esm5/components/gantt/gantt.component.js +14 -3
- package/esm5/components/gantt/models/view-mode.js +2 -1
- package/fesm2015/seniorsistemas-angular-components.js +114 -67
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +117 -70
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
1
2
|
import { TaskGroup } from '../../models/task';
|
|
2
|
-
export declare class SideTableComponent {
|
|
3
|
+
export declare class SideTableComponent implements OnInit {
|
|
3
4
|
ROW_HEIGHT: number;
|
|
4
5
|
columnTitle: string;
|
|
5
6
|
tasks: TaskGroup[];
|
|
6
7
|
multipleTaskPerLine: boolean;
|
|
8
|
+
ngOnInit(): void;
|
|
9
|
+
private _removeEmptyTasks;
|
|
7
10
|
}
|
|
@@ -221,7 +221,7 @@ export class Bar {
|
|
|
221
221
|
_computeX() {
|
|
222
222
|
const { step, columnWidth } = this._gantt.options;
|
|
223
223
|
let x;
|
|
224
|
-
if (this._gantt.view_is([ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {
|
|
224
|
+
if (this._gantt.view_is([ViewMode.QuarterHour, ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {
|
|
225
225
|
const diff = DateUtils.diff(this.task.start, this._gantt.minDate, "minutes");
|
|
226
226
|
x = (diff / step) * (columnWidth / 60);
|
|
227
227
|
}
|
|
@@ -261,4 +261,4 @@ export class Bar {
|
|
|
261
261
|
}
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRCxNQUFNLE9BQU8sR0FBRztJQXVDWixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBdEJ6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXVCekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBekJELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsTUFBZTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBU00saUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFPO1FBQ3RDLE1BQU0sR0FBRyxHQUFH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c0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVV0aWxzIH0gZnJvbSAnLi91dGlscy9kYXRlLXV0aWxzJztcbmltcG9ydCB7ICQsIGNyZWF0ZVNWRywgYW5pbWF0ZVNWRyB9IGZyb20gJy4vdXRpbHMvc3ZnLXV0aWxzJztcbmltcG9ydCB7IFZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL21vZGVscy92aWV3LW1vZGVcIjtcblxuaW1wb3J0IHsgR2FudHQgfSBmcm9tIFwiLi9nYW50dFwiO1xuaW1wb3J0IHsgRW5yaWNoZWRUYXNrIH0gZnJvbSBcIi4uLy4uL21vZGVscy90YXNrXCI7XG5pbXBvcnQgeyBBcnJvdyB9IGZyb20gXCIuL2Fycm93XCI7XG5cbmV4cG9ydCBjbGFzcyBCYXIge1xuICAgIHByaXZhdGUgX2FjdGlvbkNvbXBsZXRlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9nYW50dDogR2FudHQ7XG4gICAgcHJpdmF0ZSBfaW52YWxpZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF94OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeTogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Nvcm5lclJhZGl1czogbnVtYmVyO1xuICAgIHByaXZhdGUgX2R1cmF0aW9uOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcjtcbiAgICBwcml2YXRlIF9iYXJHcm91cDogYW55O1xuXG4gICAgcHJpdmF0ZSBfYXJyb3dzOiBBcnJvd1tdO1xuICAgIHByaXZhdGUgX2dyb3VwOiBhbnk7XG4gICAgcHJpdmF0ZSBfdGFzazogRW5yaWNoZWRUYXNrO1xuICAgIHByaXZhdGUgX2VsZW1lbnQ6IGFueTtcblxuICAgIHByaXZhdGUgX2lzUG9wVXBPcGVuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGFycm93cygpOiBBcnJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzay5kZXBlbmRlbmNpZXMubWFwKChkZXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9nYW50dC5nZXRfYmFyKGRlcCkuZWxlbWVudC5nZXRYKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNoaWxkIHRhc2sgbXVzdCBub3QgZ28gYmVmb3JlIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgdmFsaWRfeCA9IHhzLnJlZHVjZSgocHJldjogYW55LCBjdXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geCA+PSBjdXJyO1xuICAgICAgICAgICAgfSwgeCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkX3gpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwieFwiLCB4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2lkdGggJiYgd2lkdGggPj0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZUxhYmVsUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQXJyb3dQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrLnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0ID0gbmV3U3RhcnREYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFzay5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLmVuZCA9IG5ld0VuZERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uRGF0ZUNoYW5nZVwiLCBbXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLFxuICAgICAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCBcInNlY29uZFwiKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCBcIm1pbnV0ZVwiKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCAvIDYwLjA7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCAqIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgICB0aGlzLl9ncm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLXdyYXBwZXIgXCIgKyAodGhpcy50YXNrLmN1c3RvbV9jbGFzcyB8fCBcIlwiKSxcbiAgICAgICAgICAgIFwiZGF0YS1pZFwiOiB0aGlzLnRhc2suaWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9iYXJHcm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLWdyb3VwXCIsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuZ3JvdXAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWxwZXJzKCk6IHZvaWQge1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcInhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieVwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwid2lkdGhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEVuZFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRYKCkgKyB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhd0JhcigpO1xuICAgICAgICB0aGlzLl9kcmF3TGFiZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3QmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gY3JlYXRlU1ZHKFwicmVjdFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94LFxuICAgICAgICAgICAgeTogdGhpcy5feSxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLl93aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5faGVpZ2h0LFxuICAgICAgICAgICAgcng6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIHJ5OiB0aGlzLl9jb3JuZXJSYWRpdXMsXG4gICAgICAgICAgICBjbGFzczogXCJiYXJcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLnRhc2suY29sb3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFuaW1hdGVTVkcodGhpcy5lbGVtZW50LCBcIndpZHRoXCIsIDAsIHRoaXMuX3dpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJiYXItaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlU1ZHKFwidGV4dFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94ICsgdGhpcy5fd2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5feSArIHRoaXMuX2hlaWdodCAvIDIsXG4gICAgICAgICAgICBpbm5lckhUTUw6IHRoaXMudGFzay5zaG93VGFza05hbWUgPyB0aGlzLnRhc2submFtZSA6IFwiXCIsXG4gICAgICAgICAgICBjbGFzczogXCJiYXItbGFiZWxcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYWJlbHMgZ2V0IEJCb3ggaW4gdGhlIG5leHQgdGlja1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9iaW5kKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwQ2xpY2tFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0dXBDbGlja0V2ZW50KCk6IHZvaWQge1xuICAgICAgICAvL1RPRE9cblxuICAgICAgICBpZih0aGlzLl9nYW50dC5vcHRpb25zLmhhc1BvcHVwKSB7XG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZm9jdXMgXCIgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBvcHVwVHJpZ2dlciwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYWN0aW9uQ29tcGxldGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC51bnNlbGVjdF9hbGwoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cC5jbGFzc0xpc3QuYWRkKFwiYWN0aXZlXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuXG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZGJsY2xpY2tcIiwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uQ2xpY2tcIiwgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJC5vbih0aGlzLmdyb3VwLCBcIm1vdXNlZW50ZXJcIiwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmKCF0aGlzLl9pc1BvcFVwT3Blbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93UG9wdXAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgeDogZS5jbGllbnRYLFxuICAgICAgICAgICAgICAgICAgICAgICAgeTogdGhpcy5ncm91cC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AgKyAzMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnbWlkZGxlJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNQb3BVcE9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuXG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwibW91c2VsZWF2ZVwiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQuaGlkZV9wb3B1cCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2lzUG9wVXBPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9LCBudWxsKTtcblxuXG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZm9jdXMgY2xpY2tcIiwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fYWN0aW9uQ29tcGxldGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnRyaWdnZXJfZXZlbnQoXCJvbkNsaWNrXCIsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Nob3dQb3B1cChhcmdzPzogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dC5iYXJfYmVpbmdfZHJhZ2dlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3VidGl0bGU6IGFueSA9IHt9O1xuXG4gICAgICAgIGlmICghdGhpcy5fZ2FudHQub3B0aW9ucy5zaG93T25seUhvdXJzKSB7XG4gICAgICAgICAgICBzdWJ0aXRsZS5zdGFydERhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5zdGFydCxcbiAgICAgICAgICAgICAgICAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZERhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5lbmQsXG4gICAgICAgICAgICAgICAgJ0REL01NL1lZWVknLFxuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMubGFuZ3VhZ2VcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX2dhbnR0Lm9wdGlvbnMuc2hvd09ubHlEYXlzKSB7XG4gICAgICAgICAgICBzdWJ0aXRsZS5zdGFydEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5zdGFydCxcbiAgICAgICAgICAgICAgICAnSEg6bW06c3MnLFxuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMubGFuZ3VhZ2VcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBzdWJ0aXRsZS5lbmRIb3VyID0gRGF0ZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2suZW5kLFxuICAgICAgICAgICAgICAgICdISDptbTpzcycsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2dhbnR0LnNob3dfcG9wdXAoe1xuICAgICAgICAgICAgdGFyZ2V0X2VsZW1lbnQ6IHRoaXMuZWxlbWVudCxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRhc2submFtZSxcbiAgICAgICAgICAgIHN1YnRpdGxlOiBzdWJ0aXRsZSxcbiAgICAgICAgICAgIHRhc2s6IHRoaXMudGFzayxcbiAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVN0YXJ0RW5kRGF0ZSgpOiB7IG5ld1N0YXJ0RGF0ZTogRGF0ZSwgbmV3RW5kRGF0ZTogRGF0ZSB9IHtcbiAgICAgICAgY29uc3QgYmFyID0gdGhpcy5lbGVtZW50O1xuICAgICAgICBjb25zdCB4SW5Vbml0cyA9IGJhci5nZXRYKCkgLyB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBuZXdTdGFydERhdGUgPSBEYXRlVXRpbHMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fZ2FudHQubWluRGF0ZSxcbiAgICAgICAgICAgIHhJblVuaXRzICogdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwLFxuICAgICAgICAgICAgXCJob3VyXCJcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgd2lkdGhfaW5fdW5pdHMgPSBiYXIuZ2V0V2lkdGgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld0VuZERhdGUgPSBEYXRlVXRpbHMuYWRkKFxuICAgICAgICAgICAgbmV3U3RhcnREYXRlLFxuICAgICAgICAgICAgd2lkdGhfaW5fdW5pdHMgKiB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAsXG4gICAgICAgICAgICBcImhvdXJcIlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB7IG5ld1N0YXJ0RGF0ZSwgbmV3RW5kRGF0ZSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXB1dGVYKCkge1xuICAgICAgICBjb25zdCB7IHN0ZXAsIGNvbHVtbldpZHRoIH0gPSB0aGlzLl9nYW50dC5vcHRpb25zO1xuXG4gICAgICAgIGxldCB4O1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQudmlld19pcyhbVmlld01vZGUuSG91ciwgVmlld01vZGUuUXVhcnRlckRheSwgVmlld01vZGUuSGFsZkRheSwgVmlld01vZGUuRGF5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwibWludXRlc1wiKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogKGNvbHVtbldpZHRoIC8gNjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmIC8gc3RlcCkgKiAoY29sdW1uV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRCxNQUFNLE9BQU8sR0FBRztJQXVDWixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBdEJ6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXVCekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBekJELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsTUFBZTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBU00saUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFPO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekIsSUFBSSxDQUFDLEVBQUU7WUFDSCxrQ0FBa0M7WUFDbEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQy9DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1lBQ0gsdUNBQXVDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLEVBQUU7Z0JBQy9DLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNyQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQ2IsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRWpFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssWUFBWSxFQUFFO1lBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7U0FDbEM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFVBQVUsRUFBRTtZQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO1NBQzlCO1FBRUQsSUFBSSxPQUFPLEVBQUU7WUFDVCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJO2dCQUNULFlBQVk7Z0JBQ1osU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDO2FBQzFDLENBQUMsQ0FBQztTQUNOO1FBQUEsQ0FBQztJQUNOLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVUsRUFBRSxJQUFTO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVPLFFBQVE7UUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDNUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDekIsS0FBSyxFQUFFLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUN0RCxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1NBQzFCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QixLQUFLLEVBQUUsV0FBVztZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGVBQWU7UUFDbEIsVUFBVSxDQUFDLFNBQWlCLENBQUMsSUFBSSxHQUFHO1lBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUNELFVBQVUsQ0FBQyxTQUFpQixDQUFDLElBQUksR0FBRztZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFDRCxVQUFVLENBQUMsU0FBaUIsQ0FBQyxRQUFRLEdBQUc7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDO1FBQ0QsVUFBVSxDQUFDLFNBQWlCLENBQUMsU0FBUyxHQUFHO1lBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNELFVBQVUsQ0FBQyxTQUFpQixDQUFDLE9BQU8sR0FBRztZQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVPLEtBQUs7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFO1lBQzlCLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNWLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNWLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ3RCLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUN0QixLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO1NBQ3hCLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWxELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM3QztJQUNMLENBQUM7SUFFTyxVQUFVO1FBQ2QsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNkLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM1QixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUM7WUFDN0IsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RCxLQUFLLEVBQUUsV0FBVztZQUNsQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsbUNBQW1DO1FBQ25DLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLEtBQUs7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTTtRQUVOLElBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQzdCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3JFLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3RDO1lBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRVQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUNwQyxzREFBc0Q7Z0JBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNyRDtZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO2FBQU07WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3RDLElBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDO3dCQUNaLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDWixDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFO3dCQUM5QyxRQUFRLEVBQUUsUUFBUTtxQkFDckIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2lCQUM1QjtZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVULENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDOUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBR1QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO2dCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO29CQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNyRDtZQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFVO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFFRCxNQUFNLFFBQVEsR0FBUSxFQUFFLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNwQyxRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUNmLFlBQVksRUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQy9CLENBQUM7WUFDRixRQUFRLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUNiLFlBQVksRUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQy9CLENBQUM7U0FDTDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDbkMsUUFBUSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFDZixVQUFVLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUMvQixDQUFDO1lBQ0YsUUFBUSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFDYixVQUFVLEVBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUMvQixDQUFDO1NBQ0w7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsaUJBQ2xCLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQ3JCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUNaLElBQUksRUFDVCxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQ25DLE1BQU0sQ0FDVCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN4RSxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUM1QixZQUFZLEVBQ1osY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFDekMsTUFBTSxDQUNULENBQUM7UUFFRixPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxTQUFTO1FBQ2IsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUVsRCxJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2pILE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDSCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU8sU0FBUztRQUNiLE9BQU8sQ0FDSCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU87WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUNsRSxDQUFDO0lBQ04sQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUFZLEVBQUUsSUFBUyxFQUFFLEtBQVU7UUFDbkQsS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUN4QyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ2xDLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUM1QixLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDbEI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuL3V0aWxzL2RhdGUtdXRpbHMnO1xuaW1wb3J0IHsgJCwgY3JlYXRlU1ZHLCBhbmltYXRlU1ZHIH0gZnJvbSAnLi91dGlscy9zdmctdXRpbHMnO1xuaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZpZXctbW9kZVwiO1xuXG5pbXBvcnQgeyBHYW50dCB9IGZyb20gXCIuL2dhbnR0XCI7XG5pbXBvcnQgeyBFbnJpY2hlZFRhc2sgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3Rhc2tcIjtcbmltcG9ydCB7IEFycm93IH0gZnJvbSBcIi4vYXJyb3dcIjtcblxuZXhwb3J0IGNsYXNzIEJhciB7XG4gICAgcHJpdmF0ZSBfYWN0aW9uQ29tcGxldGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2dhbnR0OiBHYW50dDtcbiAgICBwcml2YXRlIF9pbnZhbGlkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2hlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3g6IG51bWJlcjtcbiAgICBwcml2YXRlIF95OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29ybmVyUmFkaXVzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZHVyYXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Jhckdyb3VwOiBhbnk7XG5cbiAgICBwcml2YXRlIF9hcnJvd3M6IEFycm93W107XG4gICAgcHJpdmF0ZSBfZ3JvdXA6IGFueTtcbiAgICBwcml2YXRlIF90YXNrOiBFbnJpY2hlZFRhc2s7XG4gICAgcHJpdmF0ZSBfZWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNQb3BVcE9wZW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgYXJyb3dzKCk6IEFycm93W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYXJyb3dzKGFycm93czogQXJyb3dbXSkge1xuICAgICAgICB0aGlzLl9hcnJvd3MgPSBhcnJvd3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YXNrKCk6IEVucmljaGVkVGFzayB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBncm91cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9zZXREZWZhdWx0cyhnYW50dCwgdGFzayk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmUoKTtcbiAgICAgICAgdGhpcy5fZHJhdygpO1xuICAgICAgICB0aGlzLl9iaW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUJhclBvc2l0aW9uKHsgeCwgd2lkdGggfTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgIC8vIGdldCBhbGwgeCB2YWx1ZXMgb2YgcGFyZW50IHRhc2tcbiAgICAgICAgICAgIGNvbnN0IHhzID0gdGhpcy50YXNrLmRlcGVuZGVuY2llcy5tYXAoKGRlcDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dhbnR0LmdldF9iYXIoZGVwKS5lbGVtZW50LmdldFgoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gY2hpbGQgdGFzayBtdXN0IG5vdCBnbyBiZWZvcmUgcGFyZW50XG4gICAgICAgICAgICBjb25zdCB2YWxpZF94ID0geHMucmVkdWNlKChwcmV2OiBhbnksIGN1cnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB4ID49IGN1cnI7XG4gICAgICAgICAgICB9LCB4KTtcbiAgICAgICAgICAgIGlmICghdmFsaWRfeCkge1xuICAgICAgICAgICAgICAgIHdpZHRoID0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ4XCIsIHgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aWR0aCAmJiB3aWR0aCA+PSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVBcnJvd1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCB7IG5ld1N0YXJ0RGF0ZSwgbmV3RW5kRGF0ZSB9ID0gdGhpcy5fY29tcHV0ZVN0YXJ0RW5kRGF0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2suc3RhcnQgIT09IG5ld1N0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suc3RhcnQgPSBuZXdTdGFydERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXNrLmVuZCAhPT0gbmV3RW5kRGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suZW5kID0gbmV3RW5kRGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25EYXRlQ2hhbmdlXCIsIFtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2ssXG4gICAgICAgICAgICAgICAgbmV3U3RhcnREYXRlLFxuICAgICAgICAgICAgICAgIERhdGVVdGlscy5hZGQobmV3RW5kRGF0ZSwgLTEsIFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFjdGlvbkNvbXBsZXRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdHMoZ2FudHQ6IGFueSwgdGFzazogYW55KSB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9nYW50dCA9IGdhbnR0O1xuICAgICAgICB0aGlzLl90YXNrID0gdGFzaztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wcmVwYXJlKCkge1xuICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWVzKCk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWxwZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW52YWxpZCA9IHRoaXMudGFzay5pbnZhbGlkO1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckhlaWdodDtcbiAgICAgICAgdGhpcy5feCA9IHRoaXMuX2NvbXB1dGVYKCk7XG4gICAgICAgIHRoaXMuX3kgPSB0aGlzLl9jb21wdXRlWSgpO1xuICAgICAgICB0aGlzLl9jb3JuZXJSYWRpdXMgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckNvcm5lclJhZGl1cztcbiAgICAgICAgdGhpcy5fZHVyYXRpb24gPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suZW5kLCB0aGlzLnRhc2suc3RhcnQsIFwibWludXRlXCIpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwIC8gNjAuMDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoICogdGhpcy5fZHVyYXRpb247XG4gICAgICAgIHRoaXMuX2dyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItd3JhcHBlciBcIiArICh0aGlzLnRhc2suY3VzdG9tX2NsYXNzIHx8IFwiXCIpLFxuICAgICAgICAgICAgXCJkYXRhLWlkXCI6IHRoaXMudGFzay5pZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Jhckdyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItZ3JvdXBcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5ncm91cCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlbHBlcnMoKTogdm9pZCB7XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0WSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ5XCIpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRXaWR0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcImhlaWdodFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0RW5kWCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFgoKSArIHRoaXMuZ2V0V2lkdGgoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmF3QmFyKCk7XG4gICAgICAgIHRoaXMuX2RyYXdMYWJlbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdCYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBjcmVhdGVTVkcoXCJyZWN0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3gsXG4gICAgICAgICAgICB5OiB0aGlzLl95LFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9oZWlnaHQsXG4gICAgICAgICAgICByeDogdGhpcy5fY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgcnk6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIGNsYXNzOiBcImJhclwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgICAgIGZpbGw6IHRoaXMudGFzay5jb2xvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYW5pbWF0ZVNWRyh0aGlzLmVsZW1lbnQsIFwid2lkdGhcIiwgMCwgdGhpcy5fd2lkdGgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImJhci1pbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhd0xhYmVsKCk6IHZvaWQge1xuICAgICAgICBjcmVhdGVTVkcoXCJ0ZXh0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3ggKyB0aGlzLl93aWR0aCAvIDIsXG4gICAgICAgICAgICB5OiB0aGlzLl95ICsgdGhpcy5faGVpZ2h0IC8gMixcbiAgICAgICAgICAgIGlubmVySFRNTDogdGhpcy50YXNrLnNob3dUYXNrTmFtZSA/IHRoaXMudGFzay5uYW1lIDogXCJcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImJhci1sYWJlbFwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGxhYmVscyBnZXQgQkJveCBpbiB0aGUgbmV4dCB0aWNrXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl91cGRhdGVMYWJlbFBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2JpbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBDbGlja0V2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cENsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIC8vVE9ET1xuXG4gICAgICAgIGlmKHRoaXMuX2dhbnR0Lm9wdGlvbnMuaGFzUG9wdXApIHtcbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBcIiArIHRoaXMuX2dhbnR0Lm9wdGlvbnMucG9wdXBUcmlnZ2VyLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd1BvcHVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJkYmxjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25DbGlja1wiLCBbdGhpcy50YXNrXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwibW91c2VlbnRlclwiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuX2lzUG9wVXBPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLmdyb3VwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIDMwLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdtaWRkbGUnXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcFVwT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJtb3VzZWxlYXZlXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5oaWRlX3BvcHVwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BVcE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIG51bGwpO1xuXG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudW5zZWxlY3RfYWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uQ2xpY2tcIiwgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKGFyZ3M/OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dhbnR0LmJhcl9iZWluZ19kcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJ0aXRsZTogYW55ID0ge307XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dC5vcHRpb25zLnNob3dPbmx5SG91cnMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0RGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3VidGl0bGUuZW5kRGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLmVuZCxcbiAgICAgICAgICAgICAgICAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fZ2FudHQub3B0aW9ucy5zaG93T25seURheXMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0SG91ciA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdISDptbTpzcycsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5lbmQsXG4gICAgICAgICAgICAgICAgJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ2FudHQuc2hvd19wb3B1cCh7XG4gICAgICAgICAgICB0YXJnZXRfZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudGFzay5uYW1lLFxuICAgICAgICAgICAgc3VidGl0bGU6IHN1YnRpdGxlLFxuICAgICAgICAgICAgdGFzazogdGhpcy50YXNrLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlU3RhcnRFbmREYXRlKCk6IHsgbmV3U3RhcnREYXRlOiBEYXRlLCBuZXdFbmREYXRlOiBEYXRlIH0ge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHhJblVuaXRzID0gYmFyLmdldFgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1N0YXJ0RGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5taW5EYXRlLFxuICAgICAgICAgICAgeEluVW5pdHMgKiB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAsXG4gICAgICAgICAgICBcImhvdXJcIlxuICAgICAgICApO1xuICAgICAgICBjb25zdCB3aWR0aF9pbl91bml0cyA9IGJhci5nZXRXaWR0aCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3RW5kRGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICBuZXdTdGFydERhdGUsXG4gICAgICAgICAgICB3aWR0aF9pbl91bml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHsgbmV3U3RhcnREYXRlLCBuZXdFbmREYXRlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVgoKSB7XG4gICAgICAgIGNvbnN0IHsgc3RlcCwgY29sdW1uV2lkdGggfSA9IHRoaXMuX2dhbnR0Lm9wdGlvbnM7XG5cbiAgICAgICAgbGV0IHg7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dC52aWV3X2lzKFtWaWV3TW9kZS5RdWFydGVySG91ciwgVmlld01vZGUuSG91ciwgVmlld01vZGUuUXVhcnRlckRheSwgVmlld01vZGUuSGFsZkRheSwgVmlld01vZGUuRGF5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwibWludXRlc1wiKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogKGNvbHVtbldpZHRoIC8gNjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmIC8gc3RlcCkgKiAoY29sdW1uV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|