@seniorsistemas/angular-components 17.1.3 → 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 +271 -117
- 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/bar.d.ts +1 -0
- package/components/gantt/components/gantt/gantt.d.ts +2 -4
- package/components/gantt/components/gantt/popup.d.ts +4 -1
- package/components/gantt/components/side-table/side-table.component.d.ts +4 -1
- package/components/gantt/gantt.component.d.ts +10 -1
- package/components/gantt/models/options.d.ts +5 -0
- package/components/gantt/models/view-mode.d.ts +3 -2
- package/esm2015/components/gantt/components/gantt/bar.js +61 -33
- package/esm2015/components/gantt/components/gantt/gantt-options.js +5 -1
- package/esm2015/components/gantt/components/gantt/gantt.js +113 -72
- package/esm2015/components/gantt/components/gantt/popup.js +37 -5
- package/esm2015/components/gantt/components/gantt/utils/date-utils.js +3 -2
- package/esm2015/components/gantt/components/side-table/side-table.component.js +9 -3
- package/esm2015/components/gantt/gantt.component.js +53 -5
- package/esm2015/components/gantt/gantt.module.js +3 -2
- package/esm2015/components/gantt/models/options.js +1 -1
- package/esm2015/components/gantt/models/view-mode.js +3 -2
- package/esm5/components/gantt/components/gantt/bar.js +62 -34
- package/esm5/components/gantt/components/gantt/gantt-options.js +5 -1
- package/esm5/components/gantt/components/gantt/gantt.js +115 -74
- package/esm5/components/gantt/components/gantt/popup.js +30 -5
- package/esm5/components/gantt/components/gantt/utils/date-utils.js +3 -2
- package/esm5/components/gantt/components/side-table/side-table.component.js +9 -3
- package/esm5/components/gantt/gantt.component.js +53 -5
- package/esm5/components/gantt/gantt.module.js +3 -2
- package/esm5/components/gantt/models/options.js +1 -1
- package/esm5/components/gantt/models/view-mode.js +3 -2
- package/fesm2015/seniorsistemas-angular-components.js +276 -115
- package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-angular-components.js +271 -117
- package/fesm5/seniorsistemas-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-angular-components.metadata.json +1 -1
|
@@ -9,9 +9,7 @@ export declare class Gantt {
|
|
|
9
9
|
dependency_map: any;
|
|
10
10
|
private _minDate;
|
|
11
11
|
private _maxDate;
|
|
12
|
-
|
|
13
|
-
private _realMaxDate;
|
|
14
|
-
dates: any;
|
|
12
|
+
dates: Date[];
|
|
15
13
|
layers: any;
|
|
16
14
|
bars: Bar[];
|
|
17
15
|
arrows: Arrow[];
|
|
@@ -59,7 +57,7 @@ export declare class Gantt {
|
|
|
59
57
|
private get_task;
|
|
60
58
|
get_bar(id: any): Bar;
|
|
61
59
|
show_popup(options: any): void;
|
|
62
|
-
|
|
60
|
+
hide_popup(): void;
|
|
63
61
|
trigger_event(event: string, args: any): void;
|
|
64
62
|
private get_oldest_starting_date;
|
|
65
63
|
private clear;
|
|
@@ -2,7 +2,10 @@ export declare class Popup {
|
|
|
2
2
|
private parent;
|
|
3
3
|
private customHtml;
|
|
4
4
|
private title;
|
|
5
|
-
private
|
|
5
|
+
private startDate;
|
|
6
|
+
private startHour;
|
|
7
|
+
private endDate;
|
|
8
|
+
private endHour;
|
|
6
9
|
private pointer;
|
|
7
10
|
constructor(parent: any, customHtml: any);
|
|
8
11
|
show(options: any): void;
|
|
@@ -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
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterViewInit, OnChanges, OnInit, EventEmitter, SimpleChanges } from "@angular/core";
|
|
1
|
+
import { AfterViewInit, OnChanges, OnInit, EventEmitter, SimpleChanges, ElementRef } from "@angular/core";
|
|
2
2
|
import { TaskGroup, Task } from "./models/task";
|
|
3
3
|
import { ViewMode } from "./models/view-mode";
|
|
4
4
|
export declare class GanttComponent implements AfterViewInit, OnChanges, OnInit {
|
|
@@ -9,13 +9,22 @@ export declare class GanttComponent implements AfterViewInit, OnChanges, OnInit
|
|
|
9
9
|
tasks: TaskGroup[];
|
|
10
10
|
marginBeforeStart?: number;
|
|
11
11
|
marginAfterEnd?: number;
|
|
12
|
+
allowMovement: boolean;
|
|
13
|
+
hasPopup: boolean;
|
|
14
|
+
containerWidth: number;
|
|
15
|
+
fullWidth: boolean;
|
|
16
|
+
showOnlyHours: boolean;
|
|
17
|
+
showOnlyDays: boolean;
|
|
12
18
|
taskClicked: EventEmitter<Task>;
|
|
13
19
|
taskDateChanged: EventEmitter<any>;
|
|
14
20
|
viewChanged: EventEmitter<ViewMode>;
|
|
15
21
|
private _gantt;
|
|
16
22
|
ngOnInit(): void;
|
|
23
|
+
outer: ElementRef;
|
|
24
|
+
side: ElementRef;
|
|
17
25
|
ngAfterViewInit(): void;
|
|
18
26
|
ngOnChanges(changes: SimpleChanges): void;
|
|
19
27
|
private _filterTask;
|
|
20
28
|
private _validateViewMode;
|
|
29
|
+
private _validateTasks;
|
|
21
30
|
}
|
|
@@ -15,6 +15,11 @@ export interface Options {
|
|
|
15
15
|
popupTrigger?: any;
|
|
16
16
|
marginBeforeStart?: number;
|
|
17
17
|
marginAfterEnd?: number;
|
|
18
|
+
allowMovement?: boolean;
|
|
19
|
+
hasPopup?: boolean;
|
|
20
|
+
containerWidth?: number;
|
|
21
|
+
showOnlyHours?: boolean;
|
|
22
|
+
showOnlyDays?: boolean;
|
|
18
23
|
onClick?: ((task: EnrichedTask) => void);
|
|
19
24
|
onDateChange?: ((task: EnrichedTask, start: Date, end: Date) => void);
|
|
20
25
|
onViewChange?: ((mode: ViewMode) => void);
|
|
@@ -3,6 +3,7 @@ import { $, createSVG, animateSVG } from './utils/svg-utils';
|
|
|
3
3
|
import { ViewMode } from "../../models/view-mode";
|
|
4
4
|
export class Bar {
|
|
5
5
|
constructor(gantt, task) {
|
|
6
|
+
this._isPopUpOpen = false;
|
|
6
7
|
this._setDefaults(gantt, task);
|
|
7
8
|
this._prepare();
|
|
8
9
|
this._draw();
|
|
@@ -153,37 +154,61 @@ export class Bar {
|
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
_setupClickEvent() {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
this.
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
157
|
+
//TODO
|
|
158
|
+
if (this._gantt.options.hasPopup) {
|
|
159
|
+
$.on(this.group, "focus " + this._gantt.options.popupTrigger, (e) => {
|
|
160
|
+
// just finished a move action, wait for a few seconds
|
|
161
|
+
if (!this._actionCompleted) {
|
|
162
|
+
this._showPopup();
|
|
163
|
+
this._gantt.unselect_all();
|
|
164
|
+
this.group.classList.add("active");
|
|
165
|
+
}
|
|
166
|
+
}, null);
|
|
167
|
+
$.on(this.group, "dblclick", (e) => {
|
|
168
|
+
// just finished a move action, wait for a few seconds
|
|
169
|
+
if (!this._actionCompleted) {
|
|
170
|
+
this._gantt.trigger_event("onClick", [this.task]);
|
|
171
|
+
}
|
|
172
|
+
}, null);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
$.on(this.group, "mouseenter", (e) => {
|
|
176
|
+
if (!this._isPopUpOpen) {
|
|
177
|
+
this._showPopup({
|
|
178
|
+
x: e.clientX,
|
|
179
|
+
y: this.group.getBoundingClientRect().top + 30,
|
|
180
|
+
position: 'middle'
|
|
181
|
+
});
|
|
182
|
+
this._isPopUpOpen = true;
|
|
183
|
+
}
|
|
184
|
+
}, null);
|
|
185
|
+
$.on(this.group, "mouseleave", (e) => {
|
|
186
|
+
this._gantt.hide_popup();
|
|
187
|
+
this._isPopUpOpen = false;
|
|
188
|
+
}, null);
|
|
189
|
+
$.on(this.group, "focus click", (e) => {
|
|
190
|
+
if (!this._actionCompleted) {
|
|
191
|
+
this._gantt.unselect_all();
|
|
192
|
+
this.group.classList.add("active");
|
|
193
|
+
this._gantt.trigger_event("onClick", [this.task]);
|
|
194
|
+
}
|
|
195
|
+
}, null);
|
|
196
|
+
}
|
|
170
197
|
}
|
|
171
|
-
_showPopup() {
|
|
198
|
+
_showPopup(args) {
|
|
172
199
|
if (this._gantt.bar_being_dragged) {
|
|
173
200
|
return;
|
|
174
201
|
}
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
task: this.task,
|
|
186
|
-
});
|
|
202
|
+
const subtitle = {};
|
|
203
|
+
if (!this._gantt.options.showOnlyHours) {
|
|
204
|
+
subtitle.startDate = DateUtils.format(this.task.start, 'DD/MM/YYYY', this._gantt.options.language);
|
|
205
|
+
subtitle.endDate = DateUtils.format(this.task.end, 'DD/MM/YYYY', this._gantt.options.language);
|
|
206
|
+
}
|
|
207
|
+
if (!this._gantt.options.showOnlyDays) {
|
|
208
|
+
subtitle.startHour = DateUtils.format(this.task.start, 'HH:mm:ss', this._gantt.options.language);
|
|
209
|
+
subtitle.endHour = DateUtils.format(this.task.end, 'HH:mm:ss', this._gantt.options.language);
|
|
210
|
+
}
|
|
211
|
+
this._gantt.show_popup(Object.assign({ target_element: this.element, title: this.task.name, subtitle: subtitle, task: this.task }, args));
|
|
187
212
|
}
|
|
188
213
|
_computeStartEndDate() {
|
|
189
214
|
const bar = this.element;
|
|
@@ -195,11 +220,14 @@ export class Bar {
|
|
|
195
220
|
}
|
|
196
221
|
_computeX() {
|
|
197
222
|
const { step, columnWidth } = this._gantt.options;
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
223
|
+
let x;
|
|
224
|
+
if (this._gantt.view_is([ViewMode.QuarterHour, ViewMode.Hour, ViewMode.QuarterDay, ViewMode.HalfDay, ViewMode.Day])) {
|
|
225
|
+
const diff = DateUtils.diff(this.task.start, this._gantt.minDate, "minutes");
|
|
226
|
+
x = (diff / step) * (columnWidth / 60);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
const diff = DateUtils.diff(this.task.start, this._gantt.minDate, "hour");
|
|
230
|
+
x = (diff / step) * (columnWidth);
|
|
203
231
|
}
|
|
204
232
|
return x;
|
|
205
233
|
}
|
|
@@ -233,4 +261,4 @@ export class Bar {
|
|
|
233
261
|
}
|
|
234
262
|
}
|
|
235
263
|
}
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRCxNQUFNLE9BQU8sR0FBRztJQXFDWixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQXpCRCxJQUFXLE1BQU07UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsTUFBTSxDQUFDLE1BQWU7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQVNNLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBTztRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxFQUFFO1lBQ0gsa0NBQWtDO1lBQ2xDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuRCxDQUFDLENBQUMsQ0FBQztZQUNILHVDQUF1QztZQUN2QyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLElBQVMsRUFBRSxFQUFFO2dCQUMvQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDVixLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUNiLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQztRQUNELElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUVqRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLFlBQVksRUFBRTtZQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxVQUFVLEVBQUU7WUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQztTQUM5QjtRQUVELElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFO2dCQUN0QyxJQUFJLENBQUMsSUFBSTtnQkFDVCxZQUFZO2dCQUNaLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQzthQUMxQyxDQUFDLENBQUM7U0FDTjtRQUFBLENBQUM7SUFDTixDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFVLEVBQUUsSUFBUztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxRQUFRO1FBQ1osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQ3pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzVHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3pCLEtBQUssRUFBRSxjQUFjLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDdEQsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxlQUFlO1FBQ2xCLFVBQVUsQ0FBQyxTQUFpQixDQUFDLElBQUksR0FBRztZQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFDRCxVQUFVLENBQUMsU0FBaUIsQ0FBQyxJQUFJLEdBQUc7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDO1FBQ0QsVUFBVSxDQUFDLFNBQWlCLENBQUMsUUFBUSxHQUFHO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztRQUNELFVBQVUsQ0FBQyxTQUFpQixDQUFDLFNBQVMsR0FBRztZQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFDRCxVQUFVLENBQUMsU0FBaUIsQ0FBQyxPQUFPLEdBQUc7WUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyxLQUFLO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUM5QixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDVixDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUN0QixFQUFFLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDdEIsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztTQUN4QixDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0M7SUFDTCxDQUFDO0lBRU8sVUFBVTtRQUNkLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDZCxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDNUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDO1lBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkQsS0FBSyxFQUFFLFdBQVc7WUFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzVCLENBQUMsQ0FBQztRQUNILG1DQUFtQztRQUNuQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDckUsc0RBQXNEO1lBQ3RELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFO1lBQ3BDLHNEQUFzRDtZQUV0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNyRDtRQUNMLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQy9CLE9BQU87U0FDVjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbkQsQ0FBQyxDQUFDLE9BQU87WUFDVCxDQUFDLENBQUMsT0FBTyxDQUFDO1FBRWQsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQ2YsWUFBWSxFQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FDL0IsQ0FBQztRQUNGLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQzdCLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLEVBQzFDLFlBQVksRUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQy9CLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxVQUFVLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUUvQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNuQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUNyQixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQ25DLE1BQU0sQ0FDVCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN4RSxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUM1QixZQUFZLEVBQ1osY0FBYyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFDekMsTUFBTSxDQUNULENBQUM7UUFFRixPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxTQUFTO1FBQ2IsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNsRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUVwQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyQyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pFLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDakM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFTyxTQUFTO1FBQ2IsT0FBTyxDQUNILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVk7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQ2xFLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQVksRUFBRSxJQUFTLEVBQUUsS0FBVTtRQUNuRCxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuRCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3hDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzVCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVVdGlscyB9IGZyb20gJy4vdXRpbHMvZGF0ZS11dGlscyc7XG5pbXBvcnQgeyAkLCBjcmVhdGVTVkcsIGFuaW1hdGVTVkcgfSBmcm9tICcuL3V0aWxzL3N2Zy11dGlscyc7XG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdmlldy1tb2RlXCI7XG5cbmltcG9ydCB7IEdhbnR0IH0gZnJvbSBcIi4vZ2FudHRcIjtcbmltcG9ydCB7IEVucmljaGVkVGFzayB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGFza1wiO1xuaW1wb3J0IHsgQXJyb3cgfSBmcm9tIFwiLi9hcnJvd1wiO1xuXG5leHBvcnQgY2xhc3MgQmFyIHtcbiAgICBwcml2YXRlIF9hY3Rpb25Db21wbGV0ZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfZ2FudHQ6IEdhbnR0O1xuICAgIHByaXZhdGUgX2ludmFsaWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfeDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3k6IG51bWJlcjtcbiAgICBwcml2YXRlIF9jb3JuZXJSYWRpdXM6IG51bWJlcjtcbiAgICBwcml2YXRlIF9kdXJhdGlvbjogbnVtYmVyO1xuICAgIHByaXZhdGUgX3dpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfYmFyR3JvdXA6IGFueTtcblxuICAgIHByaXZhdGUgX2Fycm93czogQXJyb3dbXTtcbiAgICBwcml2YXRlIF9ncm91cDogYW55O1xuICAgIHByaXZhdGUgX3Rhc2s6IEVucmljaGVkVGFzaztcbiAgICBwcml2YXRlIF9lbGVtZW50OiBhbnk7XG5cbiAgICBwdWJsaWMgZ2V0IGFycm93cygpOiBBcnJvd1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fycm93cztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFycm93cyhhcnJvd3M6IEFycm93W10pIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFzaygpOiBFbnJpY2hlZFRhc2sge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFzaztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihnYW50dDogYW55LCB0YXNrOiBhbnkpIHtcbiAgICAgICAgdGhpcy5fc2V0RGVmYXVsdHMoZ2FudHQsIHRhc2spO1xuICAgICAgICB0aGlzLl9wcmVwYXJlKCk7XG4gICAgICAgIHRoaXMuX2RyYXcoKTtcbiAgICAgICAgdGhpcy5fYmluZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVCYXJQb3NpdGlvbih7IHgsIHdpZHRoIH06IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAvLyBnZXQgYWxsIHggdmFsdWVzIG9mIHBhcmVudCB0YXNrXG4gICAgICAgICAgICBjb25zdCB4cyA9IHRoaXMudGFzay5kZXBlbmRlbmNpZXMubWFwKChkZXA6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9nYW50dC5nZXRfYmFyKGRlcCkuZWxlbWVudC5nZXRYKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIGNoaWxkIHRhc2sgbXVzdCBub3QgZ28gYmVmb3JlIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgdmFsaWRfeCA9IHhzLnJlZHVjZSgocHJldjogYW55LCBjdXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geCA+PSBjdXJyO1xuICAgICAgICAgICAgfSwgeCk7XG4gICAgICAgICAgICBpZiAoIXZhbGlkX3gpIHtcbiAgICAgICAgICAgICAgICB3aWR0aCA9IG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwieFwiLCB4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod2lkdGggJiYgd2lkdGggPj0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQXR0cihiYXIsIFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3VwZGF0ZUxhYmVsUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlQXJyb3dQb3NpdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfSA9IHRoaXMuX2NvbXB1dGVTdGFydEVuZERhdGUoKTtcblxuICAgICAgICBpZiAodGhpcy50YXNrLnN0YXJ0ICE9PSBuZXdTdGFydERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0ID0gbmV3U3RhcnREYXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGFzay5lbmQgIT09IG5ld0VuZERhdGUpIHtcbiAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy50YXNrLmVuZCA9IG5ld0VuZERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uRGF0ZUNoYW5nZVwiLCBbXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLFxuICAgICAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgICAgICBEYXRlVXRpbHMuYWRkKG5ld0VuZERhdGUsIC0xLCBcInNlY29uZFwiKSxcbiAgICAgICAgICAgIF0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBY3Rpb25Db21wbGV0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldERlZmF1bHRzKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZ2FudHQgPSBnYW50dDtcbiAgICAgICAgdGhpcy5fdGFzayA9IHRhc2s7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZSgpIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZVZhbHVlcygpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlSGVscGVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ludmFsaWQgPSB0aGlzLnRhc2suaW52YWxpZDtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJIZWlnaHQ7XG4gICAgICAgIHRoaXMuX3ggPSB0aGlzLl9jb21wdXRlWCgpO1xuICAgICAgICB0aGlzLl95ID0gdGhpcy5fY29tcHV0ZVkoKTtcbiAgICAgICAgdGhpcy5fY29ybmVyUmFkaXVzID0gdGhpcy5fZ2FudHQub3B0aW9ucy5iYXJDb3JuZXJSYWRpdXM7XG4gICAgICAgIHRoaXMuX2R1cmF0aW9uID0gRGF0ZVV0aWxzLmRpZmYodGhpcy50YXNrLmVuZCwgdGhpcy50YXNrLnN0YXJ0LCBcIm1pbnV0ZVwiKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCAvIDYwLjA7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aCAqIHRoaXMuX2R1cmF0aW9uO1xuICAgICAgICB0aGlzLl9ncm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLXdyYXBwZXIgXCIgKyAodGhpcy50YXNrLmN1c3RvbV9jbGFzcyB8fCBcIlwiKSxcbiAgICAgICAgICAgIFwiZGF0YS1pZFwiOiB0aGlzLnRhc2suaWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9iYXJHcm91cCA9IGNyZWF0ZVNWRyhcImdcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiYmFyLWdyb3VwXCIsXG4gICAgICAgICAgICBhcHBlbmRfdG86IHRoaXMuZ3JvdXAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ByZXBhcmVIZWxwZXJzKCk6IHZvaWQge1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRYID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcInhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFkgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieVwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0V2lkdGggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwid2lkdGhcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEhlaWdodCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJoZWlnaHRcIik7XG4gICAgICAgIH07XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldEVuZFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRYKCkgKyB0aGlzLmdldFdpZHRoKCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZHJhd0JhcigpO1xuICAgICAgICB0aGlzLl9kcmF3TGFiZWwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3QmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbGVtZW50ID0gY3JlYXRlU1ZHKFwicmVjdFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94LFxuICAgICAgICAgICAgeTogdGhpcy5feSxcbiAgICAgICAgICAgIHdpZHRoOiB0aGlzLl93aWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogdGhpcy5faGVpZ2h0LFxuICAgICAgICAgICAgcng6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIHJ5OiB0aGlzLl9jb3JuZXJSYWRpdXMsXG4gICAgICAgICAgICBjbGFzczogXCJiYXJcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgICAgICBmaWxsOiB0aGlzLnRhc2suY29sb3IsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFuaW1hdGVTVkcodGhpcy5lbGVtZW50LCBcIndpZHRoXCIsIDAsIHRoaXMuX3dpZHRoKTtcblxuICAgICAgICBpZiAodGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJiYXItaW52YWxpZFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgY3JlYXRlU1ZHKFwidGV4dFwiLCB7XG4gICAgICAgICAgICB4OiB0aGlzLl94ICsgdGhpcy5fd2lkdGggLyAyLFxuICAgICAgICAgICAgeTogdGhpcy5feSArIHRoaXMuX2hlaWdodCAvIDIsXG4gICAgICAgICAgICBpbm5lckhUTUw6IHRoaXMudGFzay5zaG93VGFza05hbWUgPyB0aGlzLnRhc2submFtZSA6IFwiXCIsXG4gICAgICAgICAgICBjbGFzczogXCJiYXItbGFiZWxcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5fYmFyR3JvdXAsXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBsYWJlbHMgZ2V0IEJCb3ggaW4gdGhlIG5leHQgdGlja1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9iaW5kKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ludmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwQ2xpY2tFdmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0dXBDbGlja0V2ZW50KCk6IHZvaWQge1xuICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwiZm9jdXMgXCIgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBvcHVwVHJpZ2dlciwgKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgJC5vbih0aGlzLmdyb3VwLCBcImRibGNsaWNrXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIC8vIGp1c3QgZmluaXNoZWQgYSBtb3ZlIGFjdGlvbiwgd2FpdCBmb3IgYSBmZXcgc2Vjb25kc1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnRyaWdnZXJfZXZlbnQoXCJvbkNsaWNrXCIsIFt0aGlzLnRhc2tdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2FudHQuYmFyX2JlaW5nX2RyYWdnZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdFN0cmluZyA9IHRoaXMuX2dhbnR0LnZpZXdfaXMoVmlld01vZGUuSG91cilcbiAgICAgICAgICAgID8gXCJISDpzc1wiXG4gICAgICAgICAgICA6IFwiTU1NIERcIjtcblxuICAgICAgICBjb25zdCBzdGFydF9kYXRlID0gRGF0ZVV0aWxzLmZvcm1hdChcbiAgICAgICAgICAgIHRoaXMudGFzay5zdGFydCxcbiAgICAgICAgICAgIGZvcm1hdFN0cmluZyxcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm9wdGlvbnMubGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZW5kX2RhdGUgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgRGF0ZVV0aWxzLmFkZCh0aGlzLnRhc2suZW5kLCAtMSwgXCJzZWNvbmRcIiksXG4gICAgICAgICAgICBmb3JtYXRTdHJpbmcsXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHN1YnRpdGxlID0gc3RhcnRfZGF0ZSArIFwiIC0gXCIgKyBlbmRfZGF0ZTtcblxuICAgICAgICB0aGlzLl9nYW50dC5zaG93X3BvcHVwKHtcbiAgICAgICAgICAgIHRhcmdldF9lbGVtZW50OiB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50YXNrLm5hbWUsXG4gICAgICAgICAgICBzdWJ0aXRsZTogc3VidGl0bGUsXG4gICAgICAgICAgICB0YXNrOiB0aGlzLnRhc2ssXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXB1dGVTdGFydEVuZERhdGUoKTogeyBuZXdTdGFydERhdGU6IERhdGUsIG5ld0VuZERhdGU6IERhdGUgfSB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgY29uc3QgeEluVW5pdHMgPSBiYXIuZ2V0WCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3U3RhcnREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2dhbnR0Lm1pbkRhdGUsXG4gICAgICAgICAgICB4SW5Vbml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHdpZHRoX2luX3VuaXRzID0gYmFyLmdldFdpZHRoKCkgLyB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoO1xuICAgICAgICBjb25zdCBuZXdFbmREYXRlID0gRGF0ZVV0aWxzLmFkZChcbiAgICAgICAgICAgIG5ld1N0YXJ0RGF0ZSxcbiAgICAgICAgICAgIHdpZHRoX2luX3VuaXRzICogdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwLFxuICAgICAgICAgICAgXCJob3VyXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4geyBuZXdTdGFydERhdGUsIG5ld0VuZERhdGUgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlWCgpIHtcbiAgICAgICAgY29uc3QgeyBzdGVwLCBjb2x1bW5XaWR0aCB9ID0gdGhpcy5fZ2FudHQub3B0aW9ucztcbiAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICBsZXQgeCA9IChkaWZmIC8gc3RlcCkgKiBjb2x1bW5XaWR0aDtcblxuICAgICAgICBpZiAodGhpcy5fZ2FudHQudmlld19pcyhWaWV3TW9kZS5Nb250aCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwiZGF5XCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmICogY29sdW1uV2lkdGgpIC8gMzA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZ2FudHQvY29tcG9uZW50cy9nYW50dC9iYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRCxNQUFNLE9BQU8sR0FBRztJQXVDWixZQUFZLEtBQVUsRUFBRSxJQUFTO1FBdEJ6QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQXVCekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBekJELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxNQUFNLENBQUMsTUFBZTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBU00saUJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFPO1FBQ3RDLE1BQU0sR0FBRyxHQUFH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TCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVXRpbHMgfSBmcm9tICcuL3V0aWxzL2RhdGUtdXRpbHMnO1xuaW1wb3J0IHsgJCwgY3JlYXRlU1ZHLCBhbmltYXRlU1ZHIH0gZnJvbSAnLi91dGlscy9zdmctdXRpbHMnO1xuaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3ZpZXctbW9kZVwiO1xuXG5pbXBvcnQgeyBHYW50dCB9IGZyb20gXCIuL2dhbnR0XCI7XG5pbXBvcnQgeyBFbnJpY2hlZFRhc2sgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3Rhc2tcIjtcbmltcG9ydCB7IEFycm93IH0gZnJvbSBcIi4vYXJyb3dcIjtcblxuZXhwb3J0IGNsYXNzIEJhciB7XG4gICAgcHJpdmF0ZSBfYWN0aW9uQ29tcGxldGVkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2dhbnR0OiBHYW50dDtcbiAgICBwcml2YXRlIF9pbnZhbGlkOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2hlaWdodDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3g6IG51bWJlcjtcbiAgICBwcml2YXRlIF95OiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29ybmVyUmFkaXVzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZHVyYXRpb246IG51bWJlcjtcbiAgICBwcml2YXRlIF93aWR0aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Jhckdyb3VwOiBhbnk7XG5cbiAgICBwcml2YXRlIF9hcnJvd3M6IEFycm93W107XG4gICAgcHJpdmF0ZSBfZ3JvdXA6IGFueTtcbiAgICBwcml2YXRlIF90YXNrOiBFbnJpY2hlZFRhc2s7XG4gICAgcHJpdmF0ZSBfZWxlbWVudDogYW55O1xuXG4gICAgcHJpdmF0ZSBfaXNQb3BVcE9wZW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgYXJyb3dzKCk6IEFycm93W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJyb3dzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYXJyb3dzKGFycm93czogQXJyb3dbXSkge1xuICAgICAgICB0aGlzLl9hcnJvd3MgPSBhcnJvd3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YXNrKCk6IEVucmljaGVkVGFzayB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBncm91cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dyb3VwO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGdhbnR0OiBhbnksIHRhc2s6IGFueSkge1xuICAgICAgICB0aGlzLl9zZXREZWZhdWx0cyhnYW50dCwgdGFzayk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmUoKTtcbiAgICAgICAgdGhpcy5fZHJhdygpO1xuICAgICAgICB0aGlzLl9iaW5kKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUJhclBvc2l0aW9uKHsgeCwgd2lkdGggfTogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGJhciA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgIC8vIGdldCBhbGwgeCB2YWx1ZXMgb2YgcGFyZW50IHRhc2tcbiAgICAgICAgICAgIGNvbnN0IHhzID0gdGhpcy50YXNrLmRlcGVuZGVuY2llcy5tYXAoKGRlcDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dhbnR0LmdldF9iYXIoZGVwKS5lbGVtZW50LmdldFgoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gY2hpbGQgdGFzayBtdXN0IG5vdCBnbyBiZWZvcmUgcGFyZW50XG4gICAgICAgICAgICBjb25zdCB2YWxpZF94ID0geHMucmVkdWNlKChwcmV2OiBhbnksIGN1cnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB4ID49IGN1cnI7XG4gICAgICAgICAgICB9LCB4KTtcbiAgICAgICAgICAgIGlmICghdmFsaWRfeCkge1xuICAgICAgICAgICAgICAgIHdpZHRoID0gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ4XCIsIHgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh3aWR0aCAmJiB3aWR0aCA+PSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBdHRyKGJhciwgXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlTGFiZWxQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLl91cGRhdGVBcnJvd1Bvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRhdGVDaGFuZ2VkKCk6IHZvaWQge1xuICAgICAgICBsZXQgY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCB7IG5ld1N0YXJ0RGF0ZSwgbmV3RW5kRGF0ZSB9ID0gdGhpcy5fY29tcHV0ZVN0YXJ0RW5kRGF0ZSgpO1xuXG4gICAgICAgIGlmICh0aGlzLnRhc2suc3RhcnQgIT09IG5ld1N0YXJ0RGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suc3RhcnQgPSBuZXdTdGFydERhdGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50YXNrLmVuZCAhPT0gbmV3RW5kRGF0ZSkge1xuICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnRhc2suZW5kID0gbmV3RW5kRGF0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25EYXRlQ2hhbmdlXCIsIFtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2ssXG4gICAgICAgICAgICAgICAgbmV3U3RhcnREYXRlLFxuICAgICAgICAgICAgICAgIERhdGVVdGlscy5hZGQobmV3RW5kRGF0ZSwgLTEsIFwic2Vjb25kXCIpLFxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFjdGlvbkNvbXBsZXRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWN0aW9uQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9hY3Rpb25Db21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgfSwgMTAwMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0RGVmYXVsdHMoZ2FudHQ6IGFueSwgdGFzazogYW55KSB7XG4gICAgICAgIHRoaXMuX2FjdGlvbkNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9nYW50dCA9IGdhbnR0O1xuICAgICAgICB0aGlzLl90YXNrID0gdGFzaztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wcmVwYXJlKCkge1xuICAgICAgICB0aGlzLl9wcmVwYXJlVmFsdWVzKCk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVIZWxwZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZVZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW52YWxpZCA9IHRoaXMudGFzay5pbnZhbGlkO1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckhlaWdodDtcbiAgICAgICAgdGhpcy5feCA9IHRoaXMuX2NvbXB1dGVYKCk7XG4gICAgICAgIHRoaXMuX3kgPSB0aGlzLl9jb21wdXRlWSgpO1xuICAgICAgICB0aGlzLl9jb3JuZXJSYWRpdXMgPSB0aGlzLl9nYW50dC5vcHRpb25zLmJhckNvcm5lclJhZGl1cztcbiAgICAgICAgdGhpcy5fZHVyYXRpb24gPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suZW5kLCB0aGlzLnRhc2suc3RhcnQsIFwibWludXRlXCIpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5zdGVwIC8gNjAuMDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB0aGlzLl9nYW50dC5vcHRpb25zLmNvbHVtbldpZHRoICogdGhpcy5fZHVyYXRpb247XG4gICAgICAgIHRoaXMuX2dyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItd3JhcHBlciBcIiArICh0aGlzLnRhc2suY3VzdG9tX2NsYXNzIHx8IFwiXCIpLFxuICAgICAgICAgICAgXCJkYXRhLWlkXCI6IHRoaXMudGFzay5pZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2Jhckdyb3VwID0gY3JlYXRlU1ZHKFwiZ1wiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJiYXItZ3JvdXBcIixcbiAgICAgICAgICAgIGFwcGVuZF90bzogdGhpcy5ncm91cCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJlcGFyZUhlbHBlcnMoKTogdm9pZCB7XG4gICAgICAgIChTVkdFbGVtZW50LnByb3RvdHlwZSBhcyBhbnkpLmdldFggPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gK3RoaXMuZ2V0QXR0cmlidXRlKFwieFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0WSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ5XCIpO1xuICAgICAgICB9O1xuICAgICAgICAoU1ZHRWxlbWVudC5wcm90b3R5cGUgYXMgYW55KS5nZXRXaWR0aCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiArdGhpcy5nZXRBdHRyaWJ1dGUoXCJ3aWR0aFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0SGVpZ2h0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuICt0aGlzLmdldEF0dHJpYnV0ZShcImhlaWdodFwiKTtcbiAgICAgICAgfTtcbiAgICAgICAgKFNWR0VsZW1lbnQucHJvdG90eXBlIGFzIGFueSkuZ2V0RW5kWCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFgoKSArIHRoaXMuZ2V0V2lkdGgoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kcmF3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kcmF3QmFyKCk7XG4gICAgICAgIHRoaXMuX2RyYXdMYWJlbCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2RyYXdCYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VsZW1lbnQgPSBjcmVhdGVTVkcoXCJyZWN0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3gsXG4gICAgICAgICAgICB5OiB0aGlzLl95LFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuX3dpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLl9oZWlnaHQsXG4gICAgICAgICAgICByeDogdGhpcy5fY29ybmVyUmFkaXVzLFxuICAgICAgICAgICAgcnk6IHRoaXMuX2Nvcm5lclJhZGl1cyxcbiAgICAgICAgICAgIGNsYXNzOiBcImJhclwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgICAgIGZpbGw6IHRoaXMudGFzay5jb2xvcixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYW5pbWF0ZVNWRyh0aGlzLmVsZW1lbnQsIFwid2lkdGhcIiwgMCwgdGhpcy5fd2lkdGgpO1xuXG4gICAgICAgIGlmICh0aGlzLl9pbnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChcImJhci1pbnZhbGlkXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZHJhd0xhYmVsKCk6IHZvaWQge1xuICAgICAgICBjcmVhdGVTVkcoXCJ0ZXh0XCIsIHtcbiAgICAgICAgICAgIHg6IHRoaXMuX3ggKyB0aGlzLl93aWR0aCAvIDIsXG4gICAgICAgICAgICB5OiB0aGlzLl95ICsgdGhpcy5faGVpZ2h0IC8gMixcbiAgICAgICAgICAgIGlubmVySFRNTDogdGhpcy50YXNrLnNob3dUYXNrTmFtZSA/IHRoaXMudGFzay5uYW1lIDogXCJcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImJhci1sYWJlbFwiLFxuICAgICAgICAgICAgYXBwZW5kX3RvOiB0aGlzLl9iYXJHcm91cCxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGxhYmVscyBnZXQgQkJveCBpbiB0aGUgbmV4dCB0aWNrXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLl91cGRhdGVMYWJlbFBvc2l0aW9uKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2JpbmQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBDbGlja0V2ZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXR1cENsaWNrRXZlbnQoKTogdm9pZCB7XG4gICAgICAgIC8vVE9ET1xuXG4gICAgICAgIGlmKHRoaXMuX2dhbnR0Lm9wdGlvbnMuaGFzUG9wdXApIHtcbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBcIiArIHRoaXMuX2dhbnR0Lm9wdGlvbnMucG9wdXBUcmlnZ2VyLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd1BvcHVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2dhbnR0LnVuc2VsZWN0X2FsbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwLmNsYXNzTGlzdC5hZGQoXCJhY3RpdmVcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJkYmxjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgLy8ganVzdCBmaW5pc2hlZCBhIG1vdmUgYWN0aW9uLCB3YWl0IGZvciBhIGZldyBzZWNvbmRzXG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2FjdGlvbkNvbXBsZXRlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC50cmlnZ2VyX2V2ZW50KFwib25DbGlja1wiLCBbdGhpcy50YXNrXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAkLm9uKHRoaXMuZ3JvdXAsIFwibW91c2VlbnRlclwiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuX2lzUG9wVXBPcGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dQb3B1cCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiBlLmNsaWVudFgsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiB0aGlzLmdyb3VwLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIDMwLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdtaWRkbGUnXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc1BvcFVwT3BlbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgbnVsbCk7XG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJtb3VzZWxlYXZlXCIsIChlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5oaWRlX3BvcHVwKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNQb3BVcE9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIH0sIG51bGwpO1xuXG5cbiAgICAgICAgICAgICQub24odGhpcy5ncm91cCwgXCJmb2N1cyBjbGlja1wiLCAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9hY3Rpb25Db21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudW5zZWxlY3RfYWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXAuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQudHJpZ2dlcl9ldmVudChcIm9uQ2xpY2tcIiwgW3RoaXMudGFza10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG51bGwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2hvd1BvcHVwKGFyZ3M/OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dhbnR0LmJhcl9iZWluZ19kcmFnZ2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdWJ0aXRsZTogYW55ID0ge307XG5cbiAgICAgICAgaWYgKCF0aGlzLl9nYW50dC5vcHRpb25zLnNob3dPbmx5SG91cnMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0RGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdERC9NTS9ZWVlZJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3VidGl0bGUuZW5kRGF0ZSA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLmVuZCxcbiAgICAgICAgICAgICAgICAnREQvTU0vWVlZWScsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fZ2FudHQub3B0aW9ucy5zaG93T25seURheXMpIHtcbiAgICAgICAgICAgIHN1YnRpdGxlLnN0YXJ0SG91ciA9IERhdGVVdGlscy5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy50YXNrLnN0YXJ0LFxuICAgICAgICAgICAgICAgICdISDptbTpzcycsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2FudHQub3B0aW9ucy5sYW5ndWFnZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1YnRpdGxlLmVuZEhvdXIgPSBEYXRlVXRpbHMuZm9ybWF0KFxuICAgICAgICAgICAgICAgIHRoaXMudGFzay5lbmQsXG4gICAgICAgICAgICAgICAgJ0hIOm1tOnNzJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmxhbmd1YWdlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZ2FudHQuc2hvd19wb3B1cCh7XG4gICAgICAgICAgICB0YXJnZXRfZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMudGFzay5uYW1lLFxuICAgICAgICAgICAgc3VidGl0bGU6IHN1YnRpdGxlLFxuICAgICAgICAgICAgdGFzazogdGhpcy50YXNrLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jb21wdXRlU3RhcnRFbmREYXRlKCk6IHsgbmV3U3RhcnREYXRlOiBEYXRlLCBuZXdFbmREYXRlOiBEYXRlIH0ge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHhJblVuaXRzID0gYmFyLmdldFgoKSAvIHRoaXMuX2dhbnR0Lm9wdGlvbnMuY29sdW1uV2lkdGg7XG4gICAgICAgIGNvbnN0IG5ld1N0YXJ0RGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5taW5EYXRlLFxuICAgICAgICAgICAgeEluVW5pdHMgKiB0aGlzLl9nYW50dC5vcHRpb25zLnN0ZXAsXG4gICAgICAgICAgICBcImhvdXJcIlxuICAgICAgICApO1xuICAgICAgICBjb25zdCB3aWR0aF9pbl91bml0cyA9IGJhci5nZXRXaWR0aCgpIC8gdGhpcy5fZ2FudHQub3B0aW9ucy5jb2x1bW5XaWR0aDtcbiAgICAgICAgY29uc3QgbmV3RW5kRGF0ZSA9IERhdGVVdGlscy5hZGQoXG4gICAgICAgICAgICBuZXdTdGFydERhdGUsXG4gICAgICAgICAgICB3aWR0aF9pbl91bml0cyAqIHRoaXMuX2dhbnR0Lm9wdGlvbnMuc3RlcCxcbiAgICAgICAgICAgIFwiaG91clwiXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHsgbmV3U3RhcnREYXRlLCBuZXdFbmREYXRlIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVgoKSB7XG4gICAgICAgIGNvbnN0IHsgc3RlcCwgY29sdW1uV2lkdGggfSA9IHRoaXMuX2dhbnR0Lm9wdGlvbnM7XG5cbiAgICAgICAgbGV0IHg7XG4gICAgICAgIGlmICh0aGlzLl9nYW50dC52aWV3X2lzKFtWaWV3TW9kZS5RdWFydGVySG91ciwgVmlld01vZGUuSG91ciwgVmlld01vZGUuUXVhcnRlckRheSwgVmlld01vZGUuSGFsZkRheSwgVmlld01vZGUuRGF5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSBEYXRlVXRpbHMuZGlmZih0aGlzLnRhc2suc3RhcnQsIHRoaXMuX2dhbnR0Lm1pbkRhdGUsIFwibWludXRlc1wiKTtcbiAgICAgICAgICAgIHggPSAoZGlmZiAvIHN0ZXApICogKGNvbHVtbldpZHRoIC8gNjApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlmZiA9IERhdGVVdGlscy5kaWZmKHRoaXMudGFzay5zdGFydCwgdGhpcy5fZ2FudHQubWluRGF0ZSwgXCJob3VyXCIpO1xuICAgICAgICAgICAgeCA9IChkaWZmIC8gc3RlcCkgKiAoY29sdW1uV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcHV0ZVkoKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLmhlYWRlckhlaWdodCArXG4gICAgICAgICAgICB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcgK1xuICAgICAgICAgICAgdGhpcy50YXNrLl9pbmRleCAqICh0aGlzLl9oZWlnaHQgKyB0aGlzLl9nYW50dC5vcHRpb25zLnBhZGRpbmcpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXR0cihlbGVtZW50OiBhbnksIGF0dHI6IGFueSwgdmFsdWU6IGFueSkge1xuICAgICAgICB2YWx1ZSA9ICt2YWx1ZTtcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVMYWJlbFBvc2l0aW9uKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBiYXIgPSB0aGlzLmVsZW1lbnQsXG4gICAgICAgICAgICBsYWJlbCA9IHRoaXMuZ3JvdXAucXVlcnlTZWxlY3RvcihcIi5iYXItbGFiZWxcIik7XG5cbiAgICAgICAgaWYgKGxhYmVsLmdldEJCb3goKS53aWR0aCA+IGJhci5nZXRXaWR0aCgpKSB7XG4gICAgICAgICAgICBsYWJlbC5jbGFzc0xpc3QuYWRkKFwiYmlnXCIpO1xuICAgICAgICAgICAgbGFiZWwuc2V0QXR0cmlidXRlKFwieFwiLCBiYXIuZ2V0WCgpICsgYmFyLmdldFdpZHRoKCkgKyA1KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhYmVsLmNsYXNzTGlzdC5yZW1vdmUoXCJiaWdcIik7XG4gICAgICAgICAgICBsYWJlbC5zZXRBdHRyaWJ1dGUoXCJ4XCIsIGJhci5nZXRYKCkgKyBiYXIuZ2V0V2lkdGgoKSAvIDIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQXJyb3dQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYXJyb3dzID0gdGhpcy5fYXJyb3dzIHx8IFtdO1xuICAgICAgICBmb3IgKGxldCBhcnJvdyBvZiB0aGlzLl9hcnJvd3MpIHtcbiAgICAgICAgICAgIGFycm93LnVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -12,5 +12,9 @@ export const defaultOptions = {
|
|
|
12
12
|
popupTrigger: "click",
|
|
13
13
|
customPopupHtml: null,
|
|
14
14
|
language: "en",
|
|
15
|
+
allowMovement: true,
|
|
16
|
+
hasPopup: true,
|
|
17
|
+
showOnlyHours: false,
|
|
18
|
+
showOnlyDays: false,
|
|
15
19
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2dhbnR0L2NvbXBvbmVudHMvZ2FudHQvZ2FudHQtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFZO0lBQ25DLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsSUFBSSxFQUFFLEVBQUU7SUFDUixTQUFTLEVBQUUsRUFBRTtJQUNiLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUc7SUFDdEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsWUFBWSxFQUFFLE9BQU87SUFDckIsZUFBZSxFQUFFLElBQUk7SUFDckIsUUFBUSxFQUFFLElBQUk7SUFDZCxhQUFhLEVBQUUsSUFBSTtJQUNuQixRQUFRLEVBQUUsSUFBSTtJQUNkLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLFlBQVksRUFBRSxLQUFLO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25zIH0gZnJvbSBcIi4uLy4uL21vZGVscy9vcHRpb25zXCI7XG5pbXBvcnQgeyBWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdmlldy1tb2RlXCI7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0T3B0aW9uczogT3B0aW9ucyA9IHtcbiAgICBoZWFkZXJIZWlnaHQ6IDk0LFxuICAgIGNvbHVtbldpZHRoOiAzMCxcbiAgICBzdGVwOiAyNCxcbiAgICBiYXJIZWlnaHQ6IDIwLFxuICAgIGJhckNvcm5lclJhZGl1czogMCxcbiAgICBhcnJvd0N1cnZlOiA0LFxuICAgIHBhZGRpbmc6IDI0LFxuICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5EYXksXG4gICAgZGF0ZUZvcm1hdDogXCJZWVlZLU1NLUREXCIsXG4gICAgcG9wdXBUcmlnZ2VyOiBcImNsaWNrXCIsXG4gICAgY3VzdG9tUG9wdXBIdG1sOiBudWxsLFxuICAgIGxhbmd1YWdlOiBcImVuXCIsXG4gICAgYWxsb3dNb3ZlbWVudDogdHJ1ZSxcbiAgICBoYXNQb3B1cDogdHJ1ZSxcbiAgICBzaG93T25seUhvdXJzOiBmYWxzZSxcbiAgICBzaG93T25seURheXM6IGZhbHNlLFxufTtcbiJdfQ==
|