@plait/core 0.22.0 → 0.24.0-next.0
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.interface.d.ts +2 -2
- package/constants/index.d.ts +0 -1
- package/esm2020/board/board.component.interface.mjs +1 -1
- package/esm2020/board/board.component.mjs +71 -18
- package/esm2020/constants/index.mjs +1 -2
- package/esm2020/constants/keycodes.mjs +1 -1
- package/esm2020/constants/resize.mjs +1 -1
- package/esm2020/constants/selection.mjs +1 -1
- package/esm2020/core/children/children.component.mjs +1 -1
- package/esm2020/core/children/effect.mjs +1 -1
- package/esm2020/core/element/context-change.mjs +1 -1
- package/esm2020/core/element/context.mjs +1 -1
- package/esm2020/core/element/element.component.mjs +1 -1
- package/esm2020/core/element/plugin-element.mjs +1 -1
- package/esm2020/core/island/island-base.component.mjs +1 -1
- package/esm2020/interfaces/board.mjs +9 -5
- package/esm2020/interfaces/custom-types.mjs +1 -1
- package/esm2020/interfaces/element.mjs +1 -1
- package/esm2020/interfaces/history.mjs +1 -1
- package/esm2020/interfaces/index.mjs +1 -1
- package/esm2020/interfaces/node.mjs +1 -1
- package/esm2020/interfaces/operation.mjs +1 -1
- package/esm2020/interfaces/path-ref.mjs +1 -1
- package/esm2020/interfaces/path.mjs +1 -1
- package/esm2020/interfaces/plugin-key.mjs +1 -1
- package/esm2020/interfaces/plugin.mjs +1 -1
- package/esm2020/interfaces/point.mjs +1 -1
- package/esm2020/interfaces/pointer.mjs +1 -1
- package/esm2020/interfaces/rectangle-client.mjs +1 -1
- package/esm2020/interfaces/selection.mjs +1 -1
- package/esm2020/interfaces/theme.mjs +1 -1
- package/esm2020/interfaces/viewport.mjs +1 -1
- package/esm2020/plait-core.mjs +1 -1
- package/esm2020/plait.module.mjs +1 -1
- package/esm2020/plugins/create-board.mjs +10 -2
- package/esm2020/plugins/with-board.mjs +1 -1
- package/esm2020/plugins/with-hand.mjs +1 -1
- package/esm2020/plugins/with-history.mjs +1 -1
- package/esm2020/plugins/with-hotkey.mjs +1 -1
- package/esm2020/plugins/with-moving.mjs +6 -4
- package/esm2020/plugins/with-options.mjs +1 -1
- package/esm2020/plugins/with-selection.mjs +15 -18
- package/esm2020/plugins/with-viewport.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/esm2020/services/image-context.service.mjs +1 -1
- package/esm2020/testing/core/create-board.mjs +1 -1
- package/esm2020/testing/core/fake-weak-map.mjs +1 -1
- package/esm2020/testing/core/index.mjs +1 -1
- package/esm2020/testing/fake-events/event-objects.mjs +1 -1
- package/esm2020/testing/fake-events/index.mjs +1 -1
- package/esm2020/testing/index.mjs +1 -1
- package/esm2020/testing/test-element.mjs +1 -1
- package/esm2020/transforms/board.mjs +1 -1
- package/esm2020/transforms/general.mjs +1 -1
- package/esm2020/transforms/index.mjs +1 -1
- package/esm2020/transforms/node.mjs +1 -1
- package/esm2020/transforms/selection.mjs +1 -1
- package/esm2020/transforms/theme.mjs +1 -1
- package/esm2020/transforms/viewport.mjs +1 -1
- package/esm2020/utils/board.mjs +1 -1
- package/esm2020/utils/clipboard.mjs +45 -0
- package/esm2020/utils/common.mjs +1 -1
- package/esm2020/utils/dom/common.mjs +1 -1
- package/esm2020/utils/dom/environment.mjs +1 -1
- package/esm2020/utils/dom/foreign.mjs +1 -1
- package/esm2020/utils/dom/index.mjs +1 -1
- package/esm2020/utils/draw/arrow.mjs +1 -1
- package/esm2020/utils/draw/circle.mjs +1 -1
- package/esm2020/utils/draw/line.mjs +1 -1
- package/esm2020/utils/draw/rectangle.mjs +1 -1
- package/esm2020/utils/element.mjs +1 -1
- package/esm2020/utils/environment.mjs +1 -1
- package/esm2020/utils/helper.mjs +1 -1
- package/esm2020/utils/history.mjs +1 -1
- package/esm2020/utils/hotkeys.mjs +1 -1
- package/esm2020/utils/id-creator.mjs +1 -1
- package/esm2020/utils/index.mjs +3 -1
- package/esm2020/utils/math.mjs +1 -1
- package/esm2020/utils/moving-element.mjs +1 -1
- package/esm2020/utils/selected-element.mjs +1 -1
- package/esm2020/utils/to-image.mjs +1 -1
- package/esm2020/utils/touch.mjs +8 -0
- package/esm2020/utils/tree.mjs +1 -1
- package/esm2020/utils/viewport.mjs +1 -1
- package/esm2020/utils/weak-maps.mjs +2 -1
- package/fesm2015/plait-core.mjs +156 -45
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +156 -42
- package/fesm2020/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +15 -6
- package/interfaces/operation.d.ts +1 -1
- package/package.json +1 -1
- package/plugins/with-selection.d.ts +0 -4
- package/styles/styles.scss +7 -1
- package/utils/clipboard.d.ts +8 -0
- package/utils/index.d.ts +2 -0
- package/utils/touch.d.ts +3 -0
- package/utils/weak-maps.d.ts +1 -0
package/constants/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export * from './keycodes';
|
|
|
2
2
|
export * from './resize';
|
|
3
3
|
export * from './selection';
|
|
4
4
|
export declare const CLIP_BOARD_FORMAT_KEY = "x-plait-fragment";
|
|
5
|
-
export declare const CLIP_BOARD_IMAGE_FORMAT_KEY = "x-plait-image-fragment";
|
|
6
5
|
export declare const HOST_CLASS_NAME = "plait-board-container";
|
|
7
6
|
export declare const SCROLL_BAR_WIDTH = 20;
|
|
8
7
|
export declare const MAX_RADIUS = 16;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9hcmRDb21wb25lbnRJbnRlcmZhY2Uge1xuICAgIG1hcmtGb3JDaGVjazogKCkgPT4gdm9pZDtcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9hcmRFbGVtZW50SG9zdEludGVyZmFjZSB7XG4gICAgaG9zdDogU1ZHR0VsZW1lbnQ7XG4gICAgdXBwZXJIb3N0OiBTVkdHRWxlbWVudDtcbiAgICBhY3RpdmVIb3N0OiBTVkdHRWxlbWVudDtcbn1cbiJdfQ==
|
|
@@ -8,7 +8,7 @@ import { withBoard } from '../plugins/with-board';
|
|
|
8
8
|
import { withHistory } from '../plugins/with-history';
|
|
9
9
|
import { withHandPointer } from '../plugins/with-hand';
|
|
10
10
|
import { withSelection } from '../plugins/with-selection';
|
|
11
|
-
import { IS_CHROME, IS_FIREFOX, IS_SAFARI, toPoint, transformPoint } from '../utils';
|
|
11
|
+
import { IS_CHROME, IS_FIREFOX, IS_SAFARI, getRectangleByElements, getSelectedElements, hotkeys, toPoint, transformPoint } from '../utils';
|
|
12
12
|
import { BOARD_TO_ON_CHANGE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_ROUGH_SVG, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_MOVING_POINT } from '../utils/weak-maps';
|
|
13
13
|
import { getViewBox, initializeViewportOffset, initializeViewBox, isFromViewportChange, setIsFromViewportChange, initializeViewportContainer, updateViewportOffset, setIsFromScrolling } from '../utils/viewport';
|
|
14
14
|
import { withViewport } from '../plugins/with-viewport';
|
|
@@ -21,11 +21,12 @@ import { BoardTransforms } from '../transforms/board';
|
|
|
21
21
|
import { withHotkey } from '../plugins/with-hotkey';
|
|
22
22
|
import { HOST_CLASS_NAME } from '../constants';
|
|
23
23
|
import { PlaitContextService } from '../services/image-context.service';
|
|
24
|
+
import { isPreventTouchMove } from '../utils/touch';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
26
|
import * as i1 from "../core/children/children.component";
|
|
26
27
|
const ElementHostClass = 'element-host';
|
|
27
|
-
const
|
|
28
|
-
const
|
|
28
|
+
const ElementUpperHostClass = 'element-upper-host';
|
|
29
|
+
const ElementActiveHostClass = 'element-active-host';
|
|
29
30
|
export class PlaitBoardComponent {
|
|
30
31
|
get host() {
|
|
31
32
|
return this.svg.nativeElement;
|
|
@@ -75,8 +76,8 @@ export class PlaitBoardComponent {
|
|
|
75
76
|
}
|
|
76
77
|
ngOnInit() {
|
|
77
78
|
const elementHost = this.host.querySelector(`.${ElementHostClass}`);
|
|
78
|
-
const
|
|
79
|
-
const
|
|
79
|
+
const elementUpperHost = this.host.querySelector(`.${ElementUpperHostClass}`);
|
|
80
|
+
const elementActiveHost = this.host.querySelector(`.${ElementActiveHostClass}`);
|
|
80
81
|
const roughSVG = rough.svg(this.host, {
|
|
81
82
|
options: { roughness: 0, strokeWidth: 1 }
|
|
82
83
|
});
|
|
@@ -97,8 +98,8 @@ export class PlaitBoardComponent {
|
|
|
97
98
|
BOARD_TO_HOST.set(this.board, this.host);
|
|
98
99
|
BOARD_TO_ELEMENT_HOST.set(this.board, {
|
|
99
100
|
host: elementHost,
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
upperHost: elementUpperHost,
|
|
102
|
+
activeHost: elementActiveHost
|
|
102
103
|
});
|
|
103
104
|
BOARD_TO_ON_CHANGE.set(this.board, () => {
|
|
104
105
|
this.ngZone.run(() => {
|
|
@@ -159,34 +160,67 @@ export class PlaitBoardComponent {
|
|
|
159
160
|
.subscribe((event) => {
|
|
160
161
|
this.board.mousedown(event);
|
|
161
162
|
});
|
|
163
|
+
fromEvent(this.host, 'pointerdown')
|
|
164
|
+
.pipe(takeUntil(this.destroy$))
|
|
165
|
+
.subscribe((event) => {
|
|
166
|
+
this.board.pointerDown(event);
|
|
167
|
+
});
|
|
162
168
|
fromEvent(this.host, 'mousemove')
|
|
163
169
|
.pipe(takeUntil(this.destroy$))
|
|
164
170
|
.subscribe((event) => {
|
|
165
171
|
BOARD_TO_MOVING_POINT_IN_BOARD.set(this.board, [event.x, event.y]);
|
|
166
172
|
this.board.mousemove(event);
|
|
167
173
|
});
|
|
174
|
+
fromEvent(this.host, 'pointermove')
|
|
175
|
+
.pipe(takeUntil(this.destroy$))
|
|
176
|
+
.subscribe((event) => {
|
|
177
|
+
BOARD_TO_MOVING_POINT_IN_BOARD.set(this.board, [event.x, event.y]);
|
|
178
|
+
this.board.pointerMove(event);
|
|
179
|
+
});
|
|
168
180
|
fromEvent(this.host, 'mouseleave')
|
|
169
181
|
.pipe(takeUntil(this.destroy$))
|
|
170
182
|
.subscribe((event) => {
|
|
171
183
|
BOARD_TO_MOVING_POINT_IN_BOARD.delete(this.board);
|
|
172
184
|
this.board.mouseleave(event);
|
|
173
185
|
});
|
|
186
|
+
fromEvent(this.host, 'pointerleave')
|
|
187
|
+
.pipe(takeUntil(this.destroy$))
|
|
188
|
+
.subscribe((event) => {
|
|
189
|
+
BOARD_TO_MOVING_POINT_IN_BOARD.delete(this.board);
|
|
190
|
+
this.board.pointerLeave(event);
|
|
191
|
+
});
|
|
174
192
|
fromEvent(document, 'mousemove')
|
|
175
193
|
.pipe(takeUntil(this.destroy$))
|
|
176
194
|
.subscribe((event) => {
|
|
177
195
|
BOARD_TO_MOVING_POINT.set(this.board, [event.x, event.y]);
|
|
178
196
|
this.board.globalMousemove(event);
|
|
179
197
|
});
|
|
198
|
+
fromEvent(document, 'pointermove')
|
|
199
|
+
.pipe(takeUntil(this.destroy$))
|
|
200
|
+
.subscribe((event) => {
|
|
201
|
+
BOARD_TO_MOVING_POINT.set(this.board, [event.x, event.y]);
|
|
202
|
+
this.board.globalPointerMove(event);
|
|
203
|
+
});
|
|
180
204
|
fromEvent(this.host, 'mouseup')
|
|
181
205
|
.pipe(takeUntil(this.destroy$))
|
|
182
206
|
.subscribe((event) => {
|
|
183
207
|
this.board.mouseup(event);
|
|
184
208
|
});
|
|
209
|
+
fromEvent(this.host, 'pointerup')
|
|
210
|
+
.pipe(takeUntil(this.destroy$))
|
|
211
|
+
.subscribe((event) => {
|
|
212
|
+
this.board.pointerUp(event);
|
|
213
|
+
});
|
|
185
214
|
fromEvent(document, 'mouseup')
|
|
186
215
|
.pipe(takeUntil(this.destroy$))
|
|
187
216
|
.subscribe((event) => {
|
|
188
217
|
this.board.globalMouseup(event);
|
|
189
218
|
});
|
|
219
|
+
fromEvent(document, 'pointerup')
|
|
220
|
+
.pipe(takeUntil(this.destroy$))
|
|
221
|
+
.subscribe((event) => {
|
|
222
|
+
this.board.globalPointerUp(event);
|
|
223
|
+
});
|
|
190
224
|
fromEvent(this.host, 'dblclick')
|
|
191
225
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
192
226
|
.subscribe((event) => {
|
|
@@ -197,7 +231,11 @@ export class PlaitBoardComponent {
|
|
|
197
231
|
this.board.globalKeydown(event);
|
|
198
232
|
}), filter(event => this.isFocused && !PlaitBoard.hasBeenTextEditing(this.board) && !hasInputOrTextareaTarget(event.target)))
|
|
199
233
|
.subscribe((event) => {
|
|
200
|
-
this.board
|
|
234
|
+
const selectedElements = getSelectedElements(this.board);
|
|
235
|
+
if (selectedElements.length > 0 && (hotkeys.isDeleteBackward(event) || hotkeys.isDeleteForward(event))) {
|
|
236
|
+
this.board.deleteFragment(null);
|
|
237
|
+
}
|
|
238
|
+
this.board.keydown(event);
|
|
201
239
|
});
|
|
202
240
|
fromEvent(document, 'keyup')
|
|
203
241
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
@@ -207,8 +245,12 @@ export class PlaitBoardComponent {
|
|
|
207
245
|
fromEvent(document, 'copy')
|
|
208
246
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
209
247
|
.subscribe((event) => {
|
|
210
|
-
|
|
211
|
-
|
|
248
|
+
const selectedElements = getSelectedElements(this.board);
|
|
249
|
+
if (selectedElements.length > 0) {
|
|
250
|
+
event.preventDefault();
|
|
251
|
+
const rectangle = getRectangleByElements(this.board, selectedElements, false);
|
|
252
|
+
this.board.setFragment(event.clipboardData, rectangle);
|
|
253
|
+
}
|
|
212
254
|
});
|
|
213
255
|
fromEvent(document, 'paste')
|
|
214
256
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.isReadonly(this.board) && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
@@ -222,9 +264,13 @@ export class PlaitBoardComponent {
|
|
|
222
264
|
fromEvent(document, 'cut')
|
|
223
265
|
.pipe(takeUntil(this.destroy$), filter(() => this.isFocused && !PlaitBoard.isReadonly(this.board) && !PlaitBoard.hasBeenTextEditing(this.board)))
|
|
224
266
|
.subscribe((event) => {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
267
|
+
const selectedElements = getSelectedElements(this.board);
|
|
268
|
+
if (selectedElements.length > 0) {
|
|
269
|
+
event.preventDefault();
|
|
270
|
+
const rectangle = getRectangleByElements(this.board, selectedElements, false);
|
|
271
|
+
this.board.setFragment(event.clipboardData, rectangle);
|
|
272
|
+
this.board.deleteFragment(event.clipboardData);
|
|
273
|
+
}
|
|
228
274
|
});
|
|
229
275
|
}
|
|
230
276
|
viewportScrollListener() {
|
|
@@ -249,6 +295,13 @@ export class PlaitBoardComponent {
|
|
|
249
295
|
setIsFromScrolling(this.board, true);
|
|
250
296
|
});
|
|
251
297
|
});
|
|
298
|
+
this.ngZone.runOutsideAngular(() => {
|
|
299
|
+
fromEvent(this.viewportContainer.nativeElement, 'touchmove', { passive: false }).subscribe((event) => {
|
|
300
|
+
if (isPreventTouchMove(this.board)) {
|
|
301
|
+
event.preventDefault();
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
});
|
|
252
305
|
}
|
|
253
306
|
elementResizeListener() {
|
|
254
307
|
this.resizeObserver = new ResizeObserver(() => {
|
|
@@ -294,8 +347,8 @@ PlaitBoardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ve
|
|
|
294
347
|
<div class="viewport-container" #viewportContainer>
|
|
295
348
|
<svg #svg width="100%" height="100%" style="position: relative;" class="board-host-svg">
|
|
296
349
|
<g class="element-host"></g>
|
|
297
|
-
<g class="element-host
|
|
298
|
-
<g class="element-host
|
|
350
|
+
<g class="element-upper-host"></g>
|
|
351
|
+
<g class="element-active-host"></g>
|
|
299
352
|
</svg>
|
|
300
353
|
<plait-children [board]="board" [effect]="effect"></plait-children>
|
|
301
354
|
</div>
|
|
@@ -309,8 +362,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
309
362
|
<div class="viewport-container" #viewportContainer>
|
|
310
363
|
<svg #svg width="100%" height="100%" style="position: relative;" class="board-host-svg">
|
|
311
364
|
<g class="element-host"></g>
|
|
312
|
-
<g class="element-host
|
|
313
|
-
<g class="element-host
|
|
365
|
+
<g class="element-upper-host"></g>
|
|
366
|
+
<g class="element-active-host"></g>
|
|
314
367
|
</svg>
|
|
315
368
|
<plait-children [board]="board" [effect]="effect"></plait-children>
|
|
316
369
|
</div>
|
|
@@ -355,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
355
408
|
type: ContentChildren,
|
|
356
409
|
args: [PlaitIslandBaseComponent, { descendants: true }]
|
|
357
410
|
}] } });
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL2JvYXJkL2JvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUtMLE1BQU0sRUFHTixTQUFTLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sbUJBQW1CLENBQUM7QUFFdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBNEMsTUFBTSxxQkFBcUIsQ0FBQztBQUkzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3JGLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDeEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0gsVUFBVSxFQUNWLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNyQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUV4RSxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQztBQUN4QyxNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDO0FBQzdDLE1BQU0sc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7QUFrQnJELE1BQU0sT0FBTyxtQkFBbUI7SUEyQjVCLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ0ksU0FBUztRQUNULE9BQU8sR0FBRyxlQUFlLFlBQVksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7SUFDckksQ0FBQztJQUVELG1CQUFtQjtRQUNmLElBQUksU0FBUyxFQUFFO1lBQ1gsT0FBTyxRQUFRLENBQUM7U0FDbkI7UUFDRCxJQUFJLFNBQVMsRUFBRTtZQUNYLE9BQU8sUUFBUSxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxVQUFVLEVBQUU7WUFDWixPQUFPLFNBQVMsQ0FBQTtTQUNuQjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUNJLFNBQVM7UUFDVCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUNJLHdCQUF3QjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHdCQUF3QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQztJQVVELFlBQ1csR0FBc0IsRUFDdEIsZ0JBQWtDLEVBQ2pDLFVBQW1DLEVBQ25DLE1BQWM7UUFIZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQVE7UUEvRTFCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRXZCLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFNWixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUl0QixlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQUloQyxpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFNaEMsZ0JBQVcsR0FBd0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSwwQkFBcUIsR0FBNkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQW1UL0UsWUFBTyxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQXFCLEVBQUUsRUFBRTtZQUMvQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO0lBN1BDLENBQUM7SUFFSixRQUFRO1FBQ0osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFnQixDQUFDO1FBQ25GLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksa0JBQWtCLEVBQUUsQ0FBZ0IsQ0FBQztRQUN2RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQXNCLEVBQUUsQ0FBZ0IsQ0FBQztRQUMvRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFxQixFQUFFO1lBQ25ELE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRTtTQUM1QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixTQUFTLENBQWEsUUFBUSxFQUFFLFlBQVksQ0FBQztpQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDN0IscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ0gsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsQyxJQUFJLEVBQUUsV0FBVztZQUNqQixNQUFNLEVBQUUsYUFBYTtZQUNyQixVQUFVLEVBQUUsaUJBQWlCO1NBQ2hDLENBQUMsQ0FBQztRQUNILGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDZCxNQUFNLFdBQVcsR0FBMEI7b0JBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7b0JBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7b0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7aUJBQzFCLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhDLElBQUksV0FBVztnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ2hFLElBQUksT0FBTztnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUNsQixlQUFlLENBQ1gsV0FBVyxDQUNQLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbkgsQ0FDSixDQUNKLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDNUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFTyxzQkFBc0I7UUFDMUIsU0FBUyxDQUFhLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO2FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBYSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQzthQUN4QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsOEJBQThCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBRVAsU0FBUyxDQUFhLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO2FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3Qiw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRVAsU0FBUyxDQUFhLFFBQVEsRUFBRSxXQUFXLENBQUM7YUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQzdCLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBYSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQzthQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWEsUUFBUSxFQUFFLFNBQVMsQ0FBQzthQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7YUFDdkMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM3RTthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBZ0IsUUFBUSxFQUFFLFNBQVMsQ0FBQzthQUN4QyxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDM0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWdCLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDdEMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUM3RTthQUNBLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBaUIsUUFBUSxFQUFFLE1BQU0sQ0FBQzthQUN0QyxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzdFO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBcUIsRUFBRSxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFUCxTQUFTLENBQWlCLFFBQVEsRUFBRSxPQUFPLENBQUM7YUFDdkMsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ25IO2FBQ0EsU0FBUyxDQUFDLENBQUMsY0FBOEIsRUFBRSxFQUFFO1lBQzFDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEUsSUFBSSxVQUFVLEVBQUU7Z0JBQ1osTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2pHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDeEU7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLFNBQVMsQ0FBaUIsUUFBUSxFQUFFLEtBQUssQ0FBQzthQUNyQyxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDbkg7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUU7WUFDakMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQy9CLFNBQVMsQ0FBYSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztpQkFDaEUsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2xDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzNDLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtnQkFDeEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUN0QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEdBQUcsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBVSxDQUFDO2dCQUM3RixJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUM5RCxPQUFPO2lCQUNWO2dCQUNELGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDeEQsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLHFCQUFxQjtRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUMxQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQU1ELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQ3pELGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2dIQWpXUSxtQkFBbUI7b0dBQW5CLG1CQUFtQixnZEFGakIsQ0FBQyxtQkFBbUIsQ0FBQyxrREE0RWYsd0JBQXdCLDhPQUhELFVBQVUsZ0VBckZ4Qzs7Ozs7Ozs7OztLQVVUOzJGQUlRLG1CQUFtQjtrQkFoQi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFFBQVEsRUFBRTs7Ozs7Ozs7OztLQVVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDbkM7cUxBY1ksVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcscUJBQXFCO3NCQUE5QixNQUFNO2dCQU9ILFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQW1CaEIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWU7Z0JBTXhCLHdCQUF3QjtzQkFEM0IsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBVXBDLEdBQUc7c0JBREYsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlsQyxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR0EsT0FBTztzQkFBeEUsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgcm91Z2ggZnJvbSAncm91Z2hqcy9iaW4vcm91Z2gnO1xuaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRCb2FyZENoYW5nZUV2ZW50LCBQbGFpdEJvYXJkT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0UGx1Z2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbHVnaW4nO1xuaW1wb3J0IHsgVmlld3BvcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcbmltcG9ydCB7IGNyZWF0ZUJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy9jcmVhdGUtYm9hcmQnO1xuaW1wb3J0IHsgd2l0aEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWJvYXJkJztcbmltcG9ydCB7IHdpdGhIaXN0b3J5IH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWhpc3RvcnknO1xuaW1wb3J0IHsgd2l0aEhhbmRQb2ludGVyIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWhhbmQnO1xuaW1wb3J0IHsgd2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgSVNfQ0hST01FLCBJU19GSVJFRk9YLCBJU19TQUZBUkksIHRvUG9pbnQsIHRyYW5zZm9ybVBvaW50IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCT0FSRF9UT19PTl9DSEFOR0UsXG4gICAgQk9BUkRfVE9fQ09NUE9ORU5ULFxuICAgIEJPQVJEX1RPX0VMRU1FTlRfSE9TVCxcbiAgICBCT0FSRF9UT19IT1NULFxuICAgIEJPQVJEX1RPX1JPVUdIX1NWRyxcbiAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQsXG4gICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5UXG59IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBCb2FyZENvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vYm9hcmQuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIGdldFZpZXdCb3gsXG4gICAgaW5pdGlhbGl6ZVZpZXdwb3J0T2Zmc2V0LFxuICAgIGluaXRpYWxpemVWaWV3Qm94LFxuICAgIGlzRnJvbVZpZXdwb3J0Q2hhbmdlLFxuICAgIHNldElzRnJvbVZpZXdwb3J0Q2hhbmdlLFxuICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcixcbiAgICB1cGRhdGVWaWV3cG9ydE9mZnNldCxcbiAgICBzZXRJc0Zyb21TY3JvbGxpbmdcbn0gZnJvbSAnLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgd2l0aFZpZXdwb3J0IH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLXZpZXdwb3J0JztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5pbXBvcnQgeyB3aXRoTW92aW5nIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1vdmluZyc7XG5pbXBvcnQgeyBoYXNJbnB1dE9yVGV4dGFyZWFUYXJnZXQgfSBmcm9tICcuLi91dGlscy9kb20vY29tbW9uJztcbmltcG9ydCB7IHdpdGhPcHRpb25zIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW9wdGlvbnMnO1xuaW1wb3J0IHsgUGxhaXRJc2xhbmRCYXNlQ29tcG9uZW50LCBoYXNPbkJvYXJkQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pc2xhbmQvaXNsYW5kLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJvYXJkVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRUaGVtZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGhlbWUnO1xuaW1wb3J0IHsgd2l0aEhvdGtleSB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1ob3RrZXknO1xuaW1wb3J0IHsgSE9TVF9DTEFTU19OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbWFnZS1jb250ZXh0LnNlcnZpY2UnO1xuXG5jb25zdCBFbGVtZW50SG9zdENsYXNzID0gJ2VsZW1lbnQtaG9zdCc7XG5jb25zdCBFbGVtZW50SG9zdFVwQ2xhc3MgPSAnZWxlbWVudC1ob3N0LXVwJztcbmNvbnN0IEVsZW1lbnRIb3N0QWN0aXZlQ2xhc3MgPSAnZWxlbWVudC1ob3N0LWFjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtYm9hcmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1jb250YWluZXJcIiAjdmlld3BvcnRDb250YWluZXI+XG4gICAgICAgICAgICA8c3ZnICNzdmcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiIGNsYXNzPVwiYm9hcmQtaG9zdC1zdmdcIj5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtaG9zdFwiPjwvZz5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtaG9zdC11cFwiPjwvZz5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtaG9zdC1hY3RpdmVcIj48L2c+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxwbGFpdC1jaGlsZHJlbiBbYm9hcmRdPVwiYm9hcmRcIiBbZWZmZWN0XT1cImVmZmVjdFwiPjwvcGxhaXQtY2hpbGRyZW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtQbGFpdENvbnRleHRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFpdEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQm9hcmRDb21wb25lbnRJbnRlcmZhY2UsIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIGhhc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBlZmZlY3QgPSB7fTtcblxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIHJvdWdoU1ZHITogUm91Z2hTVkc7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBASW5wdXQoKSBwbGFpdFZhbHVlOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgQElucHV0KCkgcGxhaXRWaWV3cG9ydCE6IFZpZXdwb3J0O1xuXG4gICAgQElucHV0KCkgcGxhaXRQbHVnaW5zOiBQbGFpdFBsdWdpbltdID0gW107XG5cbiAgICBASW5wdXQoKSBwbGFpdE9wdGlvbnM/OiBQbGFpdEJvYXJkT3B0aW9ucztcblxuICAgIEBJbnB1dCgpIHBsYWl0VGhlbWU/OiBQbGFpdFRoZW1lO1xuXG4gICAgQE91dHB1dCgpIHBsYWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwbGFpdEJvYXJkSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxQbGFpdEJvYXJkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGdldCBob3N0KCk6IFNWR1NWR0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdmcubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgaG9zdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYCR7SE9TVF9DTEFTU19OQU1FfSBwb2ludGVyLSR7dGhpcy5ib2FyZC5wb2ludGVyfSB0aGVtZS0ke3RoaXMuYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGV9ICR7dGhpcy5nZXRCcm93c2VyQ2xhc3NOYW1lKCl9YDtcbiAgICB9XG5cbiAgICBnZXRCcm93c2VyQ2xhc3NOYW1lKCkge1xuICAgICAgICBpZiAoSVNfU0FGQVJJKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NhZmFyaSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKElTX0NIUk9NRSkge1xuICAgICAgICAgICAgcmV0dXJuICdjaHJvbWUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChJU19GSVJFRk9YKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2ZpcmVmb3gnXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucmVhZG9ubHknKVxuICAgIGdldCByZWFkb25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYm9hcmQub3B0aW9ucy5yZWFkb25seTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvY3VzZWQnKVxuICAgIGdldCBpc0ZvY3VzZWQoKSB7XG4gICAgICAgIHJldHVybiBQbGFpdEJvYXJkLmlzRm9jdXModGhpcy5ib2FyZCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZC1zY3JvbGwnKVxuICAgIGdldCBkaXNhYmxlZFNjcm9sbE9uTm9uRm9jdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLm9wdGlvbnMuZGlzYWJsZWRTY3JvbGxPbk5vbkZvY3VzICYmICFQbGFpdEJvYXJkLmlzRm9jdXModGhpcy5ib2FyZCk7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgQFZpZXdDaGlsZCgnc3ZnJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBzdmchOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgndmlld3BvcnRDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHZpZXdwb3J0Q29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUGxhaXRJc2xhbmRCYXNlQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIGlzbGFuZHM/OiBRdWVyeUxpc3Q8UGxhaXRJc2xhbmRCYXNlQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEhvc3QgPSB0aGlzLmhvc3QucXVlcnlTZWxlY3RvcihgLiR7RWxlbWVudEhvc3RDbGFzc31gKSBhcyBTVkdHRWxlbWVudDtcbiAgICAgICAgY29uc3QgZWxlbWVudEhvc3RVcCA9IHRoaXMuaG9zdC5xdWVyeVNlbGVjdG9yKGAuJHtFbGVtZW50SG9zdFVwQ2xhc3N9YCkgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRIb3N0QWN0aXZlID0gdGhpcy5ob3N0LnF1ZXJ5U2VsZWN0b3IoYC4ke0VsZW1lbnRIb3N0QWN0aXZlQ2xhc3N9YCkgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJvdWdoU1ZHID0gcm91Z2guc3ZnKHRoaXMuaG9zdCBhcyBTVkdTVkdFbGVtZW50LCB7XG4gICAgICAgICAgICBvcHRpb25zOiB7IHJvdWdobmVzczogMCwgc3Ryb2tlV2lkdGg6IDEgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yb3VnaFNWRyA9IHJvdWdoU1ZHO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVQbHVnaW5zKCk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUhvb2tMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy52aWV3cG9ydFNjcm9sbExpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2VsZWF2ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIEJPQVJEX1RPX01PVklOR19QT0lOVC5kZWxldGUodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBCT0FSRF9UT19DT01QT05FTlQuc2V0KHRoaXMuYm9hcmQsIHRoaXMpO1xuICAgICAgICBCT0FSRF9UT19ST1VHSF9TVkcuc2V0KHRoaXMuYm9hcmQsIHJvdWdoU1ZHKTtcbiAgICAgICAgQk9BUkRfVE9fSE9TVC5zZXQodGhpcy5ib2FyZCwgdGhpcy5ob3N0KTtcbiAgICAgICAgQk9BUkRfVE9fRUxFTUVOVF9IT1NULnNldCh0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBob3N0OiBlbGVtZW50SG9zdCxcbiAgICAgICAgICAgIGhvc3RVcDogZWxlbWVudEhvc3RVcCxcbiAgICAgICAgICAgIGhvc3RBY3RpdmU6IGVsZW1lbnRIb3N0QWN0aXZlXG4gICAgICAgIH0pO1xuICAgICAgICBCT0FSRF9UT19PTl9DSEFOR0Uuc2V0KHRoaXMuYm9hcmQsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXRlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VFdmVudDogUGxhaXRCb2FyZENoYW5nZUV2ZW50ID0ge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5ib2FyZC5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uczogdGhpcy5ib2FyZC5vcGVyYXRpb25zLFxuICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydDogdGhpcy5ib2FyZC52aWV3cG9ydCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uOiB0aGlzLmJvYXJkLnNlbGVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdGhlbWU6IHRoaXMuYm9hcmQudGhlbWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSXNsYW5kcygpO1xuICAgICAgICAgICAgICAgIHRoaXMucGxhaXRDaGFuZ2UuZW1pdChjaGFuZ2VFdmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaGFzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplSXNsYW5kcygpO1xuICAgIH1cblxuICAgIGRldGVjdCgpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QgPSB7fTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlID0gY2hhbmdlc1sncGxhaXRWYWx1ZSddO1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGNoYW5nZXNbJ3BsYWl0T3B0aW9ucyddO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVDaGFuZ2UpIHRoaXMuYm9hcmQuY2hpbGRyZW4gPSB2YWx1ZUNoYW5nZS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBpZiAob3B0aW9ucykgdGhpcy5ib2FyZC5vcHRpb25zID0gb3B0aW9ucy5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wbGFpdEJvYXJkSW5pdGlhbGl6ZWQuZW1pdCh0aGlzLmJvYXJkKTtcbiAgICAgICAgaW5pdGlhbGl6ZVZpZXdwb3J0Q29udGFpbmVyKHRoaXMuYm9hcmQpO1xuICAgICAgICBpbml0aWFsaXplVmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgaW5pdGlhbGl6ZVZpZXdwb3J0T2Zmc2V0KHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZVBsdWdpbnMoKSB7XG4gICAgICAgIGxldCBib2FyZCA9IHdpdGhIb3RrZXkoXG4gICAgICAgICAgICB3aXRoSGFuZFBvaW50ZXIoXG4gICAgICAgICAgICAgICAgd2l0aEhpc3RvcnkoXG4gICAgICAgICAgICAgICAgICAgIHdpdGhTZWxlY3Rpb24od2l0aE1vdmluZyh3aXRoQm9hcmQod2l0aFZpZXdwb3J0KHdpdGhPcHRpb25zKGNyZWF0ZUJvYXJkKHRoaXMucGxhaXRWYWx1ZSwgdGhpcy5wbGFpdE9wdGlvbnMpKSkpKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucGxhaXRQbHVnaW5zLmZvckVhY2gocGx1Z2luID0+IHtcbiAgICAgICAgICAgIGJvYXJkID0gcGx1Z2luKGJvYXJkKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYm9hcmQgPSBib2FyZDtcblxuICAgICAgICBpZiAodGhpcy5wbGFpdFZpZXdwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLmJvYXJkLnZpZXdwb3J0ID0gdGhpcy5wbGFpdFZpZXdwb3J0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMucGxhaXRUaGVtZSkge1xuICAgICAgICAgICAgdGhpcy5ib2FyZC50aGVtZSA9IHRoaXMucGxhaXRUaGVtZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUhvb2tMaXN0ZW5lcigpIHtcbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlZG93bicpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2Vkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQuc2V0KHRoaXMuYm9hcmQsIFtldmVudC54LCBldmVudC55XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5tb3VzZW1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2VsZWF2ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlQuc2V0KHRoaXMuYm9hcmQsIFtldmVudC54LCBldmVudC55XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxNb3VzZW1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLm1vdXNldXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2V1cCcpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZ2xvYmFsTW91c2V1cChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnZGJsY2xpY2snKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRm9jdXNlZCAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZGJsY2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxLZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKHRoaXMuYm9hcmQpICYmICFoYXNJbnB1dE9yVGV4dGFyZWFUYXJnZXQoZXZlbnQudGFyZ2V0KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb2N1c2VkICYmICFQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyh0aGlzLmJvYXJkKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5dXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2NvcHknKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRm9jdXNlZCAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ3Bhc3RlJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaXNSZWFkb25seSh0aGlzLmJvYXJkKSAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjbGlwYm9hcmRFdmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb3VzZVBvaW50ID0gUGxhaXRCb2FyZC5nZXRNb3ZpbmdQb2ludEluQm9hcmQodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdXNlUG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0cmFuc2Zvcm1Qb2ludCh0aGlzLmJvYXJkLCB0b1BvaW50KG1vdXNlUG9pbnRbMF0sIG1vdXNlUG9pbnRbMV0sIHRoaXMuaG9zdCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmluc2VydEZyYWdtZW50KGNsaXBib2FyZEV2ZW50LmNsaXBib2FyZERhdGEsIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY3V0JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaXNSZWFkb25seSh0aGlzLmJvYXJkKSAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQ/LmRlbGV0ZUZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2aWV3cG9ydFNjcm9sbExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy52aWV3cG9ydENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnJvbVZpZXdwb3J0Q2hhbmdlKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGcm9tVmlld3BvcnRDaGFuZ2UodGhpcy5ib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgem9vbSA9IHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3godGhpcy5ib2FyZCwgem9vbSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmF0aW9uID0gW3Njcm9sbExlZnQgLyB6b29tICsgdmlld0JveFswXSwgc2Nyb2xsVG9wIC8gem9vbSArIHZpZXdCb3hbMV1dIGFzIFBvaW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoUG9pbnQuaXNFcXVhbHMob3JpZ2luYXRpb24sIHRoaXMuYm9hcmQudmlld3BvcnQub3JpZ2luYXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQm9hcmRUcmFuc2Zvcm1zLnVwZGF0ZVZpZXdwb3J0KHRoaXMuYm9hcmQsIG9yaWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNGcm9tU2Nyb2xsaW5nKHRoaXMuYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZXNpemVMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICBpbml0aWFsaXplVmlld3BvcnRDb250YWluZXIodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICBpbml0aWFsaXplVmlld0JveCh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgIHVwZGF0ZVZpZXdwb3J0T2Zmc2V0KHRoaXMuYm9hcmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplSXNsYW5kcygpIHtcbiAgICAgICAgdGhpcy5pc2xhbmRzPy5mb3JFYWNoKGlzbGFuZCA9PiB7XG4gICAgICAgICAgICBpc2xhbmQuaW5pdGlhbGl6ZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVJc2xhbmRzKCkge1xuICAgICAgICB0aGlzLmlzbGFuZHM/LmZvckVhY2goaXNsYW5kID0+IHtcbiAgICAgICAgICAgIGlmIChoYXNPbkJvYXJkQ2hhbmdlKGlzbGFuZCkpIHtcbiAgICAgICAgICAgICAgICBpc2xhbmQub25Cb2FyZENoYW5nZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXNsYW5kLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5pZDtcbiAgICB9O1xuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgJiYgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICBCT0FSRF9UT19ST1VHSF9TVkcuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICBCT0FSRF9UT19DT01QT05FTlQuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICBCT0FSRF9UT19ST1VHSF9TVkcuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICBCT0FSRF9UT19IT1NULmRlbGV0ZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgQk9BUkRfVE9fRUxFTUVOVF9IT1NULmRlbGV0ZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgQk9BUkRfVE9fT05fQ0hBTkdFLmRlbGV0ZSh0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBtYXJrRm9yQ2hlY2soKSB7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJc2xhbmRzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
411
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvYm9hcmQvYm9hcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBS0wsTUFBTSxFQUdOLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxtQkFBbUIsQ0FBQztBQUV0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUE0QyxNQUFNLHFCQUFxQixDQUFDO0FBSTNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNJLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDeEIsTUFB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dGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgcm91Z2ggZnJvbSAncm91Z2hqcy9iaW4vcm91Z2gnO1xuaW1wb3J0IHsgUm91Z2hTVkcgfSBmcm9tICdyb3VnaGpzL2Jpbi9zdmcnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRCb2FyZENoYW5nZUV2ZW50LCBQbGFpdEJvYXJkT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0UGx1Z2luIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wbHVnaW4nO1xuaW1wb3J0IHsgVmlld3BvcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3ZpZXdwb3J0JztcbmltcG9ydCB7IGNyZWF0ZUJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy9jcmVhdGUtYm9hcmQnO1xuaW1wb3J0IHsgd2l0aEJvYXJkIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWJvYXJkJztcbmltcG9ydCB7IHdpdGhIaXN0b3J5IH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWhpc3RvcnknO1xuaW1wb3J0IHsgd2l0aEhhbmRQb2ludGVyIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLWhhbmQnO1xuaW1wb3J0IHsgd2l0aFNlbGVjdGlvbiB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1zZWxlY3Rpb24nO1xuaW1wb3J0IHsgSVNfQ0hST01FLCBJU19GSVJFRk9YLCBJU19TQUZBUkksIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMsIGdldFNlbGVjdGVkRWxlbWVudHMsIGhvdGtleXMsIHRvUG9pbnQsIHRyYW5zZm9ybVBvaW50IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBCT0FSRF9UT19PTl9DSEFOR0UsXG4gICAgQk9BUkRfVE9fQ09NUE9ORU5ULFxuICAgIEJPQVJEX1RPX0VMRU1FTlRfSE9TVCxcbiAgICBCT0FSRF9UT19IT1NULFxuICAgIEJPQVJEX1RPX1JPVUdIX1NWRyxcbiAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQsXG4gICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5UXG59IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBCb2FyZENvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vYm9hcmQuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIGdldFZpZXdCb3gsXG4gICAgaW5pdGlhbGl6ZVZpZXdwb3J0T2Zmc2V0LFxuICAgIGluaXRpYWxpemVWaWV3Qm94LFxuICAgIGlzRnJvbVZpZXdwb3J0Q2hhbmdlLFxuICAgIHNldElzRnJvbVZpZXdwb3J0Q2hhbmdlLFxuICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcixcbiAgICB1cGRhdGVWaWV3cG9ydE9mZnNldCxcbiAgICBzZXRJc0Zyb21TY3JvbGxpbmdcbn0gZnJvbSAnLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgd2l0aFZpZXdwb3J0IH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLXZpZXdwb3J0JztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5pbXBvcnQgeyB3aXRoTW92aW5nIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW1vdmluZyc7XG5pbXBvcnQgeyBoYXNJbnB1dE9yVGV4dGFyZWFUYXJnZXQgfSBmcm9tICcuLi91dGlscy9kb20vY29tbW9uJztcbmltcG9ydCB7IHdpdGhPcHRpb25zIH0gZnJvbSAnLi4vcGx1Z2lucy93aXRoLW9wdGlvbnMnO1xuaW1wb3J0IHsgUGxhaXRJc2xhbmRCYXNlQ29tcG9uZW50LCBoYXNPbkJvYXJkQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pc2xhbmQvaXNsYW5kLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJvYXJkVHJhbnNmb3JtcyB9IGZyb20gJy4uL3RyYW5zZm9ybXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRUaGVtZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGhlbWUnO1xuaW1wb3J0IHsgd2l0aEhvdGtleSB9IGZyb20gJy4uL3BsdWdpbnMvd2l0aC1ob3RrZXknO1xuaW1wb3J0IHsgSE9TVF9DTEFTU19OQU1FIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0Q29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbWFnZS1jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgaXNQcmV2ZW50VG91Y2hNb3ZlIH0gZnJvbSAnLi4vdXRpbHMvdG91Y2gnO1xuXG5jb25zdCBFbGVtZW50SG9zdENsYXNzID0gJ2VsZW1lbnQtaG9zdCc7XG5jb25zdCBFbGVtZW50VXBwZXJIb3N0Q2xhc3MgPSAnZWxlbWVudC11cHBlci1ob3N0JztcbmNvbnN0IEVsZW1lbnRBY3RpdmVIb3N0Q2xhc3MgPSAnZWxlbWVudC1hY3RpdmUtaG9zdCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGxhaXQtYm9hcmQnLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1jb250YWluZXJcIiAjdmlld3BvcnRDb250YWluZXI+XG4gICAgICAgICAgICA8c3ZnICNzdmcgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiIGNsYXNzPVwiYm9hcmQtaG9zdC1zdmdcIj5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtaG9zdFwiPjwvZz5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtdXBwZXItaG9zdFwiPjwvZz5cbiAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cImVsZW1lbnQtYWN0aXZlLWhvc3RcIj48L2c+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxwbGFpdC1jaGlsZHJlbiBbYm9hcmRdPVwiYm9hcmRcIiBbZWZmZWN0XT1cImVmZmVjdFwiPjwvcGxhaXQtY2hpbGRyZW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtQbGFpdENvbnRleHRTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFpdEJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQm9hcmRDb21wb25lbnRJbnRlcmZhY2UsIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIGhhc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgICBlZmZlY3QgPSB7fTtcblxuICAgIGJvYXJkITogUGxhaXRCb2FyZDtcblxuICAgIHJvdWdoU1ZHITogUm91Z2hTVkc7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBASW5wdXQoKSBwbGFpdFZhbHVlOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuXG4gICAgQElucHV0KCkgcGxhaXRWaWV3cG9ydCE6IFZpZXdwb3J0O1xuXG4gICAgQElucHV0KCkgcGxhaXRQbHVnaW5zOiBQbGFpdFBsdWdpbltdID0gW107XG5cbiAgICBASW5wdXQoKSBwbGFpdE9wdGlvbnM/OiBQbGFpdEJvYXJkT3B0aW9ucztcblxuICAgIEBJbnB1dCgpIHBsYWl0VGhlbWU/OiBQbGFpdFRoZW1lO1xuXG4gICAgQE91dHB1dCgpIHBsYWl0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8UGxhaXRCb2FyZENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwbGFpdEJvYXJkSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxQbGFpdEJvYXJkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGdldCBob3N0KCk6IFNWR1NWR0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5zdmcubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgaG9zdENsYXNzKCkge1xuICAgICAgICByZXR1cm4gYCR7SE9TVF9DTEFTU19OQU1FfSBwb2ludGVyLSR7dGhpcy5ib2FyZC5wb2ludGVyfSB0aGVtZS0ke3RoaXMuYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGV9ICR7dGhpcy5nZXRCcm93c2VyQ2xhc3NOYW1lKCl9YDtcbiAgICB9XG5cbiAgICBnZXRCcm93c2VyQ2xhc3NOYW1lKCkge1xuICAgICAgICBpZiAoSVNfU0FGQVJJKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NhZmFyaSc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKElTX0NIUk9NRSkge1xuICAgICAgICAgICAgcmV0dXJuICdjaHJvbWUnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChJU19GSVJFRk9YKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2ZpcmVmb3gnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJvYXJkLm9wdGlvbnMucmVhZG9ubHk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1c2VkJylcbiAgICBnZXQgaXNGb2N1c2VkKCkge1xuICAgICAgICByZXR1cm4gUGxhaXRCb2FyZC5pc0ZvY3VzKHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQtc2Nyb2xsJylcbiAgICBnZXQgZGlzYWJsZWRTY3JvbGxPbk5vbkZvY3VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ib2FyZC5vcHRpb25zLmRpc2FibGVkU2Nyb2xsT25Ob25Gb2N1cyAmJiAhUGxhaXRCb2FyZC5pc0ZvY3VzKHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIGdldCBuYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ3N2ZycsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgc3ZnITogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3ZpZXdwb3J0Q29udGFpbmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICB2aWV3cG9ydENvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBsYWl0SXNsYW5kQmFzZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBpc2xhbmRzPzogUXVlcnlMaXN0PFBsYWl0SXNsYW5kQmFzZUNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRIb3N0ID0gdGhpcy5ob3N0LnF1ZXJ5U2VsZWN0b3IoYC4ke0VsZW1lbnRIb3N0Q2xhc3N9YCkgYXMgU1ZHR0VsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRVcHBlckhvc3QgPSB0aGlzLmhvc3QucXVlcnlTZWxlY3RvcihgLiR7RWxlbWVudFVwcGVySG9zdENsYXNzfWApIGFzIFNWR0dFbGVtZW50O1xuICAgICAgICBjb25zdCBlbGVtZW50QWN0aXZlSG9zdCA9IHRoaXMuaG9zdC5xdWVyeVNlbGVjdG9yKGAuJHtFbGVtZW50QWN0aXZlSG9zdENsYXNzfWApIGFzIFNWR0dFbGVtZW50O1xuICAgICAgICBjb25zdCByb3VnaFNWRyA9IHJvdWdoLnN2Zyh0aGlzLmhvc3QgYXMgU1ZHU1ZHRWxlbWVudCwge1xuICAgICAgICAgICAgb3B0aW9uczogeyByb3VnaG5lc3M6IDAsIHN0cm9rZVdpZHRoOiAxIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucm91Z2hTVkcgPSByb3VnaFNWRztcbiAgICAgICAgdGhpcy5pbml0aWFsaXplUGx1Z2lucygpO1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVIb29rTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMudmlld3BvcnRTY3JvbGxMaXN0ZW5lcigpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVzaXplTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pihkb2N1bWVudCwgJ21vdXNlbGVhdmUnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlQuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgQk9BUkRfVE9fQ09NUE9ORU5ULnNldCh0aGlzLmJvYXJkLCB0aGlzKTtcbiAgICAgICAgQk9BUkRfVE9fUk9VR0hfU1ZHLnNldCh0aGlzLmJvYXJkLCByb3VnaFNWRyk7XG4gICAgICAgIEJPQVJEX1RPX0hPU1Quc2V0KHRoaXMuYm9hcmQsIHRoaXMuaG9zdCk7XG4gICAgICAgIEJPQVJEX1RPX0VMRU1FTlRfSE9TVC5zZXQodGhpcy5ib2FyZCwge1xuICAgICAgICAgICAgaG9zdDogZWxlbWVudEhvc3QsXG4gICAgICAgICAgICB1cHBlckhvc3Q6IGVsZW1lbnRVcHBlckhvc3QsXG4gICAgICAgICAgICBhY3RpdmVIb3N0OiBlbGVtZW50QWN0aXZlSG9zdFxuICAgICAgICB9KTtcbiAgICAgICAgQk9BUkRfVE9fT05fQ0hBTkdFLnNldCh0aGlzLmJvYXJkLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGV0ZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IFBsYWl0Qm9hcmRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHRoaXMuYm9hcmQuY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnM6IHRoaXMuYm9hcmQub3BlcmF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQ6IHRoaXMuYm9hcmQudmlld3BvcnQsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbjogdGhpcy5ib2FyZC5zZWxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lOiB0aGlzLmJvYXJkLnRoZW1lXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlzbGFuZHMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBsYWl0Q2hhbmdlLmVtaXQoY2hhbmdlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmhhc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUlzbGFuZHMoKTtcbiAgICB9XG5cbiAgICBkZXRlY3QoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0ID0ge307XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUNoYW5nZSA9IGNoYW5nZXNbJ3BsYWl0VmFsdWUnXTtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjaGFuZ2VzWydwbGFpdE9wdGlvbnMnXTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlQ2hhbmdlKSB0aGlzLmJvYXJkLmNoaWxkcmVuID0gdmFsdWVDaGFuZ2UuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMpIHRoaXMuYm9hcmQub3B0aW9ucyA9IG9wdGlvbnMuY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGxhaXRCb2FyZEluaXRpYWxpemVkLmVtaXQodGhpcy5ib2FyZCk7XG4gICAgICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcih0aGlzLmJvYXJkKTtcbiAgICAgICAgaW5pdGlhbGl6ZVZpZXdCb3godGhpcy5ib2FyZCk7XG4gICAgICAgIGluaXRpYWxpemVWaWV3cG9ydE9mZnNldCh0aGlzLmJvYXJkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVQbHVnaW5zKCkge1xuICAgICAgICBsZXQgYm9hcmQgPSB3aXRoSG90a2V5KFxuICAgICAgICAgICAgd2l0aEhhbmRQb2ludGVyKFxuICAgICAgICAgICAgICAgIHdpdGhIaXN0b3J5KFxuICAgICAgICAgICAgICAgICAgICB3aXRoU2VsZWN0aW9uKHdpdGhNb3Zpbmcod2l0aEJvYXJkKHdpdGhWaWV3cG9ydCh3aXRoT3B0aW9ucyhjcmVhdGVCb2FyZCh0aGlzLnBsYWl0VmFsdWUsIHRoaXMucGxhaXRPcHRpb25zKSkpKSkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnBsYWl0UGx1Z2lucy5mb3JFYWNoKHBsdWdpbiA9PiB7XG4gICAgICAgICAgICBib2FyZCA9IHBsdWdpbihib2FyZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmJvYXJkID0gYm9hcmQ7XG5cbiAgICAgICAgaWYgKHRoaXMucGxhaXRWaWV3cG9ydCkge1xuICAgICAgICAgICAgdGhpcy5ib2FyZC52aWV3cG9ydCA9IHRoaXMucGxhaXRWaWV3cG9ydDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnBsYWl0VGhlbWUpIHtcbiAgICAgICAgICAgIHRoaXMuYm9hcmQudGhlbWUgPSB0aGlzLnBsYWl0VGhlbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVIb29rTGlzdGVuZXIoKSB7XG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmhvc3QsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLm1vdXNlZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8UG9pbnRlckV2ZW50Pih0aGlzLmhvc3QsICdwb2ludGVyZG93bicpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5wb2ludGVyRG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2Vtb3ZlJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5UX0lOX0JPQVJELnNldCh0aGlzLmJvYXJkLCBbZXZlbnQueCwgZXZlbnQueV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQubW91c2Vtb3ZlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxQb2ludGVyRXZlbnQ+KHRoaXMuaG9zdCwgJ3BvaW50ZXJtb3ZlJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlRfSU5fQk9BUkQuc2V0KHRoaXMuYm9hcmQsIFtldmVudC54LCBldmVudC55XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5wb2ludGVyTW92ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnbW91c2VsZWF2ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIEJPQVJEX1RPX01PVklOR19QT0lOVF9JTl9CT0FSRC5kZWxldGUodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5tb3VzZWxlYXZlKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxQb2ludGVyRXZlbnQ+KHRoaXMuaG9zdCwgJ3BvaW50ZXJsZWF2ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5UX0lOX0JPQVJELmRlbGV0ZSh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLnBvaW50ZXJMZWF2ZShldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZW1vdmUnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBCT0FSRF9UT19NT1ZJTkdfUE9JTlQuc2V0KHRoaXMuYm9hcmQsIFtldmVudC54LCBldmVudC55XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxNb3VzZW1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4oZG9jdW1lbnQsICdwb2ludGVybW92ZScpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgQk9BUkRfVE9fTU9WSU5HX1BPSU5ULnNldCh0aGlzLmJvYXJkLCBbZXZlbnQueCwgZXZlbnQueV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZ2xvYmFsUG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuaG9zdCwgJ21vdXNldXAnKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLm1vdXNldXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PFBvaW50ZXJFdmVudD4odGhpcy5ob3N0LCAncG9pbnRlcnVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLnBvaW50ZXJVcChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZXVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxNb3VzZXVwKGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxQb2ludGVyRXZlbnQ+KGRvY3VtZW50LCAncG9pbnRlcnVwJylcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmdsb2JhbFBvaW50ZXJVcChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5ob3N0LCAnZGJsY2xpY2snKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRm9jdXNlZCAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZGJsY2xpY2soZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5ZG93bicpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgdGFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib2FyZC5nbG9iYWxLZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaGFzQmVlblRleHRFZGl0aW5nKHRoaXMuYm9hcmQpICYmICFoYXNJbnB1dE9yVGV4dGFyZWFUYXJnZXQoZXZlbnQudGFyZ2V0KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHModGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID4gMCAmJiAoaG90a2V5cy5pc0RlbGV0ZUJhY2t3YXJkKGV2ZW50KSB8fCBob3RrZXlzLmlzRGVsZXRlRm9yd2FyZChldmVudCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZGVsZXRlRnJhZ21lbnQobnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQua2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oZG9jdW1lbnQsICdrZXl1cCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNGb2N1c2VkICYmICFQbGFpdEJvYXJkLmhhc0JlZW5UZXh0RWRpdGluZyh0aGlzLmJvYXJkKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ib2FyZD8ua2V5dXAoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ2NvcHknKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzRm9jdXNlZCAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHModGhpcy5ib2FyZCwgc2VsZWN0ZWRFbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEsIHJlY3RhbmdsZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PENsaXBib2FyZEV2ZW50Pihkb2N1bWVudCwgJ3Bhc3RlJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaXNSZWFkb25seSh0aGlzLmJvYXJkKSAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjbGlwYm9hcmRFdmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb3VzZVBvaW50ID0gUGxhaXRCb2FyZC5nZXRNb3ZpbmdQb2ludEluQm9hcmQodGhpcy5ib2FyZCk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdXNlUG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0UG9pbnQgPSB0cmFuc2Zvcm1Qb2ludCh0aGlzLmJvYXJkLCB0b1BvaW50KG1vdXNlUG9pbnRbMF0sIG1vdXNlUG9pbnRbMV0sIHRoaXMuaG9zdCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLmluc2VydEZyYWdtZW50KGNsaXBib2FyZEV2ZW50LmNsaXBib2FyZERhdGEsIHRhcmdldFBvaW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KGRvY3VtZW50LCAnY3V0JylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc0ZvY3VzZWQgJiYgIVBsYWl0Qm9hcmQuaXNSZWFkb25seSh0aGlzLmJvYXJkKSAmJiAhUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcodGhpcy5ib2FyZCkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyh0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHModGhpcy5ib2FyZCwgc2VsZWN0ZWRFbGVtZW50cywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvYXJkLnNldEZyYWdtZW50KGV2ZW50LmNsaXBib2FyZERhdGEsIHJlY3RhbmdsZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYm9hcmQuZGVsZXRlRnJhZ21lbnQoZXZlbnQuY2xpcGJvYXJkRGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2aWV3cG9ydFNjcm9sbExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy52aWV3cG9ydENvbnRhaW5lci5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnJvbVZpZXdwb3J0Q2hhbmdlKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGcm9tVmlld3BvcnRDaGFuZ2UodGhpcy5ib2FyZCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgem9vbSA9IHRoaXMuYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3godGhpcy5ib2FyZCwgem9vbSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmF0aW9uID0gW3Njcm9sbExlZnQgLyB6b29tICsgdmlld0JveFswXSwgc2Nyb2xsVG9wIC8gem9vbSArIHZpZXdCb3hbMV1dIGFzIFBvaW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoUG9pbnQuaXNFcXVhbHMob3JpZ2luYXRpb24sIHRoaXMuYm9hcmQudmlld3BvcnQub3JpZ2luYXRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQm9hcmRUcmFuc2Zvcm1zLnVwZGF0ZVZpZXdwb3J0KHRoaXMuYm9hcmQsIG9yaWdpbmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNGcm9tU2Nyb2xsaW5nKHRoaXMuYm9hcmQsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMudmlld3BvcnRDb250YWluZXIubmF0aXZlRWxlbWVudCwgJ3RvdWNobW92ZScsIHsgcGFzc2l2ZTogZmFsc2UgfSkuc3Vic2NyaWJlKChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNQcmV2ZW50VG91Y2hNb3ZlKHRoaXMuYm9hcmQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZWxlbWVudFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgIGluaXRpYWxpemVWaWV3cG9ydENvbnRhaW5lcih0aGlzLmJvYXJkKTtcbiAgICAgICAgICAgIGluaXRpYWxpemVWaWV3Qm94KHRoaXMuYm9hcmQpO1xuICAgICAgICAgICAgdXBkYXRlVmlld3BvcnRPZmZzZXQodGhpcy5ib2FyZCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVJc2xhbmRzKCkge1xuICAgICAgICB0aGlzLmlzbGFuZHM/LmZvckVhY2goaXNsYW5kID0+IHtcbiAgICAgICAgICAgIGlzbGFuZC5pbml0aWFsaXplKHRoaXMuYm9hcmQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUlzbGFuZHMoKSB7XG4gICAgICAgIHRoaXMuaXNsYW5kcz8uZm9yRWFjaChpc2xhbmQgPT4ge1xuICAgICAgICAgICAgaWYgKGhhc09uQm9hcmRDaGFuZ2UoaXNsYW5kKSkge1xuICAgICAgICAgICAgICAgIGlzbGFuZC5vbkJvYXJkQ2hhbmdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpc2xhbmQubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYWNrQnkgPSAoaW5kZXg6IG51bWJlciwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LmlkO1xuICAgIH07XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciAmJiB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIEJPQVJEX1RPX1JPVUdIX1NWRy5kZWxldGUodGhpcy5ib2FyZCk7XG4gICAgICAgIEJPQVJEX1RPX0NPTVBPTkVOVC5kZWxldGUodGhpcy5ib2FyZCk7XG4gICAgICAgIEJPQVJEX1RPX1JPVUdIX1NWRy5kZWxldGUodGhpcy5ib2FyZCk7XG4gICAgICAgIEJPQVJEX1RPX0hPU1QuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICBCT0FSRF9UT19FTEVNRU5UX0hPU1QuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgICAgICBCT0FSRF9UT19PTl9DSEFOR0UuZGVsZXRlKHRoaXMuYm9hcmQpO1xuICAgIH1cblxuICAgIG1hcmtGb3JDaGVjaygpIHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUlzbGFuZHMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -2,7 +2,6 @@ export * from './keycodes';
|
|
|
2
2
|
export * from './resize';
|
|
3
3
|
export * from './selection';
|
|
4
4
|
export const CLIP_BOARD_FORMAT_KEY = 'x-plait-fragment';
|
|
5
|
-
export const CLIP_BOARD_IMAGE_FORMAT_KEY = 'x-plait-image-fragment';
|
|
6
5
|
export const HOST_CLASS_NAME = 'plait-board-container';
|
|
7
6
|
export const SCROLL_BAR_WIDTH = 20;
|
|
8
7
|
export const MAX_RADIUS = 16;
|
|
@@ -13,4 +12,4 @@ export const POINTER_BUTTON = {
|
|
|
13
12
|
TOUCH: -1
|
|
14
13
|
};
|
|
15
14
|
export const PRESS_AND_MOVE_BUFFER = 5;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFFNUIsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHVCQUF1QixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUMxQixJQUFJLEVBQUUsQ0FBQztJQUNQLEtBQUssRUFBRSxDQUFDO0lBQ1IsU0FBUyxFQUFFLENBQUM7SUFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDO0NBQ0gsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4va2V5Y29kZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgQ0xJUF9CT0FSRF9GT1JNQVRfS0VZID0gJ3gtcGxhaXQtZnJhZ21lbnQnO1xuXG5leHBvcnQgY29uc3QgSE9TVF9DTEFTU19OQU1FID0gJ3BsYWl0LWJvYXJkLWNvbnRhaW5lcic7XG5cbmV4cG9ydCBjb25zdCBTQ1JPTExfQkFSX1dJRFRIID0gMjA7XG5cbmV4cG9ydCBjb25zdCBNQVhfUkFESVVTID0gMTY7XG5cbmV4cG9ydCBjb25zdCBQT0lOVEVSX0JVVFRPTiA9IHtcbiAgICBNQUlOOiAwLFxuICAgIFdIRUVMOiAxLFxuICAgIFNFQ09OREFSWTogMixcbiAgICBUT1VDSDogLTFcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBQUkVTU19BTkRfTU9WRV9CVUZGRVIgPSA1O1xuIl19
|
|
@@ -124,4 +124,4 @@ export const BACKSLASH = 220;
|
|
|
124
124
|
export const CLOSE_SQUARE_BRACKET = 221;
|
|
125
125
|
export const SINGLE_QUOTE = 222;
|
|
126
126
|
export const MAC_META = 224;
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvY29uc3RhbnRzL2tleWNvZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLDBEQUEwRDtBQUMxRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLENBQUMsdURBQXVEO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWU7QUFDdkMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFDakMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxxQ0FBcUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLDRDQUE0QztBQUM1RSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsMENBQTBDO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUNsQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLHlDQUF5QztBQUN2RSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsc0NBQXNDO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLDJDQUEyQztBQUNwRSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BQ19FTlRFUiA9IDM7XG5leHBvcnQgY29uc3QgQkFDS1NQQUNFID0gODtcbmV4cG9ydCBjb25zdCBUQUIgPSA5O1xuZXhwb3J0IGNvbnN0IE5VTV9DRU5URVIgPSAxMjtcbmV4cG9ydCBjb25zdCBFTlRFUiA9IDEzO1xuZXhwb3J0IGNvbnN0IFNISUZUID0gMTY7XG5leHBvcnQgY29uc3QgQ09OVFJPTCA9IDE3O1xuZXhwb3J0IGNvbnN0IEFMVCA9IDE4O1xuZXhwb3J0IGNvbnN0IFBBVVNFID0gMTk7XG5leHBvcnQgY29uc3QgQ0FQU19MT0NLID0gMjA7XG5leHBvcnQgY29uc3QgRVNDQVBFID0gMjc7XG5leHBvcnQgY29uc3QgU1BBQ0UgPSAzMjtcbmV4cG9ydCBjb25zdCBQQUdFX1VQID0gMzM7XG5leHBvcnQgY29uc3QgUEFHRV9ET1dOID0gMzQ7XG5leHBvcnQgY29uc3QgRU5EID0gMzU7XG5leHBvcnQgY29uc3QgSE9NRSA9IDM2O1xuZXhwb3J0IGNvbnN0IExFRlRfQVJST1cgPSAzNztcbmV4cG9ydCBjb25zdCBVUF9BUlJPVyA9IDM4O1xuZXhwb3J0IGNvbnN0IFJJR0hUX0FSUk9XID0gMzk7XG5leHBvcnQgY29uc3QgRE9XTl9BUlJPVyA9IDQwO1xuZXhwb3J0IGNvbnN0IFBMVVNfU0lHTiA9IDQzO1xuZXhwb3J0IGNvbnN0IFBSSU5UX1NDUkVFTiA9IDQ0O1xuZXhwb3J0IGNvbnN0IElOU0VSVCA9IDQ1O1xuZXhwb3J0IGNvbnN0IERFTEVURSA9IDQ2O1xuZXhwb3J0IGNvbnN0IFpFUk8gPSA0ODtcbmV4cG9ydCBjb25zdCBPTkUgPSA0OTtcbmV4cG9ydCBjb25zdCBUV08gPSA1MDtcbmV4cG9ydCBjb25zdCBUSFJFRSA9IDUxO1xuZXhwb3J0IGNvbnN0IEZPVVIgPSA1MjtcbmV4cG9ydCBjb25zdCBGSVZFID0gNTM7XG5leHBvcnQgY29uc3QgU0lYID0gNTQ7XG5leHBvcnQgY29uc3QgU0VWRU4gPSA1NTtcbmV4cG9ydCBjb25zdCBFSUdIVCA9IDU2O1xuZXhwb3J0IGNvbnN0IE5JTkUgPSA1NztcbmV4cG9ydCBjb25zdCBGRl9TRU1JQ09MT04gPSA1OTsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIHRoaXMgZm9yIHNlbWljb2xvbiBpbnN0ZWFkIG9mIDE4NlxuZXhwb3J0IGNvbnN0IEZGX0VRVUFMUyA9IDYxOyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgdGhpcyBmb3IgZXF1YWxzIGluc3RlYWQgb2YgMTg3XG5leHBvcnQgY29uc3QgUVVFU1RJT05fTUFSSyA9IDYzO1xuZXhwb3J0IGNvbnN0IEFUX1NJR04gPSA2NDtcbmV4cG9ydCBjb25zdCBBID0gNjU7XG5leHBvcnQgY29uc3QgQiA9IDY2O1xuZXhwb3J0IGNvbnN0IEMgPSA2NztcbmV4cG9ydCBjb25zdCBEID0gNjg7XG5leHBvcnQgY29uc3QgRSA9IDY5O1xuZXhwb3J0IGNvbnN0IEYgPSA3MDtcbmV4cG9ydCBjb25zdCBHID0gNzE7XG5leHBvcnQgY29uc3QgSCA9IDcyO1xuZXhwb3J0IGNvbnN0IEkgPSA3MztcbmV4cG9ydCBjb25zdCBKID0gNzQ7XG5leHBvcnQgY29uc3QgSyA9IDc1O1xuZXhwb3J0IGNvbnN0IEwgPSA3NjtcbmV4cG9ydCBjb25zdCBNID0gNzc7XG5leHBvcnQgY29uc3QgTiA9IDc4O1xuZXhwb3J0IGNvbnN0IE8gPSA3OTtcbmV4cG9ydCBjb25zdCBQID0gODA7XG5leHBvcnQgY29uc3QgUSA9IDgxO1xuZXhwb3J0IGNvbnN0IFIgPSA4MjtcbmV4cG9ydCBjb25zdCBTID0gODM7XG5leHBvcnQgY29uc3QgVCA9IDg0O1xuZXhwb3J0IGNvbnN0IFUgPSA4NTtcbmV4cG9ydCBjb25zdCBWID0gODY7XG5leHBvcnQgY29uc3QgVyA9IDg3O1xuZXhwb3J0IGNvbnN0IFggPSA4ODtcbmV4cG9ydCBjb25zdCBZID0gODk7XG5leHBvcnQgY29uc3QgWiA9IDkwO1xuZXhwb3J0IGNvbnN0IE1FVEEgPSA5MTsgLy8gV0lOX0tFWV9MRUZUXG5leHBvcnQgY29uc3QgTUFDX1dLX0NNRF9MRUZUID0gOTE7XG5leHBvcnQgY29uc3QgTUFDX1dLX0NNRF9SSUdIVCA9IDkzO1xuZXhwb3J0IGNvbnN0IENPTlRFWFRfTUVOVSA9IDkzO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9aRVJPID0gOTY7XG5leHBvcnQgY29uc3QgTlVNUEFEX09ORSA9IDk3O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9UV08gPSA5ODtcbmV4cG9ydCBjb25zdCBOVU1QQURfVEhSRUUgPSA5OTtcbmV4cG9ydCBjb25zdCBOVU1QQURfRk9VUiA9IDEwMDtcbmV4cG9ydCBjb25zdCBOVU1QQURfRklWRSA9IDEwMTtcbmV4cG9ydCBjb25zdCBOVU1QQURfU0lYID0gMTAyO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9TRVZFTiA9IDEwMztcbmV4cG9ydCBjb25zdCBOVU1QQURfRUlHSFQgPSAxMDQ7XG5leHBvcnQgY29uc3QgTlVNUEFEX05JTkUgPSAxMDU7XG5leHBvcnQgY29uc3QgTlVNUEFEX01VTFRJUExZID0gMTA2O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9QTFVTID0gMTA3O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9NSU5VUyA9IDEwOTtcbmV4cG9ydCBjb25zdCBOVU1QQURfUEVSSU9EID0gMTEwO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9ESVZJREUgPSAxMTE7XG5leHBvcnQgY29uc3QgRjEgPSAxMTI7XG5leHBvcnQgY29uc3QgRjIgPSAxMTM7XG5leHBvcnQgY29uc3QgRjMgPSAxMTQ7XG5leHBvcnQgY29uc3QgRjQgPSAxMTU7XG5leHBvcnQgY29uc3QgRjUgPSAxMTY7XG5leHBvcnQgY29uc3QgRjYgPSAxMTc7XG5leHBvcnQgY29uc3QgRjcgPSAxMTg7XG5leHBvcnQgY29uc3QgRjggPSAxMTk7XG5leHBvcnQgY29uc3QgRjkgPSAxMjA7XG5leHBvcnQgY29uc3QgRjEwID0gMTIxO1xuZXhwb3J0IGNvbnN0IEYxMSA9IDEyMjtcbmV4cG9ydCBjb25zdCBGMTIgPSAxMjM7XG5leHBvcnQgY29uc3QgTlVNX0xPQ0sgPSAxNDQ7XG5leHBvcnQgY29uc3QgU0NST0xMX0xPQ0sgPSAxNDU7XG5leHBvcnQgY29uc3QgRklSU1RfTUVESUEgPSAxNjY7XG5leHBvcnQgY29uc3QgRkZfTUlOVVMgPSAxNzM7XG5leHBvcnQgY29uc3QgTVVURSA9IDE3MzsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDE4MSBmb3IgTVVURVxuZXhwb3J0IGNvbnN0IFZPTFVNRV9ET1dOID0gMTc0OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgMTgyIGZvciBWT0xVTUVfRE9XTlxuZXhwb3J0IGNvbnN0IFZPTFVNRV9VUCA9IDE3NTsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDE4MyBmb3IgVk9MVU1FX1VQXG5leHBvcnQgY29uc3QgRkZfTVVURSA9IDE4MTtcbmV4cG9ydCBjb25zdCBGRl9WT0xVTUVfRE9XTiA9IDE4MjtcbmV4cG9ydCBjb25zdCBMQVNUX01FRElBID0gMTgzO1xuZXhwb3J0IGNvbnN0IEZGX1ZPTFVNRV9VUCA9IDE4MztcbmV4cG9ydCBjb25zdCBTRU1JQ09MT04gPSAxODY7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyA1OSBmb3IgU0VNSUNPTE9OXG5leHBvcnQgY29uc3QgRVFVQUxTID0gMTg3OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgNjEgZm9yIEVRVUFMU1xuZXhwb3J0IGNvbnN0IENPTU1BID0gMTg4O1xuZXhwb3J0IGNvbnN0IERBU0ggPSAxODk7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyAxNzMgZm9yIERBU0gvTUlOVVNcbmV4cG9ydCBjb25zdCBQRVJJT0QgPSAxOTA7XG5leHBvcnQgY29uc3QgU0xBU0ggPSAxOTE7XG5leHBvcnQgY29uc3QgQVBPU1RST1BIRSA9IDE5MjtcbmV4cG9ydCBjb25zdCBUSUxERSA9IDE5MjtcbmV4cG9ydCBjb25zdCBPUEVOX1NRVUFSRV9CUkFDS0VUID0gMjE5O1xuZXhwb3J0IGNvbnN0IEJBQ0tTTEFTSCA9IDIyMDtcbmV4cG9ydCBjb25zdCBDTE9TRV9TUVVBUkVfQlJBQ0tFVCA9IDIyMTtcbmV4cG9ydCBjb25zdCBTSU5HTEVfUVVPVEUgPSAyMjI7XG5leHBvcnQgY29uc3QgTUFDX01FVEEgPSAyMjQ7XG4iXX0=
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb25zdGFudHMva2V5Y29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDckIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQUM1QixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztBQUMxQixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUM5QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUN4QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDeEIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsMERBQTBEO0FBQzFGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsQ0FBQyx1REFBdUQ7QUFDcEYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDcEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNwQixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZTtBQUN2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQztBQUN2QixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDO0FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDNUIsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLHFDQUFxQztBQUM5RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUMsNENBQTRDO0FBQzVFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsQ0FBQywwQ0FBMEM7QUFDeEUsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDOUIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMseUNBQXlDO0FBQ3ZFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxzQ0FBc0M7QUFDakUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsMkNBQTJDO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDN0IsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUM7QUFDaEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgY29uc3QgTUFDX0VOVEVSID0gMztcbmV4cG9ydCBjb25zdCBCQUNLU1BBQ0UgPSA4O1xuZXhwb3J0IGNvbnN0IFRBQiA9IDk7XG5leHBvcnQgY29uc3QgTlVNX0NFTlRFUiA9IDEyO1xuZXhwb3J0IGNvbnN0IEVOVEVSID0gMTM7XG5leHBvcnQgY29uc3QgU0hJRlQgPSAxNjtcbmV4cG9ydCBjb25zdCBDT05UUk9MID0gMTc7XG5leHBvcnQgY29uc3QgQUxUID0gMTg7XG5leHBvcnQgY29uc3QgUEFVU0UgPSAxOTtcbmV4cG9ydCBjb25zdCBDQVBTX0xPQ0sgPSAyMDtcbmV4cG9ydCBjb25zdCBFU0NBUEUgPSAyNztcbmV4cG9ydCBjb25zdCBTUEFDRSA9IDMyO1xuZXhwb3J0IGNvbnN0IFBBR0VfVVAgPSAzMztcbmV4cG9ydCBjb25zdCBQQUdFX0RPV04gPSAzNDtcbmV4cG9ydCBjb25zdCBFTkQgPSAzNTtcbmV4cG9ydCBjb25zdCBIT01FID0gMzY7XG5leHBvcnQgY29uc3QgTEVGVF9BUlJPVyA9IDM3O1xuZXhwb3J0IGNvbnN0IFVQX0FSUk9XID0gMzg7XG5leHBvcnQgY29uc3QgUklHSFRfQVJST1cgPSAzOTtcbmV4cG9ydCBjb25zdCBET1dOX0FSUk9XID0gNDA7XG5leHBvcnQgY29uc3QgUExVU19TSUdOID0gNDM7XG5leHBvcnQgY29uc3QgUFJJTlRfU0NSRUVOID0gNDQ7XG5leHBvcnQgY29uc3QgSU5TRVJUID0gNDU7XG5leHBvcnQgY29uc3QgREVMRVRFID0gNDY7XG5leHBvcnQgY29uc3QgWkVSTyA9IDQ4O1xuZXhwb3J0IGNvbnN0IE9ORSA9IDQ5O1xuZXhwb3J0IGNvbnN0IFRXTyA9IDUwO1xuZXhwb3J0IGNvbnN0IFRIUkVFID0gNTE7XG5leHBvcnQgY29uc3QgRk9VUiA9IDUyO1xuZXhwb3J0IGNvbnN0IEZJVkUgPSA1MztcbmV4cG9ydCBjb25zdCBTSVggPSA1NDtcbmV4cG9ydCBjb25zdCBTRVZFTiA9IDU1O1xuZXhwb3J0IGNvbnN0IEVJR0hUID0gNTY7XG5leHBvcnQgY29uc3QgTklORSA9IDU3O1xuZXhwb3J0IGNvbnN0IEZGX1NFTUlDT0xPTiA9IDU5OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgdGhpcyBmb3Igc2VtaWNvbG9uIGluc3RlYWQgb2YgMTg2XG5leHBvcnQgY29uc3QgRkZfRVFVQUxTID0gNjE7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyB0aGlzIGZvciBlcXVhbHMgaW5zdGVhZCBvZiAxODdcbmV4cG9ydCBjb25zdCBRVUVTVElPTl9NQVJLID0gNjM7XG5leHBvcnQgY29uc3QgQVRfU0lHTiA9IDY0O1xuZXhwb3J0IGNvbnN0IEEgPSA2NTtcbmV4cG9ydCBjb25zdCBCID0gNjY7XG5leHBvcnQgY29uc3QgQyA9IDY3O1xuZXhwb3J0IGNvbnN0IEQgPSA2ODtcbmV4cG9ydCBjb25zdCBFID0gNjk7XG5leHBvcnQgY29uc3QgRiA9IDcwO1xuZXhwb3J0IGNvbnN0IEcgPSA3MTtcbmV4cG9ydCBjb25zdCBIID0gNzI7XG5leHBvcnQgY29uc3QgSSA9IDczO1xuZXhwb3J0IGNvbnN0IEogPSA3NDtcbmV4cG9ydCBjb25zdCBLID0gNzU7XG5leHBvcnQgY29uc3QgTCA9IDc2O1xuZXhwb3J0IGNvbnN0IE0gPSA3NztcbmV4cG9ydCBjb25zdCBOID0gNzg7XG5leHBvcnQgY29uc3QgTyA9IDc5O1xuZXhwb3J0IGNvbnN0IFAgPSA4MDtcbmV4cG9ydCBjb25zdCBRID0gODE7XG5leHBvcnQgY29uc3QgUiA9IDgyO1xuZXhwb3J0IGNvbnN0IFMgPSA4MztcbmV4cG9ydCBjb25zdCBUID0gODQ7XG5leHBvcnQgY29uc3QgVSA9IDg1O1xuZXhwb3J0IGNvbnN0IFYgPSA4NjtcbmV4cG9ydCBjb25zdCBXID0gODc7XG5leHBvcnQgY29uc3QgWCA9IDg4O1xuZXhwb3J0IGNvbnN0IFkgPSA4OTtcbmV4cG9ydCBjb25zdCBaID0gOTA7XG5leHBvcnQgY29uc3QgTUVUQSA9IDkxOyAvLyBXSU5fS0VZX0xFRlRcbmV4cG9ydCBjb25zdCBNQUNfV0tfQ01EX0xFRlQgPSA5MTtcbmV4cG9ydCBjb25zdCBNQUNfV0tfQ01EX1JJR0hUID0gOTM7XG5leHBvcnQgY29uc3QgQ09OVEVYVF9NRU5VID0gOTM7XG5leHBvcnQgY29uc3QgTlVNUEFEX1pFUk8gPSA5NjtcbmV4cG9ydCBjb25zdCBOVU1QQURfT05FID0gOTc7XG5leHBvcnQgY29uc3QgTlVNUEFEX1RXTyA9IDk4O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9USFJFRSA9IDk5O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9GT1VSID0gMTAwO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9GSVZFID0gMTAxO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9TSVggPSAxMDI7XG5leHBvcnQgY29uc3QgTlVNUEFEX1NFVkVOID0gMTAzO1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9FSUdIVCA9IDEwNDtcbmV4cG9ydCBjb25zdCBOVU1QQURfTklORSA9IDEwNTtcbmV4cG9ydCBjb25zdCBOVU1QQURfTVVMVElQTFkgPSAxMDY7XG5leHBvcnQgY29uc3QgTlVNUEFEX1BMVVMgPSAxMDc7XG5leHBvcnQgY29uc3QgTlVNUEFEX01JTlVTID0gMTA5O1xuZXhwb3J0IGNvbnN0IE5VTVBBRF9QRVJJT0QgPSAxMTA7XG5leHBvcnQgY29uc3QgTlVNUEFEX0RJVklERSA9IDExMTtcbmV4cG9ydCBjb25zdCBGMSA9IDExMjtcbmV4cG9ydCBjb25zdCBGMiA9IDExMztcbmV4cG9ydCBjb25zdCBGMyA9IDExNDtcbmV4cG9ydCBjb25zdCBGNCA9IDExNTtcbmV4cG9ydCBjb25zdCBGNSA9IDExNjtcbmV4cG9ydCBjb25zdCBGNiA9IDExNztcbmV4cG9ydCBjb25zdCBGNyA9IDExODtcbmV4cG9ydCBjb25zdCBGOCA9IDExOTtcbmV4cG9ydCBjb25zdCBGOSA9IDEyMDtcbmV4cG9ydCBjb25zdCBGMTAgPSAxMjE7XG5leHBvcnQgY29uc3QgRjExID0gMTIyO1xuZXhwb3J0IGNvbnN0IEYxMiA9IDEyMztcbmV4cG9ydCBjb25zdCBOVU1fTE9DSyA9IDE0NDtcbmV4cG9ydCBjb25zdCBTQ1JPTExfTE9DSyA9IDE0NTtcbmV4cG9ydCBjb25zdCBGSVJTVF9NRURJQSA9IDE2NjtcbmV4cG9ydCBjb25zdCBGRl9NSU5VUyA9IDE3MztcbmV4cG9ydCBjb25zdCBNVVRFID0gMTczOyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgMTgxIGZvciBNVVRFXG5leHBvcnQgY29uc3QgVk9MVU1FX0RPV04gPSAxNzQ7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyAxODIgZm9yIFZPTFVNRV9ET1dOXG5leHBvcnQgY29uc3QgVk9MVU1FX1VQID0gMTc1OyAvLyBGaXJlZm94IChHZWNrbykgZmlyZXMgMTgzIGZvciBWT0xVTUVfVVBcbmV4cG9ydCBjb25zdCBGRl9NVVRFID0gMTgxO1xuZXhwb3J0IGNvbnN0IEZGX1ZPTFVNRV9ET1dOID0gMTgyO1xuZXhwb3J0IGNvbnN0IExBU1RfTUVESUEgPSAxODM7XG5leHBvcnQgY29uc3QgRkZfVk9MVU1FX1VQID0gMTgzO1xuZXhwb3J0IGNvbnN0IFNFTUlDT0xPTiA9IDE4NjsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDU5IGZvciBTRU1JQ09MT05cbmV4cG9ydCBjb25zdCBFUVVBTFMgPSAxODc7IC8vIEZpcmVmb3ggKEdlY2tvKSBmaXJlcyA2MSBmb3IgRVFVQUxTXG5leHBvcnQgY29uc3QgQ09NTUEgPSAxODg7XG5leHBvcnQgY29uc3QgREFTSCA9IDE4OTsgLy8gRmlyZWZveCAoR2Vja28pIGZpcmVzIDE3MyBmb3IgREFTSC9NSU5VU1xuZXhwb3J0IGNvbnN0IFBFUklPRCA9IDE5MDtcbmV4cG9ydCBjb25zdCBTTEFTSCA9IDE5MTtcbmV4cG9ydCBjb25zdCBBUE9TVFJPUEhFID0gMTkyO1xuZXhwb3J0IGNvbnN0IFRJTERFID0gMTkyO1xuZXhwb3J0IGNvbnN0IE9QRU5fU1FVQVJFX0JSQUNLRVQgPSAyMTk7XG5leHBvcnQgY29uc3QgQkFDS1NMQVNIID0gMjIwO1xuZXhwb3J0IGNvbnN0IENMT1NFX1NRVUFSRV9CUkFDS0VUID0gMjIxO1xuZXhwb3J0IGNvbnN0IFNJTkdMRV9RVU9URSA9IDIyMjtcbmV4cG9ydCBjb25zdCBNQUNfTUVUQSA9IDIyNDtcbiJdfQ==
|
|
@@ -2,4 +2,4 @@ export var ResizeCursorClass;
|
|
|
2
2
|
(function (ResizeCursorClass) {
|
|
3
3
|
ResizeCursorClass["ew-resize"] = "ew-resize";
|
|
4
4
|
})(ResizeCursorClass || (ResizeCursorClass = {}));
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29uc3RhbnRzL3Jlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQ3pCLDRDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUmVzaXplQ3Vyc29yQ2xhc3Mge1xuICAgICdldy1yZXNpemUnID0gJ2V3LXJlc2l6ZSdcbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export const ATTACHED_ELEMENT_CLASS_NAME = 'plait-board-attached';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29uc3RhbnRzL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBVFRBQ0hFRF9FTEVNRU5UX0NMQVNTX05BTUUgPSAncGxhaXQtYm9hcmQtYXR0YWNoZWQnOyJdfQ==
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
|
|
|
55
55
|
}], parentG: [{
|
|
56
56
|
type: Input
|
|
57
57
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGRyZW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZS9jaGlsZHJlbi9jaGlsZHJlbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBbUJwRCxNQUFNLE9BQU8sb0JBQW9CO0lBUzdCO1FBV0EsWUFBTyxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQXFCLEVBQUUsRUFBRTtZQUMvQyxPQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUFDO0lBYmEsQ0FBQztJQUVoQixRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEQ7SUFDTCxDQUFDOztpSEFsQlEsb0JBQW9CO3FHQUFwQixvQkFBb0IsMElBWm5COzs7Ozs7Ozs7O0tBVVQ7MkZBRVEsb0JBQW9CO2tCQWRoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozs7OztLQVVUO2lCQUNKOzBFQUVZLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0RWZmZWN0IH0gZnJvbSAnLi9lZmZlY3QnO1xuaW1wb3J0IHsgQW5jZXN0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL25vZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BsYWl0LWNoaWxkcmVuJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8cGxhaXQtZWxlbWVudFxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFyZW50LmNoaWxkcmVuOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVwiXG4gICAgICAgICAgICBbaW5kZXhdPVwiaW5kZXhcIlxuICAgICAgICAgICAgW2VsZW1lbnRdPVwiaXRlbVwiXG4gICAgICAgICAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgICAgICAgICBbYm9hcmRdPVwiYm9hcmRcIlxuICAgICAgICAgICAgW2VmZmVjdF09XCJlZmZlY3RcIlxuICAgICAgICAgICAgW3BhcmVudEddPVwicGFyZW50R1wiXG4gICAgICAgID48L3BsYWl0LWVsZW1lbnQ+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBQbGFpdENoaWxkcmVuRWxlbWVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYm9hcmQhOiBQbGFpdEJvYXJkO1xuXG4gICAgQElucHV0KCkgcGFyZW50ITogQW5jZXN0b3I7XG5cbiAgICBASW5wdXQoKSBlZmZlY3Q/OiBQbGFpdEVmZmVjdDtcblxuICAgIEBJbnB1dCgpIHBhcmVudEchOiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50KSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCA9IHRoaXMuYm9hcmQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEcpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50RyA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEhvc3QodGhpcy5ib2FyZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5ID0gKGluZGV4OiBudW1iZXIsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5pZDtcbiAgICB9O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvY29yZS9jaGlsZHJlbi9lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhaXRFZmZlY3Qge31cbiJdfQ==
|
|
@@ -10,4 +10,4 @@ export function hasOnContextChanged(value) {
|
|
|
10
10
|
}
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1jaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9jb3JlL2VsZW1lbnQvY29udGV4dC1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxVQUFVLHNCQUFzQixDQUNsQyxLQUFVO0lBRVYsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLEtBQVU7SUFFVixJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4QixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCB9IGZyb20gJy4vY29udGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmVmb3JlQ29udGV4dENoYW5nZTxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+IHtcbiAgICBiZWZvcmVDb250ZXh0Q2hhbmdlOiAodmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8VD4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT25Db250ZXh0Q2hhbmdlZDxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+IHtcbiAgICBvbkNvbnRleHRDaGFuZ2VkOiAodmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8VCwgSz4sIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFQsIEs+KSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQmVmb3JlQ29udGV4dENoYW5nZTxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50LCBLIGV4dGVuZHMgUGxhaXRCb2FyZCA9IFBsYWl0Qm9hcmQ+KFxuICAgIHZhbHVlOiBhbnlcbik6IHZhbHVlIGlzIEJlZm9yZUNvbnRleHRDaGFuZ2U8VCwgSz4ge1xuICAgIGlmICh2YWx1ZS5iZWZvcmVDb250ZXh0Q2hhbmdlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNPbkNvbnRleHRDaGFuZ2VkPFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsIEsgZXh0ZW5kcyBQbGFpdEJvYXJkID0gUGxhaXRCb2FyZD4oXG4gICAgdmFsdWU6IGFueVxuKTogdmFsdWUgaXMgT25Db250ZXh0Q2hhbmdlZDxULCBLPiB7XG4gICAgaWYgKHZhbHVlLm9uQ29udGV4dENoYW5nZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2NvcmUvZWxlbWVudC9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQsIFNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGxhaXRFZmZlY3QgfSBmcm9tICcuLi9jaGlsZHJlbi9lZmZlY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudCwgSyBleHRlbmRzIFBsYWl0Qm9hcmQgPSBQbGFpdEJvYXJkPiB7XG4gICAgZWxlbWVudDogVDtcbiAgICBwYXJlbnQ6IFQgfCBLO1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIGJvYXJkOiBLO1xuICAgIGVmZmVjdD86IFBsYWl0RWZmZWN0O1xufVxuIl19
|