ms-data-grid 0.0.44 → 0.0.45
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/esm2022/lib/data-grid/data-grid.component.mjs +611 -647
- package/esm2022/lib/data-grid.module.mjs +5 -5
- package/esm2022/lib/data-grid.service.mjs +5 -5
- package/esm2022/lib/directives/draggable-header.directive.mjs +55 -58
- package/esm2022/lib/pipes/filter.pipe.mjs +4 -4
- package/esm2022/lib/services/common.service.mjs +8 -7
- package/esm2022/lib/services/copy-service.service.mjs +9 -8
- package/esm2022/lib/services/split-columns.service.mjs +4 -4
- package/esm2022/lib/services/swap-columns.service.mjs +5 -5
- package/fesm2022/ms-data-grid.mjs +697 -734
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +3 -3
- package/package.json +1 -1
|
@@ -9,11 +9,11 @@ import { InlineSVGModule } from 'ng-inline-svg';
|
|
|
9
9
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export class DataGridModule {
|
|
12
|
-
static
|
|
13
|
-
static
|
|
14
|
-
static
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, declarations: [DataGridComponent, FilterPipe, DraggableHeaderDirective], imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule, ScrollingModule], exports: [DataGridComponent, DraggableHeaderDirective, InlineSVGModule] }); }
|
|
14
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, imports: [CommonModule, FormsModule, DragDropModule, InlineSVGModule, ScrollingModule, InlineSVGModule] }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridModule, decorators: [{
|
|
17
17
|
type: NgModule,
|
|
18
18
|
args: [{
|
|
19
19
|
declarations: [DataGridComponent, FilterPipe, DraggableHeaderDirective],
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
22
22
|
providers: [],
|
|
23
23
|
}]
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvbGliL2RhdGEtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBVXpELE1BQU0sT0FBTyxjQUFjOytHQUFkLGNBQWM7Z0hBQWQsY0FBYyxpQkFMVixpQkFBaUIsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLGFBQzVELFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxlQUFlLGFBQzNFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGVBQWU7Z0hBRzNELGNBQWMsWUFKZixZQUFZLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUM5QixlQUFlOzs0RkFHM0QsY0FBYztrQkFOMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsd0JBQXdCLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ3RGLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGVBQWUsQ0FBQztvQkFDdkUsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhR3JpZENvbXBvbmVudCB9IGZyb20gJy4vZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmlsdGVyUGlwZSB9IGZyb20gJy4vcGlwZXMvZmlsdGVyLnBpcGUnO1xyXG5pbXBvcnQgeyBEcmFnZ2FibGVIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLWhlYWRlci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBJbmxpbmVTVkdNb2R1bGUgfSBmcm9tICduZy1pbmxpbmUtc3ZnJztcclxuaW1wb3J0IHsgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJzsgXHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRGF0YUdyaWRDb21wb25lbnQsIEZpbHRlclBpcGUsIERyYWdnYWJsZUhlYWRlckRpcmVjdGl2ZV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIERyYWdEcm9wTW9kdWxlLCBJbmxpbmVTVkdNb2R1bGUsIFNjcm9sbGluZ01vZHVsZV0sXHJcbiAgZXhwb3J0czogW0RhdGFHcmlkQ29tcG9uZW50LCBEcmFnZ2FibGVIZWFkZXJEaXJlY3RpdmUsIElubGluZVNWR01vZHVsZV0sXHJcbiAgcHJvdmlkZXJzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -2,13 +2,13 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DataGridService {
|
|
4
4
|
constructor() { }
|
|
5
|
-
static
|
|
6
|
-
static
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridService, providedIn: 'root' }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataGridService, decorators: [{
|
|
9
9
|
type: Injectable,
|
|
10
10
|
args: [{
|
|
11
11
|
providedIn: 'root'
|
|
12
12
|
}]
|
|
13
|
-
}], ctorParameters: ()
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9kYXRhLWdyaWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZUFBZTtJQUUxQixnQkFBZ0IsQ0FBQzsrR0FGTixlQUFlO21IQUFmLGVBQWUsY0FGZCxNQUFNOzs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFHcmlkU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuIl19
|
|
@@ -1,22 +1,60 @@
|
|
|
1
1
|
import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class DraggableHeaderDirective {
|
|
4
|
-
el;
|
|
5
|
-
renderer;
|
|
6
|
-
column;
|
|
7
|
-
headerName = '';
|
|
8
|
-
dragStart = new EventEmitter();
|
|
9
|
-
dragMove = new EventEmitter();
|
|
10
|
-
dragEnd = new EventEmitter();
|
|
11
|
-
isDragging = false;
|
|
12
|
-
placeholderEl = null;
|
|
13
|
-
previewEl = null;
|
|
14
4
|
constructor(el, renderer) {
|
|
15
5
|
this.el = el;
|
|
16
6
|
this.renderer = renderer;
|
|
7
|
+
this.headerName = '';
|
|
8
|
+
this.dragStart = new EventEmitter();
|
|
9
|
+
this.dragMove = new EventEmitter();
|
|
10
|
+
this.dragEnd = new EventEmitter();
|
|
11
|
+
this.isDragging = false;
|
|
12
|
+
this.placeholderEl = null;
|
|
13
|
+
this.previewEl = null;
|
|
14
|
+
this.startX = 0;
|
|
15
|
+
this.startY = 0;
|
|
16
|
+
this.onMouseMove = (event) => {
|
|
17
|
+
debugger;
|
|
18
|
+
const moveX = Math.abs(event.clientX - this.startX - 10);
|
|
19
|
+
const moveY = Math.abs(event.clientY - this.startY - 10);
|
|
20
|
+
if (!this.isDragging && (moveX > 1 || moveY > 1)) {
|
|
21
|
+
this.startDragging(event);
|
|
22
|
+
}
|
|
23
|
+
if (this.isDragging && this.previewEl) {
|
|
24
|
+
this.renderer.setStyle(this.previewEl, 'top', `${event.pageY + 10}px`);
|
|
25
|
+
this.renderer.setStyle(this.previewEl, 'left', `${event.pageX + 10}px`);
|
|
26
|
+
// Find the element under cursor (hovered element)
|
|
27
|
+
const hoveredElement = document.elementFromPoint(event.clientX, event.clientY);
|
|
28
|
+
this.dragMove.emit({
|
|
29
|
+
event,
|
|
30
|
+
column: this.column,
|
|
31
|
+
hoveredElement,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
this.onMouseUp = (event) => {
|
|
36
|
+
if (!this.isDragging)
|
|
37
|
+
return;
|
|
38
|
+
this.isDragging = false;
|
|
39
|
+
this.dragEnd.emit({ column: this.column, event });
|
|
40
|
+
if (this.previewEl) {
|
|
41
|
+
this.renderer.removeChild(document.body, this.previewEl);
|
|
42
|
+
this.previewEl = null;
|
|
43
|
+
}
|
|
44
|
+
if (this.placeholderEl) {
|
|
45
|
+
const parent = this.placeholderEl.parentNode;
|
|
46
|
+
if (parent) {
|
|
47
|
+
parent.replaceChild(this.el.nativeElement, this.placeholderEl);
|
|
48
|
+
}
|
|
49
|
+
this.placeholderEl = null;
|
|
50
|
+
}
|
|
51
|
+
// Reset the cursor
|
|
52
|
+
this.resetCursor();
|
|
53
|
+
document.removeEventListener('mousemove', this.onMouseMove);
|
|
54
|
+
document.removeEventListener('mouseup', this.onMouseUp);
|
|
55
|
+
};
|
|
56
|
+
this.originalCursor = null;
|
|
17
57
|
}
|
|
18
|
-
startX = 0;
|
|
19
|
-
startY = 0;
|
|
20
58
|
onMouseDown(event) {
|
|
21
59
|
if (event.button !== 0)
|
|
22
60
|
return;
|
|
@@ -31,47 +69,6 @@ export class DraggableHeaderDirective {
|
|
|
31
69
|
document.addEventListener('mousemove', this.onMouseMove);
|
|
32
70
|
document.addEventListener('mouseup', this.onMouseUp);
|
|
33
71
|
}
|
|
34
|
-
onMouseMove = (event) => {
|
|
35
|
-
debugger;
|
|
36
|
-
const moveX = Math.abs(event.clientX - this.startX - 10);
|
|
37
|
-
const moveY = Math.abs(event.clientY - this.startY - 10);
|
|
38
|
-
if (!this.isDragging && (moveX > 1 || moveY > 1)) {
|
|
39
|
-
this.startDragging(event);
|
|
40
|
-
}
|
|
41
|
-
if (this.isDragging && this.previewEl) {
|
|
42
|
-
this.renderer.setStyle(this.previewEl, 'top', `${event.pageY + 10}px`);
|
|
43
|
-
this.renderer.setStyle(this.previewEl, 'left', `${event.pageX + 10}px`);
|
|
44
|
-
// Find the element under cursor (hovered element)
|
|
45
|
-
const hoveredElement = document.elementFromPoint(event.clientX, event.clientY);
|
|
46
|
-
this.dragMove.emit({
|
|
47
|
-
event,
|
|
48
|
-
column: this.column,
|
|
49
|
-
hoveredElement,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
onMouseUp = (event) => {
|
|
54
|
-
if (!this.isDragging)
|
|
55
|
-
return;
|
|
56
|
-
this.isDragging = false;
|
|
57
|
-
this.dragEnd.emit({ column: this.column, event });
|
|
58
|
-
if (this.previewEl) {
|
|
59
|
-
this.renderer.removeChild(document.body, this.previewEl);
|
|
60
|
-
this.previewEl = null;
|
|
61
|
-
}
|
|
62
|
-
if (this.placeholderEl) {
|
|
63
|
-
const parent = this.placeholderEl.parentNode;
|
|
64
|
-
if (parent) {
|
|
65
|
-
parent.replaceChild(this.el.nativeElement, this.placeholderEl);
|
|
66
|
-
}
|
|
67
|
-
this.placeholderEl = null;
|
|
68
|
-
}
|
|
69
|
-
// Reset the cursor
|
|
70
|
-
this.resetCursor();
|
|
71
|
-
document.removeEventListener('mousemove', this.onMouseMove);
|
|
72
|
-
document.removeEventListener('mouseup', this.onMouseUp);
|
|
73
|
-
};
|
|
74
|
-
originalCursor = null;
|
|
75
72
|
setCursor(cursorStyle) {
|
|
76
73
|
this.renderer.setStyle(document.body, 'cursor', cursorStyle);
|
|
77
74
|
}
|
|
@@ -123,15 +120,15 @@ export class DraggableHeaderDirective {
|
|
|
123
120
|
overrideCursor(style) {
|
|
124
121
|
this.setCursor(style);
|
|
125
122
|
}
|
|
126
|
-
static
|
|
127
|
-
static
|
|
123
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DraggableHeaderDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
124
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DraggableHeaderDirective, selector: "[appDraggableHeader]", inputs: { column: "column", headerName: "headerName" }, outputs: { dragStart: "dragStart", dragMove: "dragMove", dragEnd: "dragEnd" }, host: { listeners: { "mousedown": "onMouseDown($event)" } }, ngImport: i0 }); }
|
|
128
125
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DraggableHeaderDirective, decorators: [{
|
|
130
127
|
type: Directive,
|
|
131
128
|
args: [{
|
|
132
129
|
selector: '[appDraggableHeader]',
|
|
133
130
|
}]
|
|
134
|
-
}], ctorParameters: ()
|
|
131
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { column: [{
|
|
135
132
|
type: Input
|
|
136
133
|
}], headerName: [{
|
|
137
134
|
type: Input
|
|
@@ -145,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
145
142
|
type: HostListener,
|
|
146
143
|
args: ['mousedown', ['$event']]
|
|
147
144
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWhlYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1oZWFkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOztBQVV2QixNQUFNLE9BQU8sd0JBQXdCO0lBWWY7SUFBd0I7SUFYbkMsTUFBTSxDQUFNO0lBQ1osVUFBVSxHQUFXLEVBQUUsQ0FBQztJQUV2QixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNwQyxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUNuQyxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVwQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGFBQWEsR0FBdUIsSUFBSSxDQUFDO0lBQ3pDLFNBQVMsR0FBdUIsSUFBSSxDQUFDO0lBRTdDLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUFHLENBQUM7SUFFbkUsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNYLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFHWCxXQUFXLENBQUMsS0FBaUI7UUFDM0IsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQy9CLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDakMsUUFBUSxDQUFBO1FBQ1IsSUFBSyxLQUFLLENBQUMsTUFBc0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztZ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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERyYWdNb3ZlRXZlbnQge1xyXG4gIGV2ZW50OiBNb3VzZUV2ZW50O1xyXG4gIGRhdGE6IGFueTtcclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwRHJhZ2dhYmxlSGVhZGVyXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmFnZ2FibGVIZWFkZXJEaXJlY3RpdmUge1xyXG4gIEBJbnB1dCgpIGNvbHVtbjogYW55O1xyXG4gIEBJbnB1dCgpIGhlYWRlck5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgZHJhZ1N0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGRyYWdNb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGRyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJpdmF0ZSBpc0RyYWdnaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBwbGFjZWhvbGRlckVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgcHJldmlld0VsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XHJcblxyXG4gIHN0YXJ0WCA9IDA7XHJcbiAgc3RhcnRZID0gMDtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcclxuICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmJ1dHRvbiAhPT0gMCkgcmV0dXJuO1xyXG4gICAgbGV0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IGNsYXNzZXMgPSB0YXJnZXQuY2xhc3NMaXN0O1xyXG4gICAgZGVidWdnZXJcclxuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoJ3RocmVlLWRvdHMnKSkgcmV0dXJuO1xyXG4gICAgICB0aGlzLnN0YXJ0WCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLnN0YXJ0WSA9IGV2ZW50LmNsaWVudFk7XHJcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcCk7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG4gICAgZGVidWdnZXJcclxuICAgIGNvbnN0IG1vdmVYID0gTWF0aC5hYnMoZXZlbnQuY2xpZW50WCAtIHRoaXMuc3RhcnRYIC0gMTApO1xyXG4gICAgY29uc3QgbW92ZVkgPSBNYXRoLmFicyhldmVudC5jbGllbnRZIC0gdGhpcy5zdGFydFkgLSAxMCk7XHJcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZyAmJiAobW92ZVggPiAxIHx8IG1vdmVZID4gMSkpIHtcclxuICAgICAgdGhpcy5zdGFydERyYWdnaW5nKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc0RyYWdnaW5nICYmIHRoaXMucHJldmlld0VsKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICd0b3AnLCBgJHtldmVudC5wYWdlWSArIDEwfXB4YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdsZWZ0JywgYCR7ZXZlbnQucGFnZVggKyAxMH1weGApO1xyXG5cclxuICAgICAgLy8gRmluZCB0aGUgZWxlbWVudCB1bmRlciBjdXJzb3IgKGhvdmVyZWQgZWxlbWVudClcclxuICAgICAgY29uc3QgaG92ZXJlZEVsZW1lbnQgPSBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KFxyXG4gICAgICAgIGV2ZW50LmNsaWVudFgsXHJcbiAgICAgICAgZXZlbnQuY2xpZW50WVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5kcmFnTW92ZS5lbWl0KHtcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxyXG4gICAgICAgIGhvdmVyZWRFbGVtZW50LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIGlmICghdGhpcy5pc0RyYWdnaW5nKSByZXR1cm47XHJcbiAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmRyYWdFbmQuZW1pdCh7IGNvbHVtbjogdGhpcy5jb2x1bW4sIGV2ZW50IH0pO1xyXG5cclxuICAgIGlmICh0aGlzLnByZXZpZXdFbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMucHJldmlld0VsKTtcclxuICAgICAgdGhpcy5wcmV2aWV3RWwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyRWwpIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wbGFjZWhvbGRlckVsLnBhcmVudE5vZGU7XHJcbiAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICBwYXJlbnQucmVwbGFjZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5wbGFjZWhvbGRlckVsKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyRWwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBjdXJzb3JcclxuICAgIHRoaXMucmVzZXRDdXJzb3IoKTtcclxuXHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcCk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBvcmlnaW5hbEN1cnNvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgc2V0Q3Vyc29yKGN1cnNvclN0eWxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ2N1cnNvcicsIGN1cnNvclN0eWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRDdXJzb3IoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCB0aGlzLm9yaWdpbmFsQ3Vyc29yIHx8ICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhcnREcmFnZ2luZyhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBTdG9yZSBvcmlnaW5hbCBjdXJzb3IgKG9wdGlvbmFsIGZhbGxiYWNrKVxyXG4gICAgdGhpcy5vcmlnaW5hbEN1cnNvciA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY3Vyc29yO1xyXG5cclxuICAgIC8vIFNldCBjdXJzb3IgdG8gZ3JhYmJpbmdcclxuICAgIHRoaXMuc2V0Q3Vyc29yKCdtb3ZlJyk7XHJcblxyXG4gICAgLy8gLS0tIENsb25lIHRoZSBlbGVtZW50IGFzIGEgcGxhY2Vob2xkZXIgLS0tXHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyRWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYWNlaG9sZGVyRWwsICdvcGFjaXR5JywgJzAuNScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBsYWNlaG9sZGVyRWwsICdwb2ludGVyLWV2ZW50cycsICdub25lJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMucGxhY2Vob2xkZXJFbCwgJ2RyYWctcGxhY2Vob2xkZXInKTtcclxuXHJcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcclxuICAgIHBhcmVudC5yZXBsYWNlQ2hpbGQodGhpcy5wbGFjZWhvbGRlckVsLCB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG5cclxuICAgIC8vIC0tLSBDcmVhdGUgZmxvYXRpbmcgcHJldmlldyAtLS1cclxuICAgIHRoaXMucHJldmlld0VsID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdwb3NpdGlvbicsICdhYnNvbHV0ZScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ3RvcCcsIGAke2V2ZW50LnBhZ2VZICsgMTB9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdsZWZ0JywgYCR7ZXZlbnQucGFnZVggKyAxMH1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ3BvaW50ZXItZXZlbnRzJywgJ25vbmUnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICd6LWluZGV4JywgJzEwMDAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdtYXgtd2lkdGgnLCAnMjAwcHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdwYWRkaW5nJywgJzhweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2JvcmRlcicsICcxcHggc29saWQgI2NjYycpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2JhY2tncm91bmQtY29sb3InLCAnI2ZmZicpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgdGhpcy5wcmV2aWV3RWwsXHJcbiAgICAgICdib3gtc2hhZG93JyxcclxuICAgICAgJzAgMnB4IDZweCByZ2JhKDAsMCwwLDAuMiknXHJcbiAgICApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2JvcmRlci1yYWRpdXMnLCAnNHB4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnZGlzcGxheScsICdmbGV4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnYWxpZ24taXRlbXMnLCAnY2VudGVyJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnZ2FwJywgJzhweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2ZvbnQtd2VpZ2h0JywgJzUwMCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ3doaXRlLXNwYWNlJywgJ25vd3JhcCcpO1xyXG5cclxuICAgIGNvbnN0IGljb24gPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaWNvbiwgJ2ZvbnQtc2l6ZScsICcxNnB4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGljb24sICd1c2VyLXNlbGVjdCcsICdub25lJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KGljb24sICdpbm5lclRleHQnLCAn4omhJyk7XHJcblxyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0ZXh0LCAnaW5uZXJUZXh0JywgdGhpcy5oZWFkZXJOYW1lIHx8ICdEcmFnZ2luZycpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wcmV2aWV3RWwsIGljb24pO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLnByZXZpZXdFbCwgdGV4dCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMucHJldmlld0VsKTtcclxuXHJcbiAgICB0aGlzLmRyYWdTdGFydC5lbWl0KHsgY29sdW1uOiB0aGlzLmNvbHVtbiwgZXZlbnQgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3ZlcnJpZGVDdXJzb3Ioc3R5bGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXRDdXJzb3Ioc3R5bGUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWhlYWRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWdnYWJsZS1oZWFkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDOztBQVV2QixNQUFNLE9BQU8sd0JBQXdCO0lBWW5DLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVZ0RCxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3BDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXBDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsa0JBQWEsR0FBdUIsSUFBSSxDQUFDO1FBQ3pDLGNBQVMsR0FBdUIsSUFBSSxDQUFDO1FBSTdDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBaUJYLGdCQUFXLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDbEMsUUFBUSxDQUFBO1lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLElB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b250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEcmFnTW92ZUV2ZW50IHtcclxuICBldmVudDogTW91c2VFdmVudDtcclxuICBkYXRhOiBhbnk7XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcERyYWdnYWJsZUhlYWRlcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhZ2dhYmxlSGVhZGVyRGlyZWN0aXZlIHtcclxuICBASW5wdXQoKSBjb2x1bW46IGFueTtcclxuICBASW5wdXQoKSBoZWFkZXJOYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIGRyYWdTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkcmFnTW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBkcmFnRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgaXNEcmFnZ2luZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgcGxhY2Vob2xkZXJFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHByZXZpZXdFbDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBzdGFydFggPSAwO1xyXG4gIHN0YXJ0WSA9IDA7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5idXR0b24gIT09IDApIHJldHVybjtcclxuICAgIGxldCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBjbGFzc2VzID0gdGFyZ2V0LmNsYXNzTGlzdDtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0LmNvbnRhaW5zKCd0aHJlZS1kb3RzJykpIHJldHVybjtcclxuICAgICAgdGhpcy5zdGFydFggPSBldmVudC5jbGllbnRYO1xyXG4gICAgdGhpcy5zdGFydFkgPSBldmVudC5jbGllbnRZO1xyXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XHJcblxyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xyXG4gIH1cclxuXHJcbiAgb25Nb3VzZU1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuICAgIGRlYnVnZ2VyXHJcbiAgICBjb25zdCBtb3ZlWCA9IE1hdGguYWJzKGV2ZW50LmNsaWVudFggLSB0aGlzLnN0YXJ0WCAtIDEwKTtcclxuICAgIGNvbnN0IG1vdmVZID0gTWF0aC5hYnMoZXZlbnQuY2xpZW50WSAtIHRoaXMuc3RhcnRZIC0gMTApO1xyXG4gICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcgJiYgKG1vdmVYID4gMSB8fCBtb3ZlWSA+IDEpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREcmFnZ2luZyhldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNEcmFnZ2luZyAmJiB0aGlzLnByZXZpZXdFbCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAndG9wJywgYCR7ZXZlbnQucGFnZVkgKyAxMH1weGApO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnbGVmdCcsIGAke2V2ZW50LnBhZ2VYICsgMTB9cHhgKTtcclxuXHJcbiAgICAgIC8vIEZpbmQgdGhlIGVsZW1lbnQgdW5kZXIgY3Vyc29yIChob3ZlcmVkIGVsZW1lbnQpXHJcbiAgICAgIGNvbnN0IGhvdmVyZWRFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChcclxuICAgICAgICBldmVudC5jbGllbnRYLFxyXG4gICAgICAgIGV2ZW50LmNsaWVudFlcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuZHJhZ01vdmUuZW1pdCh7XHJcbiAgICAgICAgZXZlbnQsXHJcbiAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcclxuICAgICAgICBob3ZlcmVkRWxlbWVudCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgb25Nb3VzZVVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XHJcbiAgICBpZiAoIXRoaXMuaXNEcmFnZ2luZykgcmV0dXJuO1xyXG4gICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5kcmFnRW5kLmVtaXQoeyBjb2x1bW46IHRoaXMuY29sdW1uLCBldmVudCB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5wcmV2aWV3RWwpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnByZXZpZXdFbCk7XHJcbiAgICAgIHRoaXMucHJldmlld0VsID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlckVsKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGxhY2Vob2xkZXJFbC5wYXJlbnROb2RlO1xyXG4gICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgcGFyZW50LnJlcGxhY2VDaGlsZCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGxhY2Vob2xkZXJFbCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wbGFjZWhvbGRlckVsID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNldCB0aGUgY3Vyc29yXHJcbiAgICB0aGlzLnJlc2V0Q3Vyc29yKCk7XHJcblxyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgb3JpZ2luYWxDdXJzb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHNldEN1cnNvcihjdXJzb3JTdHlsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRvY3VtZW50LmJvZHksICdjdXJzb3InLCBjdXJzb3JTdHlsZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2V0Q3Vyc29yKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnY3Vyc29yJywgdGhpcy5vcmlnaW5hbEN1cnNvciB8fCAnJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXJ0RHJhZ2dpbmcoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XHJcblxyXG4gICAgLy8gU3RvcmUgb3JpZ2luYWwgY3Vyc29yIChvcHRpb25hbCBmYWxsYmFjaylcclxuICAgIHRoaXMub3JpZ2luYWxDdXJzb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmN1cnNvcjtcclxuXHJcbiAgICAvLyBTZXQgY3Vyc29yIHRvIGdyYWJiaW5nXHJcbiAgICB0aGlzLnNldEN1cnNvcignbW92ZScpO1xyXG5cclxuICAgIC8vIC0tLSBDbG9uZSB0aGUgZWxlbWVudCBhcyBhIHBsYWNlaG9sZGVyIC0tLVxyXG4gICAgdGhpcy5wbGFjZWhvbGRlckVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb25lTm9kZSh0cnVlKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGFjZWhvbGRlckVsLCAnb3BhY2l0eScsICcwLjUnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wbGFjZWhvbGRlckVsLCAncG9pbnRlci1ldmVudHMnLCAnbm9uZScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnBsYWNlaG9sZGVyRWwsICdkcmFnLXBsYWNlaG9sZGVyJyk7XHJcblxyXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICBwYXJlbnQucmVwbGFjZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJFbCwgdGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuXHJcbiAgICAvLyAtLS0gQ3JlYXRlIGZsb2F0aW5nIHByZXZpZXcgLS0tXHJcbiAgICB0aGlzLnByZXZpZXdFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAncG9zaXRpb24nLCAnYWJzb2x1dGUnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICd0b3AnLCBgJHtldmVudC5wYWdlWSArIDEwfXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnbGVmdCcsIGAke2V2ZW50LnBhZ2VYICsgMTB9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdwb2ludGVyLWV2ZW50cycsICdub25lJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnei1pbmRleCcsICcxMDAwJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAnbWF4LXdpZHRoJywgJzIwMHB4Jyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJldmlld0VsLCAncGFkZGluZycsICc4cHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdib3JkZXInLCAnMXB4IHNvbGlkICNjY2MnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdiYWNrZ3JvdW5kLWNvbG9yJywgJyNmZmYnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgIHRoaXMucHJldmlld0VsLFxyXG4gICAgICAnYm94LXNoYWRvdycsXHJcbiAgICAgICcwIDJweCA2cHggcmdiYSgwLDAsMCwwLjIpJ1xyXG4gICAgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdib3JkZXItcmFkaXVzJywgJzRweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2Rpc3BsYXknLCAnZmxleCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2FsaWduLWl0ZW1zJywgJ2NlbnRlcicpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByZXZpZXdFbCwgJ2dhcCcsICc4cHgnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICdmb250LXdlaWdodCcsICc1MDAnKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcmV2aWV3RWwsICd3aGl0ZS1zcGFjZScsICdub3dyYXAnKTtcclxuXHJcbiAgICBjb25zdCBpY29uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGljb24sICdmb250LXNpemUnLCAnMTZweCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShpY29uLCAndXNlci1zZWxlY3QnLCAnbm9uZScpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShpY29uLCAnaW5uZXJUZXh0JywgJ+KJoScpO1xyXG5cclxuICAgIGNvbnN0IHRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGV4dCwgJ2lubmVyVGV4dCcsIHRoaXMuaGVhZGVyTmFtZSB8fCAnRHJhZ2dpbmcnKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMucHJldmlld0VsLCBpY29uKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5wcmV2aWV3RWwsIHRleHQpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnByZXZpZXdFbCk7XHJcblxyXG4gICAgdGhpcy5kcmFnU3RhcnQuZW1pdCh7IGNvbHVtbjogdGhpcy5jb2x1bW4sIGV2ZW50IH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG92ZXJyaWRlQ3Vyc29yKHN0eWxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2V0Q3Vyc29yKHN0eWxlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -16,13 +16,13 @@ export class FilterPipe {
|
|
|
16
16
|
return false;
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
static
|
|
20
|
-
static
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
20
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: FilterPipe, name: "filter" }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FilterPipe, decorators: [{
|
|
23
23
|
type: Pipe,
|
|
24
24
|
args: [{
|
|
25
25
|
name: 'filter',
|
|
26
26
|
}]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9waXBlcy9maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLFVBQVU7SUFDdkIsU0FBUyxDQUFDLEtBQVksRUFBRSxVQUFrQixFQUFFLEdBQVk7UUFDdEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV4QyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFN0MsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pCLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEIsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzlEO1lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO2dCQUN4RCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDNUQ7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoQlksVUFBVTs2R0FBVixVQUFVOzs0RkFBVixVQUFVO2tCQUh0QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxRQUFRO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdmaWx0ZXInLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG50cmFuc2Zvcm0oaXRlbXM6IGFueVtdLCBzZWFyY2hUZXh0OiBzdHJpbmcsIGtleT86IHN0cmluZyk6IGFueVtdIHtcclxuICBpZiAoIWl0ZW1zIHx8ICFzZWFyY2hUZXh0KSByZXR1cm4gaXRlbXM7XHJcblxyXG4gIGNvbnN0IGxvd2VyU2VhcmNoID0gc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgaWYgKGtleSAmJiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0Jykge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1ba2V5XTtcclxuICAgICAgcmV0dXJuIHZhbHVlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobG93ZXJTZWFyY2gpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIGl0ZW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGxvd2VyU2VhcmNoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9KTtcclxufX1cclxuIl19
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CommonService {
|
|
4
|
-
constructor() {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.activeFilteredColumns = [];
|
|
6
|
+
}
|
|
5
7
|
gethasVisibleColumns(columns) {
|
|
6
8
|
const checkVisible = (columns) => {
|
|
7
9
|
return columns?.some((col) => {
|
|
@@ -151,7 +153,6 @@ export class CommonService {
|
|
|
151
153
|
}
|
|
152
154
|
return columns;
|
|
153
155
|
}
|
|
154
|
-
activeFilteredColumns = [];
|
|
155
156
|
updateActiveFilteredColumns(columns) {
|
|
156
157
|
const collectFiltered = (cols) => {
|
|
157
158
|
let result = [];
|
|
@@ -197,13 +198,13 @@ export class CommonService {
|
|
|
197
198
|
return JSON.stringify(current) !== JSON.stringify(original);
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
|
-
static
|
|
201
|
-
static
|
|
201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
202
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonService, providedIn: 'root' }); }
|
|
202
203
|
}
|
|
203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonService, decorators: [{
|
|
204
205
|
type: Injectable,
|
|
205
206
|
args: [{
|
|
206
207
|
providedIn: 'root'
|
|
207
208
|
}]
|
|
208
|
-
}], ctorParameters: ()
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QixnQkFBZ0IsQ0FBQztJQUNqQixvQkFBb0IsQ0FBQyxPQUFjO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjO1FBQ25DLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDbEMsSUFBSSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtvQkFDekIsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNuQztnQkFDRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUMsQ0FB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QUFFLEtBQUssQ0FBQztpQkFDM0U7Z0JBQ0QsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO1lBRTlCLEtBQUssU0FBUztnQkFDWixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFaEQsS0FBSyxNQUFNO2dCQUNULE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQztvQkFDOUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUN0QixDQUFDLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQztZQUVuQztnQkFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7d0dBdE9VLGFBQWE7NEdBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNoZWNrVmlzaWJsZSA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucz8uc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2wuY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRoYXNJblZpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuIGNvbHVtbnM/LnNvbWUoKGNvbCkgPT4ge1xyXG4gICAgICAgIGlmICghY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2x1bW5zKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRUb3RhbENvbHVtbnNMZW5ndGgoY29sdW1uczogYW55W10pOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuXHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY291bnQgKz0gMTsgLy8gY291bnQgcGFyZW50IGRpcmVjdGx5XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucz8uc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAncmlnaHQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIGdldGhhc0xlZnRQaW5uZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Bpbm5lZFJpZ2h0ID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcclxuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdsZWZ0JyAmJiBjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RXhwYW5kZWRSb3dDb3VudChkYXRhOiBhbnlbXSk6IG51bWJlciB7XHJcbiAgICBsZXQgZ3JvdXBDb3VudCA9IDA7XHJcbiAgICBsZXQgcm93Q291bnQgPSAwO1xyXG5cclxuICAgIGRhdGEuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xyXG4gICAgICAgIGdyb3VwQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIGdyb3VwLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLmlzR3JvdXApIHtcclxuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgICAgIHJvd0NvdW50ICs9IGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcm93Q291bnQrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZ3JvdXBDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcclxuICB9XHJcblxyXG5cclxuZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOmFueSBbXSk6IGFueVtdIHtcclxuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcbiBcclxuICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xyXG4gICAgaWYoY29sPy5xdWVyeT8uY29uZGl0aW9uID09IFwibm9uZVwiKXtcclxuICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XHJcbiAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSk9PiBlbGUuZmllbGQgPT0gY29sLmZpZWxkKTtcclxuICAgIGNvbnN0IGhhc0lkcyA9IEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Py5faWRzKSAmJiBjb2wucXVlcnkuX2lkcy5sZW5ndGggPiAwICYmIGZpbHRlcnNDb25maWcuc29tZSgoZWxlKT0+IGVsZS5maWVsZCA9PSBjb2wuZmllbGQpO1xyXG4gICAgaWYgKGhhc0ZpcnN0VmFsdWUgfHwgaGFzSWRzKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBzZWFyY2g6IGNvbC5zZWFyY2ggPz8gXCJcIixcclxuICAgICAgICBmaWVsZDogY29sLmZpZWxkLFxyXG4gICAgICAgIHR5cGU6IGNvbC50eXBlLFxyXG4gICAgICAgIF9pZHM6IGNvbC50eXBlID09ICdkcm9wZG93bic/IGNvbC5xdWVyeT8uX2lkczogW10sXHJcbiAgICAgICAgcXVlcnk6IGNvbC50eXBlID09ICdkcm9wZG93bic/IG51bGwgOiAoY29sPy5xdWVyeT8uZmlyc3RfdmFsdWUgPyBjb2w/LnF1ZXJ5IDogbnVsbClcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiBcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goY2hlY2tDb2x1bW4pO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgY29sdW1ucy5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcclxuIFxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmFzeW5jIGFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSwgZmlsdGVyczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xyXG4gICAgaWYgKCFjb2wucXVlcnkpIHtcclxuICAgICAgY29sLnF1ZXJ5ID0ge1xyXG4gICAgICAgIGZpcnN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIHNlY29uZF92YWx1ZTogbnVsbCxcclxuICAgICAgICBmaXJzdF9jb25kaXRpb246IGNvbC50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyxcclxuICAgICAgICBzZWNvbmRfY29uZGl0aW9uOiBjb2wudHlwZSAhPT0gJ2RhdGUnPyAnY29udGFpbic6ICdlcXVhbCcsXHJcbiAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXHJcbiAgICAgICAgX2lkczogW11cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoZiA9PiBmLmZpZWxkID09PSBjb2wuZmllbGQpO1xyXG5cclxuICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgaWYgKGNvbC50eXBlID09PSAnZHJvcGRvd24nKSB7XHJcbiAgICAgICAgY29sLmZpbHRlclZhbHVlID0gZmlsdGVyLl9pZHMgPz8gW107XHJcbiAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XHJcbiAgICAgICAgY29sLnF1ZXJ5Ll9pZHMgPSBmaWx0ZXIuX2lkcyA/PyBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBmaWx0ZXIuc2VhcmNoID8/IG51bGw7XHJcbiAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlID0gZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LnNlY29uZF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF9jb25kaXRpb24gPSAoZmlsdGVyLnF1ZXJ5Py5maXJzdF9jb25kaXRpb24pIHx8IChmaWx0ZXIudHlwZSAhPT0gJ2RhdGUnPyAnY29udGFpbic6ICdlcXVhbCcpO1xyXG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gKGZpbHRlci5xdWVyeT8uc2Vjb25kX2NvbmRpdGlvbikgfHwgKGZpbHRlci50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyk7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmNvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uY29uZGl0aW9uID8/ICdub25lJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2wuY2hpbGRyZW4sIGZpbHRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY29sdW1ucztcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbmFjdGl2ZUZpbHRlcmVkQ29sdW1uczogYW55W10gPSBbXTtcclxudXBkYXRlQWN0aXZlRmlsdGVyZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYW55W10ge1xyXG4gIGNvbnN0IGNvbGxlY3RGaWx0ZXJlZCA9IChjb2xzOiBhbnlbXSk6IGFueVtdID0+IHtcclxuICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHNbaV07XHJcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4gJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGNvbGxlY3RGaWx0ZXJlZChjb2wuY2hpbGRyZW4pKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbC5xdWVyeSkge1xyXG4gICAgICAgIGNvbnN0IGhhc0Ryb3Bkb3duRmlsdGVyID1cclxuICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlRmlsdGVyID1cclxuICAgICAgICAgIChjb2wucXVlcnkuZmlyc3RfdmFsdWUgJiYgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICE9PSAnJykgfHxcclxuICAgICAgICAgIChjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICYmIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgIT09ICcnKTtcclxuXHJcbiAgICAgICAgaWYgKGhhc0Ryb3Bkb3duRmlsdGVyIHx8IGhhc1ZhbHVlRmlsdGVyKSB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaChjb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9O1xyXG4gIHRoaXMuYWN0aXZlRmlsdGVyZWRDb2x1bW5zID0gWy4uLmNvbGxlY3RGaWx0ZXJlZChjb2x1bW5zKV07XHJcbiAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyZWRDb2x1bW5zO1xyXG59XHJcblxyXG5cclxuXHJcbmhhc0ZpZWxkQ2hhbmdlZChjdXJyZW50OiBhbnksIG9yaWdpbmFsOiBhbnksIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcihjdXJyZW50KSAhPT0gTnVtYmVyKG9yaWdpbmFsKTtcclxuXHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZyhjdXJyZW50IHx8ICcnKSAhPT0gU3RyaW5nKG9yaWdpbmFsIHx8ICcnKTtcclxuXHJcbiAgICAgIGNhc2UgJ2Ryb3Bkb3duJzpcclxuICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcmlnaW5hbCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Py5pZCAhPT0gb3JpZ2luYWw/LmlkIHx8IGN1cnJlbnQ/LnZhbHVlICE9PSBvcmlnaW5hbD8udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjdXJyZW50ICE9PSBvcmlnaW5hbDtcclxuXHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKGN1cnJlbnQpICE9PSBCb29sZWFuKG9yaWdpbmFsKTtcclxuXHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoY3VycmVudCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZSA9IG5ldyBEYXRlKG9yaWdpbmFsKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGN1cnJlbnREYXRlKSB8fCBpc05hTihvcmlnaW5hbERhdGUpXHJcbiAgICAgICAgICA/IGN1cnJlbnQgIT09IG9yaWdpbmFsXHJcbiAgICAgICAgICA6IGN1cnJlbnREYXRlICE9PSBvcmlnaW5hbERhdGU7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjdXJyZW50KSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|
|
209
|
+
}], ctorParameters: function () { return []; } });
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sYUFBYTtJQUV4QjtRQXlLRiwwQkFBcUIsR0FBVSxFQUFFLENBQUM7SUF6S2hCLENBQUM7SUFDakIsb0JBQW9CLENBQUMsT0FBYztRQUNqQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMzQixJQUFJLEdBQUcsRUFBRSxVQUFVO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUNqQyxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO29CQUN6QixPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBYztRQUNuQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQWMsRUFBVyxFQUFFO1lBQy9DLE9BQU8sT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMzQixJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2xDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0Qs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QUFFLEtBQUssQ0FBQztpQkFDM0U7Z0JBQ0QsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDO1lBRTlCLEtBQUssU0FBUztnQkFDWixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFaEQsS0FBSyxNQUFNO2dCQUNULE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEQsT0FBTyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQztvQkFDOUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUN0QixDQUFDLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQztZQUVuQztnQkFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7K0dBdE9VLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNoZWNrVmlzaWJsZSA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucz8uc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2wuY2hpbGRyZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRoYXNJblZpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgICAgcmV0dXJuIGNvbHVtbnM/LnNvbWUoKGNvbCkgPT4ge1xyXG4gICAgICAgIGlmICghY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2x1bW5zKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRUb3RhbENvbHVtbnNMZW5ndGgoY29sdW1uczogYW55W10pOiBudW1iZXIge1xyXG4gICAgbGV0IGNvdW50ID0gMDtcclxuXHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY291bnQgKz0gMTsgLy8gY291bnQgcGFyZW50IGRpcmVjdGx5XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb3VudDtcclxuICB9XHJcblxyXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xyXG4gICAgICByZXR1cm4gY29sdW1ucz8uc29tZSgoY29sKSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAncmlnaHQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sLmNoaWxkcmVuKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcclxuICB9XHJcblxyXG4gIGdldGhhc0xlZnRQaW5uZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjaGVja1Bpbm5lZFJpZ2h0ID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcclxuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdsZWZ0JyAmJiBjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RXhwYW5kZWRSb3dDb3VudChkYXRhOiBhbnlbXSk6IG51bWJlciB7XHJcbiAgICBsZXQgZ3JvdXBDb3VudCA9IDA7XHJcbiAgICBsZXQgcm93Q291bnQgPSAwO1xyXG5cclxuICAgIGRhdGEuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xyXG4gICAgICAgIGdyb3VwQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcclxuICAgICAgICAgIGdyb3VwLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGNoaWxkLmlzR3JvdXApIHtcclxuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcclxuICAgICAgICAgICAgICAgIHJvd0NvdW50ICs9IGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcm93Q291bnQrKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoZ3JvdXBDb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcclxuICB9XHJcblxyXG5cclxuZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOmFueSBbXSk6IGFueVtdIHtcclxuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XHJcbiBcclxuICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xyXG4gICAgaWYoY29sPy5xdWVyeT8uY29uZGl0aW9uID09IFwibm9uZVwiKXtcclxuICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XHJcbiAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcclxuICAgIH1cclxuICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSk9PiBlbGUuZmllbGQgPT0gY29sLmZpZWxkKTtcclxuICAgIGNvbnN0IGhhc0lkcyA9IEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Py5faWRzKSAmJiBjb2wucXVlcnkuX2lkcy5sZW5ndGggPiAwICYmIGZpbHRlcnNDb25maWcuc29tZSgoZWxlKT0+IGVsZS5maWVsZCA9PSBjb2wuZmllbGQpO1xyXG4gICAgaWYgKGhhc0ZpcnN0VmFsdWUgfHwgaGFzSWRzKSB7XHJcbiAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICBzZWFyY2g6IGNvbC5zZWFyY2ggPz8gXCJcIixcclxuICAgICAgICBmaWVsZDogY29sLmZpZWxkLFxyXG4gICAgICAgIHR5cGU6IGNvbC50eXBlLFxyXG4gICAgICAgIF9pZHM6IGNvbC50eXBlID09ICdkcm9wZG93bic/IGNvbC5xdWVyeT8uX2lkczogW10sXHJcbiAgICAgICAgcXVlcnk6IGNvbC50eXBlID09ICdkcm9wZG93bic/IG51bGwgOiAoY29sPy5xdWVyeT8uZmlyc3RfdmFsdWUgPyBjb2w/LnF1ZXJ5IDogbnVsbClcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiBcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goY2hlY2tDb2x1bW4pO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgY29sdW1ucy5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcclxuIFxyXG4gIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmFzeW5jIGFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSwgZmlsdGVyczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XHJcbiAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xyXG4gICAgaWYgKCFjb2wucXVlcnkpIHtcclxuICAgICAgY29sLnF1ZXJ5ID0ge1xyXG4gICAgICAgIGZpcnN0X3ZhbHVlOiBudWxsLFxyXG4gICAgICAgIHNlY29uZF92YWx1ZTogbnVsbCxcclxuICAgICAgICBmaXJzdF9jb25kaXRpb246IGNvbC50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyxcclxuICAgICAgICBzZWNvbmRfY29uZGl0aW9uOiBjb2wudHlwZSAhPT0gJ2RhdGUnPyAnY29udGFpbic6ICdlcXVhbCcsXHJcbiAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXHJcbiAgICAgICAgX2lkczogW11cclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoZiA9PiBmLmZpZWxkID09PSBjb2wuZmllbGQpO1xyXG5cclxuICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgaWYgKGNvbC50eXBlID09PSAnZHJvcGRvd24nKSB7XHJcbiAgICAgICAgY29sLmZpbHRlclZhbHVlID0gZmlsdGVyLl9pZHMgPz8gW107XHJcbiAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XHJcbiAgICAgICAgY29sLnF1ZXJ5Ll9pZHMgPSBmaWx0ZXIuX2lkcyA/PyBbXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBmaWx0ZXIuc2VhcmNoID8/IG51bGw7XHJcbiAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlID0gZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LnNlY29uZF92YWx1ZSA/PyBudWxsO1xyXG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF9jb25kaXRpb24gPSAoZmlsdGVyLnF1ZXJ5Py5maXJzdF9jb25kaXRpb24pIHx8IChmaWx0ZXIudHlwZSAhPT0gJ2RhdGUnPyAnY29udGFpbic6ICdlcXVhbCcpO1xyXG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gKGZpbHRlci5xdWVyeT8uc2Vjb25kX2NvbmRpdGlvbikgfHwgKGZpbHRlci50eXBlICE9PSAnZGF0ZSc/ICdjb250YWluJzogJ2VxdWFsJyk7XHJcbiAgICAgICAgY29sLnF1ZXJ5LmNvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uY29uZGl0aW9uID8/ICdub25lJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2wuY2hpbGRyZW4sIGZpbHRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gY29sdW1ucztcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbmFjdGl2ZUZpbHRlcmVkQ29sdW1uczogYW55W10gPSBbXTtcclxudXBkYXRlQWN0aXZlRmlsdGVyZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYW55W10ge1xyXG4gIGNvbnN0IGNvbGxlY3RGaWx0ZXJlZCA9IChjb2xzOiBhbnlbXSk6IGFueVtdID0+IHtcclxuICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbCA9IGNvbHNbaV07XHJcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4gJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXN1bHQgPSByZXN1bHQuY29uY2F0KGNvbGxlY3RGaWx0ZXJlZChjb2wuY2hpbGRyZW4pKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbC5xdWVyeSkge1xyXG4gICAgICAgIGNvbnN0IGhhc0Ryb3Bkb3duRmlsdGVyID1cclxuICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDA7XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc1ZhbHVlRmlsdGVyID1cclxuICAgICAgICAgIChjb2wucXVlcnkuZmlyc3RfdmFsdWUgJiYgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICE9PSAnJykgfHxcclxuICAgICAgICAgIChjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICYmIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgIT09ICcnKTtcclxuXHJcbiAgICAgICAgaWYgKGhhc0Ryb3Bkb3duRmlsdGVyIHx8IGhhc1ZhbHVlRmlsdGVyKSB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaChjb2wpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9O1xyXG4gIHRoaXMuYWN0aXZlRmlsdGVyZWRDb2x1bW5zID0gWy4uLmNvbGxlY3RGaWx0ZXJlZChjb2x1bW5zKV07XHJcbiAgcmV0dXJuIHRoaXMuYWN0aXZlRmlsdGVyZWRDb2x1bW5zO1xyXG59XHJcblxyXG5cclxuXHJcbmhhc0ZpZWxkQ2hhbmdlZChjdXJyZW50OiBhbnksIG9yaWdpbmFsOiBhbnksIHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgcmV0dXJuIE51bWJlcihjdXJyZW50KSAhPT0gTnVtYmVyKG9yaWdpbmFsKTtcclxuXHJcbiAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZyhjdXJyZW50IHx8ICcnKSAhPT0gU3RyaW5nKG9yaWdpbmFsIHx8ICcnKTtcclxuXHJcbiAgICAgIGNhc2UgJ2Ryb3Bkb3duJzpcclxuICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcmlnaW5hbCA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Py5pZCAhPT0gb3JpZ2luYWw/LmlkIHx8IGN1cnJlbnQ/LnZhbHVlICE9PSBvcmlnaW5hbD8udmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjdXJyZW50ICE9PSBvcmlnaW5hbDtcclxuXHJcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKGN1cnJlbnQpICE9PSBCb29sZWFuKG9yaWdpbmFsKTtcclxuXHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoY3VycmVudCkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZSA9IG5ldyBEYXRlKG9yaWdpbmFsKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGN1cnJlbnREYXRlKSB8fCBpc05hTihvcmlnaW5hbERhdGUpXHJcbiAgICAgICAgICA/IGN1cnJlbnQgIT09IG9yaWdpbmFsXHJcbiAgICAgICAgICA6IGN1cnJlbnREYXRlICE9PSBvcmlnaW5hbERhdGU7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjdXJyZW50KSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59XHJcblxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class CopyServiceService {
|
|
4
|
-
constructor() {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.updateRows = [];
|
|
6
|
+
this.currentColums = [];
|
|
7
|
+
}
|
|
5
8
|
getSelectedDataForCopy(dataSet, columns, rowSelectedIndexes, selectedCells, getNestedValue) {
|
|
6
9
|
const copiedRows = [];
|
|
7
10
|
columns = columns.filter(col => col.is_visible);
|
|
@@ -94,8 +97,6 @@ export class CopyServiceService {
|
|
|
94
97
|
selectedEls.forEach(el => el.classList.remove('flash-bg'));
|
|
95
98
|
}, 1000);
|
|
96
99
|
}
|
|
97
|
-
updateRows = [];
|
|
98
|
-
currentColums = [];
|
|
99
100
|
async pasteFromClipboardText(text, dataSet, columns, startRowIndex, startColIndex, startSubColIndex = 0) {
|
|
100
101
|
if (!text)
|
|
101
102
|
return [];
|
|
@@ -209,13 +210,13 @@ export class CopyServiceService {
|
|
|
209
210
|
selectedEls.forEach(el => el.classList.remove('cut-flash-bg'));
|
|
210
211
|
}, 1000);
|
|
211
212
|
}
|
|
212
|
-
static
|
|
213
|
-
static
|
|
213
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyServiceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
214
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyServiceService, providedIn: 'root' }); }
|
|
214
215
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
216
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CopyServiceService, decorators: [{
|
|
216
217
|
type: Injectable,
|
|
217
218
|
args: [{
|
|
218
219
|
providedIn: 'root'
|
|
219
220
|
}]
|
|
220
|
-
}], ctorParameters: ()
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLGdCQUFnQixDQUFDO0lBQ2pCLHNCQUFzQixDQUNwQixPQUFjLEVBQ2QsT0FBYyxFQUNkLGtCQUErQixFQUMvQixhQUFvQixFQUNwQixjQUErQztRQUUvQyxNQUFNLFVBQVUsR0FBWSxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxLQUFLLE1BQU0sTUFBTSxJQUFJLGFBQWEsRUFBRTtnQkFDbEMsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxHQUFHO29CQUFFLFNBQVM7Z0JBQ25CLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBYSxFQUFVLEVBQUU7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QUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0UsMEJBQTBCO1FBQzFCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzt3R0FuUFUsa0JBQWtCOzRHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlTZXJ2aWNlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgZ2V0U2VsZWN0ZWREYXRhRm9yQ29weShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICByb3dTZWxlY3RlZEluZGV4ZXM6IFNldDxudW1iZXI+LFxyXG4gICAgc2VsZWN0ZWRDZWxsczogYW55W10sXHJcbiAgICBnZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBwYXRoOiBzdHJpbmcpID0+IGFueVxyXG4gICk6IGFueVtdW10ge1xyXG4gICAgY29uc3QgY29waWVkUm93czogYW55W11bXSA9IFtdO1xyXG4gICAgY29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuaXNfdmlzaWJsZSk7XHJcbiAgICBjb25zdCBmaW5kUm93QnlWaXJ0dWFsSW5kZXggPSAodkluZGV4OiBudW1iZXIpID0+XHJcbiAgICAgIGRhdGFTZXQuZmluZCgocjogYW55KSA9PiByLl9fdmlydHVhbEluZGV4ID09PSB2SW5kZXgpO1xyXG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcyAmJiByb3dTZWxlY3RlZEluZGV4ZXMuc2l6ZSA+IDApIHtcclxuICAgICAgY29uc3Qgc29ydGVkSW5kZXhlcyA9IFsuLi5yb3dTZWxlY3RlZEluZGV4ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcclxuICAgICAgZm9yIChjb25zdCB2SW5kZXggb2Ygc29ydGVkSW5kZXhlcykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleCh2SW5kZXgpO1xyXG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcclxuICAgICAgICBjb25zdCBleHRyYWN0VmFsdWUgPSAoZmllbGQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXN0ZWQgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkKTtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgbmVzdGVkPy52YWx1ZSA/P1xyXG4gICAgICAgICAgICBuZXN0ZWQ/Lm5hbWUgPz9cclxuICAgICAgICAgICAgbmVzdGVkID8/XHJcbiAgICAgICAgICAgICctJztcclxuXHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgICAgICAgLm1hcCh2ID0+XHJcbiAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgICAgPyAodi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnKVxyXG4gICAgICAgICAgICAgICAgICA6ICh2Py50b1N0cmluZygpID8/ICcnKVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29sLmNoaWxkcmVuLm1hcCgoYzogeyBmaWVsZDogc3RyaW5nIH0pID0+IGV4dHJhY3RWYWx1ZShjLmZpZWxkKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gW2V4dHJhY3RWYWx1ZShjb2wuZmllbGQpXTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByb3dWYWx1ZXMgPSBtYXBwZWQucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSk7XHJcbiAgICAgICAgY29waWVkUm93cy5wdXNoKHJvd1ZhbHVlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzZWxlY3RlZENlbGxzICYmIHNlbGVjdGVkQ2VsbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCByb3dzTWFwID0gbmV3IE1hcDxudW1iZXIsIGFueVtdPigpO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleChjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcclxuICAgICAgICBsZXQgZmllbGROYW1lID0gY29sPy5maWVsZDtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF0pIHtcclxuICAgICAgICAgIGZpZWxkTmFtZSA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKT8ubmFtZSB8fCBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgJy0nO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgICAgICAgICAubWFwKHYgPT5cclxuICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgID8gdi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnXHJcbiAgICAgICAgICAgICAgICA6IHY/LnRvU3RyaW5nKCkgPz8gJydcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFyb3dzTWFwLmhhcyhjZWxsLnJvd0luZGV4KSkgcm93c01hcC5zZXQoY2VsbC5yb3dJbmRleCwgW10pO1xyXG4gICAgICAgIHJvd3NNYXAuZ2V0KGNlbGwucm93SW5kZXgpIS5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3J0ZWRDZWxscyA9IFsuLi5yb3dzTWFwLmVudHJpZXMoKV1cclxuICAgICAgICAuc29ydCgoW2FdLCBbYl0pID0+IGEgLSBiKVxyXG4gICAgICAgIC5tYXAoKFtfLCB2XSkgPT4gdik7XHJcbiAgICAgIGNvcGllZFJvd3MucHVzaCguLi5zb3J0ZWRDZWxscyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29waWVkUm93cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hY3RpdmUtY2VsbCcpO1xyXG4gICAgICBpZiAoYWN0aXZlQ2VsbCkgcmV0dXJuIFtbYWN0aXZlQ2VsbC50ZXh0Q29udGVudD8udHJpbSgpIHx8ICcnXV07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWF4Q29scyA9IGNvcGllZFJvd3MucmVkdWNlKChtYXgsIHJvdykgPT4gTWF0aC5tYXgobWF4LCByb3cubGVuZ3RoKSwgMCk7XHJcbiAgICByZXR1cm4gY29waWVkUm93cy5tYXAocm93ID0+IHtcclxuICAgICAgY29uc3QgbmV3Um93ID0gWy4uLnJvd107XHJcbiAgICAgIHdoaWxlIChuZXdSb3cubGVuZ3RoIDwgbWF4Q29scykgbmV3Um93LnB1c2goJycpO1xyXG4gICAgICByZXR1cm4gbmV3Um93O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKFxyXG4gICAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxyXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcclxuICApOiB2b2lkIHtcclxuICAgIGlmICghc2VsZWN0ZWREYXRhIHx8IHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHRleHRUb0NvcHkgPSBzZWxlY3RlZERhdGFcclxuICAgICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKS50b1N0cmluZygpKS5qb2luKCdcXHQnKSlcclxuICAgICAgLmpvaW4oJ1xcbicpO1xyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEVscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xyXG4gICAgc2VsZWN0ZWRFbHMuZm9yRWFjaChlbCA9PiBlbC5jbGFzc0xpc3QuYWRkKCdmbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2ZsYXNoLWJnJykpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuXHJcbnVwZGF0ZVJvd3M6IGFueVtdID0gW107XHJcbiAgY3VycmVudENvbHVtcyA6IGFueSA9IFtdXHJcbiAgYXN5bmMgcGFzdGVGcm9tQ2xpcGJvYXJkVGV4dChcclxuICAgIHRleHQ6IHN0cmluZyxcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzdGFydFJvd0luZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydENvbEluZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydFN1YkNvbEluZGV4OiBudW1iZXIgPSAwXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xyXG4gICAgdGhpcy51cGRhdGVSb3dzID0gW107XHJcbiAgICBjb25zdCByb3dzID0gdGV4dC5zcGxpdCgvXFxyP1xcbi8pLm1hcChyID0+IHIuc3BsaXQoJ1xcdCcpKTtcclxuICAgIGNvbnN0IGZsYXR0ZW5lZENvbHVtbnM6IGFueVtdID0gW107XHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IGZsYXR0ZW5lZENvbHVtbnMucHVzaCh7IHBhcmVudDogY29sLCAuLi5jaGlsZCB9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmxhdHRlbmVkQ29sdW1ucy5wdXNoKGNvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbGV0IHN0YXJ0RmxhdHRlbmVkSW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydENvbEluZGV4OyBpKyspIHtcclxuICAgICAgY29uc3QgY29sID0gY29sdW1uc1tpXTtcclxuICAgICAgc3RhcnRGbGF0dGVuZWRJbmRleCArPSBjb2wuY2hpbGRyZW4/Lmxlbmd0aCB8fCAxO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnRDb2wgPSBjb2x1bW5zW3N0YXJ0Q29sSW5kZXhdO1xyXG4gICAgaWYgKHN0YXJ0Q29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIHN0YXJ0RmxhdHRlbmVkSW5kZXggKz0gTWF0aC5taW4oc3RhcnRTdWJDb2xJbmRleCwgc3RhcnRDb2wuY2hpbGRyZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiBcclxuICAgIHJvd3MuZm9yRWFjaCgocm93VmFsdWVzLCByT2Zmc2V0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gc3RhcnRSb3dJbmRleCArIHJPZmZzZXQ7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFTZXQuZmluZChyID0+IHI/Ll9fdmlydHVhbEluZGV4ID09PSB0YXJnZXRSb3dJbmRleCk7XHJcbiAgICAgIGlmICghcm93KSByZXR1cm47XHJcbiBcclxuICAgICAgcm93VmFsdWVzLmZvckVhY2goKHZhbHVlLCBjT2Zmc2V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBzdGFydEZsYXR0ZW5lZEluZGV4ICsgY09mZnNldDtcclxuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IGZsYXR0ZW5lZENvbHVtbnMubGVuZ3RoKSByZXR1cm47XHJcbiBcclxuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW4gPSBmbGF0dGVuZWRDb2x1bW5zW3RhcmdldEluZGV4XTtcclxuICAgICAgICBpZighdGFyZ2V0Q29sdW1uIHx8ICF0YXJnZXRDb2x1bW4uaXNfZWRpdGFibGUpIHJldHVybjtcclxuICAgICAgICAgaWYgKHRhcmdldENvbHVtbj8udHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIHZhbHVlKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0Q29sdW1uLnR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtKSAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDb2x1bXMucHVzaCh0YXJnZXRDb2x1bW4pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIG51bSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuIFxyXG4gICAgcmV0dXJuIHt1cGRhdGVSb3dzIDogdGhpcy51cGRhdGVSb3dzLCBjdXJyZW50Q29sdW1zIDogdGhpcy5jdXJyZW50Q29sdW1zfTtcclxuICB9XHJcblxyXG5cclxuICBzZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgY29sdW1uOiBhbnksIG9wdGlvbjogYW55LCBjYWxsZWRGcm9tSW5wdXQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbHVtbi50eXBlID09PSAnZGF0ZScgfHwgY29sdW1uLnR5cGUgPT09ICdpbWFnZScpIHJldHVybjtcclxuICAgIGNvbnN0IHBhdGggPSBjb2x1bW4uZmllbGQ7XHJcbiAgICBpZiAoIXBhdGgpIHJldHVybjtcclxuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XHJcbiAgICBjb25zdCBsYXN0S2V5ID0ga2V5cy5wb3AoKTtcclxuICAgIGNvbnN0IHBhcmVudCA9IGtleXMucmVkdWNlKChhY2M6IGFueSwga2V5OiBzdHJpbmcpID0+IChhY2Nba2V5XSA/Pz0ge30pLCBvYmopO1xyXG4gICAgaWYgKHBhcmVudCAmJiBsYXN0S2V5KSB7XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24gIT09IG51bGwpIHtcclxuICAgICAgICBwYXJlbnRbbGFzdEtleV0gPSB7XHJcbiAgICAgICAgICBpZDogb3B0aW9uLmlkID8/IDEsXHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlID8/IG9wdGlvbixcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmVudFtsYXN0S2V5XSA9IG9wdGlvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VuZE9iaiA9IHtcclxuICAgICAgZGF0YTogeyAuLi5vYmogfSxcclxuICAgICAgZXZlbnRUeXBlOiAnb25DZWxsRWRpdCcsXHJcbiAgICB9O1xyXG4gICAgdGhpcy51cGRhdGVSb3dzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuICBjdXRTZWxlY3RlZFNlbGVjdGVkRGF0YShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcclxuICAgIHNlbGVjdGVkQ2VsbHM6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSkgPT4gdm9pZFxyXG4gICk6IGFueSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBbLi4uZGF0YVNldF07XHJcbiAgICBpZiAocm93U2VsZWN0ZWRJbmRleGVzPy5zaXplKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ZXMgPSBbLi4ucm93U2VsZWN0ZWRJbmRleGVzXTtcclxuICAgICAgdXBkYXRlZERhdGEgPSB1cGRhdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKHJvdzogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyhyb3cuX192aXJ0dWFsSW5kZXgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIHJvd1NlbGVjdGVkSW5kZXhlcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc2VsZWN0ZWRDZWxscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUm93cyA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHVwZGF0ZWREYXRhLmZpbmQociA9PiByLl9fdmlydHVhbEluZGV4ID09PSBjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgbGV0IGNvbCA9IGNvbHVtbnNbY2VsbC5jb2xJbmRleF07XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4gJiYgY29sLmNoaWxkcmVuW2NlbGwuc3ViQ29sSW5kZXhdKSB7XHJcbiAgICAgICAgICBjb2wgPSBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCBjb2wsICcnKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBzZWxlY3RlZENlbGxzLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge3VwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YSwgdXBkYXRlZFJvd3M6IHRoaXMudXBkYXRlUm93c307XHJcbiAgfVxyXG5cclxuXHJcbiAgY3V0V2l0aEFuaW1hdGlvbihcclxuICAgIHNlbGVjdGVkRGF0YTogYW55W11bXSxcclxuICAgIHNlbGVjdG9yID0gJy5zZWxlY3RlZC1jZWxsLCAuYWN0aXZlLWNlbGwsIC5yb3ctc2VsZWN0ZWQnXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoIXNlbGVjdGVkRGF0YSB8fCBzZWxlY3RlZERhdGEubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHNlbGVjdGVkRGF0YVxyXG4gICAgICAubWFwKHJvdyA9PiByb3cubWFwKGNlbGwgPT4gKGNlbGwgPz8gJycpLnRvU3RyaW5nKCkpLmpvaW4oJ1xcdCcpKVxyXG4gICAgICAuam9pbignXFxuJyk7XHJcblxyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcblxyXG4gICAgLy8gQXBwbHkgcmVkIGN1dCBhbmltYXRpb25cclxuICAgIGNvbnN0IHNlbGVjdGVkRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XHJcbiAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|
|
221
|
+
}], ctorParameters: function () { return []; } });
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1zZXJ2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb3B5LXNlcnZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBMkdGLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFDckIsa0JBQWEsR0FBUyxFQUFFLENBQUE7SUE1R1IsQ0FBQztJQUNqQixzQkFBc0IsQ0FDcEIsT0FBYyxFQUNkLE9BQWMsRUFDZCxrQkFBK0IsRUFDL0IsYUFBb0IsRUFDcEIsY0FBK0M7UUFFL0MsTUFBTSxVQUFVLEdBQVksRUFBRSxDQUFDO1FBQy9CLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksa0JBQWtCLElBQUksa0JBQWtCLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtZQUNyRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEUsS0FBSyxNQUFNLE1BQU0sSUFBSSxhQUFhLEVBQUU7Z0JBQ2xDLE1BQU0sR0FBRyxHQUFHLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsR0FBRztvQkFBRSxTQUFTO2dCQUNuQixNQUFNLFlBQVksR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFO29CQUM3QyxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMxQyxNQUFNLEtBQUssR0FDVCxNQUFNLEVBQUUsS0FBSzt3QkFDYixNQUFNLEVBQUUsSUFBSTt3QkFDWixNQUFNO3dCQUNOLEdBQUcsQ0FBQztvQkFFTixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3hCLE9BQU8sS0FBSzs2QkFDVCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxPQUFPLENBQUMsS0FBSyxRQUFROzRCQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDOzRCQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQzFCOzZCQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDZjtvQkFDRCxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLENBQUMsQ0FBQztnQkFDRixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUMvQixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7d0JBQy9DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7cUJBQzFFO29CQUNELE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7UUFDRCxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztZQUN6QyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRTtnQkFDaEMsTUFBTSxHQUFHLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsR0FBRztvQkFBRSxTQUFTO2dCQUNuQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLFNBQVMsR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO2dCQUMzQixJQUFJLEdBQUcsRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ25ELFNBQVMsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUM7aUJBQ2xEO2dCQUNELElBQUksS0FBSyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsRUFBRSxJQUFJLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBQzVILElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDeEIsS0FBSyxHQUFHLEtBQUs7eUJBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ1AsT0FBTyxDQUFDLEtBQUssUUFBUTt3QkFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFO3dCQUN0QyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDeEI7eUJBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNmO3FCQUFNO29CQUNMLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO2lCQUNyQjtnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFELElBQUksVUFBVTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFFRCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU87Z0JBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxlQUFlLENBQ2IsWUFBcUIsRUFDckIsUUFBUSxHQUFHLDZDQUE2QztRQUV4RCxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDdkQsTUFBTSxVQUFVLEdBQUcsWUFBWTthQUM1QixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUtELEtBQUssQ0FBQyxzQkFBc0IsQ0FDMUIsSUFBWSxFQUNaLE9BQWMsRUFDZCxPQUFjLEVBQ2QsYUFBcUIsRUFDckIsYUFBcUIsRUFDckIsbUJBQTJCLENBQUM7UUFFNUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hGO2lCQUFNO2dCQUNMLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDNUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsbUJBQW1CLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7WUFDOUIsbUJBQW1CLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqRjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEMsTUFBTSxjQUFjLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUMvQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLGNBQWMsS0FBSyxjQUFjLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsR0FBRztnQkFBRSxPQUFPO1lBRWpCLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixHQUFHLE9BQU8sQ0FBQztnQkFDbEQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxJQUFJLFdBQVcsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNO29CQUFFLE9BQU87Z0JBRXRFLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNuRCxJQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7b0JBQUUsT0FBTztnQkFDckQsSUFBSSxZQUFZLEVBQUUsSUFBSSxLQUFLLFFBQVEsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDL0M7cUJBQU0sSUFBSSxZQUFZLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtvQkFDekMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQzdDO2lCQUNGO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBQyxVQUFVLEVBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUcsSUFBSSxDQUFDLGFBQWEsRUFBQyxDQUFDO0lBQzVFLENBQUM7SUFHRCxjQUFjLENBQUMsR0FBUSxFQUFFLE1BQVcsRUFBRSxNQUFXLEVBQUUsZUFBZSxHQUFHLEtBQUs7UUFDeEUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLE9BQU87WUFBRSxPQUFPO1FBQzlELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ2xCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsR0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RSxJQUFJLE1BQU0sSUFBSSxPQUFPLEVBQUU7WUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHO29CQUNoQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDO29CQUNsQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNO2lCQUM5QixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUMxQjtTQUNGO1FBQ0QsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJLEVBQUUsRUFBRSxHQUFHLEdBQUcsRUFBRTtZQUNoQixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUdELHVCQUF1QixDQUNyQixPQUFjLEVBQ2Qsa0JBQStCLEVBQy9CLGFBQW9CLEVBQ3BCLE9BQWMsRUFDZCxjQUEyRDtRQUUzRCxJQUFJLFdBQVcsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDL0IsSUFBSSxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDNUIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUM7WUFDeEMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQzlCLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUNwRCxDQUFDO1lBQ0YsOEJBQThCO1NBQy9CO2FBQ0ksSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFO2dCQUNoQyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxHQUFHO29CQUFFLFNBQVM7Z0JBQ25CLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDbkQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUN0QztnQkFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDbkM7WUFDRCw0QkFBNEI7U0FDN0I7UUFDRCxPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBQyxDQUFDO0lBQ2xFLENBQUM7SUFHRCxnQkFBZ0IsQ0FDZCxZQUFxQixFQUNyQixRQUFRLEdBQUcsNkNBQTZDO1FBRXhELElBQUksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV2RCxNQUFNLFVBQVUsR0FBRyxZQUFZO2FBQzVCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFZCxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0UsMEJBQTBCO1FBQzFCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUM1RCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0FuUFUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcHlTZXJ2aWNlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbiAgZ2V0U2VsZWN0ZWREYXRhRm9yQ29weShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICByb3dTZWxlY3RlZEluZGV4ZXM6IFNldDxudW1iZXI+LFxyXG4gICAgc2VsZWN0ZWRDZWxsczogYW55W10sXHJcbiAgICBnZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBwYXRoOiBzdHJpbmcpID0+IGFueVxyXG4gICk6IGFueVtdW10ge1xyXG4gICAgY29uc3QgY29waWVkUm93czogYW55W11bXSA9IFtdO1xyXG4gICAgY29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKGNvbCA9PiBjb2wuaXNfdmlzaWJsZSk7XHJcbiAgICBjb25zdCBmaW5kUm93QnlWaXJ0dWFsSW5kZXggPSAodkluZGV4OiBudW1iZXIpID0+XHJcbiAgICAgIGRhdGFTZXQuZmluZCgocjogYW55KSA9PiByLl9fdmlydHVhbEluZGV4ID09PSB2SW5kZXgpO1xyXG4gICAgaWYgKHJvd1NlbGVjdGVkSW5kZXhlcyAmJiByb3dTZWxlY3RlZEluZGV4ZXMuc2l6ZSA+IDApIHtcclxuICAgICAgY29uc3Qgc29ydGVkSW5kZXhlcyA9IFsuLi5yb3dTZWxlY3RlZEluZGV4ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcclxuICAgICAgZm9yIChjb25zdCB2SW5kZXggb2Ygc29ydGVkSW5kZXhlcykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleCh2SW5kZXgpO1xyXG4gICAgICAgIGlmICghcm93KSBjb250aW51ZTtcclxuICAgICAgICBjb25zdCBleHRyYWN0VmFsdWUgPSAoZmllbGQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXN0ZWQgPSBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkKTtcclxuICAgICAgICAgIGNvbnN0IHZhbHVlID1cclxuICAgICAgICAgICAgbmVzdGVkPy52YWx1ZSA/P1xyXG4gICAgICAgICAgICBuZXN0ZWQ/Lm5hbWUgPz9cclxuICAgICAgICAgICAgbmVzdGVkID8/XHJcbiAgICAgICAgICAgICctJztcclxuXHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgICAgICAgLm1hcCh2ID0+XHJcbiAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgICAgPyAodi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnKVxyXG4gICAgICAgICAgICAgICAgICA6ICh2Py50b1N0cmluZygpID8/ICcnKVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IGNvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gY29sLmNoaWxkcmVuLm1hcCgoYzogeyBmaWVsZDogc3RyaW5nIH0pID0+IGV4dHJhY3RWYWx1ZShjLmZpZWxkKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gW2V4dHJhY3RWYWx1ZShjb2wuZmllbGQpXTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCByb3dWYWx1ZXMgPSBtYXBwZWQucmVkdWNlPHN0cmluZ1tdPigoYWNjLCBjdXJyKSA9PiBhY2MuY29uY2F0KGN1cnIpLCBbXSk7XHJcbiAgICAgICAgY29waWVkUm93cy5wdXNoKHJvd1ZhbHVlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzZWxlY3RlZENlbGxzICYmIHNlbGVjdGVkQ2VsbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCByb3dzTWFwID0gbmV3IE1hcDxudW1iZXIsIGFueVtdPigpO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IGZpbmRSb3dCeVZpcnR1YWxJbmRleChjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29sdW1uc1tjZWxsLmNvbEluZGV4XTtcclxuICAgICAgICBsZXQgZmllbGROYW1lID0gY29sPy5maWVsZDtcclxuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF0pIHtcclxuICAgICAgICAgIGZpZWxkTmFtZSA9IGNvbC5jaGlsZHJlbltjZWxsLnN1YkNvbEluZGV4XS5maWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocm93LCBmaWVsZE5hbWUpIHx8IGdldE5lc3RlZFZhbHVlKHJvdywgZmllbGROYW1lKT8ubmFtZSB8fCBnZXROZXN0ZWRWYWx1ZShyb3csIGZpZWxkTmFtZSkgfHwgJy0nO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgICAgICAgICAubWFwKHYgPT5cclxuICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgICAgID8gdi5kZXBhcnRtZW50TmFtZSA/PyB2LnJvbGVOYW1lID8/ICcnXHJcbiAgICAgICAgICAgICAgICA6IHY/LnRvU3RyaW5nKCkgPz8gJydcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuam9pbignLCAnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFyb3dzTWFwLmhhcyhjZWxsLnJvd0luZGV4KSkgcm93c01hcC5zZXQoY2VsbC5yb3dJbmRleCwgW10pO1xyXG4gICAgICAgIHJvd3NNYXAuZ2V0KGNlbGwucm93SW5kZXgpIS5wdXNoKHZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzb3J0ZWRDZWxscyA9IFsuLi5yb3dzTWFwLmVudHJpZXMoKV1cclxuICAgICAgICAuc29ydCgoW2FdLCBbYl0pID0+IGEgLSBiKVxyXG4gICAgICAgIC5tYXAoKFtfLCB2XSkgPT4gdik7XHJcbiAgICAgIGNvcGllZFJvd3MucHVzaCguLi5zb3J0ZWRDZWxscyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29waWVkUm93cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgY29uc3QgYWN0aXZlQ2VsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hY3RpdmUtY2VsbCcpO1xyXG4gICAgICBpZiAoYWN0aXZlQ2VsbCkgcmV0dXJuIFtbYWN0aXZlQ2VsbC50ZXh0Q29udGVudD8udHJpbSgpIHx8ICcnXV07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbWF4Q29scyA9IGNvcGllZFJvd3MucmVkdWNlKChtYXgsIHJvdykgPT4gTWF0aC5tYXgobWF4LCByb3cubGVuZ3RoKSwgMCk7XHJcbiAgICByZXR1cm4gY29waWVkUm93cy5tYXAocm93ID0+IHtcclxuICAgICAgY29uc3QgbmV3Um93ID0gWy4uLnJvd107XHJcbiAgICAgIHdoaWxlIChuZXdSb3cubGVuZ3RoIDwgbWF4Q29scykgbmV3Um93LnB1c2goJycpO1xyXG4gICAgICByZXR1cm4gbmV3Um93O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29weVRvQ2xpcGJvYXJkKFxyXG4gICAgc2VsZWN0ZWREYXRhOiBhbnlbXVtdLFxyXG4gICAgc2VsZWN0b3IgPSAnLnNlbGVjdGVkLWNlbGwsIC5hY3RpdmUtY2VsbCwgLnJvdy1zZWxlY3RlZCdcclxuICApOiB2b2lkIHtcclxuICAgIGlmICghc2VsZWN0ZWREYXRhIHx8IHNlbGVjdGVkRGF0YS5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHRleHRUb0NvcHkgPSBzZWxlY3RlZERhdGFcclxuICAgICAgLm1hcChyb3cgPT4gcm93Lm1hcChjZWxsID0+IChjZWxsID8/ICcnKS50b1N0cmluZygpKS5qb2luKCdcXHQnKSlcclxuICAgICAgLmpvaW4oJ1xcbicpO1xyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcbiAgICBjb25zdCBzZWxlY3RlZEVscyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpO1xyXG4gICAgc2VsZWN0ZWRFbHMuZm9yRWFjaChlbCA9PiBlbC5jbGFzc0xpc3QuYWRkKCdmbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2ZsYXNoLWJnJykpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuXHJcbnVwZGF0ZVJvd3M6IGFueVtdID0gW107XHJcbiAgY3VycmVudENvbHVtcyA6IGFueSA9IFtdXHJcbiAgYXN5bmMgcGFzdGVGcm9tQ2xpcGJvYXJkVGV4dChcclxuICAgIHRleHQ6IHN0cmluZyxcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzdGFydFJvd0luZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydENvbEluZGV4OiBudW1iZXIsXHJcbiAgICBzdGFydFN1YkNvbEluZGV4OiBudW1iZXIgPSAwXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICghdGV4dCkgcmV0dXJuIFtdO1xyXG4gICAgdGhpcy51cGRhdGVSb3dzID0gW107XHJcbiAgICBjb25zdCByb3dzID0gdGV4dC5zcGxpdCgvXFxyP1xcbi8pLm1hcChyID0+IHIuc3BsaXQoJ1xcdCcpKTtcclxuICAgIGNvbnN0IGZsYXR0ZW5lZENvbHVtbnM6IGFueVtdID0gW107XHJcbiAgICBjb2x1bW5zLmZvckVhY2goY29sID0+IHtcclxuICAgICAgaWYgKGNvbC5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgY29sLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IGZsYXR0ZW5lZENvbHVtbnMucHVzaCh7IHBhcmVudDogY29sLCAuLi5jaGlsZCB9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmxhdHRlbmVkQ29sdW1ucy5wdXNoKGNvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgbGV0IHN0YXJ0RmxhdHRlbmVkSW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFydENvbEluZGV4OyBpKyspIHtcclxuICAgICAgY29uc3QgY29sID0gY29sdW1uc1tpXTtcclxuICAgICAgc3RhcnRGbGF0dGVuZWRJbmRleCArPSBjb2wuY2hpbGRyZW4/Lmxlbmd0aCB8fCAxO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3RhcnRDb2wgPSBjb2x1bW5zW3N0YXJ0Q29sSW5kZXhdO1xyXG4gICAgaWYgKHN0YXJ0Q29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgIHN0YXJ0RmxhdHRlbmVkSW5kZXggKz0gTWF0aC5taW4oc3RhcnRTdWJDb2xJbmRleCwgc3RhcnRDb2wuY2hpbGRyZW4ubGVuZ3RoIC0gMSk7XHJcbiAgICB9XHJcbiBcclxuICAgIHJvd3MuZm9yRWFjaCgocm93VmFsdWVzLCByT2Zmc2V0KSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhcmdldFJvd0luZGV4ID0gc3RhcnRSb3dJbmRleCArIHJPZmZzZXQ7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFTZXQuZmluZChyID0+IHI/Ll9fdmlydHVhbEluZGV4ID09PSB0YXJnZXRSb3dJbmRleCk7XHJcbiAgICAgIGlmICghcm93KSByZXR1cm47XHJcbiBcclxuICAgICAgcm93VmFsdWVzLmZvckVhY2goKHZhbHVlLCBjT2Zmc2V0KSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBzdGFydEZsYXR0ZW5lZEluZGV4ICsgY09mZnNldDtcclxuICAgICAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IGZsYXR0ZW5lZENvbHVtbnMubGVuZ3RoKSByZXR1cm47XHJcbiBcclxuICAgICAgICBjb25zdCB0YXJnZXRDb2x1bW4gPSBmbGF0dGVuZWRDb2x1bW5zW3RhcmdldEluZGV4XTtcclxuICAgICAgICBpZighdGFyZ2V0Q29sdW1uIHx8ICF0YXJnZXRDb2x1bW4uaXNfZWRpdGFibGUpIHJldHVybjtcclxuICAgICAgICAgaWYgKHRhcmdldENvbHVtbj8udHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIHRoaXMuY3VycmVudENvbHVtcy5wdXNoKHRhcmdldENvbHVtbik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIHZhbHVlKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0Q29sdW1uLnR5cGUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtKSAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRDb2x1bXMucHVzaCh0YXJnZXRDb2x1bW4pO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCB0YXJnZXRDb2x1bW4sIG51bSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuIFxyXG4gICAgcmV0dXJuIHt1cGRhdGVSb3dzIDogdGhpcy51cGRhdGVSb3dzLCBjdXJyZW50Q29sdW1zIDogdGhpcy5jdXJyZW50Q29sdW1zfTtcclxuICB9XHJcblxyXG5cclxuICBzZXROZXN0ZWRWYWx1ZShvYmo6IGFueSwgY29sdW1uOiBhbnksIG9wdGlvbjogYW55LCBjYWxsZWRGcm9tSW5wdXQgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbHVtbi50eXBlID09PSAnZGF0ZScgfHwgY29sdW1uLnR5cGUgPT09ICdpbWFnZScpIHJldHVybjtcclxuICAgIGNvbnN0IHBhdGggPSBjb2x1bW4uZmllbGQ7XHJcbiAgICBpZiAoIXBhdGgpIHJldHVybjtcclxuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XHJcbiAgICBjb25zdCBsYXN0S2V5ID0ga2V5cy5wb3AoKTtcclxuICAgIGNvbnN0IHBhcmVudCA9IGtleXMucmVkdWNlKChhY2M6IGFueSwga2V5OiBzdHJpbmcpID0+IChhY2Nba2V5XSA/Pz0ge30pLCBvYmopO1xyXG4gICAgaWYgKHBhcmVudCAmJiBsYXN0S2V5KSB7XHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24gIT09IG51bGwpIHtcclxuICAgICAgICBwYXJlbnRbbGFzdEtleV0gPSB7XHJcbiAgICAgICAgICBpZDogb3B0aW9uLmlkID8/IDEsXHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlID8/IG9wdGlvbixcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmVudFtsYXN0S2V5XSA9IG9wdGlvbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VuZE9iaiA9IHtcclxuICAgICAgZGF0YTogeyAuLi5vYmogfSxcclxuICAgICAgZXZlbnRUeXBlOiAnb25DZWxsRWRpdCcsXHJcbiAgICB9O1xyXG4gICAgdGhpcy51cGRhdGVSb3dzLnB1c2gob2JqKTtcclxuICB9XHJcblxyXG5cclxuICBjdXRTZWxlY3RlZFNlbGVjdGVkRGF0YShcclxuICAgIGRhdGFTZXQ6IGFueVtdLFxyXG4gICAgcm93U2VsZWN0ZWRJbmRleGVzOiBTZXQ8bnVtYmVyPixcclxuICAgIHNlbGVjdGVkQ2VsbHM6IGFueVtdLFxyXG4gICAgY29sdW1uczogYW55W10sXHJcbiAgICBzZXROZXN0ZWRWYWx1ZTogKG9iajogYW55LCBjb2x1bW46IGFueSwgdmFsdWU6IGFueSkgPT4gdm9pZFxyXG4gICk6IGFueSB7XHJcbiAgICBsZXQgdXBkYXRlZERhdGEgPSBbLi4uZGF0YVNldF07XHJcbiAgICBpZiAocm93U2VsZWN0ZWRJbmRleGVzPy5zaXplKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4ZXMgPSBbLi4ucm93U2VsZWN0ZWRJbmRleGVzXTtcclxuICAgICAgdXBkYXRlZERhdGEgPSB1cGRhdGVkRGF0YS5maWx0ZXIoXHJcbiAgICAgICAgKHJvdzogYW55KSA9PiAhaW5kZXhlcy5pbmNsdWRlcyhyb3cuX192aXJ0dWFsSW5kZXgpXHJcbiAgICAgICk7XHJcbiAgICAgIC8vIHJvd1NlbGVjdGVkSW5kZXhlcy5jbGVhcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc2VsZWN0ZWRDZWxscz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUm93cyA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGNlbGwgb2Ygc2VsZWN0ZWRDZWxscykge1xyXG4gICAgICAgIGNvbnN0IHJvdyA9IHVwZGF0ZWREYXRhLmZpbmQociA9PiByLl9fdmlydHVhbEluZGV4ID09PSBjZWxsLnJvd0luZGV4KTtcclxuICAgICAgICBpZiAoIXJvdykgY29udGludWU7XHJcbiAgICAgICAgbGV0IGNvbCA9IGNvbHVtbnNbY2VsbC5jb2xJbmRleF07XHJcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4gJiYgY29sLmNoaWxkcmVuW2NlbGwuc3ViQ29sSW5kZXhdKSB7XHJcbiAgICAgICAgICBjb2wgPSBjb2wuY2hpbGRyZW5bY2VsbC5zdWJDb2xJbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0TmVzdGVkVmFsdWUocm93LCBjb2wsICcnKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBzZWxlY3RlZENlbGxzLmxlbmd0aCA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge3VwZGF0ZWREYXRhOiB1cGRhdGVkRGF0YSwgdXBkYXRlZFJvd3M6IHRoaXMudXBkYXRlUm93c307XHJcbiAgfVxyXG5cclxuXHJcbiAgY3V0V2l0aEFuaW1hdGlvbihcclxuICAgIHNlbGVjdGVkRGF0YTogYW55W11bXSxcclxuICAgIHNlbGVjdG9yID0gJy5zZWxlY3RlZC1jZWxsLCAuYWN0aXZlLWNlbGwsIC5yb3ctc2VsZWN0ZWQnXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoIXNlbGVjdGVkRGF0YSB8fCBzZWxlY3RlZERhdGEubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGV4dFRvQ29weSA9IHNlbGVjdGVkRGF0YVxyXG4gICAgICAubWFwKHJvdyA9PiByb3cubWFwKGNlbGwgPT4gKGNlbGwgPz8gJycpLnRvU3RyaW5nKCkpLmpvaW4oJ1xcdCcpKVxyXG4gICAgICAuam9pbignXFxuJyk7XHJcblxyXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dFRvQ29weSkuY2F0Y2goZXJyID0+IGNvbnNvbGUuZXJyb3IoZXJyKSk7XHJcblxyXG4gICAgLy8gQXBwbHkgcmVkIGN1dCBhbmltYXRpb25cclxuICAgIGNvbnN0IHNlbGVjdGVkRWxzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7XHJcbiAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5hZGQoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEVscy5mb3JFYWNoKGVsID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2N1dC1mbGFzaC1iZycpKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
|