@plait/core 0.0.48 → 0.0.50
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/board/board.component.d.ts +6 -1
- package/esm2020/board/board.component.mjs +49 -8
- package/esm2020/core/toolbar/toolbar.component.mjs +2 -2
- package/esm2020/interfaces/cursor.mjs +2 -1
- package/esm2020/plugins/create-board.mjs +2 -2
- package/esm2020/plugins/with-selection.mjs +3 -3
- package/esm2020/public-api.mjs +6 -6
- package/esm2020/{transfroms → transforms}/general.mjs +1 -1
- package/esm2020/{transfroms → transforms}/index.mjs +1 -1
- package/esm2020/{transfroms → transforms}/node.mjs +1 -1
- package/esm2020/{transfroms → transforms}/selection.mjs +1 -1
- package/esm2020/{transfroms → transforms}/viewport.mjs +1 -1
- package/esm2020/utils/board.mjs +1 -70
- package/esm2020/utils/index.mjs +6 -5
- package/esm2020/utils/matrix.mjs +84 -0
- package/fesm2015/plait-core.mjs +175 -118
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +174 -117
- package/fesm2020/plait-core.mjs.map +1 -1
- package/interfaces/cursor.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +5 -5
- package/{transfroms → transforms}/general.d.ts +0 -0
- package/{transfroms → transforms}/index.d.ts +0 -0
- package/{transfroms → transforms}/node.d.ts +0 -0
- package/{transfroms → transforms}/selection.d.ts +0 -0
- package/{transfroms → transforms}/viewport.d.ts +0 -0
- package/utils/board.d.ts +5 -23
- package/utils/index.d.ts +5 -4
- package/utils/matrix.d.ts +12 -0
|
@@ -15,10 +15,12 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
15
15
|
board: PlaitBoard;
|
|
16
16
|
roughSVG: RoughSVG;
|
|
17
17
|
destroy$: Subject<any>;
|
|
18
|
-
|
|
18
|
+
autoFitPadding: number;
|
|
19
19
|
isMoving: boolean;
|
|
20
20
|
scrollLeft: number;
|
|
21
21
|
scrollTop: number;
|
|
22
|
+
focusPoint: number[];
|
|
23
|
+
matrix: number[];
|
|
22
24
|
plaitValue: PlaitElement[];
|
|
23
25
|
plaitViewport: Viewport;
|
|
24
26
|
plaitPlugins: PlaitPlugin[];
|
|
@@ -37,6 +39,7 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
37
39
|
contentContainer: ElementRef;
|
|
38
40
|
constructor(cdr: ChangeDetectorRef, renderer2: Renderer2, elementRef: ElementRef);
|
|
39
41
|
ngOnInit(): void;
|
|
42
|
+
setMatrix(): void;
|
|
40
43
|
ngOnChanges(changes: SimpleChanges): void;
|
|
41
44
|
ngAfterViewInit(): void;
|
|
42
45
|
private initializePlugins;
|
|
@@ -44,6 +47,8 @@ export declare class PlaitBoardComponent implements OnInit, OnChanges, AfterView
|
|
|
44
47
|
initContainerSize(): void;
|
|
45
48
|
resizeViewport(): void;
|
|
46
49
|
setScroll(left: number, top: number): void;
|
|
50
|
+
updateScroll(): void;
|
|
51
|
+
calculateViewport(): void;
|
|
47
52
|
viewportChange(): void;
|
|
48
53
|
updateViewport(): void;
|
|
49
54
|
trackBy: (index: number, element: PlaitElement) => number;
|
|
@@ -9,8 +9,8 @@ import { withBoard } from '../plugins/with-board';
|
|
|
9
9
|
import { withHistory } from '../plugins/with-history';
|
|
10
10
|
import { withMove } from '../plugins/with-move';
|
|
11
11
|
import { withSelection } from '../plugins/with-selection';
|
|
12
|
-
import { Transforms } from '../
|
|
13
|
-
import { calculateZoom, getViewBox, getViewportClientBox, updateCursorStatus } from '../utils
|
|
12
|
+
import { Transforms } from '../transforms';
|
|
13
|
+
import { calculateBBox, calculateZoom, getViewBox, getViewportClientBox, invert, transformMat3, updateCursorStatus } from '../utils';
|
|
14
14
|
import { BOARD_TO_ON_CHANGE, HOST_TO_ROUGH_SVG, IS_TEXT_EDITABLE, PLAIT_BOARD_TO_COMPONENT } from '../utils/weak-maps';
|
|
15
15
|
import * as i0 from "@angular/core";
|
|
16
16
|
import * as i1 from "../core/element/element.component";
|
|
@@ -25,6 +25,8 @@ export class PlaitBoardComponent {
|
|
|
25
25
|
this.destroy$ = new Subject();
|
|
26
26
|
this.autoFitPadding = 8;
|
|
27
27
|
this.isMoving = false;
|
|
28
|
+
this.focusPoint = [];
|
|
29
|
+
this.matrix = [];
|
|
28
30
|
this.plaitValue = [];
|
|
29
31
|
this.plaitPlugins = [];
|
|
30
32
|
this.plaitChange = new EventEmitter();
|
|
@@ -71,10 +73,18 @@ export class PlaitBoardComponent {
|
|
|
71
73
|
if (this.board.operations.some(op => PlaitOperation.isSetViewportOperation(op))) {
|
|
72
74
|
this.updateViewport();
|
|
73
75
|
}
|
|
76
|
+
if (this.board.operations.some(op => ['set_node', 'remove_node'].includes(op.type))) {
|
|
77
|
+
this.calculateViewport();
|
|
78
|
+
}
|
|
74
79
|
this.plaitChange.emit(changeEvent);
|
|
75
80
|
});
|
|
76
81
|
this.hasInitialized = true;
|
|
77
82
|
}
|
|
83
|
+
setMatrix() {
|
|
84
|
+
const viewBox = getViewBox(this.board);
|
|
85
|
+
const zoom = this.board.viewport.zoom;
|
|
86
|
+
this.matrix = [zoom, 0, 0, 0, zoom, 0, -this.scrollLeft - zoom * viewBox.minX, -this.scrollTop - zoom * viewBox.minY, 1];
|
|
87
|
+
}
|
|
78
88
|
ngOnChanges(changes) {
|
|
79
89
|
if (this.hasInitialized) {
|
|
80
90
|
const valueChange = changes['plaitValue'];
|
|
@@ -214,6 +224,39 @@ export class PlaitBoardComponent {
|
|
|
214
224
|
offsetYRatio: scrollTopRatio
|
|
215
225
|
});
|
|
216
226
|
}
|
|
227
|
+
updateScroll() {
|
|
228
|
+
const container = this.contentContainer.nativeElement;
|
|
229
|
+
container.scrollTo({
|
|
230
|
+
top: this.scrollTop,
|
|
231
|
+
left: this.scrollLeft
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
calculateViewport() {
|
|
235
|
+
const viewBox = getViewBox(this.board);
|
|
236
|
+
const { minX, minY, viewportWidth } = viewBox;
|
|
237
|
+
const viewportBox = getViewportClientBox(this.board);
|
|
238
|
+
const nweHhBox = calculateBBox(this.board);
|
|
239
|
+
let scrollLeft = this.scrollLeft;
|
|
240
|
+
let scrollTop = this.scrollTop;
|
|
241
|
+
const zoom = this.board.viewport.zoom;
|
|
242
|
+
const matrix = this.matrix;
|
|
243
|
+
const focusPoint = this.focusPoint;
|
|
244
|
+
if (matrix) {
|
|
245
|
+
const g = [focusPoint[0] - viewportBox.x, focusPoint[1] - viewportBox.y, 1];
|
|
246
|
+
const b = invert([], matrix);
|
|
247
|
+
const x = transformMat3([], [g[0], g[1], 1], b);
|
|
248
|
+
const k = [zoom, 0, 0, 0, zoom, 0, -zoom * minX, -zoom * minY, 1];
|
|
249
|
+
const c = transformMat3([], x, k);
|
|
250
|
+
scrollLeft = c[0] - g[0];
|
|
251
|
+
scrollTop = c[1] - g[1];
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
scrollLeft = (viewportWidth - viewportBox.width) / 2;
|
|
255
|
+
scrollTop = viewportBox.height / 2 - nweHhBox.top;
|
|
256
|
+
}
|
|
257
|
+
this.setScroll(scrollLeft, scrollTop);
|
|
258
|
+
this.updateViewport();
|
|
259
|
+
}
|
|
217
260
|
viewportChange() {
|
|
218
261
|
const viewBox = getViewBox(this.board);
|
|
219
262
|
const offsetXRatio = this.board.viewport.offsetXRatio;
|
|
@@ -229,15 +272,13 @@ export class PlaitBoardComponent {
|
|
|
229
272
|
if (width > 0 && height > 0) {
|
|
230
273
|
this.renderer2.setAttribute(this.host, 'viewBox', box.join());
|
|
231
274
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
top: this.scrollTop,
|
|
235
|
-
left: this.scrollLeft
|
|
236
|
-
});
|
|
275
|
+
this.focusPoint = [viewportBox.x, viewportBox.y];
|
|
276
|
+
this.setMatrix();
|
|
237
277
|
}
|
|
238
278
|
updateViewport() {
|
|
239
279
|
this.resizeViewport();
|
|
240
280
|
this.viewportChange();
|
|
281
|
+
this.updateScroll();
|
|
241
282
|
}
|
|
242
283
|
// 拖拽模式
|
|
243
284
|
changeMoveMode(cursorStatus) {
|
|
@@ -390,4 +431,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
390
431
|
type: ViewChild,
|
|
391
432
|
args: ['container', { read: ElementRef, static: true }]
|
|
392
433
|
}] } });
|
|
393
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFJTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsd0JBQXdCLEVB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Q0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWdCLFFBQVEsRUFBRSxTQUFTLENBQUM7YUFDeEMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWdCLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWlCLFFBQVEsRUFBRSxNQUFNLENBQUM7YUFDdEMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLENBQUMsZ0JBQWdC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Ozs7Ozs7O0tBd0JUOzRGQUdRLG1CQUFtQjtrQkE3Qi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0JUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDt5SkFrQlksVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFlSCxTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTztnQkFNaEIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGNBQWM7Z0JBTXZCLE9BQU87c0JBRFYsV0FBVzt1QkFBQyxlQUFlO2dCQU01QixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJM0Isa0JBQWtCO3NCQUR4QixZQUFZO3VCQUFDLGNBQWM7Z0JBSTVCLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgcm91Z2ggZnJvbSAncm91Z2hqcy9iaW4vcm91Z2gnO1xuaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNDUk9MTF9CQVJfV0lEVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZUN1cnNvclN0YXR1cywgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0Qm9hcmRDaGFuZ2VFdmVudCwgUGxhaXRCb2FyZE9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdFBsdWdpbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcGx1Z2luJztcbmltcG9ydCB7IFZpZXdwb3J0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy92aWV3cG9ydCc7XG5pbXBvcnQgeyBjcmVhdGVCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvY3JlYXRlLWJvYXJkJztcbmltcG9ydCB7IHdpdGhCb2FyZCB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1ib2FyZCc7XG5pbXBvcnQgeyB3aXRoSGlzdG9yeSB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1oaXN0b3J5JztcbmltcG9ydCB7IHdpdGhNb3ZlIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1vdmUnO1xuaW1wb3J0IHsgd2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZnJvbXMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlWm9vbSwgZ2V0Vmlld0JveCwgZ2V0Vmlld3BvcnRDbGllbnRCb3gsIHVwZGF0ZUN1cnNvclN0YXR1cyB9IGZyb20gJy4uL3V0aWxzL2JvYXJkJztcbmltcG9ydCB7IEJPQVJEX1RPX09OX0NIQU5HRSwgSE9TVF9UT19ST1VHSF9TVkcsIElTX1RFWFRfRURJVEFCTEUsIFBMQUlUX0JPQVJEX1RPX0NPTVBPTkVOVCB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtYm9hcmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAjY29udGFpbmVyPlxuICAgICAgICAgICAgPHN2ZyAjc3ZnIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPjwvc3ZnPlxuICAgICAgICAgICAgPHBsYWl0LWVsZW1lbnRcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBib2FyZC5jaGlsZHJlbjsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgW2JvYXJkXT1cImJvYXJkXCJcbiAgICAgICAgICAgICAgICBbdmlld3BvcnRdPVwiYm9hcmQudmlld3BvcnRcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwiYm9hcmQuc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbaG9zdF09XCJob3N0XCJcbiAgICAgICAgICAgID48L3BsYWl0LWVsZW1lbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cGxhaXQtdG9vbGJhclxuICAgICAgICAgICAgKm5nSWY9XCJpc0ZvY3VzZWQgJiYgIXRvb2xiYXJUZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICBbY3Vyc29yU3RhdHVzXT1cImJvYXJkLmN1cnNvclwiXG4gICAgICAgICAgICBbdmlld1pvb21dPVwiYm9hcmQudmlld3BvcnQhLnpvb21cIlxuICAgICAgICAgICAgKG1vdmVIYW5kbGUpPVwiY2hhbmdlTW92ZU1vZGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYWRhcHRIYW5kbGUpPVwiYWRhcHRIYW5kbGUoKVwiXG4gICAgICAgICAgICAoem9vbUluSGFuZGxlKT1cInpvb21JbkhhbmRsZSgpXCJcbiAgICAgICAgICAgICh6b29tT3V0SGFuZGxlKT1cInpvb21PdXRIYW5kbGUoKVwiXG4gICAgICAgICAgICAocmVzZXRab29tSGFuZGVsKT1cInJlc2V0Wm9vbUhhbmRlbCgpXCJcbiAgICAgICAgPjwvcGxhaXQtdG9vbGJhcj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIGAsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGxhaXRCb2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIGhhc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBib2FyZCE6IFBsYWl0Qm9hcmQ7XG5cbiAgICByb3VnaFNWRyE6IFJvdWdoU1ZHO1xuXG4gICAgZGVzdHJveSQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGF1dG9GaXRQYWRkaW5nID0gODtcblxuICAgIHB1YmxpYyBpc01vdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgc2Nyb2xsTGVmdCE6IG51bWJlcjtcblxuICAgIHNjcm9sbFRvcCE6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIHBsYWl0VmFsdWU6IFBsYWl0RWxlbWVudFtdID0gW107XG5cbiAgICBASW5wdXQoKSBwbGFpdFZpZXdwb3J0ITogVmlld3BvcnQ7XG5cbiAgICBASW5wdXQoKSBwbGFpdFBsdWdpbnM6IFBsYWl0UGx1Z2luW10gPSBbXTtcblxuICAgIEBJbnB1dCgpIHBsYWl0T3B0aW9ucyE6IFBsYWl0Qm9hcmRPcHRpb25zO1xuXG4gICAgQE91dHB1dCgpIHBsYWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwbGFpdEJvYXJkSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxQbGFpdEJvYXJkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBnZXQgaXNNb3ZlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQuY3Vyc29yID09PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmU7XG4gICAgfVxuXG4gICAgZ2V0IGhvc3QoKTogU1ZHRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLnN2Zy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkPy5zZWxlY3Rpb247XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGhvc3RDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIGBwbGFpdC1ib2FyZC1jb250YWluZXIgJHt0aGlzLmJvYXJkLmN1cnNvcn1gO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucmVhZG9ubHknKVxuICAgIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQub3B0aW9ucy5yZWFkb25seTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vdmluZycpXG4gICAgZ2V0IG1vdmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQuY3Vyc29yID09PSBCYXNlQ3Vyc29yU3RhdHVzLm1vdmUgJiYgdGhpcy5pc01vdmluZztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvY3VzZWQnKVxuICAgIGdldCBmb2N1c2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZvY3VzZWQ7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZCgnc3ZnJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBzdmchOiBFbGVtZW50UmVmO1xuXG4gICAgQENvbnRlbnRDaGlsZCgncGxhaXRUb29sYmFyJylcbiAgICBwdWJsaWMgdG9vbGJhclRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgY29udGVudENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJvdWdoU1ZHID0gcm91Z2guc3ZnKHRoaXMuaG9zdCBhcyBTVkdTVkdFbGVtZW50LCB7IG9wdGlvbnM6IHsgcm91Z2huZXNzOiAwLCBzdHJva2VXaWR0aDogMSB9IH0pO1xuICAgICAgICBIT1NUX1RPX1JPVUdIX1NWRy5zZXQodGhpcy5ob3N0LCByb3VnaFNWRyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVBsdWdpbnMoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRXZlbnRzKCk7XG4gICAgICAgIFBMQUlUX0JPQVJEX1RPX0NPTVBPTkVOVC5zZXQodGhpcy5ib2FyZCwgdGhpcyk7XG4gICAgICAgIEJPQVJEX1RPX09OX0NIQU5HRS5zZXQodGhpcy5ib2FyZCwgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IFBsYWl0Qm9hcmRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5ib2FyZC5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICBvcGVyYXRpb25zOiB0aGlzLmJvYXJkLm9wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgdmlld3BvcnQ6IHRoaXMuYm9hcmQudmlld3BvcnQsXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uOiB0aGlzLmJvYXJkLnNlbGVjdGlvblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLmJvYXJkLm9wZXJhdGlvbnMuc29tZShvcCA9PiBQbGFpdE9wZXJhdGlvbi5pc1NldFZpZXdwb3J0T3BlcmF0aW9uKG9wKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBsYWl0Q2hhbmdlLmVtaXQoY2hhbmdlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2UgPSBjaGFuZ2VzWydwbGFpdFZhbHVlJ107XG4gICAgICAgICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlc1sncGxhaXRPcHRpb25zJ107XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZUNoYW5nZSkgdGhpcy5ib2FyZC5jaGlsZHJlbiA9IHZhbHVlQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGlmIChvcHRpb25zKSB0aGlzLmJvYXJkLm9wdGlvbnMgPSBvcHRpb25zLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBsYWl0Qm9hcmRJbml0aWFsaXplZC5lbWl0KHRoaXMuYm9hcmQpO1xuICAgICAgICB0aGlzLmluaXRDb250YWluZXJTaXplKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVQbHVnaW5zKCkge1xuICAgICAgICBsZXQgYm9hcmQgPSB3aXRoTW92ZSh3aXRoSGlzdG9yeSh3aXRoU2VsZWN0aW9uKHdpdGhCb2FyZChjcmVhdGVCb2FyZCh0aGlzLmhvc3QsIHRoaXMucGxhaXRWYWx1ZSwgdGhpcy5wbGFpdE9wdGlvbnMpKSkpKTtcbiAgICAgICAgdGhpcy5wbGFpdFBsdWdpbnMuZm9yRWFjaChwbHVnaW4gPT4ge1xuICAgICAgICAgICAgYm9hcmQgPSBwbHVnaW4oYm9hcmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5ib2FyZCA9IGJvYXJkO1xuICAgICAgICBpZiAodGhpcy5wbGFpdFZpZXdwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLmJvYXJkLnZpZXdwb3J0ID0gdGhpcy5wbGFpdFZpZXdwb3J0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRXZlbnRzKCkge1xuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2Vkb3duJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5tb3VzZWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2Vtb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmdsb2JhbE1vdXNldXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ2RibGNsaWNrJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5kYmxjbGljayhldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFJU19URVhUX0VESVRBQkxFLmdldCh0aGlzLmJvYXJkKSAmJiAhIXRoaXMuYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LmtleXVwKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxDbGlwYm9hcmRFdmVudD4oZG9jdW1lbnQsICdjb3B5JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAncGFzdGUnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhSVNfVEVYVF9FRElUQUJMRS5nZXQodGhpcy5ib2FyZCkgJiYgISF0aGlzLmJvYXJkLnNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uaW5zZXJ0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY3V0JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uc2V0RnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8uZGVsZXRlRnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8V2hlZWxFdmVudD4odGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICd3aGVlbCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChlOiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5pc0ZvY3VzZWQ7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXRoaXMuaXNGb2N1c2VkO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsTGVmdDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3A7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTY3JvbGwoc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHdpbmRvdy5vbnJlc2l6ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlld3BvcnQoKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBpbml0Q29udGFpbmVyU2l6ZSgpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdycsICdhdXRvJyk7XG4gICAgICAgIHRoaXMucmVzaXplVmlld3BvcnQoKTtcbiAgICB9XG5cbiAgICByZXNpemVWaWV3cG9ydCgpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ/LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXI/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBoaWRlU2Nyb2xsYmFyID0gdGhpcy5ib2FyZC5vcHRpb25zLmhpZGVTY3JvbGxiYXI7XG4gICAgICAgIGNvbnN0IHNjcm9sbEJhcldpZHRoID0gaGlkZVNjcm9sbGJhciA/IFNDUk9MTF9CQVJfV0lEVEggOiAwO1xuICAgICAgICBjb25zdCB3aWR0aCA9IGAke2NvbnRhaW5lclJlY3Qud2lkdGggKyBzY3JvbGxCYXJXaWR0aH1weGA7XG4gICAgICAgIGNvbnN0IGhlaWdodCA9IGAke2NvbnRhaW5lclJlY3QuaGVpZ2h0ICsgc2Nyb2xsQmFyV2lkdGh9cHhgO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCB3aWR0aCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgaGVpZ2h0KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdtYXhXaWR0aCcsIHdpZHRoKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsICdtYXhIZWlnaHQnLCBoZWlnaHQpO1xuICAgIH1cblxuICAgIHNldFNjcm9sbChsZWZ0OiBudW1iZXIsIHRvcDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9IGxlZnQ7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wID0gdG9wO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEJveCA9IGdldFZpZXdwb3J0Q2xpZW50Qm94KHRoaXMuYm9hcmQpO1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdFJhdGlvID0gbGVmdCAvICh2aWV3Qm94LnZpZXdwb3J0V2lkdGggLSB2aWV3cG9ydEJveC53aWR0aCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbFRvcFJhdGlvID0gdG9wIC8gKHZpZXdCb3gudmlld3BvcnRIZWlnaHQgLSB2aWV3cG9ydEJveC5oZWlnaHQpO1xuXG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoe1xuICAgICAgICAgICAgb2Zmc2V0WFJhdGlvOiBzY3JvbGxMZWZ0UmF0aW8sXG4gICAgICAgICAgICBvZmZzZXRZUmF0aW86IHNjcm9sbFRvcFJhdGlvXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZpZXdwb3J0Q2hhbmdlKCkge1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WFJhdGlvID0gdGhpcy5ib2FyZC52aWV3cG9ydC5vZmZzZXRYUmF0aW87XG4gICAgICAgIGNvbnN0IG9mZnNldFlSYXRpbyA9IHRoaXMuYm9hcmQudmlld3BvcnQub2Zmc2V0WVJhdGlvO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEJveCA9IGdldFZpZXdwb3J0Q2xpZW50Qm94KHRoaXMuYm9hcmQpO1xuICAgICAgICBjb25zdCB7IG1pblgsIG1pblksIHdpZHRoLCBoZWlnaHQsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0IH0gPSB2aWV3Qm94O1xuICAgICAgICBjb25zdCBib3ggPSBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG4gICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9ICh2aWV3cG9ydFdpZHRoIC0gdmlld3BvcnRCb3gud2lkdGgpICogb2Zmc2V0WFJhdGlvO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9ICh2aWV3cG9ydEhlaWdodCAtIHZpZXdwb3J0Qm94LmhlaWdodCkgKiBvZmZzZXRZUmF0aW87XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5ob3N0LCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmhvc3QsICd3aWR0aCcsIGAke3ZpZXdwb3J0V2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5ob3N0LCAnaGVpZ2h0JywgYCR7dmlld3BvcnRIZWlnaHR9cHhgKTtcblxuICAgICAgICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3QsICd2aWV3Qm94JywgYm94LmpvaW4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnRhaW5lci5zY3JvbGxUbyh7XG4gICAgICAgICAgICB0b3A6IHRoaXMuc2Nyb2xsVG9wLFxuICAgICAgICAgICAgbGVmdDogdGhpcy5zY3JvbGxMZWZ0XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpZXdwb3J0KCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVZpZXdwb3J0KCk7XG4gICAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfTtcblxuICAgIC8vIOaLluaLveaooeW8j1xuICAgIGNoYW5nZU1vdmVNb2RlKGN1cnNvclN0YXR1czogQmFzZUN1cnNvclN0YXR1cykge1xuICAgICAgICB1cGRhdGVDdXJzb3JTdGF0dXModGhpcy5ib2FyZCwgY3Vyc29yU3RhdHVzKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8g6YCC5bqU55S75biDXG4gICAgYWRhcHRIYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0Qm94ID0gZ2V0Vmlld3BvcnRDbGllbnRCb3godGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IHJvb3RHcm91cCA9IHRoaXMuaG9zdC5maXJzdENoaWxkO1xuICAgICAgICBjb25zdCByb290R3JvdXBCb3ggPSAocm9vdEdyb3VwIGFzIFNWR0dyYXBoaWNzRWxlbWVudCkuZ2V0QkJveCgpO1xuICAgICAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gdmlld3BvcnRCb3gud2lkdGggLSAyICogdGhpcy5hdXRvRml0UGFkZGluZztcbiAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSB2aWV3cG9ydEJveC5oZWlnaHQgLSAyICogdGhpcy5hdXRvRml0UGFkZGluZztcblxuICAgICAgICBsZXQgem9vbSA9IHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPCByb290R3JvdXBCb3gud2lkdGggfHwgdmlld3BvcnRIZWlnaHQgPCByb290R3JvdXBCb3guaGVpZ2h0KSB7XG4gICAgICAgICAgICB6b29tID0gTWF0aC5taW4odmlld3BvcnRXaWR0aCAvIHJvb3RHcm91cEJveC53aWR0aCwgdmlld3BvcnRIZWlnaHQgLyByb290R3JvdXBCb3guaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHpvb20gPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWaWV3cG9ydCh7XG4gICAgICAgICAgICB6b29tLFxuICAgICAgICAgICAgb2Zmc2V0WFJhdGlvOiAwLjUsXG4gICAgICAgICAgICBvZmZzZXRZUmF0aW86IDAuNVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDmlL7lpKdcbiAgICB6b29tSW5IYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHpvb20gPSB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoe1xuICAgICAgICAgICAgem9vbTogY2FsY3VsYXRlWm9vbSh6b29tICsgMC4xKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDnvKnlsI9cbiAgICB6b29tT3V0SGFuZGxlKCkge1xuICAgICAgICBjb25zdCB6b29tID0gdGhpcy5ib2FyZC52aWV3cG9ydC56b29tO1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KHtcbiAgICAgICAgICAgIHpvb206IGNhbGN1bGF0ZVpvb20oem9vbSAtIDAuMSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXRab29tSGFuZGVsKCkge1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KHtcbiAgICAgICAgICAgIHpvb206IDFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0Vmlld3BvcnQob3B0aW9uczogUGFydGlhbDxWaWV3cG9ydD4pIHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmJvYXJkPy52aWV3cG9ydDtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXRWaWV3cG9ydCh0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICAuLi52aWV3cG9ydCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIEhPU1RfVE9fUk9VR0hfU1ZHLmRlbGV0ZSh0aGlzLmhvc3QpO1xuICAgIH1cblxuICAgIG1vdmluZ0NoYW5nZShpc01vdmluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzTW92aW5nID0gaXNNb3Zpbmc7XG4gICAgfVxufVxuIl19
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUlMLE1BQU0sRUFJTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckksT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFp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QWdCO3NCQURmLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCByb3VnaCBmcm9tICdyb3VnaGpzL2Jpbi9yb3VnaCc7XG5pbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU0NST0xMX0JBUl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCYXNlQ3Vyc29yU3RhdHVzLCBQbGFpdE9wZXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRCb2FyZENoYW5nZUV2ZW50LCBQbGFpdEJvYXJkT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0UGx1Z2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbHVnaW4nO1xuaW1wb3J0IHsgVmlld3BvcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcbmltcG9ydCB7IGNyZWF0ZUJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy9jcmVhdGUtYm9hcmQnO1xuaW1wb3J0IHsgd2l0aEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWJvYXJkJztcbmltcG9ydCB7IHdpdGhIaXN0b3J5IH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWhpc3RvcnknO1xuaW1wb3J0IHsgd2l0aE1vdmUgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtbW92ZSc7XG5pbXBvcnQgeyB3aXRoU2VsZWN0aW9uIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVCQm94LCBjYWxjdWxhdGVab29tLCBnZXRWaWV3Qm94LCBnZXRWaWV3cG9ydENsaWVudEJveCwgaW52ZXJ0LCB0cmFuc2Zvcm1NYXQzLCB1cGRhdGVDdXJzb3JTdGF0dXMgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBCT0FSRF9UT19PTl9DSEFOR0UsIEhPU1RfVE9fUk9VR0hfU1ZHLCBJU19URVhUX0VESVRBQkxFLCBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LWJvYXJkJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgI2NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzdmcgI3N2ZyB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj48L3N2Zz5cbiAgICAgICAgICAgIDxwbGFpdC1lbGVtZW50XG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgYm9hcmQuY2hpbGRyZW47IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5XCJcbiAgICAgICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtlbGVtZW50XT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtib2FyZF09XCJib2FyZFwiXG4gICAgICAgICAgICAgICAgW3ZpZXdwb3J0XT1cImJvYXJkLnZpZXdwb3J0XCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0aW9uXT1cImJvYXJkLnNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgW2hvc3RdPVwiaG9zdFwiXG4gICAgICAgICAgICA+PC9wbGFpdC1lbGVtZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBsYWl0LXRvb2xiYXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNGb2N1c2VkICYmICF0b29sYmFyVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgW2N1cnNvclN0YXR1c109XCJib2FyZC5jdXJzb3JcIlxuICAgICAgICAgICAgW3ZpZXdab29tXT1cImJvYXJkLnZpZXdwb3J0IS56b29tXCJcbiAgICAgICAgICAgIChtb3ZlSGFuZGxlKT1cImNoYW5nZU1vdmVNb2RlKCRldmVudClcIlxuICAgICAgICAgICAgKGFkYXB0SGFuZGxlKT1cImFkYXB0SGFuZGxlKClcIlxuICAgICAgICAgICAgKHpvb21JbkhhbmRsZSk9XCJ6b29tSW5IYW5kbGUoKVwiXG4gICAgICAgICAgICAoem9vbU91dEhhbmRsZSk9XCJ6b29tT3V0SGFuZGxlKClcIlxuICAgICAgICAgICAgKHJlc2V0Wm9vbUhhbmRlbCk9XCJyZXNldFpvb21IYW5kZWwoKVwiXG4gICAgICAgID48L3BsYWl0LXRvb2xiYXI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0Qm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBoYXNJbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gICAgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgcm91Z2hTVkchOiBSb3VnaFNWRztcblxuICAgIGRlc3Ryb3kkOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIGF1dG9GaXRQYWRkaW5nID0gODtcblxuICAgIHB1YmxpYyBpc01vdmluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgc2Nyb2xsTGVmdCE6IG51bWJlcjtcblxuICAgIHNjcm9sbFRvcCE6IG51bWJlcjtcblxuICAgIGZvY3VzUG9pbnQ6IG51bWJlcltdID0gW107XG5cbiAgICBtYXRyaXg6IG51bWJlcltdID0gW107XG5cbiAgICBASW5wdXQoKSBwbGFpdFZhbHVlOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgQElucHV0KCkgcGxhaXRWaWV3cG9ydCE6IFZpZXdwb3J0O1xuXG4gICAgQElucHV0KCkgcGxhaXRQbHVnaW5zOiBQbGFpdFBsdWdpbltdID0gW107XG5cbiAgICBASW5wdXQoKSBwbGFpdE9wdGlvbnMhOiBQbGFpdEJvYXJkT3B0aW9ucztcblxuICAgIEBPdXRwdXQoKSBwbGFpdENoYW5nZTogRXZlbnRFbWl0dGVyPFBsYWl0Qm9hcmRDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgcGxhaXRCb2FyZEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZ2V0IGlzTW92ZU1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLmN1cnNvciA9PT0gQmFzZUN1cnNvclN0YXR1cy5tb3ZlO1xuICAgIH1cblxuICAgIGdldCBob3N0KCk6IFNWR0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdmcubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBnZXQgaXNGb2N1c2VkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ib2FyZD8uc2VsZWN0aW9uO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBob3N0Q2xhc3MoKSB7XG4gICAgICAgIHJldHVybiBgcGxhaXQtYm9hcmQtY29udGFpbmVyICR7dGhpcy5ib2FyZC5jdXJzb3J9YDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLm9wdGlvbnMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb3ZpbmcnKVxuICAgIGdldCBtb3ZpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLmN1cnNvciA9PT0gQmFzZUN1cnNvclN0YXR1cy5tb3ZlICYmIHRoaXMuaXNNb3Zpbmc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJylcbiAgICBnZXQgZm9jdXNlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2VkO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ3N2ZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgc3ZnITogRWxlbWVudFJlZjtcblxuICAgIEBDb250ZW50Q2hpbGQoJ3BsYWl0VG9vbGJhcicpXG4gICAgcHVibGljIHRvb2xiYXJUZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNvbnRlbnRDb250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVuZGVyZXIyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCByb3VnaFNWRyA9IHJvdWdoLnN2Zyh0aGlzLmhvc3QgYXMgU1ZHU1ZHRWxlbWVudCwgeyBvcHRpb25zOiB7IHJvdWdobmVzczogMCwgc3Ryb2tlV2lkdGg6IDEgfSB9KTtcbiAgICAgICAgSE9TVF9UT19ST1VHSF9TVkcuc2V0KHRoaXMuaG9zdCwgcm91Z2hTVkcpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVQbHVnaW5zKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUV2ZW50cygpO1xuICAgICAgICBQTEFJVF9CT0FSRF9UT19DT01QT05FTlQuc2V0KHRoaXMuYm9hcmQsIHRoaXMpO1xuICAgICAgICBCT0FSRF9UT19PTl9DSEFOR0Uuc2V0KHRoaXMuYm9hcmQsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBQbGFpdEJvYXJkQ2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuYm9hcmQuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uczogdGhpcy5ib2FyZC5vcGVyYXRpb25zLFxuICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB0aGlzLmJvYXJkLnZpZXdwb3J0LFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogdGhpcy5ib2FyZC5zZWxlY3Rpb25cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5ib2FyZC5vcGVyYXRpb25zLnNvbWUob3AgPT4gUGxhaXRPcGVyYXRpb24uaXNTZXRWaWV3cG9ydE9wZXJhdGlvbihvcCkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYm9hcmQub3BlcmF0aW9ucy5zb21lKG9wID0+IFsnc2V0X25vZGUnLCAncmVtb3ZlX25vZGUnXS5pbmNsdWRlcyhvcC50eXBlKSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVZpZXdwb3J0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBsYWl0Q2hhbmdlLmVtaXQoY2hhbmdlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oYXNJbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgc2V0TWF0cml4KCkge1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgem9vbSA9IHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgdGhpcy5tYXRyaXggPSBbem9vbSwgMCwgMCwgMCwgem9vbSwgMCwgLXRoaXMuc2Nyb2xsTGVmdCAtIHpvb20gKiB2aWV3Qm94Lm1pblgsIC10aGlzLnNjcm9sbFRvcCAtIHpvb20gKiB2aWV3Qm94Lm1pblksIDFdO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlID0gY2hhbmdlc1sncGxhaXRWYWx1ZSddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNoYW5nZXNbJ3BsYWl0T3B0aW9ucyddO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVDaGFuZ2UpIHRoaXMuYm9hcmQuY2hpbGRyZW4gPSB2YWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAob3B0aW9ucykgdGhpcy5ib2FyZC5vcHRpb25zID0gb3B0aW9ucy5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5pbml0Q29udGFpbmVyU2l6ZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplUGx1Z2lucygpIHtcbiAgICAgICAgbGV0IGJvYXJkID0gd2l0aE1vdmUod2l0aEhpc3Rvcnkod2l0aFNlbGVjdGlvbih3aXRoQm9hcmQoY3JlYXRlQm9hcmQodGhpcy5ob3N0LCB0aGlzLnBsYWl0VmFsdWUsIHRoaXMucGxhaXRPcHRpb25zKSkpKSk7XG4gICAgICAgIHRoaXMucGxhaXRQbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgIGJvYXJkID0gcGx1Z2luKGJvYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYm9hcmQgPSBib2FyZDtcbiAgICAgICAgaWYgKHRoaXMucGxhaXRWaWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy5ib2FyZC52aWV3cG9ydCA9IHRoaXMucGxhaXRWaWV3cG9ydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUV2ZW50cygpIHtcbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlZG93bicpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLm1vdXNlbW92ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZXVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxNb3VzZXVwKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdkYmxjbGljaycpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZGJsY2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFJU19URVhUX0VESVRBQkxFLmdldCh0aGlzLmJvYXJkKSAmJiAhIXRoaXMuYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LmtleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5dXAnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhSVNfVEVYVF9FRElUQUJMRS5nZXQodGhpcy5ib2FyZCkgJiYgISF0aGlzLmJvYXJkLnNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkPy5rZXl1cChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY29weScpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFJU19URVhUX0VESVRBQkxFLmdldCh0aGlzLmJvYXJkKSAmJiAhIXRoaXMuYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ3Bhc3RlJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUlTX1RFWFRfRURJVEFCTEUuZ2V0KHRoaXMuYm9hcmQpICYmICEhdGhpcy5ib2FyZC5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/Lmluc2VydEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2N1dCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFJU19URVhUX0VESVRBQkxFLmdldCh0aGlzLmJvYXJkKSAmJiAhIXRoaXMuYm9hcmQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LmRlbGV0ZUZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PFdoZWVsRXZlbnQ+KHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnd2hlZWwnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZTogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhIXRoaXMuaXNGb2N1c2VkO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzRm9jdXNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gISF0aGlzLmlzRm9jdXNlZDtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnNjcm9sbExlZnQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2Nyb2xsKHNjcm9sbExlZnQsIHNjcm9sbFRvcCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB3aW5kb3cub25yZXNpemUgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZpZXdwb3J0KCk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgaW5pdENvbnRhaW5lclNpemUoKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnLCAnYXV0bycpO1xuICAgICAgICB0aGlzLnJlc2l6ZVZpZXdwb3J0KCk7XG4gICAgfVxuXG4gICAgcmVzaXplVmlld3BvcnQoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgaGlkZVNjcm9sbGJhciA9IHRoaXMuYm9hcmQub3B0aW9ucy5oaWRlU2Nyb2xsYmFyO1xuICAgICAgICBjb25zdCBzY3JvbGxCYXJXaWR0aCA9IGhpZGVTY3JvbGxiYXIgPyBTQ1JPTExfQkFSX1dJRFRIIDogMDtcbiAgICAgICAgY29uc3Qgd2lkdGggPSBgJHtjb250YWluZXJSZWN0LndpZHRoICsgc2Nyb2xsQmFyV2lkdGh9cHhgO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSBgJHtjb250YWluZXJSZWN0LmhlaWdodCArIHNjcm9sbEJhcldpZHRofXB4YDtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGhlaWdodCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnbWF4V2lkdGgnLCB3aWR0aCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnbWF4SGVpZ2h0JywgaGVpZ2h0KTtcbiAgICB9XG5cbiAgICBzZXRTY3JvbGwobGVmdDogbnVtYmVyLCB0b3A6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNjcm9sbExlZnQgPSBsZWZ0O1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9IHRvcDtcbiAgICAgICAgY29uc3Qgdmlld3BvcnRCb3ggPSBnZXRWaWV3cG9ydENsaWVudEJveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3godGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnRSYXRpbyA9IGxlZnQgLyAodmlld0JveC52aWV3cG9ydFdpZHRoIC0gdmlld3BvcnRCb3gud2lkdGgpO1xuICAgICAgICBjb25zdCBzY3JvbGxUb3BSYXRpbyA9IHRvcCAvICh2aWV3Qm94LnZpZXdwb3J0SGVpZ2h0IC0gdmlld3BvcnRCb3guaGVpZ2h0KTtcblxuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KHtcbiAgICAgICAgICAgIG9mZnNldFhSYXRpbzogc2Nyb2xsTGVmdFJhdGlvLFxuICAgICAgICAgICAgb2Zmc2V0WVJhdGlvOiBzY3JvbGxUb3BSYXRpb1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVTY3JvbGwoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBjb250YWluZXIuc2Nyb2xsVG8oe1xuICAgICAgICAgICAgdG9wOiB0aGlzLnNjcm9sbFRvcCxcbiAgICAgICAgICAgIGxlZnQ6IHRoaXMuc2Nyb2xsTGVmdFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVWaWV3cG9ydCgpIHtcbiAgICAgICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3godGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IHsgbWluWCwgbWluWSwgdmlld3BvcnRXaWR0aCB9ID0gdmlld0JveDtcblxuICAgICAgICBjb25zdCB2aWV3cG9ydEJveCA9IGdldFZpZXdwb3J0Q2xpZW50Qm94KHRoaXMuYm9hcmQpIGFzIGFueTtcbiAgICAgICAgY29uc3QgbndlSGhCb3ggPSBjYWxjdWxhdGVCQm94KHRoaXMuYm9hcmQpO1xuXG4gICAgICAgIGxldCBzY3JvbGxMZWZ0ID0gdGhpcy5zY3JvbGxMZWZ0O1xuICAgICAgICBsZXQgc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IHpvb20gPSB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgIGNvbnN0IG1hdHJpeCA9IHRoaXMubWF0cml4O1xuICAgICAgICBjb25zdCBmb2N1c1BvaW50ID0gdGhpcy5mb2N1c1BvaW50O1xuXG4gICAgICAgIGlmIChtYXRyaXgpIHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBbZm9jdXNQb2ludFswXSAtIHZpZXdwb3J0Qm94LngsIGZvY3VzUG9pbnRbMV0gLSB2aWV3cG9ydEJveC55LCAxXTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBpbnZlcnQoW10sIG1hdHJpeCk7XG4gICAgICAgICAgICBjb25zdCB4ID0gdHJhbnNmb3JtTWF0MyhbXSwgW2dbMF0sIGdbMV0sIDFdLCBiIGFzIFtdKTtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBbem9vbSwgMCwgMCwgMCwgem9vbSwgMCwgLXpvb20gKiBtaW5YLCAtem9vbSAqIG1pblksIDFdO1xuICAgICAgICAgICAgY29uc3QgYyA9IHRyYW5zZm9ybU1hdDMoW10sIHgsIGspO1xuXG4gICAgICAgICAgICBzY3JvbGxMZWZ0ID0gY1swXSAtIGdbMF07XG4gICAgICAgICAgICBzY3JvbGxUb3AgPSBjWzFdIC0gZ1sxXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNjcm9sbExlZnQgPSAodmlld3BvcnRXaWR0aCAtIHZpZXdwb3J0Qm94LndpZHRoKSAvIDI7XG4gICAgICAgICAgICBzY3JvbGxUb3AgPSB2aWV3cG9ydEJveC5oZWlnaHQgLyAyIC0gbndlSGhCb3gudG9wO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRTY3JvbGwoc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaWV3cG9ydCgpO1xuICAgIH1cblxuICAgIHZpZXdwb3J0Q2hhbmdlKCkge1xuICAgICAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0WFJhdGlvID0gdGhpcy5ib2FyZC52aWV3cG9ydC5vZmZzZXRYUmF0aW87XG4gICAgICAgIGNvbnN0IG9mZnNldFlSYXRpbyA9IHRoaXMuYm9hcmQudmlld3BvcnQub2Zmc2V0WVJhdGlvO1xuICAgICAgICBjb25zdCB2aWV3cG9ydEJveCA9IGdldFZpZXdwb3J0Q2xpZW50Qm94KHRoaXMuYm9hcmQpO1xuICAgICAgICBjb25zdCB7IG1pblgsIG1pblksIHdpZHRoLCBoZWlnaHQsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0IH0gPSB2aWV3Qm94O1xuICAgICAgICBjb25zdCBib3ggPSBbbWluWCwgbWluWSwgd2lkdGgsIGhlaWdodF07XG4gICAgICAgIHRoaXMuc2Nyb2xsTGVmdCA9ICh2aWV3cG9ydFdpZHRoIC0gdmlld3BvcnRCb3gud2lkdGgpICogb2Zmc2V0WFJhdGlvO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCA9ICh2aWV3cG9ydEhlaWdodCAtIHZpZXdwb3J0Qm94LmhlaWdodCkgKiBvZmZzZXRZUmF0aW87XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5ob3N0LCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLmhvc3QsICd3aWR0aCcsIGAke3ZpZXdwb3J0V2lkdGh9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUodGhpcy5ob3N0LCAnaGVpZ2h0JywgYCR7dmlld3BvcnRIZWlnaHR9cHhgKTtcblxuICAgICAgICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3QsICd2aWV3Qm94JywgYm94LmpvaW4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c1BvaW50ID0gW3ZpZXdwb3J0Qm94LngsIHZpZXdwb3J0Qm94LnldO1xuICAgICAgICB0aGlzLnNldE1hdHJpeCgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpZXdwb3J0KCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVZpZXdwb3J0KCk7XG4gICAgICAgIHRoaXMudmlld3BvcnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy51cGRhdGVTY3JvbGwoKTtcbiAgICB9XG5cbiAgICB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfTtcblxuICAgIC8vIOaLluaLveaooeW8j1xuICAgIGNoYW5nZU1vdmVNb2RlKGN1cnNvclN0YXR1czogQmFzZUN1cnNvclN0YXR1cykge1xuICAgICAgICB1cGRhdGVDdXJzb3JTdGF0dXModGhpcy5ib2FyZCwgY3Vyc29yU3RhdHVzKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLy8g6YCC5bqU55S75biDXG4gICAgYWRhcHRIYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0Qm94ID0gZ2V0Vmlld3BvcnRDbGllbnRCb3godGhpcy5ib2FyZCk7XG4gICAgICAgIGNvbnN0IHJvb3RHcm91cCA9IHRoaXMuaG9zdC5maXJzdENoaWxkO1xuICAgICAgICBjb25zdCByb290R3JvdXBCb3ggPSAocm9vdEdyb3VwIGFzIFNWR0dyYXBoaWNzRWxlbWVudCkuZ2V0QkJveCgpO1xuICAgICAgICBjb25zdCB2aWV3cG9ydFdpZHRoID0gdmlld3BvcnRCb3gud2lkdGggLSAyICogdGhpcy5hdXRvRml0UGFkZGluZztcbiAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSB2aWV3cG9ydEJveC5oZWlnaHQgLSAyICogdGhpcy5hdXRvRml0UGFkZGluZztcblxuICAgICAgICBsZXQgem9vbSA9IHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggPCByb290R3JvdXBCb3gud2lkdGggfHwgdmlld3BvcnRIZWlnaHQgPCByb290R3JvdXBCb3guaGVpZ2h0KSB7XG4gICAgICAgICAgICB6b29tID0gTWF0aC5taW4odmlld3BvcnRXaWR0aCAvIHJvb3RHcm91cEJveC53aWR0aCwgdmlld3BvcnRIZWlnaHQgLyByb290R3JvdXBCb3guaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHpvb20gPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWaWV3cG9ydCh7XG4gICAgICAgICAgICB6b29tLFxuICAgICAgICAgICAgb2Zmc2V0WFJhdGlvOiAwLjUsXG4gICAgICAgICAgICBvZmZzZXRZUmF0aW86IDAuNVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDmlL7lpKdcbiAgICB6b29tSW5IYW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IHpvb20gPSB0aGlzLmJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgICAgIHRoaXMuc2V0Vmlld3BvcnQoe1xuICAgICAgICAgICAgem9vbTogY2FsY3VsYXRlWm9vbSh6b29tICsgMC4xKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDnvKnlsI9cbiAgICB6b29tT3V0SGFuZGxlKCkge1xuICAgICAgICBjb25zdCB6b29tID0gdGhpcy5ib2FyZC52aWV3cG9ydC56b29tO1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KHtcbiAgICAgICAgICAgIHpvb206IGNhbGN1bGF0ZVpvb20oem9vbSAtIDAuMSlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVzZXRab29tSGFuZGVsKCkge1xuICAgICAgICB0aGlzLnNldFZpZXdwb3J0KHtcbiAgICAgICAgICAgIHpvb206IDFcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0Vmlld3BvcnQob3B0aW9uczogUGFydGlhbDxWaWV3cG9ydD4pIHtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmJvYXJkPy52aWV3cG9ydDtcbiAgICAgICAgVHJhbnNmb3Jtcy5zZXRWaWV3cG9ydCh0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICAuLi52aWV3cG9ydCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIEhPU1RfVE9fUk9VR0hfU1ZHLmRlbGV0ZSh0aGlzLmhvc3QpO1xuICAgIH1cblxuICAgIG1vdmluZ0NoYW5nZShpc01vdmluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzTW92aW5nID0gaXNNb3Zpbmc7XG4gICAgfVxufVxuIl19
|
|
@@ -13,7 +13,7 @@ export class PlaitToolbarComponent {
|
|
|
13
13
|
this.resetZoomHandel = new EventEmitter();
|
|
14
14
|
}
|
|
15
15
|
set viewZoom(zoom) {
|
|
16
|
-
this._viewZoom =
|
|
16
|
+
this._viewZoom = Number(((zoom ?? 1) * 100).toFixed(0));
|
|
17
17
|
}
|
|
18
18
|
get viewZoom() {
|
|
19
19
|
return this._viewZoom;
|
|
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
65
65
|
}], resetZoomHandel: [{
|
|
66
66
|
type: Output
|
|
67
67
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvY29yZS90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2NvcmUvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBT2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNSSxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBRU0sY0FBUyxHQUFHLHFCQUFxQixDQUFDO1FBWTlDLGVBQVUsR0FBbUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0E0QmxEO0lBNUNHLElBQ0ksUUFBUSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFZRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDO0lBRUQsT0FBTztJQUNQLEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLO0lBQ0wsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7SUFDTCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7bUhBbERRLHFCQUFxQjt1R0FBckIscUJBQXFCLCtVQ1JsQyxtc1pBa0dBOzRGRDFGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzhCQUt6QixTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBRVgsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBUUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUN1cnNvclN0YXR1cywgQ3Vyc29yU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0VG9vbGJhckNvbXBvbmVudCB7XG4gICAgX3ZpZXdab29tID0gMTAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RDbGFzcyA9IGBwbGFpdC1ib2FyZC10b29sYmFyYDtcblxuICAgIEBJbnB1dCgpIGN1cnNvclN0YXR1cyE6IEN1cnNvclN0YXR1cztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZpZXdab29tKHpvb206IG51bWJlcikge1xuICAgICAgICB0aGlzLl92aWV3Wm9vbSA9IE1hdGguZmxvb3Ioem9vbSAqIDEwMCk7XG4gICAgfVxuICAgIGdldCB2aWV3Wm9vbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdab29tO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBtb3ZlSGFuZGxlOiBFdmVudEVtaXR0ZXI8QmFzZUN1cnNvclN0YXR1cz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgYWRhcHRIYW5kbGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgem9vbUluSGFuZGxlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHpvb21PdXRIYW5kbGUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgcmVzZXRab29tSGFuZGVsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgZHJhZ01vdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLmN1cnNvclN0YXR1cyAhPT0gQmFzZUN1cnNvclN0YXR1cy5tb3ZlKSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVIYW5kbGUuZW1pdChCYXNlQ3Vyc29yU3RhdHVzLm1vdmUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb3ZlSGFuZGxlLmVtaXQoQmFzZUN1cnNvclN0YXR1cy5zZWxlY3QpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8g6YCC5bqU55S75biDXG4gICAgYWRhcHQoKSB7XG4gICAgICAgIHRoaXMuYWRhcHRIYW5kbGUuZW1pdCgpO1xuICAgIH1cblxuICAgIC8vIOaUvuWkp1xuICAgIHpvb21JbigpIHtcbiAgICAgICAgdGhpcy56b29tSW5IYW5kbGUuZW1pdCgpO1xuICAgIH1cblxuICAgIC8vIOe8qeWwj1xuICAgIHpvb21PdXQoKSB7XG4gICAgICAgIHRoaXMuem9vbU91dEhhbmRsZS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcmVzZXRab29tKCkge1xuICAgICAgICB0aGlzLnJlc2V0Wm9vbUhhbmRlbC5lbWl0KCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInpvb20tdG9vbGJhciBpc2xhbmQgcGxhaXQtYm9hcmQtYXR0YWNoZWRcIj5cbiAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbSBwbGFpdC1hY3Rpb24taWNvblwiIFtuZ0NsYXNzXT1cInsgJ2ljb24tYWN0aXZlJzogY3Vyc29yU3RhdHVzID09PSAnbW92ZScgfVwiIChjbGljayk9XCJkcmFnTW92ZSgpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkcmFnTW92ZVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG4gICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbSBwbGFpdC1hY3Rpb24taWNvblwiIChtb3VzZWRvd24pPVwiYWRhcHQoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRhcHRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9hPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XG4gICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW0gcGxhaXQtYWN0aW9uLWljb25cIiAobW91c2Vkb3duKT1cInpvb21PdXQoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiem9vbU91dFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG4gICAgPGRpdiBjbGFzcz1cInRvb2xiYXItaXRlbSB6b29tLXZhbHVlXCIgKG1vdXNlZG93bik9XCJyZXNldFpvb20oKVwiPnt7IHZpZXdab29tIH19JTwvZGl2PlxuICAgIDxhIGNsYXNzPVwidG9vbGJhci1pdGVtIHBsYWl0LWFjdGlvbi1pY29uXCIgKG1vdXNlZG93bik9XCJ6b29tSW4oKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiem9vbUluVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvYT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RyYWdNb3ZlVGVtcGxhdGU+XG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjE2cHhcIlxuICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICA+XG4gICAgICAgIDx0aXRsZT4xLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL2hhbmQ8L3RpdGxlPlxuICAgICAgICA8ZyBpZD1cIjEuQmFzZeWfuuehgC8xLmljb27lm77moIcvMi5ub3JtYWwvaGFuZFwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTguNDQ1ODM0NjgsMC41MDAyMjU4ODcgQzkuMDc0MDY5MzQsMC41MTAxODU2NzkgOS41NDczOTUzMSwwLjgzOTU5MTM2NiA5Ljg2MTkyMzExLDEuMzQzMDUyNzkgQzkuODk2OTY2NTYsMS4zOTkxNDY0OSA5LjkyODc4NDAxLDEuNDU0OTI5NjQgOS45NTc2MDI2LDEuNTA5OTExNTcgTDkuOTU3NjAyNiwxLjUwOTkxMTU3IEwxMC4wMjEwMDMzLDEuNjQyMDEwMjcgTDEwLjA2MTk3OCwxLjYyMzUwNzU1IEMxMC4xOTcyODkxLDEuNTY4MzQyNDcgMTAuMzQ0NDEwNywxLjUzMjE4NDY0IDEwLjUwMjc5MDcsMS41MTc1NTM1MyBMMTAuNTAyNzkwNywxLjUxNzU1MzUzIEwxMC42NjQ5MDMxLDEuNTEwMTkxMzMgQzExLjQ4ODM3MDgsMS41MTAxOTEzMyAxMi4wMjA4NzgyLDEuOTkzNDMzNDYgMTIuMzAyMzA0MiwyLjY2MzkzMjc4IEMxMi4zOTAzNzE0LDIuODczOTI5MTEgMTIuNDM0NDE5MSwzLjEwMDQ3ODE4IDEyLjQzMzk0NDYsMy4zMjU3OTUyIEwxMi40MzM5NDQ2LDMuMzI1Nzk1MiBMMTIuNDM2MDAzMywzLjgwNTAxMDI3IEwxMi41MTYwNTM1LDMuNzgzNDE1MDEgQzEyLjYxMjQ0NzgsMy43NjEyNDA0NiAxMi43MTM4ODEyLDMuNzQ3Mzk4NTQgMTIuODIwMjAxLDMuNzQyNTAyNzQgTDEyLjgyMDIwMSwzLjc0MjUwMjc0IEwxMi45ODMzMjY0LDMuNzQxOTQ1MzMgQzEzLjYxMjExNjYsMy43NjU3NDc4IDE0LjA2NDU4ODcsNC4wODAxNzI0IDE0LjMwODcwNjIsNC41NjExMjY4OSBDMTQuNDUyMTExNyw0Ljg0MzY2MDkgMTQuNDk4Nzk4NCw1LjExMzQ5NDM3IDE0LjQ5OTkyNjIsNS4zMzQ0OTYxOCBMMTQuNDk5OTI2Miw1LjMzNDQ5NjE4IEwxNC4zOTIyNjUzLDEyLjA0OTQxNCBDMTQuMzc4NDc1MiwxMi45MDkxNzcgMTQuMDcxNzc4NywxMy43MzYwOTQ4IDEzLjUyMTI0MDYsMTQuMzgyNTIyOCBDMTMuNDA1NTY3NiwxNC41MTgzNDk2IDEzLjI4NDM2OTcsMTQuNjQzOTYxIDEzLjE1ODIzNjEsMTQuNzU5NjMzNSBDMTIuNDYzNDc3MSwxNS4zOTY3NzE2IDExLjc1NTEwMywxNS42NTM4NzA2IDExLjE4OTczOTYsMTUuNzAwMDA1NSBMMTEuMTg5NzM5NiwxNS43MDAwMDU1IEw3LjQ3MjMwODMsMTUuNjc5ODE1OCBDNy4xNDI3NjM3MywxNS42MzQyNjggNi44MTU4MDA5OCwxNS41MTU0MjY3IDYuNDk0NTUyMzUsMTUuMzQ3MjUwMSBDNi4yNTY0MzcwMSwxNS4yMjI1OTQ0IDYuMDY4ODE3MDYsMTUuMDk3NTQ1MiA1Ljg4NzA1NzMxLDE0Ljk0OTQzMDggTDUuODg3MDU3MzEsMTQuOTQ5NDMwOCBMMi41NTE5ODc4MiwxMS41MDA4NzMgQzIuMzk1NTk0NzUsMTEuMzc2OTA3OSAyLjE3NjI2NzkzLDExLjE3NDg1MzIgMS45NTQ4NjM2LDEwLjkxMzk0MDMgQzEuNTc4Njc1MDIsMTAuNDcwNjIyNSAxLjMzNTAxOTc2LDEwLjAxMzk5MjMgMS4zMDMzMDI1Nyw5LjUyODMzMDI1IEMxLjI4MDkzMTkxLDkuMTg1Nzg0NzYgMS4zNzIwMDkxMiw4Ljg1NjQxMTAyIDEuNTgyNjc4OCw4LjU2ODcyNTY0IEMxLjgyNTM4ODMzLDguMjM3MjUyNzkgMi4xMjg4MTk2NSw4LjAyMTA3MTYyIDIuNDc0NzA1NjksNy45Mjk1NzAzMyBDMi45NTgwNzk4Miw3LjgwMTY5NzcxIDMuNDI3MDU3MjMsNy45MjQ2ODk4OSAzLjg2NTA5NjQ0LDguMTg3MzExNjcgQzQuMDQ0MzEzOTEsOC4yOTQ3NTk2MSA0LjE4MTYxMDksOC40MDMwNDQ4MyA0LjI2MjI1NTcxLDguNDc4NjY4NjcgTDQuMjYyMjU1NzEsOC40Nzg2Njg2NyBMNC42MTQwMDMyOCw4Ljc5NzAxMDI3IEw0LjU3MjQ3MjQ5LDMuNTkyNzUzNDkgTDQuNTc2Mjg1MjQsMy40NjIwNDkyMyBDNC41ODk3NjkxLDMuMjM0NDQ0NDIgNC42NDA4NzU3OCwyLjk1NzAxODQ4IDQuNzU5MzcxMDYsMi42Njk2MTU5NyBDNS4wMTAxNzI3MiwyLjA2MTMxMzAyIDUuNDk2NzAyMjcsMS42NDY5MjU0MyA2LjIxMzYzODU2LDEuNjA4MTg3ODYgQzYuNDQyMjM1MDgsMS41OTU4MzY4MSA2LjY1MDQyMDk5LDEuNjIxNzY4MDIgNi44MzY5Njk4NSwxLjY4MDU3NTUxIEw2LjgzNjk2OTg1LDEuNjgwNTc1NTEgTDYuODY0MDAzMjgsMS42OTAwMTAyNyBDNi44ODUwMTg2MiwxLjYzNTkzMDUyIDYuOTA3NjQyNDIsMS41ODE3NTQ0MiA2LjkzMzE4NjcsMS41MjY3MjYzMyBMNi45MzMxODY3LDEuNTI2NzI2MzMgTDcuMDE4ODM1OTUsMS4zNTk1NTYxNCBDNy4zMTU0OTE5NCwwLjgzMjA0NzkzOSA3Ljc5NDc2MDcyLDAuNDg5OTM1NDkgOC40NDU4MzQ2OCwwLjUwMDIyNTg4NyBaIE04LjQyNjg0MTczLDEuNzAwMDE0NzYgQzguMjY4MjU0MTIsMS42OTc1NjkwNSA4LjE2MzM5NDU2LDEuNzcyNDIwMDggOC4wNjQ3ODM2NywxLjk0Nzc2ODE0IEM4LjAzOTY3NzczLDEuOTkyNDExMDcgOC4wMTgzMTcwMywyLjAzODExNDk1IDguMDAwODM0NjQsMi4wNzg1NTA2NyBMOC4wMDA4MzQ2NCwyLjA3ODU1MDY3IEw3Ljk0ODc5MTU3LDIuMjAzNTkwNSBMNy45NDM1NDQ1NSwyLjIwNzMxNDAxIEw3Ljk0MywzLjE2MSBMNy45NzE3MDY2MSwzLjE2MTIzNzQ2IEw3Ljk3MTcwNjYxLDcuNjA5OTE4ODMgTDYuNzcxNzA2NjEsNy42MDk5MTg4MyBMNi43NzEsMy4zMzggTDYuNzQzNjIzNTgsMy4zMzg4MDM1OSBDNi43NDI4NDE4OSwzLjI5MDY0NjI2IDYuNzMwMTQxNjMsMy4yMDI4MjIwNiA2LjcwMDI2MTYsMy4xMTA5NDQwOCBMNi42NjQ0NjAxMiwzLjAxOTAzMzg1IEM2LjU4OTgyMDI1LDIuODU3NjY3MzkgNi40OTg0MzI5MiwyLjc5NDU1MDcxIDYuMjc4MzgxMzMsMi44MDY0NDAwOCBDNi4wNzAwMTAxOCwyLjgxNzY5ODgxIDUuOTU2NDIxMDgsMi45MTQ0NDUwNyA1Ljg2ODc3NjY0LDMuMTI3MDIwODkgQzUuNzk3OTIyNzksMy4yOTg4NzIyNCA1Ljc3MjI4MTI3LDMuNDg2NTU5MDggNS43NzI0Njg3OSwzLjU4OTc3MTgzIEw1Ljc3MjQ2ODc5LDMuNTg5NzcxODMgTDUuODM2MTM2MTksMTEuNTI1MjAyMSBMMy40MTg2Mzk1Niw5LjMzNDc3NjU3IEwzLjMxNjM3Mjk2LDkuMjU5Nzk1NzEgTDMuMjQ4MDUwMTEsOS4yMTY1MTIyNCBDMy4wNjA5NjkyMiw5LjEwNDM0OTg3IDIuODkyNzk5NzUsOS4wNjAyNDY0MSAyLjc4MTU5ODc5LDkuMDg5NjYzNyBDMi43MTAwNzczNSw5LjEwODU4NDExIDIuNjM2MDczNjcsOS4xNjEzMDg0IDIuNTUwODYzMDUsOS4yNzc2ODIxMSBDMi41MTAyMDQyNCw5LjMzMzIwNDc4IDIuNDk2MzgwNjEsOS4zODMxOTY4NyAyLjUwMDc1MTcxLDkuNDUwMTI4MyBDMi41MTIwNjg4OSw5LjYyMzQxOTk3IDIuNjQ1MDMwMjIsOS44NzI2MDA1NCAyLjg2OTgzMzY2LDEwLjEzNzUxOTEgQzMuMDMyNjg4MzQsMTAuMzI5NDM0NSAzLjE5NzYyMDUzLDEwLjQ4MTM3ODEgMy4zNTU1NDk1NiwxMC42MTMxMDIyIEwzLjM1NTU0OTU2LDEwLjYxMzEwMjIgTDYuNjg0NTQzMTcsMTQuMDU2OTA3MyBDNi43MTEwNjU3NSwxNC4wNzczODA4IDYuNzQ4MDYwODYsMTQuMTAzNzE1OCA2Ljc5MzY5MDkxLDE0LjEzMzU5MjkgTDYuNzkzNjkwOTEsMTQuMTMzNTkyOSBMNi45NTQ2NDgzOCwxNC4yMzE1MzExIEw3LjA1MTExMDMxLDE0LjI4NDEyMTEgQzcuMjU5NzgxMjMsMTQuMzkzMzYyMiA3LjQ2MjUzNTIzLDE0LjQ2NzA1NzMgNy41NTY4NTQ5NSwxNC40ODU0NzA4IEw3LjU1Njg1NDk1LDE0LjQ4NTQ3MDggTDExLjE0MDc5ODUsMTQuNTAyMjEwOCBDMTEuMTUwMzU3NiwxNC41MDEzODk5IDExLjE2Mjc5MDUsMTQuNDk5NzUzOSAxMS4xNzc5MDAyLDE0LjQ5NzE3NzIgTDExLjE3NzkwMDIsMTQuNDk3MTc3MiBMMTEuMjk5MTA3NiwxNC40Njk0MjI0IEMxMS4zNDkxNjgyLDE0LjQ1NTczNzUgMTEuNDA4MzYyNCwxNC40MzcyODQgMTEuNDc1MTE1OCwxNC40MTMwNTYzIEMxMS43NjkzODMsMTQuMzA2MjU0MyAxMi4wNjY2NzYsMTQuMTMyNDU5NiAxMi4zNDcxNzU4LDEzLjg3NTIyMzQgQzEyLjQzNzEyMDMsMTMuNzkyNzM4NiAxMi41MjQwNTk3LDEzLjcwMjYzMzMgMTIuNjA3NjU0LDEzLjYwNDQ3NDMgQzEyLjk3NjA0NjQsMTMuMTcxOTE3MiAxMy4xODMwNTksMTIuNjEzNzY3OCAxMy4xOTI0MTk1LDEyLjAzMDE3MyBMMTMuMTkyNDE5NSwxMi4wMzAxNzMgTDEzLjMwMDAxMzIsNS4zMjgzMjU1MSBDMTMuMjk5NzkzOSw1LjI5MDE2Njg1IDEzLjI4MjYxMTcsNS4xOTA4NTk0NiAxMy4yMzg2NTI3LDUuMTA0MjUyNjIgQzEzLjE4NDM4MzgsNC45OTczMzMyNiAxMy4xMTI5Nzc0LDQuOTQ3NzEyNjUgMTIuOTM3OTU3OCw0Ljk0MTA4NzM5IEMxMi42ODE0NzM5LDQuOTMxMzg4NzEgMTIuNTM0MTMyLDUuMTExODk1OTUgMTIuNDc1Njc5Miw1LjM5NDgwMDYyIEwxMi40NzY4NzE4LDcuNTI3MzQ5MjIgTDExLjI3Njg3MTgsNy41MjczNDkyMiBMMTEuMjc2LDUuNjg4IEwxMS4yNDYyODgzLDUuNjg4MzIwOCBMMTEuMjMzOTU0MSwzLjMyNzcxMjg1IEMxMS4yMzQxLDMuMjU2MDM5NiAxMS4yMjA5MDU0LDMuMTg4MTc2MjEgMTEuMTk1NzQ4MiwzLjEyODE4ODkyIEMxMS4wODIwNTc5LDIuODU3MzIwOTQgMTAuOTE5OTI4OCwyLjcxMDE5MTMzIDEwLjY2NDkwMzEsMi43MTAxOTEzMyBDMTAuNDU2ODI5LDIuNzEwMTkxMzMgMTAuMzE5NzQ4NywyLjg3Mzc4MDY3IDEwLjI1MjQyOTcsMy4xMTI2NDkzOSBMMTAuMjUzMDIyNSw3LjUxMjc4MyBMOS4wNTMwMjI1NCw3LjUxMjc4MyBMOS4wNTMsMy4yODggTDkuMDE1NTQzMzEsMy4yODcyNDIwMyBMOC45ODgwMDMyOCwyLjI5OTAxMDI3IEw4Ljk2MjkxNzUsMi4yMjI2MzM2OCBDOC45NDUxNTU2NywyLjE3NDE3MTc0IDguOTIxNjc3NTYsMi4xMTkzNzc0OCA4Ljg5MjQyMzIsMi4wNjMzMDA1NiBMOC44OTI0MjMyLDIuMDYzMzAwNTYgTDguODQ0MjAxOTcsMS45Nzg4NTQ0IEM4LjcyNzU4ODU1LDEuNzkyMTkyNDkgOC41OTkxNTAxNSwxLjcwMjgwNzI4IDguNDI2ODQxNzMsMS43MDAwMTQ3NiBaXCJcbiAgICAgICAgICAgICAgICBpZD1cIuW9oueKtue7k+WQiFwiXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FkYXB0VGVtcGxhdGU+XG4gICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjE2cHhcIlxuICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICA+XG4gICAgICAgIDx0aXRsZT4xLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL0ZpdCBjYW52YXM8L3RpdGxlPlxuICAgICAgICA8ZyBpZD1cIjEuQmFzZeWfuuehgC8xLmljb27lm77moIcvMi5ub3JtYWwvRml0LWNhbnZhc1wiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTE0Ljk5NzE0OTQsMTAuNCBMMTQuOTk3MTQ5NCwxMy40MDIwNTE2IEMxNC45OTcxNDk0LDE0LjIzNjYxNTIgMTQuMzU4MTg3OSwxNC45MjE5NDE0IDEzLjU0Mjc4MiwxNC45OTU1MTI5IEwxMy4zOTcxNDk0LDE1LjAwMjA1MTYgTDEwLjQsMTUuMDAyMDUxNiBMMTAuNCwxMy44MDIwNTE2IEwxMy4zOTcxNDk0LDEzLjgwMjA1MTYgQzEzLjU5MDQ0OSwxMy44MDIwNTE2IDEzLjc1MTcyNDMsMTMuNjY0OTM4OCAxMy43ODkwMjI4LDEzLjQ4MjY2NTYgTDEzLjc5NzE0OTQsMTMuNDAyMDUxNiBMMTMuNzk3MTQ5NCwxMC40IEwxNC45OTcxNDk0LDEwLjQgWiBNMi4yLDEwLjQgTDIuMiwxMy4zOTcxNDk0IEMyLjIsMTMuNTkwNDQ5IDIuMzM3MTEyOCwxMy43NTE3MjQzIDIuNTE5Mzg2MDUsMTMuNzg5MDIyOCBMMi42LDEzLjc5NzE0OTQgTDUuNjAyMDUxNjEsMTMuNzk3MTQ5NCBMNS42MDIwNTE2MSwxNC45OTcxNDk0IEwyLjYsMTQuOTk3MTQ5NCBDMS43NjU0MzYzOCwxNC45OTcxNDk0IDEuMDgwMTEwMjEsMTQuMzU4MTg3OSAxLjAwNjUzODY4LDEzLjU0Mjc4MiBMMSwxMy4zOTcxNDk0IEwxLDEwLjQgTDIuMiwxMC40IFogTTEwLjUwMjQ1MTEsNC45IEMxMS4zODYxMDY3LDQuOSAxMi4xMDI0NTExLDUuNjE2MzQ0NCAxMi4xMDI0NTExLDYuNSBMMTIuMTAyNDUxMSw2LjUgTDEyLjEwMjQ1MTEsOS41IEMxMi4xMDI0NTExLDEwLjM4MzY1NTYgMTEuMzg2MTA2NywxMS4xIDEwLjUwMjQ1MTEsMTEuMSBMMTAuNTAyNDUxMSwxMS4xIEw1LjUwMjQ1MTEyLDExLjEgQzQuNjE4Nzk1NTIsMTEuMSAzLjkwMjQ1MTEyLDEwLjM4MzY1NTYgMy45MDI0NTExMiw5LjUgTDMuOTAyNDUxMTIsOS41IEwzLjkwMjQ1MTEyLDYuNSBDMy45MDI0NTExMiw1LjYxNjM0NDQgNC42MTg3OTU1Miw0LjkgNS41MDI0NTExMiw0LjkgTDUuNTAyNDUxMTIsNC45IFogTTEwLjUwMjQ1MTEsNi4xIEw1LjUwMjQ1MTEyLDYuMSBDNS4yODE1MzcyMiw2LjEgNS4xMDI0NTExMiw2LjI3OTA4NjEgNS4xMDI0NTExMiw2LjUgTDUuMTAyNDUxMTIsNi41IEw1LjEwMjQ1MTEyLDkuNSBDNS4xMDI0NTExMiw5LjcyMDkxMzkgNS4yODE1MzcyMiw5LjkgNS41MDI0NTExMiw5LjkgTDUuNTAyNDUxMTIsOS45IEwxMC41MDI0NTExLDkuOSBDMTAuNzIzMzY1LDkuOSAxMC45MDI0NTExLDkuNzIwOTEzOSAxMC45MDI0NTExLDkuNSBMMTAuOTAyNDUxMSw5LjUgTDEwLjkwMjQ1MTEsNi41IEMxMC45MDI0NTExLDYuMjc5MDg2MSAxMC43MjMzNjUsNi4xIDEwLjUwMjQ1MTEsNi4xIEwxMC41MDI0NTExLDYuMSBaIE01LjU5NzE0OTM4LDEgTDUuNTk3MTQ5MzgsMi4yIEwyLjYsMi4yIEMyLjQwNjcwMDM0LDIuMiAyLjI0NTQyNTA4LDIuMzM3MTEyOCAyLjIwODEyNjU4LDIuNTE5Mzg2MDUgTDIuMiwyLjYgTDIuMiw1LjYwMjA1MTYxIEwxLDUuNjAyMDUxNjEgTDEsMi42IEMxLDEuNzY1NDM2MzggMS42Mzg5NjE1MiwxLjA4MDExMDIxIDIuNDU0MzY3MzksMS4wMDY1Mzg2OCBMMi42LDEgTDUuNTk3MTQ5MzgsMSBaIE0xMy4zOTcxNDk0LDEgTDEzLjU0Mjc4MiwxLjAwNjUzODY4IEMxNC4zNTgxODc5LDEuMDgwMTEwMjEgMTQuOTk3MTQ5NCwxLjc2NTQzNjM4IDE0Ljk5NzE0OTQsMi42IEwxNC45OTcxNDk0LDIuNiBMMTQuOTk3MTQ5NCw1LjYwMjA1MTYxIEwxMy43OTcxNDk0LDUuNjAyMDUxNjEgTDEzLjc5NzE0OTQsMi42IEwxMy43ODkwMjI4LDIuNTE5Mzg2MDUgQzEzLjc1MTcyNDMsMi4zMzcxMTI4IDEzLjU5MDQ0OSwyLjIgMTMuMzk3MTQ5NCwyLjIgTDEzLjM5NzE0OTQsMi4yIEwxMC40LDIuMiBMMTAuNCwxIEwxMy4zOTcxNDk0LDEgWlwiXG4gICAgICAgICAgICAgICAgaWQ9XCLlvaLnirbnu5PlkIhcIlxuICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjem9vbU91dFRlbXBsYXRlPlxuICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+YWN0aW9uL3pvb20tb3V0PC90aXRsZT5cbiAgICAgICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+XG4gICAgICAgIDxnIGlkPVwiYWN0aW9uL3pvb20tb3V0XCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNi44NSwyLjczMjI1ODg2ZS0xMyBDMTAuNjMzMTUwNSwyLjczMjI1ODg2ZS0xMyAxMy43LDMuMDY2ODQ5NDYgMTMuNyw2Ljg1IEMxMy43LDguNTQxOTQwNDUgMTMuMDg2NTgzNiwxMC4wOTA2MDk4IDEyLjA3MDAxNDIsMTEuMjg1NzQ0OCBMMTUuNDIwMTk3NiwxNC41NzE3MDgxIEMxNS42NTY3MzY3LDE0LjgwMzc3NjggMTUuNjYwMzYwNywxNS4xODM2NTg1IDE1LjQyODI5MTksMTUuNDIwMTk3NiBDMTUuMTk2MjIzMiwxNS42NTY3MzY3IDE0LjgxNjM0MTUsMTUuNjYwMzYwNyAxNC41Nzk4MDI0LDE1LjQyODI5MTkgTDE0LjU3OTgwMjQsMTUuNDI4MjkxOSBMMTEuMjE2MzQ1NiwxMi4xMjgyNjIgQzEwLjAzMDk0MjcsMTMuMTA5OTY5MSA4LjUwOTM3NTkxLDEzLjcgNi44NSwxMy43IEMzLjA2Njg0OTQ2LDEzLjcgNC41ODUyMjEwOWUtMTQsMTAuNjMzMTUwNSA0LjU4NTIyMTA5ZS0xNCw2Ljg1IEM0LjU4NTIyMTA5ZS0xNCwzLjA2Njg0OTQ2IDMuMDY2ODQ5NDYsMi43MzIyNTg4NmUtMTMgNi44NSwyLjczMjI1ODg2ZS0xMyBaIE02Ljg1LDEuMiBDMy43Mjk1OTExNiwxLjIgMS4yLDMuNzI5NTkxMTYgMS4yLDYuODUgQzEuMiw5Ljk3MDQwODg0IDMuNzI5NTkxMTYsMTIuNSA2Ljg1LDEyLjUgQzguMzE3NTMzNTcsMTIuNSA5LjY1NDM4NzkxLDExLjk0MDQ5NTcgMTAuNjU4ODg1OSwxMS4wMjMxNjQzIEMxMC42ODU1NDEyLDEwLjk2MjU0MDggMTAuNzI0NTI3NSwxMC45MDUwODk4IDEwLjc3NDM5ODIsMTAuODU0MjU4NCBDMTAuODI4ODkzMSwxMC43OTg3MTM3IDEwLjg5MTUzODcsMTAuNzU2MDEyNCAxMC45NTg1NjQ5LDEwLjcyNjE5MDMgQzExLjkxNDQwMDksOS43MTU5NTc1OCAxMi41LDguMzUxMzY1NzkgMTIuNSw2Ljg1IEMxMi41LDMuNzI5NTkxMTYgOS45NzA0MDg4NCwxLjIgNi44NSwxLjIgWiBNNC42LDYuMiBMOS4xMjk0NDU2NSw2LjIgQzkuNDYwODE2NSw2LjIgOS43Mjk0NDU2NSw2LjQ2ODYyOTE1IDkuNzI5NDQ1NjUsNi44IEM5LjcyOTQ0NTY1LDcuMDk4MjMzNzYgOS41MTE4NTYwNCw3LjM0NTY0Njc1IDkuMjI2NzY4NzYsNy4zOTIxNDcwMSBMOS4xMjk0NDU2NSw3LjQgTDQuNiw3LjQgQzQuMjY4NjI5MTUsNy40IDQsNy4xMzEzNzA4NSA0LDYuOCBDNCw2LjUwMTc2NjI0IDQuMjE3NTg5NjEsNi4yNTQzNTMyNSA0LjUwMjY3Njg4LDYuMjA3ODUyOTkgTDQuNiw2LjIgTDkuMTI5NDQ1NjUsNi4yIFpcIlxuICAgICAgICAgICAgICAgIGlkPVwi5b2i54q257uT5ZCIXCJcbiAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjem9vbUluVGVtcGxhdGVcbiAgICA+PHN2Z1xuICAgICAgICB3aWR0aD1cIjE2cHhcIlxuICAgICAgICBoZWlnaHQ9XCIxNnB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICA+XG4gICAgICAgIDx0aXRsZT5hY3Rpb24vem9vbS1pbjwvdGl0bGU+XG4gICAgICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPlxuICAgICAgICA8ZyBpZD1cImFjdGlvbi96b29tLWluXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNi44NSwtMS44MTE4ODM5OGUtMTMgQzEwLjYzMzE1MDUsLTEuODExODgzOThlLTEzIDEzLjcsMy4wNjY4NDk0NiAxMy43LDYuODUgQzEzLjcsOC41NDE5NDA0NSAxMy4wODY1ODM2LDEwLjA5MDYwOTggMTIuMDcwMDE0MiwxMS4yODU3NDQ4IEwxNS40MjAxOTc2LDE0LjU3MTcwODEgQzE1LjY1NjczNjcsMTQuODAzNzc2OCAxNS42NjAzNjA3LDE1LjE4MzY1ODUgMTUuNDI4MjkxOSwxNS40MjAxOTc2IEMxNS4xOTYyMjMyLDE1LjY1NjczNjcgMTQuODE2MzQxNSwxNS42NjAzNjA3IDE0LjU3OTgwMjQsMTUuNDI4MjkxOSBMMTQuNTc5ODAyNCwxNS40MjgyOTE5IEwxMS4yMTYzNDU2LDEyLjEyODI2MiBDMTAuMDMwOTQyNywxMy4xMDk5NjkxIDguNTA5Mzc1OTEsMTMuNyA2Ljg1LDEzLjcgQzMuMDY2ODQ5NDYsMTMuNyA0LjYxODUyNzc4ZS0xNCwxMC42MzMxNTA1IDQuNjE4NTI3NzhlLTE0LDYuODUgQzQuNjE4NTI3NzhlLTE0LDMuMDY2ODQ5NDYgMy4wNjY4NDk0NiwtMS44MTE4ODM5OGUtMTMgNi44NSwtMS44MTE4ODM5OGUtMTMgWiBNNi44NSwxLjIgQzMuNzI5NTkxMTYsMS4yIDEuMiwzLjcyOTU5MTE2IDEuMiw2Ljg1IEMxLjIsOS45NzA0MDg4NCAzLjcyOTU5MTE2LDEyLjUgNi44NSwxMi41IEM4LjMxNzUzMzU3LDEyLjUgOS42NTQzODc5MSwxMS45NDA0OTU3IDEwLjY1ODg4NTksMTEuMDIzMTY0MyBDMTAuNjg1NTQxMiwxMC45NjI1NDA4IDEwLjcyNDUyNzUsMTAuOTA1MDg5OCAxMC43NzQzOTgyLDEwLjg1NDI1ODQgQzEwLjgyODg5MzEsMTAuNzk4NzEzNyAxMC44OTE1Mzg3LDEwLjc1NjAxMjQgMTAuOTU4NTY0OSwxMC43MjYxOTAzIEMxMS45MTQ0MDA5LDkuNzE1OTU3NTggMTIuNSw4LjM1MTM2NTc5IDEyLjUsNi44NSBDMTIuNSwzLjcyOTU5MTE2IDkuOTcwNDA4ODQsMS4yIDYuODUsMS4yIFogTTYuODY0NzIyODIsMy45MzUyNzcxOCBDNy4xNjI5NTY1OSwzLjkzNTI3NzE4IDcuNDEwMzY5NTgsNC4xNTI4NjY3OSA3LjQ1Njg2OTg0LDQuNDM3OTU0MDYgTDcuNDY0NzIyODIsNC41MzUyNzcxOCBMNy40NjQsNi4xOTkyNzcxOCBMOS4xMjk0NDU2NSw2LjIgQzkuNDI3Njc5NDEsNi4yIDkuNjc1MDkyNCw2LjQxNzU4OTYxIDkuNzIxNTkyNjYsNi43MDI2NzY4OCBMOS43Mjk0NDU2NSw2LjggQzkuNzI5NDQ1NjUsNy4wOTgyMzM3NiA5LjUxMTg1NjA0LDcuMzQ1NjQ2NzUgOS4yMjY3Njg3Niw3LjM5MjE0NzAxIEw5LjEyOTQ0NTY1LDcuNCBMNy40NjQsNy4zOTkyNzcxOCBMNy40NjQ3MjI4Miw5LjA2NDcyMjgyIEM3LjQ2NDcyMjgyLDkuMzYyOTU2NTkgNy4yNDcxMzMyMSw5LjYxMDM2OTU4IDYuOTYyMDQ1OTQsOS42NTY4Njk4NCBMNi44NjQ3MjI4Miw5LjY2NDcyMjgyIEM2LjU2NjQ4OTA2LDkuNjY0NzIyODIgNi4zMTkwNzYwNyw5LjQ0NzEzMzIxIDYuMjcyNTc1ODEsOS4xNjIwNDU5NCBMNi4yNjQ3MjI4Miw5LjA2NDcyMjgyIEw2LjI2NCw3LjM5OTI3NzE4IEw0LjYsNy40IEM0LjMwMTc2NjI0LDcuNCA0LjA1NDM1MzI1LDcuMTgyNDEwMzkgNC4wMDc4NTI5OSw2Ljg5NzMyMzEyIEw0LDYuOCBDNCw2LjUwMTc2NjI0IDQuMjE3NTg5NjEsNi4yNTQzNTMyNSA0LjUwMjY3Njg4LDYuMjA3ODUyOTkgTDQuNiw2LjIgTDYuMjY0LDYuMTk5Mjc3MTggTDYuMjY0NzIyODIsNC41MzUyNzcxOCBDNi4yNjQ3MjI4Miw0LjI3MDE4MDUgNi40MzY2NDU0OCw0LjA0NTIzODUgNi42NzUwNzY0MiwzLjk2NTg2NTU3IEw2Ljc2NzM5OTcxLDMuOTQzMTMwMTYgTDYuODY0NzIyODIsMy45MzUyNzcxOCBaXCJcbiAgICAgICAgICAgICAgICBpZD1cIuW9oueKtue7k+WQiFwiXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvY29yZS90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2NvcmUvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBT2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNSSxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBRU0sY0FBUyxHQUFHLHFCQUFxQixDQUFDO1FBWTlDLGVBQVUsR0FBbUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7S0E0QmxEO0lBNUNHLElBQ0ksUUFBUSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFZRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDO0lBRUQsT0FBTztJQUNQLEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLO0lBQ0wsTUFBTTtRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUs7SUFDTCxPQUFPO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7bUhBbERRLHFCQUFxQjt1R0FBckIscUJBQXFCLCtVQ1JsQyxtc1pBa0dBOzRGRDFGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzhCQUt6QixTQUFTO3NCQUE5QixXQUFXO3VCQUFDLE9BQU87Z0JBRVgsWUFBWTtzQkFBcEIsS0FBSztnQkFHRixRQUFRO3NCQURYLEtBQUs7Z0JBUUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUN1cnNvclN0YXR1cywgQ3Vyc29yU3RhdHVzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtdG9vbGJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFBsYWl0VG9vbGJhckNvbXBvbmVudCB7XG4gICAgX3ZpZXdab29tID0gMTAwO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RDbGFzcyA9IGBwbGFpdC1ib2FyZC10b29sYmFyYDtcblxuICAgIEBJbnB1dCgpIGN1cnNvclN0YXR1cyE6IEN1cnNvclN0YXR1cztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZpZXdab29tKHpvb206IG51bWJlcikge1xuICAgICAgICB0aGlzLl92aWV3Wm9vbSA9IE51bWJlcigoKHpvb20gPz8gMSkgKiAxMDApLnRvRml4ZWQoMCkpO1xuICAgIH1cbiAgICBnZXQgdmlld1pvb20oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3Wm9vbTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgbW92ZUhhbmRsZTogRXZlbnRFbWl0dGVyPEJhc2VDdXJzb3JTdGF0dXM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIGFkYXB0SGFuZGxlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHpvb21JbkhhbmRsZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSB6b29tT3V0SGFuZGxlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIHJlc2V0Wm9vbUhhbmRlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGRyYWdNb3ZlKCkge1xuICAgICAgICBpZiAodGhpcy5jdXJzb3JTdGF0dXMgIT09IEJhc2VDdXJzb3JTdGF0dXMubW92ZSkge1xuICAgICAgICAgICAgdGhpcy5tb3ZlSGFuZGxlLmVtaXQoQmFzZUN1cnNvclN0YXR1cy5tb3ZlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW92ZUhhbmRsZS5lbWl0KEJhc2VDdXJzb3JTdGF0dXMuc2VsZWN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIOmAguW6lOeUu+W4g1xuICAgIGFkYXB0KCkge1xuICAgICAgICB0aGlzLmFkYXB0SGFuZGxlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvLyDmlL7lpKdcbiAgICB6b29tSW4oKSB7XG4gICAgICAgIHRoaXMuem9vbUluSGFuZGxlLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvLyDnvKnlsI9cbiAgICB6b29tT3V0KCkge1xuICAgICAgICB0aGlzLnpvb21PdXRIYW5kbGUuZW1pdCgpO1xuICAgIH1cblxuICAgIHJlc2V0Wm9vbSgpIHtcbiAgICAgICAgdGhpcy5yZXNldFpvb21IYW5kZWwuZW1pdCgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ6b29tLXRvb2xiYXIgaXNsYW5kIHBsYWl0LWJvYXJkLWF0dGFjaGVkXCI+XG4gICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW0gcGxhaXQtYWN0aW9uLWljb25cIiBbbmdDbGFzc109XCJ7ICdpY29uLWFjdGl2ZSc6IGN1cnNvclN0YXR1cyA9PT0gJ21vdmUnIH1cIiAoY2xpY2spPVwiZHJhZ01vdmUoKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJhZ01vdmVUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9hPlxuICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XG4gICAgPGEgY2xhc3M9XCJ0b29sYmFyLWl0ZW0gcGxhaXQtYWN0aW9uLWljb25cIiAobW91c2Vkb3duKT1cImFkYXB0KClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkYXB0VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvYT5cbiAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxuICAgIDxhIGNsYXNzPVwidG9vbGJhci1pdGVtIHBsYWl0LWFjdGlvbi1pY29uXCIgKG1vdXNlZG93bik9XCJ6b29tT3V0KClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInpvb21PdXRUZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9hPlxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLWl0ZW0gem9vbS12YWx1ZVwiIChtb3VzZWRvd24pPVwicmVzZXRab29tKClcIj57eyB2aWV3Wm9vbSB9fSU8L2Rpdj5cbiAgICA8YSBjbGFzcz1cInRvb2xiYXItaXRlbSBwbGFpdC1hY3Rpb24taWNvblwiIChtb3VzZWRvd24pPVwiem9vbUluKClcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInpvb21JblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2E+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkcmFnTW92ZVRlbXBsYXRlPlxuICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+MS5CYXNl5Z+656GALzEuaWNvbuWbvuaghy8yLm5vcm1hbC9oYW5kPC90aXRsZT5cbiAgICAgICAgPGcgaWQ9XCIxLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL2hhbmRcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk04LjQ0NTgzNDY4LDAuNTAwMjI1ODg3IEM5LjA3NDA2OTM0LDAuNTEwMTg1Njc5IDkuNTQ3Mzk1MzEsMC44Mzk1OTEzNjYgOS44NjE5MjMxMSwxLjM0MzA1Mjc5IEM5Ljg5Njk2NjU2LDEuMzk5MTQ2NDkgOS45Mjg3ODQwMSwxLjQ1NDkyOTY0IDkuOTU3NjAyNiwxLjUwOTkxMTU3IEw5Ljk1NzYwMjYsMS41MDk5MTE1NyBMMTAuMDIxMDAzMywxLjY0MjAxMDI3IEwxMC4wNjE5NzgsMS42MjM1MDc1NSBDMTAuMTk3Mjg5MSwxLjU2ODM0MjQ3IDEwLjM0NDQxMDcsMS41MzIxODQ2NCAxMC41MDI3OTA3LDEuNTE3NTUzNTMgTDEwLjUwMjc5MDcsMS41MTc1NTM1MyBMMTAuNjY0OTAzMSwxLjUxMDE5MTMzIEMxMS40ODgzNzA4LDEuNTEwMTkxMzMgMTIuMDIwODc4MiwxLjk5MzQzMzQ2IDEyLjMwMjMwNDIsMi42NjM5MzI3OCBDMTIuMzkwMzcxNCwyLjg3MzkyOTExIDEyLjQzNDQxOTEsMy4xMDA0NzgxOCAxMi40MzM5NDQ2LDMuMzI1Nzk1MiBMMTIuNDMzOTQ0NiwzLjMyNTc5NTIgTDEyLjQzNjAwMzMsMy44MDUwMTAyNyBMMTIuNTE2MDUzNSwzLjc4MzQxNTAxIEMxMi42MTI0NDc4LDMuNzYxMjQwNDYgMTIuNzEzODgxMiwzLjc0NzM5ODU0IDEyLjgyMDIwMSwzLjc0MjUwMjc0IEwxMi44MjAyMDEsMy43NDI1MDI3NCBMMTIuOTgzMzI2NCwzLjc0MTk0NTMzIEMxMy42MTIxMTY2LDMuNzY1NzQ3OCAxNC4wNjQ1ODg3LDQuMDgwMTcyNCAxNC4zMDg3MDYyLDQuNTYxMTI2ODkgQzE0LjQ1MjExMTcsNC44NDM2NjA5IDE0LjQ5ODc5ODQsNS4xMTM0OTQzNyAxNC40OTk5MjYyLDUuMzM0NDk2MTggTDE0LjQ5OTkyNjIsNS4zMzQ0OTYxOCBMMTQuMzkyMjY1MywxMi4wNDk0MTQgQzE0LjM3ODQ3NTIsMTIuOTA5MTc3IDE0LjA3MTc3ODcsMTMuNzM2MDk0OCAxMy41MjEyNDA2LDE0LjM4MjUyMjggQzEzLjQwNTU2NzYsMTQuNTE4MzQ5NiAxMy4yODQzNjk3LDE0LjY0Mzk2MSAxMy4xNTgyMzYxLDE0Ljc1OTYzMzUgQzEyLjQ2MzQ3NzEsMTUuMzk2NzcxNiAxMS43NTUxMDMsMTUuNjUzODcwNiAxMS4xODk3Mzk2LDE1LjcwMDAwNTUgTDExLjE4OTczOTYsMTUuNzAwMDA1NSBMNy40NzIzMDgzLDE1LjY3OTgxNTggQzcuMTQyNzYzNzMsMTUuNjM0MjY4IDYuODE1ODAwOTgsMTUuNTE1NDI2NyA2LjQ5NDU1MjM1LDE1LjM0NzI1MDEgQzYuMjU2NDM3MDEsMTUuMjIyNTk0NCA2LjA2ODgxNzA2LDE1LjA5NzU0NTIgNS44ODcwNTczMSwxNC45NDk0MzA4IEw1Ljg4NzA1NzMxLDE0Ljk0OTQzMDggTDIuNTUxOTg3ODIsMTEuNTAwODczIEMyLjM5NTU5NDc1LDExLjM3NjkwNzkgMi4xNzYyNjc5MywxMS4xNzQ4NTMyIDEuOTU0ODYzNiwxMC45MTM5NDAzIEMxLjU3ODY3NTAyLDEwLjQ3MDYyMjUgMS4zMzUwMTk3NiwxMC4wMTM5OTIzIDEuMzAzMzAyNTcsOS41MjgzMzAyNSBDMS4yODA5MzE5MSw5LjE4NTc4NDc2IDEuMzcyMDA5MTIsOC44NTY0MTEwMiAxLjU4MjY3ODgsOC41Njg3MjU2NCBDMS44MjUzODgzMyw4LjIzNzI1Mjc5IDIuMTI4ODE5NjUsOC4wMjEwNzE2MiAyLjQ3NDcwNTY5LDcuOTI5NTcwMzMgQzIuOTU4MDc5ODIsNy44MDE2OTc3MSAzLjQyNzA1NzIzLDcuOTI0Njg5ODkgMy44NjUwOTY0NCw4LjE4NzMxMTY3IEM0LjA0NDMxMzkxLDguMjk0NzU5NjEgNC4xODE2MTA5LDguNDAzMDQ0ODMgNC4yNjIyNTU3MSw4LjQ3ODY2ODY3IEw0LjI2MjI1NTcxLDguNDc4NjY4NjcgTDQuNjE0MDAzMjgsOC43OTcwMTAyNyBMNC41NzI0NzI0OSwzLjU5Mjc1MzQ5IEw0LjU3NjI4NTI0LDMuNDYyMDQ5MjMgQzQuNTg5NzY5MSwzLjIzNDQ0NDQyIDQuNjQwODc1NzgsMi45NTcwMTg0OCA0Ljc1OTM3MTA2LDIuNjY5NjE1OTcgQzUuMDEwMTcyNzIsMi4wNjEzMTMwMiA1LjQ5NjcwMjI3LDEuNjQ2OTI1NDMgNi4yMTM2Mzg1NiwxLjYwODE4Nzg2IEM2LjQ0MjIzNTA4LDEuNTk1ODM2ODEgNi42NTA0MjA5OSwxLjYyMTc2ODAyIDYuODM2OTY5ODUsMS42ODA1NzU1MSBMNi44MzY5Njk4NSwxLjY4MDU3NTUxIEw2Ljg2NDAwMzI4LDEuNjkwMDEwMjcgQzYuODg1MDE4NjIsMS42MzU5MzA1MiA2LjkwNzY0MjQyLDEuNTgxNzU0NDIgNi45MzMxODY3LDEuNTI2NzI2MzMgTDYuOTMzMTg2NywxLjUyNjcyNjMzIEw3LjAxODgzNTk1LDEuMzU5NTU2MTQgQzcuMzE1NDkxOTQsMC44MzIwNDc5MzkgNy43OTQ3NjA3MiwwLjQ4OTkzNTQ5IDguNDQ1ODM0NjgsMC41MDAyMjU4ODcgWiBNOC40MjY4NDE3MywxLjcwMDAxNDc2IEM4LjI2ODI1NDEyLDEuNjk3NTY5MDUgOC4xNjMzOTQ1NiwxLjc3MjQyMDA4IDguMDY0NzgzNjcsMS45NDc3NjgxNCBDOC4wMzk2Nzc3MywxLjk5MjQxMTA3IDguMDE4MzE3MDMsMi4wMzgxMTQ5NSA4LjAwMDgzNDY0LDIuMDc4NTUwNjcgTDguMDAwODM0NjQsMi4wNzg1NTA2NyBMNy45NDg3OTE1NywyLjIwMzU5MDUgTDcuOTQzNTQ0NTUsMi4yMDczMTQwMSBMNy45NDMsMy4xNjEgTDcuOTcxNzA2NjEsMy4xNjEyMzc0NiBMNy45NzE3MDY2MSw3LjYwOTkxODgzIEw2Ljc3MTcwNjYxLDcuNjA5OTE4ODMgTDYuNzcxLDMuMzM4IEw2Ljc0MzYyMzU4LDMuMzM4ODAzNTkgQzYuNzQyODQxODksMy4yOTA2NDYyNiA2LjczMDE0MTYzLDMuMjAyODIyMDYgNi43MDAyNjE2LDMuMTEwOTQ0MDggTDYuNjY0NDYwMTIsMy4wMTkwMzM4NSBDNi41ODk4MjAyNSwyLjg1NzY2NzM5IDYuNDk4NDMyOTIsMi43OTQ1NTA3MSA2LjI3ODM4MTMzLDIuODA2NDQwMDggQzYuMDcwMDEwMTgsMi44MTc2OTg4MSA1Ljk1NjQyMTA4LDIuOTE0NDQ1MDcgNS44Njg3NzY2NCwzLjEyNzAyMDg5IEM1Ljc5NzkyMjc5LDMuMjk4ODcyMjQgNS43NzIyODEyNywzLjQ4NjU1OTA4IDUuNzcyNDY4NzksMy41ODk3NzE4MyBMNS43NzI0Njg3OSwzLjU4OTc3MTgzIEw1LjgzNjEzNjE5LDExLjUyNTIwMjEgTDMuNDE4NjM5NTYsOS4zMzQ3NzY1NyBMMy4zMTYzNzI5Niw5LjI1OTc5NTcxIEwzLjI0ODA1MDExLDkuMjE2NTEyMjQgQzMuMDYwOTY5MjIsOS4xMDQzNDk4NyAyLjg5Mjc5OTc1LDkuMDYwMjQ2NDEgMi43ODE1OTg3OSw5LjA4OTY2MzcgQzIuNzEwMDc3MzUsOS4xMDg1ODQxMSAyLjYzNjA3MzY3LDkuMTYxMzA4NCAyLjU1MDg2MzA1LDkuMjc3NjgyMTEgQzIuNTEwMjA0MjQsOS4zMzMyMDQ3OCAyLjQ5NjM4MDYxLDkuMzgzMTk2ODcgMi41MDA3NTE3MSw5LjQ1MDEyODMgQzIuNTEyMDY4ODksOS42MjM0MTk5NyAyLjY0NTAzMDIyLDkuODcyNjAwNTQgMi44Njk4MzM2NiwxMC4xMzc1MTkxIEMzLjAzMjY4ODM0LDEwLjMyOTQzNDUgMy4xOTc2MjA1MywxMC40ODEzNzgxIDMuMzU1NTQ5NTYsMTAuNjEzMTAyMiBMMy4zNTU1NDk1NiwxMC42MTMxMDIyIEw2LjY4NDU0MzE3LDE0LjA1NjkwNzMgQzYuNzExMDY1NzUsMTQuMDc3MzgwOCA2Ljc0ODA2MDg2LDE0LjEwMzcxNTggNi43OTM2OTA5MSwxNC4xMzM1OTI5IEw2Ljc5MzY5MDkxLDE0LjEzMzU5MjkgTDYuOTU0NjQ4MzgsMTQuMjMxNTMxMSBMNy4wNTExMTAzMSwxNC4yODQxMjExIEM3LjI1OTc4MTIzLDE0LjM5MzM2MjIgNy40NjI1MzUyMywxNC40NjcwNTczIDcuNTU2ODU0OTUsMTQuNDg1NDcwOCBMNy41NTY4NTQ5NSwxNC40ODU0NzA4IEwxMS4xNDA3OTg1LDE0LjUwMjIxMDggQzExLjE1MDM1NzYsMTQuNTAxMzg5OSAxMS4xNjI3OTA1LDE0LjQ5OTc1MzkgMTEuMTc3OTAwMiwxNC40OTcxNzcyIEwxMS4xNzc5MDAyLDE0LjQ5NzE3NzIgTDExLjI5OTEwNzYsMTQuNDY5NDIyNCBDMTEuMzQ5MTY4MiwxNC40NTU3Mzc1IDExLjQwODM2MjQsMTQuNDM3Mjg0IDExLjQ3NTExNTgsMTQuNDEzMDU2MyBDMTEuNzY5MzgzLDE0LjMwNjI1NDMgMTIuMDY2Njc2LDE0LjEzMjQ1OTYgMTIuMzQ3MTc1OCwxMy44NzUyMjM0IEMxMi40MzcxMjAzLDEzLjc5MjczODYgMTIuNTI0MDU5NywxMy43MDI2MzMzIDEyLjYwNzY1NCwxMy42MDQ0NzQzIEMxMi45NzYwNDY0LDEzLjE3MTkxNzIgMTMuMTgzMDU5LDEyLjYxMzc2NzggMTMuMTkyNDE5NSwxMi4wMzAxNzMgTDEzLjE5MjQxOTUsMTIuMDMwMTczIEwxMy4zMDAwMTMyLDUuMzI4MzI1NTEgQzEzLjI5OTc5MzksNS4yOTAxNjY4NSAxMy4yODI2MTE3LDUuMTkwODU5NDYgMTMuMjM4NjUyNyw1LjEwNDI1MjYyIEMxMy4xODQzODM4LDQuOTk3MzMzMjYgMTMuMTEyOTc3NCw0Ljk0NzcxMjY1IDEyLjkzNzk1NzgsNC45NDEwODczOSBDMTIuNjgxNDczOSw0LjkzMTM4ODcxIDEyLjUzNDEzMiw1LjExMTg5NTk1IDEyLjQ3NTY3OTIsNS4zOTQ4MDA2MiBMMTIuNDc2ODcxOCw3LjUyNzM0OTIyIEwxMS4yNzY4NzE4LDcuNTI3MzQ5MjIgTDExLjI3Niw1LjY4OCBMMTEuMjQ2Mjg4Myw1LjY4ODMyMDggTDExLjIzMzk1NDEsMy4zMjc3MTI4NSBDMTEuMjM0MSwzLjI1NjAzOTYgMTEuMjIwOTA1NCwzLjE4ODE3NjIxIDExLjE5NTc0ODIsMy4xMjgxODg5MiBDMTEuMDgyMDU3OSwyLjg1NzMyMDk0IDEwLjkxOTkyODgsMi43MTAxOTEzMyAxMC42NjQ5MDMxLDIuNzEwMTkxMzMgQzEwLjQ1NjgyOSwyLjcxMDE5MTMzIDEwLjMxOTc0ODcsMi44NzM3ODA2NyAxMC4yNTI0Mjk3LDMuMTEyNjQ5MzkgTDEwLjI1MzAyMjUsNy41MTI3ODMgTDkuMDUzMDIyNTQsNy41MTI3ODMgTDkuMDUzLDMuMjg4IEw5LjAxNTU0MzMxLDMuMjg3MjQyMDMgTDguOTg4MDAzMjgsMi4yOTkwMTAyNyBMOC45NjI5MTc1LDIuMjIyNjMzNjggQzguOTQ1MTU1NjcsMi4xNzQxNzE3NCA4LjkyMTY3NzU2LDIuMTE5Mzc3NDggOC44OTI0MjMyLDIuMDYzMzAwNTYgTDguODkyNDIzMiwyLjA2MzMwMDU2IEw4Ljg0NDIwMTk3LDEuOTc4ODU0NCBDOC43Mjc1ODg1NSwxLjc5MjE5MjQ5IDguNTk5MTUwMTUsMS43MDI4MDcyOCA4LjQyNjg0MTczLDEuNzAwMDE0NzYgWlwiXG4gICAgICAgICAgICAgICAgaWQ9XCLlvaLnirbnu5PlkIhcIlxuICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhZGFwdFRlbXBsYXRlPlxuICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+MS5CYXNl5Z+656GALzEuaWNvbuWbvuaghy8yLm5vcm1hbC9GaXQgY2FudmFzPC90aXRsZT5cbiAgICAgICAgPGcgaWQ9XCIxLkJhc2Xln7rnoYAvMS5pY29u5Zu+5qCHLzIubm9ybWFsL0ZpdC1jYW52YXNcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xNC45OTcxNDk0LDEwLjQgTDE0Ljk5NzE0OTQsMTMuNDAyMDUxNiBDMTQuOTk3MTQ5NCwxNC4yMzY2MTUyIDE0LjM1ODE4NzksMTQuOTIxOTQxNCAxMy41NDI3ODIsMTQuOTk1NTEyOSBMMTMuMzk3MTQ5NCwxNS4wMDIwNTE2IEwxMC40LDE1LjAwMjA1MTYgTDEwLjQsMTMuODAyMDUxNiBMMTMuMzk3MTQ5NCwxMy44MDIwNTE2IEMxMy41OTA0NDksMTMuODAyMDUxNiAxMy43NTE3MjQzLDEzLjY2NDkzODggMTMuNzg5MDIyOCwxMy40ODI2NjU2IEwxMy43OTcxNDk0LDEzLjQwMjA1MTYgTDEzLjc5NzE0OTQsMTAuNCBMMTQuOTk3MTQ5NCwxMC40IFogTTIuMiwxMC40IEwyLjIsMTMuMzk3MTQ5NCBDMi4yLDEzLjU5MDQ0OSAyLjMzNzExMjgsMTMuNzUxNzI0MyAyLjUxOTM4NjA1LDEzLjc4OTAyMjggTDIuNiwxMy43OTcxNDk0IEw1LjYwMjA1MTYxLDEzLjc5NzE0OTQgTDUuNjAyMDUxNjEsMTQuOTk3MTQ5NCBMMi42LDE0Ljk5NzE0OTQgQzEuNzY1NDM2MzgsMTQuOTk3MTQ5NCAxLjA4MDExMDIxLDE0LjM1ODE4NzkgMS4wMDY1Mzg2OCwxMy41NDI3ODIgTDEsMTMuMzk3MTQ5NCBMMSwxMC40IEwyLjIsMTAuNCBaIE0xMC41MDI0NTExLDQuOSBDMTEuMzg2MTA2Nyw0LjkgMTIuMTAyNDUxMSw1LjYxNjM0NDQgMTIuMTAyNDUxMSw2LjUgTDEyLjEwMjQ1MTEsNi41IEwxMi4xMDI0NTExLDkuNSBDMTIuMTAyNDUxMSwxMC4zODM2NTU2IDExLjM4NjEwNjcsMTEuMSAxMC41MDI0NTExLDExLjEgTDEwLjUwMjQ1MTEsMTEuMSBMNS41MDI0NTExMiwxMS4xIEM0LjYxODc5NTUyLDExLjEgMy45MDI0NTExMiwxMC4zODM2NTU2IDMuOTAyNDUxMTIsOS41IEwzLjkwMjQ1MTEyLDkuNSBMMy45MDI0NTExMiw2LjUgQzMuOTAyNDUxMTIsNS42MTYzNDQ0IDQuNjE4Nzk1NTIsNC45IDUuNTAyNDUxMTIsNC45IEw1LjUwMjQ1MTEyLDQuOSBaIE0xMC41MDI0NTExLDYuMSBMNS41MDI0NTExMiw2LjEgQzUuMjgxNTM3MjIsNi4xIDUuMTAyNDUxMTIsNi4yNzkwODYxIDUuMTAyNDUxMTIsNi41IEw1LjEwMjQ1MTEyLDYuNSBMNS4xMDI0NTExMiw5LjUgQzUuMTAyNDUxMTIsOS43MjA5MTM5IDUuMjgxNTM3MjIsOS45IDUuNTAyNDUxMTIsOS45IEw1LjUwMjQ1MTEyLDkuOSBMMTAuNTAyNDUxMSw5LjkgQzEwLjcyMzM2NSw5LjkgMTAuOTAyNDUxMSw5LjcyMDkxMzkgMTAuOTAyNDUxMSw5LjUgTDEwLjkwMjQ1MTEsOS41IEwxMC45MDI0NTExLDYuNSBDMTAuOTAyNDUxMSw2LjI3OTA4NjEgMTAuNzIzMzY1LDYuMSAxMC41MDI0NTExLDYuMSBMMTAuNTAyNDUxMSw2LjEgWiBNNS41OTcxNDkzOCwxIEw1LjU5NzE0OTM4LDIuMiBMMi42LDIuMiBDMi40MDY3MDAzNCwyLjIgMi4yNDU0MjUwOCwyLjMzNzExMjggMi4yMDgxMjY1OCwyLjUxOTM4NjA1IEwyLjIsMi42IEwyLjIsNS42MDIwNTE2MSBMMSw1LjYwMjA1MTYxIEwxLDIuNiBDMSwxLjc2NTQzNjM4IDEuNjM4OTYxNTIsMS4wODAxMTAyMSAyLjQ1NDM2NzM5LDEuMDA2NTM4NjggTDIuNiwxIEw1LjU5NzE0OTM4LDEgWiBNMTMuMzk3MTQ5NCwxIEwxMy41NDI3ODIsMS4wMDY1Mzg2OCBDMTQuMzU4MTg3OSwxLjA4MDExMDIxIDE0Ljk5NzE0OTQsMS43NjU0MzYzOCAxNC45OTcxNDk0LDIuNiBMMTQuOTk3MTQ5NCwyLjYgTDE0Ljk5NzE0OTQsNS42MDIwNTE2MSBMMTMuNzk3MTQ5NCw1LjYwMjA1MTYxIEwxMy43OTcxNDk0LDIuNiBMMTMuNzg5MDIyOCwyLjUxOTM4NjA1IEMxMy43NTE3MjQzLDIuMzM3MTEyOCAxMy41OTA0NDksMi4yIDEzLjM5NzE0OTQsMi4yIEwxMy4zOTcxNDk0LDIuMiBMMTAuNCwyLjIgTDEwLjQsMSBMMTMuMzk3MTQ5NCwxIFpcIlxuICAgICAgICAgICAgICAgIGlkPVwi5b2i54q257uT5ZCIXCJcbiAgICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3pvb21PdXRUZW1wbGF0ZT5cbiAgICA8c3ZnXG4gICAgICAgIHdpZHRoPVwiMTZweFwiXG4gICAgICAgIGhlaWdodD1cIjE2cHhcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxuICAgID5cbiAgICAgICAgPHRpdGxlPmFjdGlvbi96b29tLW91dDwvdGl0bGU+XG4gICAgICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPlxuICAgICAgICA8ZyBpZD1cImFjdGlvbi96b29tLW91dFwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuODUsMi43MzIyNTg4NmUtMTMgQzEwLjYzMzE1MDUsMi43MzIyNTg4NmUtMTMgMTMuNywzLjA2Njg0OTQ2IDEzLjcsNi44NSBDMTMuNyw4LjU0MTk0MDQ1IDEzLjA4NjU4MzYsMTAuMDkwNjA5OCAxMi4wNzAwMTQyLDExLjI4NTc0NDggTDE1LjQyMDE5NzYsMTQuNTcxNzA4MSBDMTUuNjU2NzM2NywxNC44MDM3NzY4IDE1LjY2MDM2MDcsMTUuMTgzNjU4NSAxNS40MjgyOTE5LDE1LjQyMDE5NzYgQzE1LjE5NjIyMzIsMTUuNjU2NzM2NyAxNC44MTYzNDE1LDE1LjY2MDM2MDcgMTQuNTc5ODAyNCwxNS40MjgyOTE5IEwxNC41Nzk4MDI0LDE1LjQyODI5MTkgTDExLjIxNjM0NTYsMTIuMTI4MjYyIEMxMC4wMzA5NDI3LDEzLjEwOTk2OTEgOC41MDkzNzU5MSwxMy43IDYuODUsMTMuNyBDMy4wNjY4NDk0NiwxMy43IDQuNTg1MjIxMDllLTE0LDEwLjYzMzE1MDUgNC41ODUyMjEwOWUtMTQsNi44NSBDNC41ODUyMjEwOWUtMTQsMy4wNjY4NDk0NiAzLjA2Njg0OTQ2LDIuNzMyMjU4ODZlLTEzIDYuODUsMi43MzIyNTg4NmUtMTMgWiBNNi44NSwxLjIgQzMuNzI5NTkxMTYsMS4yIDEuMiwzLjcyOTU5MTE2IDEuMiw2Ljg1IEMxLjIsOS45NzA0MDg4NCAzLjcyOTU5MTE2LDEyLjUgNi44NSwxMi41IEM4LjMxNzUzMzU3LDEyLjUgOS42NTQzODc5MSwxMS45NDA0OTU3IDEwLjY1ODg4NTksMTEuMDIzMTY0MyBDMTAuNjg1NTQxMiwxMC45NjI1NDA4IDEwLjcyNDUyNzUsMTAuOTA1MDg5OCAxMC43NzQzOTgyLDEwLjg1NDI1ODQgQzEwLjgyODg5MzEsMTAuNzk4NzEzNyAxMC44OTE1Mzg3LDEwLjc1NjAxMjQgMTAuOTU4NTY0OSwxMC43MjYxOTAzIEMxMS45MTQ0MDA5LDkuNzE1OTU3NTggMTIuNSw4LjM1MTM2NTc5IDEyLjUsNi44NSBDMTIuNSwzLjcyOTU5MTE2IDkuOTcwNDA4ODQsMS4yIDYuODUsMS4yIFogTTQuNiw2LjIgTDkuMTI5NDQ1NjUsNi4yIEM5LjQ2MDgxNjUsNi4yIDkuNzI5NDQ1NjUsNi40Njg2MjkxNSA5LjcyOTQ0NTY1LDYuOCBDOS43Mjk0NDU2NSw3LjA5ODIzMzc2IDkuNTExODU2MDQsNy4zNDU2NDY3NSA5LjIyNjc2ODc2LDcuMzkyMTQ3MDEgTDkuMTI5NDQ1NjUsNy40IEw0LjYsNy40IEM0LjI2ODYyOTE1LDcuNCA0LDcuMTMxMzcwODUgNCw2LjggQzQsNi41MDE3NjYyNCA0LjIxNzU4OTYxLDYuMjU0MzUzMjUgNC41MDI2NzY4OCw2LjIwNzg1Mjk5IEw0LjYsNi4yIEw5LjEyOTQ0NTY1LDYuMiBaXCJcbiAgICAgICAgICAgICAgICBpZD1cIuW9oueKtue7k+WQiFwiXG4gICAgICAgICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICA8L2c+XG4gICAgPC9zdmc+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3pvb21JblRlbXBsYXRlXG4gICAgPjxzdmdcbiAgICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTZweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgPlxuICAgICAgICA8dGl0bGU+YWN0aW9uL3pvb20taW48L3RpdGxlPlxuICAgICAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz5cbiAgICAgICAgPGcgaWQ9XCJhY3Rpb24vem9vbS1pblwiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTYuODUsLTEuODExODgzOThlLTEzIEMxMC42MzMxNTA1LC0xLjgxMTg4Mzk4ZS0xMyAxMy43LDMuMDY2ODQ5NDYgMTMuNyw2Ljg1IEMxMy43LDguNTQxOTQwNDUgMTMuMDg2NTgzNiwxMC4wOTA2MDk4IDEyLjA3MDAxNDIsMTEuMjg1NzQ0OCBMMTUuNDIwMTk3NiwxNC41NzE3MDgxIEMxNS42NTY3MzY3LDE0LjgwMzc3NjggMTUuNjYwMzYwNywxNS4xODM2NTg1IDE1LjQyODI5MTksMTUuNDIwMTk3NiBDMTUuMTk2MjIzMiwxNS42NTY3MzY3IDE0LjgxNjM0MTUsMTUuNjYwMzYwNyAxNC41Nzk4MDI0LDE1LjQyODI5MTkgTDE0LjU3OTgwMjQsMTUuNDI4MjkxOSBMMTEuMjE2MzQ1NiwxMi4xMjgyNjIgQzEwLjAzMDk0MjcsMTMuMTA5OTY5MSA4LjUwOTM3NTkxLDEzLjcgNi44NSwxMy43IEMzLjA2Njg0OTQ2LDEzLjcgNC42MTg1Mjc3OGUtMTQsMTAuNjMzMTUwNSA0LjYxODUyNzc4ZS0xNCw2Ljg1IEM0LjYxODUyNzc4ZS0xNCwzLjA2Njg0OTQ2IDMuMDY2ODQ5NDYsLTEuODExODgzOThlLTEzIDYuODUsLTEuODExODgzOThlLTEzIFogTTYuODUsMS4yIEMzLjcyOTU5MTE2LDEuMiAxLjIsMy43Mjk1OTExNiAxLjIsNi44NSBDMS4yLDkuOTcwNDA4ODQgMy43Mjk1OTExNiwxMi41IDYuODUsMTIuNSBDOC4zMTc1MzM1NywxMi41IDkuNjU0Mzg3OTEsMTEuOTQwNDk1NyAxMC42NTg4ODU5LDExLjAyMzE2NDMgQzEwLjY4NTU0MTIsMTAuOTYyNTQwOCAxMC43MjQ1Mjc1LDEwLjkwNTA4OTggMTAuNzc0Mzk4MiwxMC44NTQyNTg0IEMxMC44Mjg4OTMxLDEwLjc5ODcxMzcgMTAuODkxNTM4NywxMC43NTYwMTI0IDEwLjk1ODU2NDksMTAuNzI2MTkwMyBDMTEuOTE0NDAwOSw5LjcxNTk1NzU4IDEyLjUsOC4zNTEzNjU3OSAxMi41LDYuODUgQzEyLjUsMy43Mjk1OTExNiA5Ljk3MDQwODg0LDEuMiA2Ljg1LDEuMiBaIE02Ljg2NDcyMjgyLDMuOTM1Mjc3MTggQzcuMTYyOTU2NTksMy45MzUyNzcxOCA3LjQxMDM2OTU4LDQuMTUyODY2NzkgNy40NTY4Njk4NCw0LjQzNzk1NDA2IEw3LjQ2NDcyMjgyLDQuNTM1Mjc3MTggTDcuNDY0LDYuMTk5Mjc3MTggTDkuMTI5NDQ1NjUsNi4yIEM5LjQyNzY3OTQxLDYuMiA5LjY3NTA5MjQsNi40MTc1ODk2MSA5LjcyMTU5MjY2LDYuNzAyNjc2ODggTDkuNzI5NDQ1NjUsNi44IEM5LjcyOTQ0NTY1LDcuMDk4MjMzNzYgOS41MTE4NTYwNCw3LjM0NTY0Njc1IDkuMjI2NzY4NzYsNy4zOTIxNDcwMSBMOS4xMjk0NDU2NSw3LjQgTDcuNDY0LDcuMzk5Mjc3MTggTDcuNDY0NzIyODIsOS4wNjQ3MjI4MiBDNy40NjQ3MjI4Miw5LjM2Mjk1NjU5IDcuMjQ3MTMzMjEsOS42MTAzNjk1OCA2Ljk2MjA0NTk0LDkuNjU2ODY5ODQgTDYuODY0NzIyODIsOS42NjQ3MjI4MiBDNi41NjY0ODkwNiw5LjY2NDcyMjgyIDYuMzE5MDc2MDcsOS40NDcxMzMyMSA2LjI3MjU3NTgxLDkuMTYyMDQ1OTQgTDYuMjY0NzIyODIsOS4wNjQ3MjI4MiBMNi4yNjQsNy4zOTkyNzcxOCBMNC42LDcuNCBDNC4zMDE3NjYyNCw3LjQgNC4wNTQzNTMyNSw3LjE4MjQxMDM5IDQuMDA3ODUyOTksNi44OTczMjMxMiBMNCw2LjggQzQsNi41MDE3NjYyNCA0LjIxNzU4OTYxLDYuMjU0MzUzMjUgNC41MDI2NzY4OCw2LjIwNzg1Mjk5IEw0LjYsNi4yIEw2LjI2NCw2LjE5OTI3NzE4IEw2LjI2NDcyMjgyLDQuNTM1Mjc3MTggQzYuMjY0NzIyODIsNC4yNzAxODA1IDYuNDM2NjQ1NDgsNC4wNDUyMzg1IDYuNjc1MDc2NDIsMy45NjU4NjU1NyBMNi43NjczOTk3MSwzLjk0MzEzMDE2IEw2Ljg2NDcyMjgyLDMuOTM1Mjc3MTggWlwiXG4gICAgICAgICAgICAgICAgaWQ9XCLlvaLnirbnu5PlkIhcIlxuICAgICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPC9nPlxuICAgIDwvc3ZnPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -2,5 +2,6 @@ export var BaseCursorStatus;
|
|
|
2
2
|
(function (BaseCursorStatus) {
|
|
3
3
|
BaseCursorStatus["move"] = "move";
|
|
4
4
|
BaseCursorStatus["select"] = "select";
|
|
5
|
+
BaseCursorStatus["drag"] = "drag";
|
|
5
6
|
})(BaseCursorStatus || (BaseCursorStatus = {}));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Vyc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2ludGVyZmFjZXMvY3Vyc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDeEIsaUNBQWUsQ0FBQTtJQUNmLHFDQUFtQixDQUFBO0lBQ25CLGlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDdXJzb3JTdGF0dXMgPSBCYXNlQ3Vyc29yU3RhdHVzIHwgc3RyaW5nO1xuZXhwb3J0IGVudW0gQmFzZUN1cnNvclN0YXR1cyB7XG4gICAgJ21vdmUnID0gJ21vdmUnLFxuICAgICdzZWxlY3QnID0gJ3NlbGVjdCcsXG4gICAgJ2RyYWcnID0gJ2RyYWcnXG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseCursorStatus } from '../interfaces/cursor';
|
|
2
|
-
import { Transforms } from '../
|
|
2
|
+
import { Transforms } from '../transforms';
|
|
3
3
|
import { FLUSHING } from '../utils/weak-maps';
|
|
4
4
|
export function createBoard(host, children, options) {
|
|
5
5
|
const board = {
|
|
@@ -53,4 +53,4 @@ export function createBoard(host, children, options) {
|
|
|
53
53
|
};
|
|
54
54
|
return board;
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3BsdWdpbnMvY3JlYXRlLWJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBZ0IsRUFBRSxRQUF3QixFQUFFLE9BQTBCO0lBQzlGLE1BQU0sS0FBSyxHQUFlO1FBQ3RCLElBQUk7UUFDSixRQUFRLEVBQUU7WUFDTixZQUFZLEVBQUUsR0FBRztZQUNqQixZQUFZLEVBQUUsR0FBRztZQUNqQixJQUFJLEVBQUUsQ0FBQztZQUNQLG1CQUFtQixFQUFFLE1BQU07U0FDOUI7UUFDRCxRQUFRO1FBQ1IsVUFBVSxFQUFFLEVBQUU7UUFDZCxPQUFPLEVBQUU7WUFDTCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFO1NBQ1o7UUFDRCxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1FBQy9CLE9BQU8sRUFBRSxPQUFPLElBQUk7WUFDaEIsUUFBUSxFQUFFLEtBQUs7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixhQUFhLEVBQUUsS0FBSztTQUN2QjtRQUNELElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7UUFDZCxLQUFLLEVBQUUsQ0FBQyxTQUF5QixFQUFFLEVBQUU7WUFDakMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFakMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3RCLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUUxQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzNCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDO1FBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7UUFDbEIsU0FBUyxFQUFFLENBQUMsS0FBaUIsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUNwQyxhQUFhLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUUsR0FBRSxDQUFDO1FBQ3hDLFNBQVMsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxHQUFFLENBQUM7UUFDcEMsT0FBTyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUNyQyxLQUFLLEVBQUUsQ0FBQyxLQUFvQixFQUFFLEVBQUUsR0FBRSxDQUFDO1FBQ25DLFFBQVEsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRSxHQUFFLENBQUM7UUFDbkMsV0FBVyxFQUFFLENBQUMsSUFBeUIsRUFBRSxFQUFFLEdBQUUsQ0FBQztRQUM5QyxjQUFjLEVBQUUsQ0FBQyxJQUF5QixFQUFFLEVBQUUsR0FBRSxDQUFDO1FBQ2pELGNBQWMsRUFBRSxDQUFDLElBQXlCLEVBQUUsRUFBRSxHQUFFLENBQUM7UUFDakQsV0FBVyxFQUFFLENBQUMsT0FBNEIsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNqRCxhQUFhLEVBQUUsQ0FBQyxPQUE0QixFQUFFLE9BQXNCLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDM0UsY0FBYyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7S0FDM0IsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEJvYXJkT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgQmFzZUN1cnNvclN0YXR1cyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY3Vyc29yJztcbmltcG9ydCB7IFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvZWxlbWVudCc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnRDb250ZXh0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50LWNvbnRleHQnO1xuaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBGTFVTSElORyB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb2FyZChob3N0OiBTVkdFbGVtZW50LCBjaGlsZHJlbjogUGxhaXRFbGVtZW50W10sIG9wdGlvbnM6IFBsYWl0Qm9hcmRPcHRpb25zKTogUGxhaXRCb2FyZCB7XG4gICAgY29uc3QgYm9hcmQ6IFBsYWl0Qm9hcmQgPSB7XG4gICAgICAgIGhvc3QsXG4gICAgICAgIHZpZXdwb3J0OiB7XG4gICAgICAgICAgICBvZmZzZXRYUmF0aW86IDAuNSxcbiAgICAgICAgICAgIG9mZnNldFlSYXRpbzogMC41LFxuICAgICAgICAgICAgem9vbTogMSxcbiAgICAgICAgICAgIHZpZXdCYWNrZ3JvdW5kQ29sb3I6ICcjMDAwJ1xuICAgICAgICB9LFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgb3BlcmF0aW9uczogW10sXG4gICAgICAgIGhpc3Rvcnk6IHtcbiAgICAgICAgICAgIHJlZG9zOiBbXSxcbiAgICAgICAgICAgIHVuZG9zOiBbXVxuICAgICAgICB9LFxuICAgICAgICBzZWxlY3Rpb246IG51bGwsXG4gICAgICAgIGN1cnNvcjogQmFzZUN1cnNvclN0YXR1cy5zZWxlY3QsXG4gICAgICAgIG9wdGlvbnM6IG9wdGlvbnMgfHwge1xuICAgICAgICAgICAgcmVhZG9ubHk6IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dDbGVhckJvYXJkOiBmYWxzZSxcbiAgICAgICAgICAgIGhpZGVTY3JvbGxiYXI6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIHVuZG86ICgpID0+IHt9LFxuICAgICAgICByZWRvOiAoKSA9PiB7fSxcbiAgICAgICAgYXBwbHk6IChvcGVyYXRpb246IFBsYWl0T3BlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgICBib2FyZC5vcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKTtcblxuICAgICAgICAgICAgVHJhbnNmb3Jtcy50cmFuc2Zvcm0oYm9hcmQsIG9wZXJhdGlvbik7XG5cbiAgICAgICAgICAgIGlmICghRkxVU0hJTkcuZ2V0KGJvYXJkKSkge1xuICAgICAgICAgICAgICAgIEZMVVNISU5HLnNldChib2FyZCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgRkxVU0hJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGJvYXJkLm9uQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJvYXJkLm9wZXJhdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2U6ICgpID0+IHt9LFxuICAgICAgICBtb3VzZWRvd246IChldmVudDogTW91c2VFdmVudCkgPT4ge30sXG4gICAgICAgIGdsb2JhbE1vdXNldXA6IChldmVudDogTW91c2VFdmVudCkgPT4ge30sXG4gICAgICAgIG1vdXNlbW92ZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7fSxcbiAgICAgICAga2V5ZG93bjogKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7fSxcbiAgICAgICAga2V5dXA6IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge30sXG4gICAgICAgIGRibGNsaWNrOiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHt9LFxuICAgICAgICBzZXRGcmFnbWVudDogKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHt9LFxuICAgICAgICBpbnNlcnRGcmFnbWVudDogKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHt9LFxuICAgICAgICBkZWxldGVGcmFnbWVudDogKGRhdGE6IERhdGFUcmFuc2ZlciB8IG51bGwpID0+IHt9LFxuICAgICAgICBkcmF3RWxlbWVudDogKGNvbnRleHQ6IFBsYWl0RWxlbWVudENvbnRleHQpID0+IFtdLFxuICAgICAgICByZWRyYXdFbGVtZW50OiAoY29udGV4dDogUGxhaXRFbGVtZW50Q29udGV4dCwgY2hhbmdlczogU2ltcGxlQ2hhbmdlcykgPT4gW10sXG4gICAgICAgIGRlc3Ryb3lFbGVtZW50OiAoKSA9PiB7fVxuICAgIH07XG4gICAgcmV0dXJuIGJvYXJkO1xufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Transforms } from '../
|
|
1
|
+
import { Transforms } from '../transforms';
|
|
2
|
+
import { isNoSelectionElement } from '../utils/board';
|
|
2
3
|
import { toPoint } from '../utils/dom';
|
|
3
4
|
import { toRectangleClient } from '../utils/graph';
|
|
4
|
-
import { isNoSelectionElement } from '../utils/board';
|
|
5
5
|
export function withSelection(board) {
|
|
6
6
|
const { mousedown, mousemove, globalMouseup } = board;
|
|
7
7
|
let start = null;
|
|
@@ -42,4 +42,4 @@ export function withSelection(board) {
|
|
|
42
42
|
};
|
|
43
43
|
return board;
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvcGx1Z2lucy93aXRoLXNlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxVQUFVLGFBQWEsQ0FBdUIsS0FBUTtJQUN4RCxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFdEQsSUFBSSxLQUFLLEdBQWlCLElBQUksQ0FBQztJQUMvQixJQUFJLEdBQUcsR0FBaUIsSUFBSSxDQUFDO0lBRTdCLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDcEMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakIsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxZQUFZLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDcEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxLQUFLLEVBQUU7WUFDUCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4RSxHQUFHLEdBQUcsV0FBVyxDQUFDO2FBQ3JCO1NBQ0o7UUFDRCxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUN4QyxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbkU7YUFBTTtZQUNILFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNiLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFFWCxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBpc05vU2VsZWN0aW9uRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2JvYXJkJztcbmltcG9ydCB7IHRvUG9pbnQgfSBmcm9tICcuLi91dGlscy9kb20nO1xuaW1wb3J0IHsgdG9SZWN0YW5nbGVDbGllbnQgfSBmcm9tICcuLi91dGlscy9ncmFwaCc7XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoU2VsZWN0aW9uPFQgZXh0ZW5kcyBQbGFpdEJvYXJkPihib2FyZDogVCkge1xuICAgIGNvbnN0IHsgbW91c2Vkb3duLCBtb3VzZW1vdmUsIGdsb2JhbE1vdXNldXAgfSA9IGJvYXJkO1xuXG4gICAgbGV0IHN0YXJ0OiBQb2ludCB8IG51bGwgPSBudWxsO1xuICAgIGxldCBlbmQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBib2FyZC5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGlzTm9TZWxlY3Rpb25FbGVtZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgbW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgTm9kZSAmJiBib2FyZC5ob3N0LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgICAgICAgIHN0YXJ0ID0gdG9Qb2ludChldmVudC54LCBldmVudC55LCBib2FyZC5ob3N0KTtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgbW92ZWRUYXJnZXQgPSB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIGJvYXJkLmhvc3QpO1xuICAgICAgICBpZiAoc3RhcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZUNsaWVudCA9IHRvUmVjdGFuZ2xlQ2xpZW50KFtzdGFydCwgbW92ZWRUYXJnZXRdKTtcbiAgICAgICAgICAgIGlmIChzdGFydCAmJiBNYXRoLmh5cG90KHJlY3RhbmdsZUNsaWVudC53aWR0aCwgcmVjdGFuZ2xlQ2xpZW50LmhlaWdodCkgPiA1KSB7XG4gICAgICAgICAgICAgICAgZW5kID0gbW92ZWRUYXJnZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbW91c2Vtb3ZlKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQuZ2xvYmFsTW91c2V1cCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoaXNOb1NlbGVjdGlvbkVsZW1lbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2xvYmFsTW91c2V1cChldmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFNlbGVjdGlvbihib2FyZCwgeyBhbmNob3I6IHN0YXJ0LCBmb2N1czogc3RhcnQgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFNlbGVjdGlvbihib2FyZCwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhcnQgPSBudWxsO1xuICAgICAgICBlbmQgPSBudWxsO1xuXG4gICAgICAgIGdsb2JhbE1vdXNldXAoZXZlbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gYm9hcmQ7XG59XG4iXX0=
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Public API Surface of plait
|
|
3
3
|
*/
|
|
4
4
|
export * from './board/board.component';
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './utils';
|
|
7
|
-
export * from './transfroms';
|
|
8
|
-
export * from './interfaces';
|
|
5
|
+
export * from './constants';
|
|
9
6
|
export * from './core/base/detector';
|
|
10
7
|
export * from './core/element/element.component';
|
|
11
8
|
export * from './core/toolbar/toolbar.component';
|
|
12
|
-
export * from './
|
|
13
|
-
|
|
9
|
+
export * from './interfaces';
|
|
10
|
+
export * from './plait.module';
|
|
11
|
+
export * from './transforms';
|
|
12
|
+
export * from './utils';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwbGFpdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYm9hcmQvYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9iYXNlL2RldGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3BsYWl0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5cbiJdfQ==
|
|
@@ -136,4 +136,4 @@ export const GeneralTransforms = {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy90cmFuc2Zyb21zL2dlbmVyYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTTFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBRSxTQUEyQixFQUFFLFFBQWtCLEVBQUUsRUFBa0IsRUFBRSxFQUFFO0lBQzVHLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNiLEtBQUssYUFBYSxDQUFDLENBQUM7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNwRCxNQUFNLElBQUksS0FBSyxDQUNYLG9EQUFvRCxJQUFJLHdEQUF3RCxDQUNuSCxDQUFDO2FBQ0w7WUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLE1BQU07U0FDVDtRQUNELEtBQUssYUFBYSxDQUFDLENBQUM7WUFDaEIsTUFB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Q0FBRSxXQUFXLENBQUMsUUFBUSxDQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUN2RjtJQUNMLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQsIGlzRHJhZnQgfSBmcm9tICdpbW1lcic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlld3BvcnQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmFsVHJhbnNmb3JtcyB7XG4gICAgdHJhbnNmb3JtOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wOiBQbGFpdE9wZXJhdGlvbikgPT4gdm9pZDtcbn1cblxuY29uc3QgYXBwbHlUb0RyYWZ0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwsIHZpZXdwb3J0OiBWaWV3cG9ydCwgb3A6IFBsYWl0T3BlcmF0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChvcC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBub2RlIH0gPSBvcDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5wYXJlbnQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuIHx8IGluZGV4ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENhbm5vdCBhcHBseSBhbiBcImluc2VydF9ub2RlXCIgb3BlcmF0aW9uIGF0IHBhdGggWyR7cGF0aH1dIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIHBhc3QgdGhlIGVuZCBvZiB0aGUgbm9kZS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMCwgbm9kZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdyZW1vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCB9ID0gb3A7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUucGFyZW50KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmVudC5jaGlsZHJlbiB8fCBpbmRleCA+IHBhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYXBwbHkgYW4gXCJpbnNlcnRfbm9kZVwiIG9wZXJhdGlvbiBhdCBwYXRoIFske3BhdGh9XSBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBwYXN0IHRoZSBlbmQgb2YgdGhlIG5vZGUuYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgbmV3UGF0aCB9ID0gb3A7XG5cbiAgICAgICAgICAgIGlmIChQYXRoLmlzQW5jZXN0b3IocGF0aCwgbmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtb3ZlIGEgcGF0aCBbJHtwYXRofV0gdG8gbmV3IHBhdGggWyR7bmV3UGF0aH1dIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIGluc2lkZSBpdHNlbGYuYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5wYXJlbnQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgdHJpY2t5LCBidXQgc2luY2UgdGhlIGBwYXRoYCBhbmQgYG5ld1BhdGhgIGJvdGggcmVmZXIgdG9cbiAgICAgICAgICAgIC8vIHRoZSBzYW1lIHNuYXBzaG90IGluIHRpbWUsIHRoZXJlJ3MgYSBtaXNtYXRjaC4gQWZ0ZXIgZWl0aGVyXG4gICAgICAgICAgICAvLyByZW1vdmluZyB0aGUgb3JpZ2luYWwgcG9zaXRpb24sIHRoZSBzZWNvbmQgc3RlcCdzIHBhdGggY2FuIGJlIG91dFxuICAgICAgICAgICAgLy8gb2YgZGF0ZS4gU28gaW5zdGVhZCBvZiB1c2luZyB0aGUgYG9wLm5ld1BhdGhgIGRpcmVjdGx5LCB3ZVxuICAgICAgICAgICAgLy8gdHJhbnNmb3JtIGBvcC5wYXRoYCB0byBhc2NlcnRhaW4gd2hhdCB0aGUgYG5ld1BhdGhgIHdvdWxkIGJlIGFmdGVyXG4gICAgICAgICAgICAvLyB0aGUgb3BlcmF0aW9uIHdhcyBhcHBsaWVkLlxuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuPy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgY29uc3QgdHJ1ZVBhdGggPSBQYXRoLnRyYW5zZm9ybShwYXRoLCBvcCkhO1xuICAgICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wYXJlbnQodHJ1ZVBhdGgpKSBhcyBBbmNlc3RvcjtcbiAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gdHJ1ZVBhdGhbdHJ1ZVBhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIG5ld1BhcmVudC5jaGlsZHJlbj8uc3BsaWNlKG5ld0luZGV4LCAwLCBub2RlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NldF9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBwcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcblxuICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2V0IHByb3BlcnRpZXMgb24gdGhlIHJvb3Qgbm9kZSFgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXdQcm9wZXJ0aWVzW2tleV07XG5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbm9kZVtrZXldO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJldmlvdXNseSBkZWZpbmVkLCBidXQgYXJlIG5vdyBtaXNzaW5nLCBtdXN0IGJlIGRlbGV0ZWRcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbm9kZVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X3ZpZXdwb3J0Jzoge1xuICAgICAgICAgICAgY29uc3QgeyBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcbiAgICAgICAgICAgIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2aWV3cG9ydCA9IG5ld1Byb3BlcnRpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVmlld3BvcnQuaXNWaWV3cG9ydChuZXdQcm9wZXJ0aWVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYXBwbHkgYW4gaW5jb21wbGV0ZSBcInNldF92aWV3cG9ydFwiIG9wZXJhdGlvbiBwcm9wZXJ0aWVzICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfSB3aGVuIHRoZXJlIGlzIG5vIGN1cnJlbnQgdmlld3BvcnQuYFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydCA9IHsgLi4ubmV3UHJvcGVydGllcyB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXdQcm9wZXJ0aWVzW2tleV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2aWV3cG9ydFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X3NlbGVjdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICBpZiAobmV3UHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gbmV3UHJvcGVydGllcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBvcC5uZXdQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5hbmNob3IgPSBuZXdQcm9wZXJ0aWVzLmFuY2hvcjtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmZvY3VzID0gbmV3UHJvcGVydGllcy5mb2N1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzZWxlY3Rpb24sIHZpZXdwb3J0IH07XG59O1xuXG5leHBvcnQgY29uc3QgR2VuZXJhbFRyYW5zZm9ybXM6IEdlbmVyYWxUcmFuc2Zvcm1zID0ge1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSB0aGUgYm9hcmQgYnkgYW4gb3BlcmF0aW9uLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybShib2FyZDogUGxhaXRCb2FyZCwgb3A6IFBsYWl0T3BlcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIGJvYXJkLmNoaWxkcmVuID0gY3JlYXRlRHJhZnQoYm9hcmQuY2hpbGRyZW4pO1xuICAgICAgICBsZXQgdmlld3BvcnQgPSBib2FyZC52aWV3cG9ydCAmJiBjcmVhdGVEcmFmdChib2FyZC52aWV3cG9ydCk7XG4gICAgICAgIGxldCBzZWxlY3Rpb24gPSBib2FyZC5zZWxlY3Rpb24gJiYgY3JlYXRlRHJhZnQoYm9hcmQuc2VsZWN0aW9uKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBhcHBseVRvRHJhZnQoYm9hcmQsIHNlbGVjdGlvbiwgdmlld3BvcnQsIG9wKTtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gc3RhdGUudmlld3BvcnQ7XG4gICAgICAgICAgICBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb247XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBib2FyZC5jaGlsZHJlbiA9IGZpbmlzaERyYWZ0KGJvYXJkLmNoaWxkcmVuKTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IGlzRHJhZnQoc2VsZWN0aW9uKSA/IChmaW5pc2hEcmFmdChzZWxlY3Rpb24pIGFzIFNlbGVjdGlvbikgOiBzZWxlY3Rpb247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib2FyZC52aWV3cG9ydCA9IGlzRHJhZnQodmlld3BvcnQpID8gKGZpbmlzaERyYWZ0KHZpZXdwb3J0KSBhcyBWaWV3cG9ydCkgOiB2aWV3cG9ydDtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy90cmFuc2Zvcm1zL2dlbmVyYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxPQUFPLEVBQVksU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTTFDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBaUIsRUFBRSxTQUEyQixFQUFFLFFBQWtCLEVBQUUsRUFBa0IsRUFBRSxFQUFFO0lBQzVHLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRTtRQUNiLEtBQUssYUFBYSxDQUFDLENBQUM7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNwRCxNQUFNLElBQUksS0FBSyxDQUNYLG9EQUFvRCxJQUFJLHdEQUF3RCxDQUNuSCxDQUFDO2FBQ0w7WUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLE1BQU07U0FDVDtRQUNELEtBQUssYUFBYSxDQUFDLENBQUM7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNwQixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BELE1BQU0sSUFBSSxLQUFLLENBQ1gsb0RBQW9ELElBQUksd0RBQXdELENBQ25ILENBQUM7YUFDTDtZQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNO1NBQ1Q7UUFDRCxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ2QsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxrQkFBa0IsT0FBTyw2Q0FBNkMsQ0FBQyxDQUFDO2FBQ3RIO1lBRUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFcEMsbUVBQW1FO1lBQ25FLDhEQUE4RDtZQUM5RCxvRUFBb0U7WUFDcEUsNkRBQTZEO1lBQzdELHFFQUFxRTtZQUNyRSw2QkFBNkI7WUFDN0IsTUFBTSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBRSxDQUFDO1lBQzNDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQWEsQ0FBQztZQUMxRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUvQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlDLE1BQU07U0FDVDtRQUNELEtBQUssVUFBVSxDQUFDLENBQUM7WUFDYixNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFFL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO2FBQzlEO1lBRUQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFeEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7Z0JBQzdCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFakMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO29CQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2lCQUNyQjthQUNKO1lBRUQsZ0ZBQWdGO1lBQ2hGLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO2dCQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3BCO2FBQ0o7WUFFRCxNQUFNO1NBQ1Q7UUFDRCxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxhQUFhLElBQUksSUFBSSxFQUFFO2dCQUN2QixRQUFRLEdBQUcsYUFBYSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNILElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUU7d0JBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQ1gsa0VBQWtFLElBQUksQ0FBQyxTQUFTLENBQzVFLGFBQWEsQ0FDaEIscUNBQXFDLENBQ3pDLENBQUM7cUJBQ0w7b0JBQ0QsUUFBUSxHQUFHLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQztpQkFDbkM7Z0JBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7b0JBQzdCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFFakMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO3dCQUNmLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUN4Qjt5QkFBTTt3QkFDSCxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO3FCQUN6QjtpQkFDSjthQUNKO1lBQ0QsTUFBTTtTQUNUO1FBQ0QsS0FBSyxlQUFlLENBQUMsQ0FBQztZQUNsQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQzdCLElBQUksYUFBYSxJQUFJLElBQUksRUFBRTtnQkFDdkIsU0FBUyxHQUFHLGFBQWEsQ0FBQzthQUM3QjtpQkFBTTtnQkFDSCxJQUFJLFNBQVMsS0FBSyxJQUFJLEVBQUU7b0JBQ3BCLFNBQVMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUNoQztxQkFBTTtvQkFDSCxTQUFTLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQ3hDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztpQkFDekM7YUFDSjtZQUNELE1BQU07U0FDVDtLQUNKO0lBQ0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUNuQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0I7SUFDaEQ7O09BRUc7SUFDSCxTQUFTLENBQUMsS0FBaUIsRUFBRSxFQUFrQjtRQUMzQyxLQUFLLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRSxJQUFJO1lBQ0EsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNELFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQzFCLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQy9CO2dCQUFTO1lBQ04sS0FBSyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTdDLElBQUksU0FBUyxFQUFFO2dCQUNYLEtBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxXQUFXLENBQUMsU0FBUyxDQUFlLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQzthQUM1RjtpQkFBTTtnQkFDSCxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUMxQjtZQUNELEtBQUssQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxXQUFXLENBQUMsUUFBUSxDQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUN2RjtJQUNMLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRPcGVyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL29wZXJhdGlvbic7XG5pbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQsIGlzRHJhZnQgfSBmcm9tICdpbW1lcic7XG5pbXBvcnQgeyBWaWV3cG9ydCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdmlld3BvcnQnO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgQW5jZXN0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBQYXRoIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wYXRoJztcblxuZXhwb3J0IGludGVyZmFjZSBHZW5lcmFsVHJhbnNmb3JtcyB7XG4gICAgdHJhbnNmb3JtOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wOiBQbGFpdE9wZXJhdGlvbikgPT4gdm9pZDtcbn1cblxuY29uc3QgYXBwbHlUb0RyYWZ0ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwsIHZpZXdwb3J0OiBWaWV3cG9ydCwgb3A6IFBsYWl0T3BlcmF0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChvcC50eXBlKSB7XG4gICAgICAgIGNhc2UgJ2luc2VydF9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBub2RlIH0gPSBvcDtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5wYXJlbnQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIGlmICghcGFyZW50LmNoaWxkcmVuIHx8IGluZGV4ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYENhbm5vdCBhcHBseSBhbiBcImluc2VydF9ub2RlXCIgb3BlcmF0aW9uIGF0IHBhdGggWyR7cGF0aH1dIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIHBhc3QgdGhlIGVuZCBvZiB0aGUgbm9kZS5gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnNwbGljZShpbmRleCwgMCwgbm9kZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdyZW1vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCB9ID0gb3A7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBQbGFpdE5vZGUucGFyZW50KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGF0aFtwYXRoLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmVudC5jaGlsZHJlbiB8fCBpbmRleCA+IHBhcmVudC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYXBwbHkgYW4gXCJpbnNlcnRfbm9kZVwiIG9wZXJhdGlvbiBhdCBwYXRoIFske3BhdGh9XSBiZWNhdXNlIHRoZSBkZXN0aW5hdGlvbiBpcyBwYXN0IHRoZSBlbmQgb2YgdGhlIG5vZGUuYFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4uc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ21vdmVfbm9kZSc6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgbmV3UGF0aCB9ID0gb3A7XG5cbiAgICAgICAgICAgIGlmIChQYXRoLmlzQW5jZXN0b3IocGF0aCwgbmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtb3ZlIGEgcGF0aCBbJHtwYXRofV0gdG8gbmV3IHBhdGggWyR7bmV3UGF0aH1dIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGlzIGluc2lkZSBpdHNlbGYuYCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBQbGFpdE5vZGUuZ2V0KGJvYXJkLCBwYXRoKTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IFBsYWl0Tm9kZS5wYXJlbnQoYm9hcmQsIHBhdGgpO1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgdHJpY2t5LCBidXQgc2luY2UgdGhlIGBwYXRoYCBhbmQgYG5ld1BhdGhgIGJvdGggcmVmZXIgdG9cbiAgICAgICAgICAgIC8vIHRoZSBzYW1lIHNuYXBzaG90IGluIHRpbWUsIHRoZXJlJ3MgYSBtaXNtYXRjaC4gQWZ0ZXIgZWl0aGVyXG4gICAgICAgICAgICAvLyByZW1vdmluZyB0aGUgb3JpZ2luYWwgcG9zaXRpb24sIHRoZSBzZWNvbmQgc3RlcCdzIHBhdGggY2FuIGJlIG91dFxuICAgICAgICAgICAgLy8gb2YgZGF0ZS4gU28gaW5zdGVhZCBvZiB1c2luZyB0aGUgYG9wLm5ld1BhdGhgIGRpcmVjdGx5LCB3ZVxuICAgICAgICAgICAgLy8gdHJhbnNmb3JtIGBvcC5wYXRoYCB0byBhc2NlcnRhaW4gd2hhdCB0aGUgYG5ld1BhdGhgIHdvdWxkIGJlIGFmdGVyXG4gICAgICAgICAgICAvLyB0aGUgb3BlcmF0aW9uIHdhcyBhcHBsaWVkLlxuICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuPy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgY29uc3QgdHJ1ZVBhdGggPSBQYXRoLnRyYW5zZm9ybShwYXRoLCBvcCkhO1xuICAgICAgICAgICAgY29uc3QgbmV3UGFyZW50ID0gUGxhaXROb2RlLmdldChib2FyZCwgUGF0aC5wYXJlbnQodHJ1ZVBhdGgpKSBhcyBBbmNlc3RvcjtcbiAgICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gdHJ1ZVBhdGhbdHJ1ZVBhdGgubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIG5ld1BhcmVudC5jaGlsZHJlbj8uc3BsaWNlKG5ld0luZGV4LCAwLCBub2RlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ3NldF9ub2RlJzoge1xuICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBwcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcblxuICAgICAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc2V0IHByb3BlcnRpZXMgb24gdGhlIHJvb3Qgbm9kZSFgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFBsYWl0Tm9kZS5nZXQoYm9hcmQsIHBhdGgpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXdQcm9wZXJ0aWVzW2tleV07XG5cbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbm9kZVtrZXldO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJldmlvdXNseSBkZWZpbmVkLCBidXQgYXJlIG5vdyBtaXNzaW5nLCBtdXN0IGJlIGRlbGV0ZWRcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgbm9kZVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X3ZpZXdwb3J0Jzoge1xuICAgICAgICAgICAgY29uc3QgeyBuZXdQcm9wZXJ0aWVzIH0gPSBvcDtcbiAgICAgICAgICAgIGlmIChuZXdQcm9wZXJ0aWVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2aWV3cG9ydCA9IG5ld1Byb3BlcnRpZXM7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVmlld3BvcnQuaXNWaWV3cG9ydChuZXdQcm9wZXJ0aWVzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDYW5ub3QgYXBwbHkgYW4gaW5jb21wbGV0ZSBcInNldF92aWV3cG9ydFwiIG9wZXJhdGlvbiBwcm9wZXJ0aWVzICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1Byb3BlcnRpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfSB3aGVuIHRoZXJlIGlzIG5vIGN1cnJlbnQgdmlld3BvcnQuYFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydCA9IHsgLi4ubmV3UHJvcGVydGllcyB9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIG5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXdQcm9wZXJ0aWVzW2tleV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2aWV3cG9ydFtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSAnc2V0X3NlbGVjdGlvbic6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbmV3UHJvcGVydGllcyB9ID0gb3A7XG4gICAgICAgICAgICBpZiAobmV3UHJvcGVydGllcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uID0gbmV3UHJvcGVydGllcztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBvcC5uZXdQcm9wZXJ0aWVzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5hbmNob3IgPSBuZXdQcm9wZXJ0aWVzLmFuY2hvcjtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmZvY3VzID0gbmV3UHJvcGVydGllcy5mb2N1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBzZWxlY3Rpb24sIHZpZXdwb3J0IH07XG59O1xuXG5leHBvcnQgY29uc3QgR2VuZXJhbFRyYW5zZm9ybXM6IEdlbmVyYWxUcmFuc2Zvcm1zID0ge1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybSB0aGUgYm9hcmQgYnkgYW4gb3BlcmF0aW9uLlxuICAgICAqL1xuICAgIHRyYW5zZm9ybShib2FyZDogUGxhaXRCb2FyZCwgb3A6IFBsYWl0T3BlcmF0aW9uKTogdm9pZCB7XG4gICAgICAgIGJvYXJkLmNoaWxkcmVuID0gY3JlYXRlRHJhZnQoYm9hcmQuY2hpbGRyZW4pO1xuICAgICAgICBsZXQgdmlld3BvcnQgPSBib2FyZC52aWV3cG9ydCAmJiBjcmVhdGVEcmFmdChib2FyZC52aWV3cG9ydCk7XG4gICAgICAgIGxldCBzZWxlY3Rpb24gPSBib2FyZC5zZWxlY3Rpb24gJiYgY3JlYXRlRHJhZnQoYm9hcmQuc2VsZWN0aW9uKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBhcHBseVRvRHJhZnQoYm9hcmQsIHNlbGVjdGlvbiwgdmlld3BvcnQsIG9wKTtcbiAgICAgICAgICAgIHZpZXdwb3J0ID0gc3RhdGUudmlld3BvcnQ7XG4gICAgICAgICAgICBzZWxlY3Rpb24gPSBzdGF0ZS5zZWxlY3Rpb247XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBib2FyZC5jaGlsZHJlbiA9IGZpbmlzaERyYWZ0KGJvYXJkLmNoaWxkcmVuKTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IGlzRHJhZnQoc2VsZWN0aW9uKSA/IChmaW5pc2hEcmFmdChzZWxlY3Rpb24pIGFzIFNlbGVjdGlvbikgOiBzZWxlY3Rpb247XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib2FyZC52aWV3cG9ydCA9IGlzRHJhZnQodmlld3BvcnQpID8gKGZpbmlzaERyYWZ0KHZpZXdwb3J0KSBhcyBWaWV3cG9ydCkgOiB2aWV3cG9ydDtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
|