@eo-sdk/client 9.0.0-rc.3 → 9.0.0-rc.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/app/eo-framework/app-shell/app-bar/app-process/app-process.component.d.ts +1 -1
- package/app/eo-framework/grid/column-configurator/column-configurator.component.d.ts +2 -0
- package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +1 -0
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +1 -1
- package/app/eo-framework-core/api/grid.service.d.ts +10 -2
- package/assets/_default/i18n/de.json +7 -6
- package/assets/_default/i18n/en.json +7 -6
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js +4 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.js.map +1 -1
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js +2 -2
- package/bundles/eo-sdk-client-projects-eo-sdk-core.umd.min.js.map +1 -1
- package/bundles/eo-sdk-client.umd.js +173 -120
- package/bundles/eo-sdk-client.umd.js.map +1 -1
- package/bundles/eo-sdk-client.umd.min.js +1 -1
- package/bundles/eo-sdk-client.umd.min.js.map +1 -1
- package/eo-sdk-client.d.ts +67 -69
- package/eo-sdk-client.metadata.json +1 -1
- package/esm2015/app/eo-client/about-state/about-state.component.js +3 -3
- package/esm2015/app/eo-framework/app-shell/app-bar/app-process/app-process.component.js +3 -3
- package/esm2015/app/eo-framework/form-elements/codesystem/codesystem.component.js +8 -2
- package/esm2015/app/eo-framework/form-elements/number-range/number-range.component.js +2 -2
- package/esm2015/app/eo-framework/form-elements/string/string.component.js +2 -2
- package/esm2015/app/eo-framework/grid/column-configurator/column-configurator.component.js +31 -6
- package/esm2015/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.js +4 -2
- package/esm2015/app/eo-framework/grid/extensions/filter/text/text-filter.component.js +2 -3
- package/esm2015/app/eo-framework/grid/filters/list-filter.component.js +2 -2
- package/esm2015/app/eo-framework/inbox-details/inbox-details.component.js +7 -2
- package/esm2015/app/eo-framework/object-details/object-history/object-history.component.js +4 -3
- package/esm2015/app/eo-framework/object-form/object-form/form-element/form-element.component.js +4 -1
- package/esm2015/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.js +6 -5
- package/esm2015/app/eo-framework/object-form/object-form.module.js +2 -2
- package/esm2015/app/eo-framework/result-list/result-list.component.js +3 -3
- package/esm2015/app/eo-framework/ui/eo-dialog/eo-dialog.component.js +2 -2
- package/esm2015/app/eo-framework-core/api/grid.service.js +40 -29
- package/esm2015/eo-sdk-client.js +68 -70
- package/esm2015/projects/eo-sdk/core/lib/service/search/search-query.model.js +3 -2
- package/esm2015/projects/eo-sdk/core/lib/service/search/search.service.js +2 -2
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js +3 -2
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.js.map +1 -1
- package/fesm2015/eo-sdk-client.js +105 -52
- package/fesm2015/eo-sdk-client.js.map +1 -1
- package/package.json +2 -2
- package/projects/eo-sdk/core/eo-sdk-client-projects-eo-sdk-core.metadata.json +1 -1
- package/projects/eo-sdk/core/lib/service/search/search-query.model.d.ts +8 -1
- package/projects/eo-sdk/core/package.json +1 -1
- package/scss/_form.scss +2 -2
- package/styles.css +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PendingChangesService } from './../../../../eo-framework-core/pending-changes/pending-changes.service';
|
|
2
2
|
import { Component, forwardRef, HostListener, Input, ViewChild } from '@angular/core';
|
|
3
3
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
4
|
-
import { GridService } from '../../../../eo-framework-core/api/grid.service';
|
|
4
|
+
import { CellRenderer, GridService } from '../../../../eo-framework-core/api/grid.service';
|
|
5
5
|
import { EventService, LocalStorageService, SystemService, TranslateService, Utils } from '@eo-sdk/core';
|
|
6
6
|
import { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';
|
|
7
7
|
import { CsvExportModule } from '@ag-grid-community/csv-export';
|
|
@@ -76,11 +76,12 @@ export class FormElementTableComponent extends UnsubscribeOnDestroy {
|
|
|
76
76
|
});
|
|
77
77
|
this._cachedColumns = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION) || [];
|
|
78
78
|
this._cachedColumnsOverlay = this.storageService.getItem(FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY) || [];
|
|
79
|
-
this.showPreview = !!this.storageService.getItem('showPreview');
|
|
79
|
+
this.showPreview = !!this.storageService.getItem('eo.table.showPreview');
|
|
80
80
|
}
|
|
81
81
|
set params(p) {
|
|
82
82
|
if (p) {
|
|
83
83
|
this._params = p;
|
|
84
|
+
CellRenderer.situation = this._params.situation;
|
|
84
85
|
if (this._params.situation === 'SEARCH') {
|
|
85
86
|
this._params.size = 'supersmall';
|
|
86
87
|
}
|
|
@@ -414,7 +415,7 @@ export class FormElementTableComponent extends UnsubscribeOnDestroy {
|
|
|
414
415
|
}
|
|
415
416
|
togglePreview() {
|
|
416
417
|
this.showPreview = !this.showPreview;
|
|
417
|
-
this.storageService.setItem('showPreview', this.showPreview);
|
|
418
|
+
this.storageService.setItem('eo.table.showPreview', this.showPreview);
|
|
418
419
|
}
|
|
419
420
|
}
|
|
420
421
|
FormElementTableComponent.COLUMNS_DEFINITION = 'eo.framework.cache.tables.columns.definition';
|
|
@@ -422,7 +423,7 @@ FormElementTableComponent.COLUMNS_DEFINITION_OVERLAY = 'eo.framework.cache.table
|
|
|
422
423
|
FormElementTableComponent.decorators = [
|
|
423
424
|
{ type: Component, args: [{
|
|
424
425
|
selector: 'eo-table',
|
|
425
|
-
template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? '97vw' : 200\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"!!params.object?.content\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\">\n\n <eo-split [gutterSize]=\"16\" [switchable]=\"true\">\n\n <eo-split-area *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"
|
|
426
|
+
template: "<div class=\"object-form-table\" [ngClass]=\"{medium: _params.size === 'medium', large: _params.size === 'large'}\">\n <div class=\"label\">\n <span>{{_params.element.label}}</span>\n <ng-container *ngIf=\"_params.situation !== 'SEARCH'\">\n\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_expand.svg'\" [iconTitle]=\"('eo.form.table.options.btn.open'| translate)\" (click)=\"openDialog()\"></eo-icon>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit()\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n\n </ng-container>\n </div>\n <div class=\"grid-body size-{{ params.size }}\">\n <ag-grid-angular #agGrid *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"gridOptions\"\n (rowDoubleClicked)=\"editRow($event)\"\n (cellClicked)=\"onCellClicked($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column)\">\n </ag-grid-angular>\n </div>\n</div>\n\n\n<eo-dialog\n[title]=\"params.element.label\"\n[visible]=\"showDialog\"\n[dirtyCheck]=\"rowEdit?.pendingTaskId\"\n[minWidth]=\"_params.situation !== 'SEARCH' ? '97vw' : 200\"\n[styleClass]=\"'object-form-table-dialog'\"\n(hide)=\"onClose()\"\n[isFormTable]=\"true\"\n[hasPreviewFile]=\"!!params.object?.content\"\n[showPreview]=\"showPreview\"\n(onTogglePreview)=\"togglePreview()\">\n\n <div class=\"body\">\n\n <eo-split [gutterSize]=\"16\" [switchable]=\"true\" [cacheLayout]=\"'table.state'\">\n\n <eo-split-area *ngIf=\"_params.situation !== 'SEARCH'\" class=\"table-area\" [size]=\"40\" [minSizePixel]=\"100\" [order]=\"1\">\n <div class=\"table-body\">\n <div class=\"object-form-table\">\n <div class=\"label\">\n <span></span>\n <ng-container>\n <eo-icon class=\"stf\" [iconSrc]=\"'assets/_default/svg/ic_size_to_fit.svg'\" [iconTitle]=\"('eo.form.table.options.btn.fit'| translate)\" (click)=\"sizeToFit(true)\"></eo-icon>\n <eo-icon class=\"stf\" *ngIf=\"gridOptions.rowData.length\" [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\" [iconTitle]=\"('eo.form.table.options.btn.csv'| translate)\" (click)=\"exportCSV()\"></eo-icon>\n <eo-icon class=\"stf add-row\" *ngIf=\"!_params.element.readonly\" [iconSrc]=\"'assets/_default/svg/ic_add.svg'\" [iconTitle]=\"('eo.form.table.options.btn.add'| translate)\" (click)=\"addRow()\"></eo-icon>\n </ng-container>\n </div>\n <div class=\"grid-body\">\n <ag-grid-angular #agGrid2 *ngIf=\"gridReady\" class=\"ag-theme-balham\" [modules]=\"modules\"\n [gridOptions]=\"overlayGridOptions\"\n (cellClicked)=\"onCellClicked($event);editRow($event)\"\n (mousedown)=\"onMouseDown($event)\"\n (sortChanged)=\"onSortChanged()\"\n (cellValueChanged)=\"onEditComplete($event)\"\n (columnResized)=\"onColumnResized($event.column, true)\">\n </ag-grid-angular>\n </div>\n </div>\n </div>\n </eo-split-area>\n\n <eo-split-area [size]=\"20\" [minSizePixel]=\"300\" *ngIf=\"editingRow\" [order]=\"2\">\n <div class=\"edit-body\">\n <eo-row-edit [row]=\"editingRow\" #rowEdit\n (onSave)=\"updateRow($event)\"\n (onSaveCopy)=\"copyRow($event)\"\n (onDelete)=\"deleteRow($event)\"\n (onCancel)=\"cancelRowEdit()\"></eo-row-edit>\n </div>\n </eo-split-area>\n\n <eo-split-area *ngIf=\"showPreview && !!params.object?.content\" [size]=\"40\" [minSizePixel]=\"150\" [order]=\"3\">\n <eo-media [dmsObject]=\"params.object\" [undockDisabled]=\"true\"\n [useVersion]=\"params.object.id === params.object.content?.id\"></eo-media>\n </eo-split-area>\n </eo-split>\n </div>\n</eo-dialog>\n\n",
|
|
426
427
|
providers: [
|
|
427
428
|
{
|
|
428
429
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -451,4 +452,4 @@ FormElementTableComponent.propDecorators = {
|
|
|
451
452
|
params: [{ type: Input }],
|
|
452
453
|
copyCellHandler: [{ type: HostListener, args: ['keydown.control.alt.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.shift.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.alt.c', ['$event'],] }, { type: HostListener, args: ['keydown.control.c', ['$event'],] }]
|
|
453
454
|
};
|
|
454
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQzlHLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsYUFBYSxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBRzlHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRSxPQUFPLEVBQXdCLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzlILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFnRHJGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxvQkFBb0I7SUF1RGpFLFlBQW9CLGFBQTRCLEVBQVUsY0FBcUMsRUFDdEYsT0FBb0IsRUFBVSxTQUEyQixFQUFVLGNBQW1DLEVBQVUsWUFBMEI7UUFDakosS0FBSyxFQUFFLENBQUM7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QWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvRCxDQUFDOztBQXRjTSw0Q0FBa0IsR0FBRyw4Q0FBOEMsQ0FBQztBQUNwRSxvREFBMEIsR0FBRyxzREFBc0QsQ0FBQzs7WUF4QjVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsbXFKQUFrRDtnQkFJbEQsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7d0JBQ3hELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO3dCQUN4RCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O1lBckRpRSxhQUFhO1lBTnZFLHFCQUFxQjtZQUtyQixXQUFXO1lBQzhELGdCQUFnQjtZQUFwRCxtQkFBbUI7WUFBakMsWUFBWTs7O3NCQStEeEMsU0FBUyxTQUFDLFNBQVM7cUJBRW5CLEtBQUs7OEJBb0NMLFlBQVksU0FBQyw2QkFBNkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUN0RCxZQUFZLFNBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDbEQsWUFBWSxTQUFDLHVCQUF1QixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ2hELFlBQVksU0FBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciwgRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JqZWN0Rm9ybU9wdGlvbnN9IGZyb20gJy4uLy4uL29iamVjdC1mb3JtLW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7R3JpZE9wdGlvbnMsIENvbERlZiwgTW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7RG1zT2JqZWN0LCBFbmFpb0V2ZW50LCBFdmVudFNlcnZpY2UsIExvY2FsU3RvcmFnZVNlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtDbGllbnRTaWRlUm93TW9kZWxNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWwnO1xuaW1wb3J0IHtDc3ZFeHBvcnRNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jc3YtZXhwb3J0JztcbmltcG9ydCB7Zm9ya0pvaW59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSb3dFZGl0Q29tcG9uZW50fSBmcm9tICcuL3Jvdy1lZGl0L3Jvdy1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi8uLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5cbi8vIGRhdGEgdG8gYmUgcGFzc2VkIHRvIHRoZSB0YWJsZSBjb21wb25lbnRcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb21wb25lbnRQYXJhbXMge1xuICAvLyBjdXJyZW50IGZvcm0gc2l0dWF0aW9uIChFRElULCBTRUFSQ0ggb3IgQ1JFQVRFKVxuICBzaXR1YXRpb246IHN0cmluZztcbiAgLy8gdGFibGUgc2l6ZSAobWVkaXVtLCBsYXJnZSlcbiAgc2l6ZTogc3RyaW5nO1xuICAvLyB0aGUgdGFibGVzIGZyb20gZWxlbWVudFxuICBlbGVtZW50OiBhbnk7XG4gIC8vIHRoZSBkbXMgb2JqZWN0IHRoZSBmb3JtIGlzIGF0dGFjaGVkIHRvIChuZWVkZWQgZm9yIHByZXZpZXcgaW4gZGlhbG9nKVxuICBvYmplY3Q/OiBEbXNPYmplY3Q7XG59XG5cbi8vIHJlcHJlc2VudGF0aW9uIG9mIGEgcm93IHdoaWxlIGVkaXRpbmdcbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFJvdyB7XG4gIHNpdHVhdGlvbjogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBmb3JtT3B0aW9uczogT2JqZWN0Rm9ybU9wdGlvbnM7XG4gIHRhYmxlRWxlbWVudDogYW55O1xufVxuXG4vLyByZXN1bHQgb2YgZWRpdGluZyBhIHRhYmxlcyByb3dcbmV4cG9ydCBpbnRlcmZhY2UgRWRpdFJvd1Jlc3VsdCB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHJvd0RhdGE6IGFueTtcbiAgY3JlYXRlTmV3Um93OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50LnNjc3MnXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIHByaXZhdGUgX2NhY2hlZENvbHVtbnM6IGFueVtdO1xuICBwcml2YXRlIF9jYWNoZWRDb2x1bW5zT3ZlcmxheTogYW55W107XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLnRhYmxlcy5jb2x1bW5zLmRlZmluaXRpb24nO1xuICBzdGF0aWMgQ09MVU1OU19ERUZJTklUSU9OX09WRVJMQVkgPSAnZW8uZnJhbWV3b3JrLmNhY2hlLnRhYmxlcy5vdmVybGF5LmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHVibGljIG1vZHVsZXM6IE1vZHVsZVtdID0gW0NsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSwgQ3N2RXhwb3J0TW9kdWxlXTtcblxuICBAVmlld0NoaWxkKCdyb3dFZGl0Jykgcm93RWRpdDogUm93RWRpdENvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBzZXQgcGFyYW1zKHA6IFRhYmxlQ29tcG9uZW50UGFyYW1zKSB7XG4gICAgaWYgKHApIHtcbiAgICAgIHRoaXMuX3BhcmFtcyA9IHA7XG4gICAgICBpZiAodGhpcy5fcGFyYW1zLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zLnNpemUgPSAnc3VwZXJzbWFsbCc7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9wYXJhbXMuc2l6ZSkge1xuICAgICAgICB0aGlzLl9wYXJhbXMuc2l6ZSA9ICdzbWFsbCc7XG4gICAgICB9XG4gICAgICB0aGlzLmdyaWRSZWFkeSA9IGZhbHNlO1xuICAgICAgdGhpcy5fZWxlbWVudHMgPSBwLmVsZW1lbnQuZWxlbWVudHM7XG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmNyZWF0ZUNvbHVtbkRlZmluaXRpb24oKTtcbiAgICAgIGlmICh0aGlzLl9wYXJhbXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMucHVzaCh7aGVhZGVyTmFtZTogJycsIGNvbElkOiAnYWN0aW9ucycsIHdpZHRoOiAzNCwgbWluV2lkdGg6IDM0LCBwaW5uZWQ6ICdyaWdodCcsIGNlbGxSZW5kZXJlcjogdGhpcy5hY3Rpb25zQ2VsbFJlbmRlcmVyfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5jcmVhdGVDb2x1bW5EZWZpbml0aW9uKHRydWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdyaWRSZWFkeSA9IHRydWU7XG4gICAgfVxuICB9XG4gIGdldCBwYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmFtcztcbiAgfVxuXG4gIF9wYXJhbXM6IFRhYmxlQ29tcG9uZW50UGFyYW1zO1xuICBwcml2YXRlIF9lbGVtZW50czogYW55W107XG4gIGdyaWRSZWFkeSA9IGZhbHNlO1xuICB2YWx1ZTogYW55W107XG4gIGlubmVyVmFsdWU6IGFueVtdO1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIG92ZXJsYXlHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIGVkaXRpbmdSb3c6IEVkaXRSb3c7XG4gIHNob3dEaWFsb2cgPSBmYWxzZTtcbiAgc2hvd1ByZXZpZXcgPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuYWx0LnNoaWZ0LmMnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuc2hpZnQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5hbHQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5jJywgWyckZXZlbnQnXSlcbiAgY29weUNlbGxIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5ncmlkQXBpLmNvcHlUb0NsaXBib2FyZChldmVudCwgdGhpcy5ncmlkT3B0aW9ucyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPntcbiAgICAgIGNvbnRleHQ6IHRoaXMuZ3JpZEFwaS5nZXRDb250ZXh0KCksXG4gICAgICBoZWFkZXJIZWlnaHQ6IDMwLFxuICAgICAgcm93SGVpZ2h0OiAzMCxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICBtdWx0aVNvcnRLZXk6ICdjdHJsJyxcbiAgICAgIGFjY2VudGVkU29ydDogdHJ1ZSxcbiAgICAgIC8vIHN1cHByZXNzQ2VsbFNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgICBzdXBwcmVzc01vdmFibGVDb2x1bW5zOiB0cnVlLFxuICAgICAgZW5hYmxlRmlsdGVyOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzTm9Sb3dzT3ZlcmxheTogdHJ1ZSxcbiAgICAgIHN1cHByZXNzTG9hZGluZ092ZXJsYXk6IHRydWUsXG4gICAgICBzdXBwcmVzc0NvbnRleHRNZW51OiB0cnVlXG4gICAgfTtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQudGFibGVDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMgPSA8R3JpZE9wdGlvbnM+e1xuICAgICAgY29udGV4dDogdGhpcy5ncmlkQXBpLmdldENvbnRleHQoKSxcbiAgICAgIGhlYWRlckhlaWdodDogMzAsXG4gICAgICByb3dIZWlnaHQ6IDMwLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIG11bHRpU29ydEtleTogJ2N0cmwnLFxuICAgICAgYWNjZW50ZWRTb3J0OiB0cnVlLFxuICAgICAgLy8gc3VwcHJlc3NDZWxsU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICAgIHN1cHByZXNzTW92YWJsZUNvbHVtbnM6IHRydWUsXG4gICAgICBlbmFibGVGaWx0ZXI6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NOb1Jvd3NPdmVybGF5OiB0cnVlLFxuICAgICAgc3VwcHJlc3NMb2FkaW5nT3ZlcmxheTogdHJ1ZSxcbiAgICAgIHN1cHByZXNzQ29udGV4dE1lbnU6IHRydWVcbiAgICB9O1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmNvbnRleHQudGFibGVDb21wb25lbnQgPSB0aGlzO1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnJvd0NsYXNzUnVsZXMgPSB7XG4gICAgICAnbmV3LXJvdyc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgaWYgKHBhcmFtcy5kYXRhLmlzTmV3Um93KSB7XG4gICAgICAgICAgZGVsZXRlIHBhcmFtcy5kYXRhLmlzTmV3Um93O1xuICAgICAgICAgIGRlbGV0ZSBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5pbm5lclZhbHVlW3BhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LmlubmVyVmFsdWUubGVuZ3RoIC0gMV0uaXNOZXdSb3c7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy50YXNrcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSAhIXRoaXMucm93RWRpdCAmJiAhIXRhc2tzLmluY2x1ZGVzKHRoaXMucm93RWRpdC5wZW5kaW5nVGFza0lkKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2NhY2hlZENvbHVtbnMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudC5DT0xVTU5TX0RFRklOSVRJT04pIHx8IFtdO1xuICAgIHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5ID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OX09WRVJMQVkpIHx8IFtdO1xuICAgIHRoaXMuc2hvd1ByZXZpZXcgPSAhIXRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnc2hvd1ByZXZpZXcnKTtcbiAgfVxuXG4gIGFjdGlvbnNDZWxsUmVuZGVyZXIocGFyYW1zKSB7XG4gICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgaWYgKHBhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LnBhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJhY3Rpb24taWNvblwiIGlkPVwiYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1cIj5cbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+YDtcbiAgICAgIGxldCBjbGVhckljb24gPSBkaXYucXVlcnlTZWxlY3RvckFsbChgI2FjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9YClbMF07XG4gICAgICBjbGVhckljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5jbGVhclJvdyhwYXJhbXMucm93SW5kZXgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPVwiYWN0aW9uLWljb25cIiBpZD1cImFjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9XCI+XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8cGF0aCBkPVwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PmA7XG4gICAgICBsZXQgZGVsZXRlSWNvbiA9IGRpdi5xdWVyeVNlbGVjdG9yQWxsKGAjYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1gKVswXTtcbiAgICAgIGRlbGV0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5kZWxldGVSb3cocGFyYW1zLnJvd0luZGV4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG5cbiAgICBpZiAoIXZhbHVlICYmIHRoaXMuX3BhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICAvLyBmb3Igc2VhcmNoIHJvdyBkYXRhIHdpbGwgYWx3YXlzIGJlIG9uZSBlbXB0eSByb3dcbiAgICAgIC8vIHRvZG86IHJlLWVuYWJsZSBhZ2FpbiB3aGVuIHNlYXJjaCBpbiB0YWJsZXMgaXMgc3VwcG9ydGVkXG4gICAgICB2YWx1ZSA9IFt7fV07XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gdmFsdWUgOiBbXTtcbiAgICAvLyBjcmVhdGUgYSBjbG9uZSBvZiB0aGUgYWN0dWFsIHZhbHVlIGZvciBpbnRlcm5hbCB1c2FnZVxuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkodGhpcy52YWx1ZSkpO1xuXG4gICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5zZXRSb3dEYXRhKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuc2V0Um93RGF0YSh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdEVkaXRSb3coKSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnJvd0RhdGEgPSB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgY29sdW1uIGRlZmluaXRpb24gZnJvbSBmb3JtIGVsZW1lbnQuXG4gICAqIEByZXR1cm5zIGNvbHVtbiBkZWZpbml0aW9uIHRvIGJlIGFkZGVkIHRvIHRoZSBncmlkT3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb2x1bW5EZWZpbml0aW9uKG92ZXJsYXk/OiBib29sZWFuKTogQ29sRGVmW10ge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50cy5tYXAoKGVsKSA9PiB7XG4gICAgICBsZXQgY29sOiBDb2xEZWYgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmaW5pdGlvbihlbCk7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbCwge1xuICAgICAgICBoZWFkZXJOYW1lOiBlbC5sYWJlbCxcbiAgICAgICAgc3VwcHJlc3NNZW51OiB0cnVlLFxuICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBmaWVsZDogZWwubmFtZSxcbiAgICAgICAgcmVmRGF0YToge1xuICAgICAgICAgIC4uLmNvbC5yZWZEYXRhLFxuICAgICAgICAgIF9lb0Zvcm1FbGVtZW50OiBlbCxcbiAgICAgICAgICBfc2l0dWF0aW9uOiB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGV0IGNhY2hlZENvbHVtbnMgPSB0aGlzLl9jYWNoZWRDb2x1bW5zO1xuICAgICAgaWYgKG92ZXJsYXkpIHtcbiAgICAgICAgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5O1xuICAgICAgfVxuICAgICAgbGV0IGNhY2hlZENvbHVtbiA9IGNhY2hlZENvbHVtbnMuZmluZChmID0+IGYucW5hbWUgPT09IGVsLnFuYW1lKTtcbiAgICAgIGlmIChjYWNoZWRDb2x1bW4pIHtcbiAgICAgICAgY29sLndpZHRoID0gY2FjaGVkQ29sdW1uLndpZHRoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbDtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJvdygpIHtcbiAgICBjb25zdCByb3dEYXRhID0ge307XG4gICAgY29uc3QgYXN5bmNGZXRjaGVzID0gW107XG4gICAgdGhpcy5fZWxlbWVudHNcbiAgICAgIC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgaWYgKGVsLmRlZmF1bHR2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcm93RGF0YVtlbC5uYW1lXSA9IGVsLmRlZmF1bHR2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChlbC5kZWZhdWx0dmFsdWVmdW5jdGlvbikge1xuICAgICAgICAgIHJvd0RhdGFbZWwubmFtZV0gPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0RGVmYXVsdFZhbHVlKGVsLmRlZmF1bHR2YWx1ZWZ1bmN0aW9uKTtcbiAgICAgICAgICBpZiAoZWwuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdDVVJSRU5UX1VTRVInKSB7XG4gICAgICAgICAgICBhc3luY0ZldGNoZXMucHVzaCh0aGlzLnJlc29sdmVPcmdEYXRhTWV0YShlbC5uYW1lLCByb3dEYXRhW2VsLm5hbWVdKSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgaWYgKGFzeW5jRmV0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3JrSm9pbihhc3luY0ZldGNoZXMpLnN1YnNjcmliZSgocmVzOiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBhbnl9W10pID0+IHtcbiAgICAgICAgcmVzLmZvckVhY2gociA9PiB7XG4gICAgICAgICAgcm93RGF0YVtyLmtleV0gPSByLnZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNldEVkaXRSb3coLTEsIHJvd0RhdGEpO1xuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRFZGl0Um93KC0xLCByb3dEYXRhKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVPcmdEYXRhTWV0YShlbGVtZW50TmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3QodmFsdWUpLnBpcGUoXG4gICAgICBtYXAocmVzID0+ICh7XG4gICAgICAgIGtleTogYCR7ZWxlbWVudE5hbWV9X21ldGFgLFxuICAgICAgICB2YWx1ZTogcmVzXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBlZGl0Um93KGV2ZW50KSB7XG4gICAgdGhpcy5zZXRFZGl0Um93KGV2ZW50Lm5vZGUuaWQsIGV2ZW50Lm5vZGUuZGF0YSk7XG4gIH1cblxuICBvbkVkaXRDb21wbGV0ZShldmVudCkge1xuICAgIC8vdG9kbzogaXMgaXQgb2Jzb2xldGU/XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXRSb3coaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XG4gICAgLy8gc2V0dXAgdGhlIHJvdyB0byBiZSBlZGl0ZWQuIEJlc2lkZSBzb21lIHByb3BlcnRpZXMsIHRoZVxuICAgIC8vIHJvdyBjb250YWlucyBhIGZvcm0gbW9kZWwgYW5kIGZvcm0gZGF0YS4gSWYgdGhlIHBhcmVudCBmb3JtIG1vZGVsXG4gICAgLy8gcHJvdmlkZWQgYSBzY3JpcHQsIHRoaXMgd2lsbCBiZSBhZGRlZCBhcyB3ZWxsLCBzbyBlZGl0aW5nIGEgcm93IHdpbGxcbiAgICAvLyByZXNwZWN0IHRoZSBmb3JtIHNjcmlwdC5cbiAgICB0aGlzLmVkaXRpbmdSb3cgPSB7XG4gICAgICBzaXR1YXRpb246IHRoaXMuX3BhcmFtcy5zaXR1YXRpb24sXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB0YWJsZUVsZW1lbnQ6IHRoaXMuX3BhcmFtcy5lbGVtZW50LFxuICAgICAgZm9ybU9wdGlvbnM6IHtcbiAgICAgICAgZm9ybU1vZGVsOiB7XG4gICAgICAgICAgc2l0dWF0aW9uOiB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uLCAgLy8gcmVxdWlyZWQgYnkgb2JqZWN0IGZvcm0gZm9yIHJlYWRpbmcgZGF0YVxuICAgICAgICAgIGVsZW1lbnRzOiBbe1xuICAgICAgICAgICAgdHlwZTogJ28ybUdyb3VwJyxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2VsZW1lbnRzKSlcbiAgICAgICAgICB9XVxuICAgICAgICB9LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5fcGFyYW1zLmVsZW1lbnQucmVhZG9ubHlcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdEVkaXRSb3coKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEVkaXRSb3coKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaSl7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgIGlmICh0aGlzLmVkaXRpbmdSb3cgJiYgdGhpcy5lZGl0aW5nUm93LmluZGV4ICE9PSAtMSkge1xuICAgICAgICBsZXQgcm93Tm9kZSA9IHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgdGhpcy5lZGl0aW5nUm93LmluZGV4KTtcbiAgICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlLCB0cnVlKTtcbiAgICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLmVuc3VyZU5vZGVWaXNpYmxlKHJvd05vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFibGVWYWx1ZSgpIHtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5zZXRSb3dEYXRhKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgaWYgKHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaSkge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLnNldFJvd0RhdGEodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy52YWx1ZS5pbmNsdWRlcygnaXNOZXdSb3cnKSkpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlWydpc05ld1JvdyddO1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGNhbmNlbFJvd0VkaXQoKSB7XG4gICAgaWYgKHRoaXMucm93RWRpdCkge1xuICAgICAgdGhpcy5yb3dFZGl0LmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5lZGl0aW5nUm93ID0gbnVsbDtcbiAgICBpZiAodGhpcy5fcGFyYW1zLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5lZGl0aW5nUm93ID0gbnVsbDtcbiAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIHVwZGF0ZVJvdyhyb3dSZXN1bHQ6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3Um93ID0gcm93UmVzdWx0LmluZGV4ID09PSAtMTtcbiAgICBpZiAoaXNOZXdSb3cpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZS5wdXNoKHsuLi5yb3dSZXN1bHQucm93RGF0YSwgLi4ue2lzTmV3Um93OiB0cnVlfX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgLy8gdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0gPSB7Li4udGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0sIC4uLnJvd1Jlc3VsdC5yb3dEYXRhfTtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF1bZWwubmFtZV0gPSByb3dSZXN1bHQucm93RGF0YVtlbC5uYW1lXTtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdW2VsLm5hbWUgKyAnX21ldGEnXSkge1xuICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdW2VsLm5hbWUgKyAnX21ldGEnXSA9IHJvd1Jlc3VsdC5yb3dEYXRhW2VsLm5hbWUgKyAnX21ldGEnXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgIGlmICh0aGlzLl9wYXJhbXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChpc05ld1JvdyAmJiAhcm93UmVzdWx0LmNyZWF0ZU5ld1Jvdykge1xuICAgICAgdGhpcy5zZXRFZGl0Um93KHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggLSAxLCB0aGlzLmlubmVyVmFsdWVbdGhpcy5pbm5lclZhbHVlLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKHJvd1Jlc3VsdC5jcmVhdGVOZXdSb3cpIHtcbiAgICAgIHRoaXMuYWRkUm93KCk7XG4gICAgICBsZXQgcm93Tm9kZSA9IHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgKHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggLSAxKSk7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZW5zdXJlTm9kZVZpc2libGUocm93Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RWRpdFJvdyhyb3dSZXN1bHQuaW5kZXgsIHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBjb3B5Um93KHJvd1Jlc3VsdDogYW55KSB7XG4gICAgcm93UmVzdWx0LmluZGV4ID0gLTE7XG4gICAgdGhpcy5pbm5lclZhbHVlLnB1c2goey4uLnJvd1Jlc3VsdC5yb3dEYXRhLCAuLi57aXNOZXdSb3c6IHRydWV9fSk7XG4gICAgdGhpcy51cGRhdGVUYWJsZVZhbHVlKCk7XG4gICAgaWYgKHJvd1Jlc3VsdC5jcmVhdGVOZXdSb3cpIHtcbiAgICAgIHRoaXMuYWRkUm93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RWRpdFJvdyh0aGlzLmlubmVyVmFsdWUubGVuZ3RoIC0gMSwgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb3dSZXN1bHQucm93RGF0YSkpKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVSb3coaW5kZXg6IG51bWJlcikge1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5pbm5lclZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ID09IHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggPyB0aGlzLmlubmVyVmFsdWUubGVuZ3RoIC0gMSA6IGluZGV4O1xuICAgICAgICAgIHRoaXMuc2V0RWRpdFJvdyhuZXh0SW5kZXgsIHRoaXMuaW5uZXJWYWx1ZVtuZXh0SW5kZXhdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNhbmNlbFJvd0VkaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG5cbiAgY2xlYXJSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuaW5uZXJWYWx1ZVtpbmRleF0gPSB7fTtcbiAgICB0aGlzLnVwZGF0ZVRhYmxlVmFsdWUoKTtcbiAgfVxuXG4gIGV4cG9ydENTVigpIHtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5leHBvcnREYXRhQXNDc3Yoe1xuICAgICAgLi4udGhpcy5ncmlkQXBpLmNzdkV4cG9ydFBhcmFtcyxcbiAgICAgIGZpbGVOYW1lOiB0aGlzLl9wYXJhbXMuZWxlbWVudC5sYWJlbFxuICAgIH0pO1xuICB9XG5cbiAgc2l6ZVRvRml0KG92ZXJsYXk/OiBib29sZWFuKSB7XG4gICAgaWYgKG92ZXJsYXkpIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuRGlhbG9nKCkge1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5yZWZyZXNoVmlldygpO1xuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVGFibGVEYXRhKCk6IGJvb2xlYW4ge1xuICAgIC8vIHRvZG86IGltcGxlbWVudFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVRhYmxlRGF0YSgpID8gbnVsbCA6IHtcbiAgICAgIHRhYmxlOiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5zdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2tGb3JQZW5kaW5nVGFza3ModGhpcy5yb3dFZGl0LnBlbmRpbmdUYXNrSWQpKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3dFZGl0LmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgbGV0IHJvd0luZGV4ID0gdGhpcy5ncmlkQXBpLmdldFJvd0luZGV4KCRldmVudC50YXJnZXQsICdhZy1ib2R5Jyk7XG4gICAgICAgIGlmIChyb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgcm93SW5kZXgpLnNldFNlbGVjdGVkKHRydWUsIHRydWUpO1xuICAgICAgICAgICRldmVudC50YXJnZXQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNvcnRDaGFuZ2VkKCl7XG4gICAgbGV0IHJvd05vZGUgPSB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZ2V0Um93Tm9kZSgnJyArIHRoaXMuZWRpdGluZ1Jvdy5pbmRleCk7XG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLmVuc3VyZU5vZGVWaXNpYmxlKHJvd05vZGUpO1xuICB9XG5cbiAgb25DZWxsQ2xpY2tlZCgkZXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsKSB7XG4gICAgICBpZiAoISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XG4gICAgICAgIGlmICgkZXZlbnQuY29sRGVmLmNlbGxDbGFzcyA9PT0gJ3JvdXRlci1saW5rLWNlbGwnKSB7XG4gICAgICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKCRldmVudC5ldmVudCwgJ2FnLXJvdycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55LCBvdmVybGF5PzogYm9vbGVhbikge1xuICAgIGxldCBjb2x1bW5zRGVmaW5pdGlvbiA9IEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OO1xuICAgIGxldCBjYWNoZWRDb2x1bW5zID0gdGhpcy5fY2FjaGVkQ29sdW1ucztcbiAgICBpZiAob3ZlcmxheSkge1xuICAgICAgY29sdW1uc0RlZmluaXRpb24gPSBGb3JtRWxlbWVudFRhYmxlQ29tcG9uZW50LkNPTFVNTlNfREVGSU5JVElPTl9PVkVSTEFZO1xuICAgICAgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5O1xuICAgIH1cbiAgICBsZXQgY29sID0gY2FjaGVkQ29sdW1ucy5maW5kKGMgPT4gYy5xbmFtZSA9PT0gY29sdW1uLmNvbERlZi5yZWZEYXRhLnFuYW1lKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb2wud2lkdGggPSBjb2x1bW4uYWN0dWFsV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oY29sdW1uc0RlZmluaXRpb24sIGNhY2hlZENvbHVtbnMpO1xuICB9XG5cbiAgdG9nZ2xlUHJldmlldygpIHtcbiAgICB0aGlzLnNob3dQcmV2aWV3ID0gIXRoaXMuc2hvd1ByZXZpZXc7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdzaG93UHJldmlldycsIHRoaXMuc2hvd1ByZXZpZXcpO1xuICB9XG59XG4iXX0=
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBQzlHLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUUsYUFBYSxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBRzlHLE9BQU8sRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFZLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFnRHJGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxvQkFBb0I7SUF3RGpFLFlBQW9CLGFBQTRCLEVBQVUsY0FBcUMsRUFDdEYsT0FBb0IsRUFBVSxTQUEyQixFQUFVLGNBQW1DLEVBQVUsWUFBMEI7UUFDakosS0FBSyxF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QUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDOztBQXZjTSw0Q0FBa0IsR0FBRyw4Q0FBOEMsQ0FBQztBQUNwRSxvREFBMEIsR0FBRyxzREFBc0QsQ0FBQzs7WUF4QjVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsbXNKQUFrRDtnQkFJbEQsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7d0JBQ3hELEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO3dCQUN4RCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O1lBckRxRCxhQUFhO1lBTjNELHFCQUFxQjtZQUtQLFdBQVc7WUFDb0MsZ0JBQWdCO1lBQXBELG1CQUFtQjtZQUFqQyxZQUFZOzs7c0JBK0Q1QixTQUFTLFNBQUMsU0FBUztxQkFFbkIsS0FBSzs4QkFxQ0wsWUFBWSxTQUFDLDZCQUE2QixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ3RELFlBQVksU0FBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUNsRCxZQUFZLFNBQUMsdUJBQXVCLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDaEQsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLCBGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYmplY3RGb3JtT3B0aW9uc30gZnJvbSAnLi4vLi4vb2JqZWN0LWZvcm0tb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkT3B0aW9ucywgQ29sRGVmLCBNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q2VsbFJlbmRlcmVyLCBHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge0Rtc09iamVjdCwgRXZlbnRTZXJ2aWNlLCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Q2xpZW50U2lkZVJvd01vZGVsTW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsJztcbmltcG9ydCB7Q3N2RXhwb3J0TW9kdWxlfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY3N2LWV4cG9ydCc7XG5pbXBvcnQge2ZvcmtKb2lufSBmcm9tICdyeGpzJztcbmltcG9ydCB7bWFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Um93RWRpdENvbXBvbmVudH0gZnJvbSAnLi9yb3ctZWRpdC9yb3ctZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuXG4vLyBkYXRhIHRvIGJlIHBhc3NlZCB0byB0aGUgdGFibGUgY29tcG9uZW50XG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29tcG9uZW50UGFyYW1zIHtcbiAgLy8gY3VycmVudCBmb3JtIHNpdHVhdGlvbiAoRURJVCwgU0VBUkNIIG9yIENSRUFURSlcbiAgc2l0dWF0aW9uOiBzdHJpbmc7XG4gIC8vIHRhYmxlIHNpemUgKG1lZGl1bSwgbGFyZ2UpXG4gIHNpemU6IHN0cmluZztcbiAgLy8gdGhlIHRhYmxlcyBmcm9tIGVsZW1lbnRcbiAgZWxlbWVudDogYW55O1xuICAvLyB0aGUgZG1zIG9iamVjdCB0aGUgZm9ybSBpcyBhdHRhY2hlZCB0byAobmVlZGVkIGZvciBwcmV2aWV3IGluIGRpYWxvZylcbiAgb2JqZWN0PzogRG1zT2JqZWN0O1xufVxuXG4vLyByZXByZXNlbnRhdGlvbiBvZiBhIHJvdyB3aGlsZSBlZGl0aW5nXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRSb3cge1xuICBzaXR1YXRpb246IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgZm9ybU9wdGlvbnM6IE9iamVjdEZvcm1PcHRpb25zO1xuICB0YWJsZUVsZW1lbnQ6IGFueTtcbn1cblxuLy8gcmVzdWx0IG9mIGVkaXRpbmcgYSB0YWJsZXMgcm93XG5leHBvcnQgaW50ZXJmYWNlIEVkaXRSb3dSZXN1bHQge1xuICBpbmRleDogbnVtYmVyO1xuICByb3dEYXRhOiBhbnk7XG4gIGNyZWF0ZU5ld1JvdzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZm9ybS1lbGVtZW50LXRhYmxlLmNvbXBvbmVudC5zY3NzJ1xuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtRWxlbWVudFRhYmxlQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRWxlbWVudFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcblxuICBwcml2YXRlIF9jYWNoZWRDb2x1bW5zOiBhbnlbXTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uc092ZXJsYXk6IGFueVtdO1xuICBzdGF0aWMgQ09MVU1OU19ERUZJTklUSU9OID0gJ2VvLmZyYW1ld29yay5jYWNoZS50YWJsZXMuY29sdW1ucy5kZWZpbml0aW9uJztcbiAgc3RhdGljIENPTFVNTlNfREVGSU5JVElPTl9PVkVSTEFZID0gJ2VvLmZyYW1ld29yay5jYWNoZS50YWJsZXMub3ZlcmxheS5jb2x1bW5zLmRlZmluaXRpb24nO1xuXG4gIHB1YmxpYyBtb2R1bGVzOiBNb2R1bGVbXSA9IFtDbGllbnRTaWRlUm93TW9kZWxNb2R1bGUsIENzdkV4cG9ydE1vZHVsZV07XG5cbiAgQFZpZXdDaGlsZCgncm93RWRpdCcpIHJvd0VkaXQ6IFJvd0VkaXRDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgc2V0IHBhcmFtcyhwOiBUYWJsZUNvbXBvbmVudFBhcmFtcykge1xuICAgIGlmIChwKSB7XG4gICAgICB0aGlzLl9wYXJhbXMgPSBwO1xuICAgICAgQ2VsbFJlbmRlcmVyLnNpdHVhdGlvbiA9IHRoaXMuX3BhcmFtcy5zaXR1YXRpb247XG4gICAgICBpZiAodGhpcy5fcGFyYW1zLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgICAgdGhpcy5fcGFyYW1zLnNpemUgPSAnc3VwZXJzbWFsbCc7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9wYXJhbXMuc2l6ZSkge1xuICAgICAgICB0aGlzLl9wYXJhbXMuc2l6ZSA9ICdzbWFsbCc7XG4gICAgICB9XG4gICAgICB0aGlzLmdyaWRSZWFkeSA9IGZhbHNlO1xuICAgICAgdGhpcy5fZWxlbWVudHMgPSBwLmVsZW1lbnQuZWxlbWVudHM7XG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmNyZWF0ZUNvbHVtbkRlZmluaXRpb24oKTtcbiAgICAgIGlmICh0aGlzLl9wYXJhbXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgICB0aGlzLmdyaWRPcHRpb25zLmNvbHVtbkRlZnMucHVzaCh7aGVhZGVyTmFtZTogJycsIGNvbElkOiAnYWN0aW9ucycsIHdpZHRoOiAzNCwgbWluV2lkdGg6IDM0LCBwaW5uZWQ6ICdyaWdodCcsIGNlbGxSZW5kZXJlcjogdGhpcy5hY3Rpb25zQ2VsbFJlbmRlcmVyfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5jb2x1bW5EZWZzID0gdGhpcy5jcmVhdGVDb2x1bW5EZWZpbml0aW9uKHRydWUpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmdyaWRSZWFkeSA9IHRydWU7XG4gICAgfVxuICB9XG4gIGdldCBwYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmFtcztcbiAgfVxuXG4gIF9wYXJhbXM6IFRhYmxlQ29tcG9uZW50UGFyYW1zO1xuICBwcml2YXRlIF9lbGVtZW50czogYW55W107XG4gIGdyaWRSZWFkeSA9IGZhbHNlO1xuICB2YWx1ZTogYW55W107XG4gIGlubmVyVmFsdWU6IGFueVtdO1xuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIG92ZXJsYXlHcmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIGVkaXRpbmdSb3c6IEVkaXRSb3c7XG4gIHNob3dEaWFsb2cgPSBmYWxzZTtcbiAgc2hvd1ByZXZpZXcgPSBmYWxzZTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuYWx0LnNoaWZ0LmMnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmNvbnRyb2wuc2hpZnQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5hbHQuYycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uY29udHJvbC5jJywgWyckZXZlbnQnXSlcbiAgY29weUNlbGxIYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgdGhpcy5ncmlkQXBpLmNvcHlUb0NsaXBib2FyZChldmVudCwgdGhpcy5ncmlkT3B0aW9ucyk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2UsIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmdyaWRPcHRpb25zID0gPEdyaWRPcHRpb25zPntcbiAgICAgIGNvbnRleHQ6IHRoaXMuZ3JpZEFwaS5nZXRDb250ZXh0KCksXG4gICAgICBoZWFkZXJIZWlnaHQ6IDMwLFxuICAgICAgcm93SGVpZ2h0OiAzMCxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICBtdWx0aVNvcnRLZXk6ICdjdHJsJyxcbiAgICAgIGFjY2VudGVkU29ydDogdHJ1ZSxcbiAgICAgIC8vIHN1cHByZXNzQ2VsbFNlbGVjdGlvbjogdHJ1ZSxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgICBzdXBwcmVzc01vdmFibGVDb2x1bW5zOiB0cnVlLFxuICAgICAgZW5hYmxlRmlsdGVyOiBmYWxzZSxcbiAgICAgIHN1cHByZXNzTm9Sb3dzT3ZlcmxheTogdHJ1ZSxcbiAgICAgIHN1cHByZXNzTG9hZGluZ092ZXJsYXk6IHRydWUsXG4gICAgICBzdXBwcmVzc0NvbnRleHRNZW51OiB0cnVlXG4gICAgfTtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmNvbnRleHQudGFibGVDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMgPSA8R3JpZE9wdGlvbnM+e1xuICAgICAgY29udGV4dDogdGhpcy5ncmlkQXBpLmdldENvbnRleHQoKSxcbiAgICAgIGhlYWRlckhlaWdodDogMzAsXG4gICAgICByb3dIZWlnaHQ6IDMwLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIG11bHRpU29ydEtleTogJ2N0cmwnLFxuICAgICAgYWNjZW50ZWRTb3J0OiB0cnVlLFxuICAgICAgLy8gc3VwcHJlc3NDZWxsU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICAgIHN1cHByZXNzTW92YWJsZUNvbHVtbnM6IHRydWUsXG4gICAgICBlbmFibGVGaWx0ZXI6IGZhbHNlLFxuICAgICAgc3VwcHJlc3NOb1Jvd3NPdmVybGF5OiB0cnVlLFxuICAgICAgc3VwcHJlc3NMb2FkaW5nT3ZlcmxheTogdHJ1ZSxcbiAgICAgIHN1cHByZXNzQ29udGV4dE1lbnU6IHRydWVcbiAgICB9O1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmNvbnRleHQudGFibGVDb21wb25lbnQgPSB0aGlzO1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnJvd0NsYXNzUnVsZXMgPSB7XG4gICAgICAnbmV3LXJvdyc6IGZ1bmN0aW9uIChwYXJhbXMpIHtcbiAgICAgICAgaWYgKHBhcmFtcy5kYXRhLmlzTmV3Um93KSB7XG4gICAgICAgICAgZGVsZXRlIHBhcmFtcy5kYXRhLmlzTmV3Um93O1xuICAgICAgICAgIGRlbGV0ZSBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5pbm5lclZhbHVlW3BhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LmlubmVyVmFsdWUubGVuZ3RoIC0gMV0uaXNOZXdSb3c7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nQ2hhbmdlcy50YXNrcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0YXNrcyA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSAhIXRoaXMucm93RWRpdCAmJiAhIXRhc2tzLmluY2x1ZGVzKHRoaXMucm93RWRpdC5wZW5kaW5nVGFza0lkKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2NhY2hlZENvbHVtbnMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudC5DT0xVTU5TX0RFRklOSVRJT04pIHx8IFtdO1xuICAgIHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5ID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OX09WRVJMQVkpIHx8IFtdO1xuICAgIHRoaXMuc2hvd1ByZXZpZXcgPSAhIXRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZW8udGFibGUuc2hvd1ByZXZpZXcnKTtcbiAgfVxuXG4gIGFjdGlvbnNDZWxsUmVuZGVyZXIocGFyYW1zKSB7XG4gICAgbGV0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgaWYgKHBhcmFtcy5jb250ZXh0LnRhYmxlQ29tcG9uZW50LnBhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICBkaXYuaW5uZXJIVE1MID0gYDxkaXYgY2xhc3M9XCJhY3Rpb24taWNvblwiIGlkPVwiYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1cIj5cbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgIDxwYXRoIGQ9XCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLz5cbiAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+YDtcbiAgICAgIGxldCBjbGVhckljb24gPSBkaXYucXVlcnlTZWxlY3RvckFsbChgI2FjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9YClbMF07XG4gICAgICBjbGVhckljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5jbGVhclJvdyhwYXJhbXMucm93SW5kZXgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGl2LmlubmVySFRNTCA9IGA8ZGl2IGNsYXNzPVwiYWN0aW9uLWljb25cIiBpZD1cImFjdGlvbkljb24tJHtwYXJhbXMucm93SW5kZXh9XCI+XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICA8cGF0aCBkPVwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNMTkgNGgtMy41bC0xLTFoLTVsLTEgMUg1djJoMTRWNHpcIi8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PmA7XG4gICAgICBsZXQgZGVsZXRlSWNvbiA9IGRpdi5xdWVyeVNlbGVjdG9yQWxsKGAjYWN0aW9uSWNvbi0ke3BhcmFtcy5yb3dJbmRleH1gKVswXTtcbiAgICAgIGRlbGV0ZUljb24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBwYXJhbXMuY29udGV4dC50YWJsZUNvbXBvbmVudC5kZWxldGVSb3cocGFyYW1zLnJvd0luZGV4KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpdjtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKTogdm9pZCB7XG5cbiAgICBpZiAoIXZhbHVlICYmIHRoaXMuX3BhcmFtcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICAvLyBmb3Igc2VhcmNoIHJvdyBkYXRhIHdpbGwgYWx3YXlzIGJlIG9uZSBlbXB0eSByb3dcbiAgICAgIC8vIHRvZG86IHJlLWVuYWJsZSBhZ2FpbiB3aGVuIHNlYXJjaCBpbiB0YWJsZXMgaXMgc3VwcG9ydGVkXG4gICAgICB2YWx1ZSA9IFt7fV07XG4gICAgfVxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gdmFsdWUgOiBbXTtcbiAgICAvLyBjcmVhdGUgYSBjbG9uZSBvZiB0aGUgYWN0dWFsIHZhbHVlIGZvciBpbnRlcm5hbCB1c2FnZVxuICAgIHRoaXMuaW5uZXJWYWx1ZSA9IFV0aWxzLmZvcm1EYXRhUGFyc2UoVXRpbHMuZm9ybURhdGFTdHJpbmdpZnkodGhpcy52YWx1ZSkpO1xuXG4gICAgaWYgKHRoaXMuZ3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5zZXRSb3dEYXRhKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuc2V0Um93RGF0YSh0aGlzLmlubmVyVmFsdWUpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdEVkaXRSb3coKSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnJvd0RhdGEgPSB0aGlzLmlubmVyVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgY29sdW1uIGRlZmluaXRpb24gZnJvbSBmb3JtIGVsZW1lbnQuXG4gICAqIEByZXR1cm5zIGNvbHVtbiBkZWZpbml0aW9uIHRvIGJlIGFkZGVkIHRvIHRoZSBncmlkT3B0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVDb2x1bW5EZWZpbml0aW9uKG92ZXJsYXk/OiBib29sZWFuKTogQ29sRGVmW10ge1xuICAgIHJldHVybiB0aGlzLl9lbGVtZW50cy5tYXAoKGVsKSA9PiB7XG4gICAgICBsZXQgY29sOiBDb2xEZWYgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmaW5pdGlvbihlbCk7XG4gICAgICBPYmplY3QuYXNzaWduKGNvbCwge1xuICAgICAgICBoZWFkZXJOYW1lOiBlbC5sYWJlbCxcbiAgICAgICAgc3VwcHJlc3NNZW51OiB0cnVlLFxuICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBmaWVsZDogZWwubmFtZSxcbiAgICAgICAgcmVmRGF0YToge1xuICAgICAgICAgIC4uLmNvbC5yZWZEYXRhLFxuICAgICAgICAgIF9lb0Zvcm1FbGVtZW50OiBlbCxcbiAgICAgICAgICBfc2l0dWF0aW9uOiB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGV0IGNhY2hlZENvbHVtbnMgPSB0aGlzLl9jYWNoZWRDb2x1bW5zO1xuICAgICAgaWYgKG92ZXJsYXkpIHtcbiAgICAgICAgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5O1xuICAgICAgfVxuICAgICAgbGV0IGNhY2hlZENvbHVtbiA9IGNhY2hlZENvbHVtbnMuZmluZChmID0+IGYucW5hbWUgPT09IGVsLnFuYW1lKTtcbiAgICAgIGlmIChjYWNoZWRDb2x1bW4pIHtcbiAgICAgICAgY29sLndpZHRoID0gY2FjaGVkQ29sdW1uLndpZHRoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbDtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJvdygpIHtcbiAgICBjb25zdCByb3dEYXRhID0ge307XG4gICAgY29uc3QgYXN5bmNGZXRjaGVzID0gW107XG4gICAgdGhpcy5fZWxlbWVudHNcbiAgICAgIC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgaWYgKGVsLmRlZmF1bHR2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcm93RGF0YVtlbC5uYW1lXSA9IGVsLmRlZmF1bHR2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChlbC5kZWZhdWx0dmFsdWVmdW5jdGlvbikge1xuICAgICAgICAgIHJvd0RhdGFbZWwubmFtZV0gPSB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0RGVmYXVsdFZhbHVlKGVsLmRlZmF1bHR2YWx1ZWZ1bmN0aW9uKTtcbiAgICAgICAgICBpZiAoZWwuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdDVVJSRU5UX1VTRVInKSB7XG4gICAgICAgICAgICBhc3luY0ZldGNoZXMucHVzaCh0aGlzLnJlc29sdmVPcmdEYXRhTWV0YShlbC5uYW1lLCByb3dEYXRhW2VsLm5hbWVdKSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgaWYgKGFzeW5jRmV0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3JrSm9pbihhc3luY0ZldGNoZXMpLnN1YnNjcmliZSgocmVzOiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBhbnl9W10pID0+IHtcbiAgICAgICAgcmVzLmZvckVhY2gociA9PiB7XG4gICAgICAgICAgcm93RGF0YVtyLmtleV0gPSByLnZhbHVlO1xuICAgICAgICB9KVxuICAgICAgICB0aGlzLnNldEVkaXRSb3coLTEsIHJvd0RhdGEpO1xuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRFZGl0Um93KC0xLCByb3dEYXRhKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVPcmdEYXRhTWV0YShlbGVtZW50TmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtU2VydmljZS5nZXRPcmdhbml6YXRpb25PYmplY3QodmFsdWUpLnBpcGUoXG4gICAgICBtYXAocmVzID0+ICh7XG4gICAgICAgIGtleTogYCR7ZWxlbWVudE5hbWV9X21ldGFgLFxuICAgICAgICB2YWx1ZTogcmVzXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBlZGl0Um93KGV2ZW50KSB7XG4gICAgdGhpcy5zZXRFZGl0Um93KGV2ZW50Lm5vZGUuaWQsIGV2ZW50Lm5vZGUuZGF0YSk7XG4gIH1cblxuICBvbkVkaXRDb21wbGV0ZShldmVudCkge1xuICAgIC8vdG9kbzogaXMgaXQgb2Jzb2xldGU/XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXRSb3coaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XG4gICAgLy8gc2V0dXAgdGhlIHJvdyB0byBiZSBlZGl0ZWQuIEJlc2lkZSBzb21lIHByb3BlcnRpZXMsIHRoZVxuICAgIC8vIHJvdyBjb250YWlucyBhIGZvcm0gbW9kZWwgYW5kIGZvcm0gZGF0YS4gSWYgdGhlIHBhcmVudCBmb3JtIG1vZGVsXG4gICAgLy8gcHJvdmlkZWQgYSBzY3JpcHQsIHRoaXMgd2lsbCBiZSBhZGRlZCBhcyB3ZWxsLCBzbyBlZGl0aW5nIGEgcm93IHdpbGxcbiAgICAvLyByZXNwZWN0IHRoZSBmb3JtIHNjcmlwdC5cbiAgICB0aGlzLmVkaXRpbmdSb3cgPSB7XG4gICAgICBzaXR1YXRpb246IHRoaXMuX3BhcmFtcy5zaXR1YXRpb24sXG4gICAgICBpbmRleDogaW5kZXgsXG4gICAgICB0YWJsZUVsZW1lbnQ6IHRoaXMuX3BhcmFtcy5lbGVtZW50LFxuICAgICAgZm9ybU9wdGlvbnM6IHtcbiAgICAgICAgZm9ybU1vZGVsOiB7XG4gICAgICAgICAgc2l0dWF0aW9uOiB0aGlzLl9wYXJhbXMuc2l0dWF0aW9uLCAgLy8gcmVxdWlyZWQgYnkgb2JqZWN0IGZvcm0gZm9yIHJlYWRpbmcgZGF0YVxuICAgICAgICAgIGVsZW1lbnRzOiBbe1xuICAgICAgICAgICAgdHlwZTogJ28ybUdyb3VwJyxcbiAgICAgICAgICAgIGVsZW1lbnRzOiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2VsZW1lbnRzKSlcbiAgICAgICAgICB9XVxuICAgICAgICB9LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5fcGFyYW1zLmVsZW1lbnQucmVhZG9ubHlcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNlbGVjdEVkaXRSb3coKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEVkaXRSb3coKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaSl7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZGVzZWxlY3RBbGwoKTtcbiAgICAgIGlmICh0aGlzLmVkaXRpbmdSb3cgJiYgdGhpcy5lZGl0aW5nUm93LmluZGV4ICE9PSAtMSkge1xuICAgICAgICBsZXQgcm93Tm9kZSA9IHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgdGhpcy5lZGl0aW5nUm93LmluZGV4KTtcbiAgICAgICAgcm93Tm9kZS5zZXRTZWxlY3RlZCh0cnVlLCB0cnVlKTtcbiAgICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLmVuc3VyZU5vZGVWaXNpYmxlKHJvd05vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVGFibGVWYWx1ZSgpIHtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5zZXRSb3dEYXRhKHRoaXMuaW5uZXJWYWx1ZSk7XG4gICAgaWYgKHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaSkge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLnNldFJvd0RhdGEodGhpcy5pbm5lclZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMucm93RGF0YSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5uZXJWYWx1ZTtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy52YWx1ZS5pbmNsdWRlcygnaXNOZXdSb3cnKSkpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnZhbHVlWydpc05ld1JvdyddO1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIGNhbmNlbFJvd0VkaXQoKSB7XG4gICAgaWYgKHRoaXMucm93RWRpdCkge1xuICAgICAgdGhpcy5yb3dFZGl0LmZpbmlzaFBlbmRpbmcoKTtcbiAgICB9XG4gICAgdGhpcy5lZGl0aW5nUm93ID0gbnVsbDtcbiAgICBpZiAodGhpcy5fcGFyYW1zLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHRoaXMuc2hvd0RpYWxvZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xvc2UoKSB7XG4gICAgdGhpcy5lZGl0aW5nUm93ID0gbnVsbDtcbiAgICB0aGlzLnNob3dEaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIHVwZGF0ZVJvdyhyb3dSZXN1bHQ6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3Um93ID0gcm93UmVzdWx0LmluZGV4ID09PSAtMTtcbiAgICBpZiAoaXNOZXdSb3cpIHtcbiAgICAgIHRoaXMuaW5uZXJWYWx1ZS5wdXNoKHsuLi5yb3dSZXN1bHQucm93RGF0YSwgLi4ue2lzTmV3Um93OiB0cnVlfX0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgLy8gdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0gPSB7Li4udGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF0sIC4uLnJvd1Jlc3VsdC5yb3dEYXRhfTtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlW3Jvd1Jlc3VsdC5pbmRleF1bZWwubmFtZV0gPSByb3dSZXN1bHQucm93RGF0YVtlbC5uYW1lXTtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdW2VsLm5hbWUgKyAnX21ldGEnXSkge1xuICAgICAgICAgIHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdW2VsLm5hbWUgKyAnX21ldGEnXSA9IHJvd1Jlc3VsdC5yb3dEYXRhW2VsLm5hbWUgKyAnX21ldGEnXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgIGlmICh0aGlzLl9wYXJhbXMuc2l0dWF0aW9uID09PSAnU0VBUkNIJykge1xuICAgICAgdGhpcy5zaG93RGlhbG9nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChpc05ld1JvdyAmJiAhcm93UmVzdWx0LmNyZWF0ZU5ld1Jvdykge1xuICAgICAgdGhpcy5zZXRFZGl0Um93KHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggLSAxLCB0aGlzLmlubmVyVmFsdWVbdGhpcy5pbm5lclZhbHVlLmxlbmd0aCAtIDFdKTtcbiAgICB9IGVsc2UgaWYgKHJvd1Jlc3VsdC5jcmVhdGVOZXdSb3cpIHtcbiAgICAgIHRoaXMuYWRkUm93KCk7XG4gICAgICBsZXQgcm93Tm9kZSA9IHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgKHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggLSAxKSk7XG4gICAgICB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZW5zdXJlTm9kZVZpc2libGUocm93Tm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RWRpdFJvdyhyb3dSZXN1bHQuaW5kZXgsIHRoaXMuaW5uZXJWYWx1ZVtyb3dSZXN1bHQuaW5kZXhdKTtcbiAgICB9XG4gIH1cblxuICBjb3B5Um93KHJvd1Jlc3VsdDogYW55KSB7XG4gICAgcm93UmVzdWx0LmluZGV4ID0gLTE7XG4gICAgdGhpcy5pbm5lclZhbHVlLnB1c2goey4uLnJvd1Jlc3VsdC5yb3dEYXRhLCAuLi57aXNOZXdSb3c6IHRydWV9fSk7XG4gICAgdGhpcy51cGRhdGVUYWJsZVZhbHVlKCk7XG4gICAgaWYgKHJvd1Jlc3VsdC5jcmVhdGVOZXdSb3cpIHtcbiAgICAgIHRoaXMuYWRkUm93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RWRpdFJvdyh0aGlzLmlubmVyVmFsdWUubGVuZ3RoIC0gMSwgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyb3dSZXN1bHQucm93RGF0YSkpKTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVSb3coaW5kZXg6IG51bWJlcikge1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5pbm5lclZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMudXBkYXRlVGFibGVWYWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5pbm5lclZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IGluZGV4ID09IHRoaXMuaW5uZXJWYWx1ZS5sZW5ndGggPyB0aGlzLmlubmVyVmFsdWUubGVuZ3RoIC0gMSA6IGluZGV4O1xuICAgICAgICAgIHRoaXMuc2V0RWRpdFJvdyhuZXh0SW5kZXgsIHRoaXMuaW5uZXJWYWx1ZVtuZXh0SW5kZXhdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNhbmNlbFJvd0VkaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG5cbiAgY2xlYXJSb3coaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuaW5uZXJWYWx1ZVtpbmRleF0gPSB7fTtcbiAgICB0aGlzLnVwZGF0ZVRhYmxlVmFsdWUoKTtcbiAgfVxuXG4gIGV4cG9ydENTVigpIHtcbiAgICB0aGlzLmdyaWRPcHRpb25zLmFwaS5leHBvcnREYXRhQXNDc3Yoe1xuICAgICAgLi4udGhpcy5ncmlkQXBpLmNzdkV4cG9ydFBhcmFtcyxcbiAgICAgIGZpbGVOYW1lOiB0aGlzLl9wYXJhbXMuZWxlbWVudC5sYWJlbFxuICAgIH0pO1xuICB9XG5cbiAgc2l6ZVRvRml0KG92ZXJsYXk/OiBib29sZWFuKSB7XG4gICAgaWYgKG92ZXJsYXkpIHtcbiAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JpZE9wdGlvbnMuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcbiAgICB9XG4gIH1cblxuICBvcGVuRGlhbG9nKCkge1xuICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5yZWZyZXNoVmlldygpO1xuICAgIHRoaXMuc2hvd0RpYWxvZyA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVGFibGVEYXRhKCk6IGJvb2xlYW4ge1xuICAgIC8vIHRvZG86IGltcGxlbWVudFxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGUoYzogRm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZVRhYmxlRGF0YSgpID8gbnVsbCA6IHtcbiAgICAgIHRhYmxlOiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5zdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uKSB7XG4gICAgICBpZiAoIXRoaXMucGVuZGluZ0NoYW5nZXMuY2hlY2tGb3JQZW5kaW5nVGFza3ModGhpcy5yb3dFZGl0LnBlbmRpbmdUYXNrSWQpKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLnN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3dFZGl0LmZpbmlzaFBlbmRpbmcoKTtcbiAgICAgICAgbGV0IHJvd0luZGV4ID0gdGhpcy5ncmlkQXBpLmdldFJvd0luZGV4KCRldmVudC50YXJnZXQsICdhZy1ib2R5Jyk7XG4gICAgICAgIGlmIChyb3dJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMub3ZlcmxheUdyaWRPcHRpb25zLmFwaS5nZXRSb3dOb2RlKCcnICsgcm93SW5kZXgpLnNldFNlbGVjdGVkKHRydWUsIHRydWUpO1xuICAgICAgICAgICRldmVudC50YXJnZXQuY2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNvcnRDaGFuZ2VkKCl7XG4gICAgbGV0IHJvd05vZGUgPSB0aGlzLm92ZXJsYXlHcmlkT3B0aW9ucy5hcGkuZ2V0Um93Tm9kZSgnJyArIHRoaXMuZWRpdGluZ1Jvdy5pbmRleCk7XG4gICAgdGhpcy5vdmVybGF5R3JpZE9wdGlvbnMuYXBpLmVuc3VyZU5vZGVWaXNpYmxlKHJvd05vZGUpO1xuICB9XG5cbiAgb25DZWxsQ2xpY2tlZCgkZXZlbnQpIHtcbiAgICBpZiAoJGV2ZW50LnJvd0luZGV4ICE9PSBudWxsKSB7XG4gICAgICBpZiAoISRldmVudC5ub2RlLmdyb3VwICYmICRldmVudC5kYXRhKSB7XG4gICAgICAgIGlmICgkZXZlbnQuY29sRGVmLmNlbGxDbGFzcyA9PT0gJ3JvdXRlci1saW5rLWNlbGwnKSB7XG4gICAgICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKCRldmVudC5ldmVudCwgJ2FnLXJvdycpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55LCBvdmVybGF5PzogYm9vbGVhbikge1xuICAgIGxldCBjb2x1bW5zRGVmaW5pdGlvbiA9IEZvcm1FbGVtZW50VGFibGVDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OO1xuICAgIGxldCBjYWNoZWRDb2x1bW5zID0gdGhpcy5fY2FjaGVkQ29sdW1ucztcbiAgICBpZiAob3ZlcmxheSkge1xuICAgICAgY29sdW1uc0RlZmluaXRpb24gPSBGb3JtRWxlbWVudFRhYmxlQ29tcG9uZW50LkNPTFVNTlNfREVGSU5JVElPTl9PVkVSTEFZO1xuICAgICAgY2FjaGVkQ29sdW1ucyA9IHRoaXMuX2NhY2hlZENvbHVtbnNPdmVybGF5O1xuICAgIH1cbiAgICBsZXQgY29sID0gY2FjaGVkQ29sdW1ucy5maW5kKGMgPT4gYy5xbmFtZSA9PT0gY29sdW1uLmNvbERlZi5yZWZEYXRhLnFuYW1lKTtcbiAgICBpZiAoY29sKSB7XG4gICAgICBjb2wud2lkdGggPSBjb2x1bW4uYWN0dWFsV2lkdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhY2hlZENvbHVtbnMucHVzaCh7cW5hbWU6IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSwgd2lkdGg6IGNvbHVtbi5hY3R1YWxXaWR0aH0pO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oY29sdW1uc0RlZmluaXRpb24sIGNhY2hlZENvbHVtbnMpO1xuICB9XG5cbiAgdG9nZ2xlUHJldmlldygpIHtcbiAgICB0aGlzLnNob3dQcmV2aWV3ID0gIXRoaXMuc2hvd1ByZXZpZXc7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKCdlby50YWJsZS5zaG93UHJldmlldycsIHRoaXMuc2hvd1ByZXZpZXcpO1xuICB9XG59XG4iXX0=
|
|
@@ -17,7 +17,7 @@ import { RowEditComponent } from './object-form/form-element-table/row-edit/row-
|
|
|
17
17
|
import { SplitModule } from '../split/split.module';
|
|
18
18
|
import { GridModule } from '../grid/grid.module';
|
|
19
19
|
import { ListContainerModule } from '../list-container/list-container.module';
|
|
20
|
-
import { MediaModule } from '../media';
|
|
20
|
+
import { MediaModule } from '../media/media.module';
|
|
21
21
|
/**
|
|
22
22
|
* @module
|
|
23
23
|
* @description
|
|
@@ -57,4 +57,4 @@ ObjectFormModule.decorators = [
|
|
|
57
57
|
]
|
|
58
58
|
},] }
|
|
59
59
|
];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLGNBQWMsRUFDZCxZQUFZLEVBQ2IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR2xEOzs7O0dBSUc7QUErQkgsTUFBTSxPQUFPLGdCQUFnQjs7O1lBOUI1QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixjQUFjO29CQUNkLFFBQVE7b0JBQ1IsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixrQkFBa0I7b0JBQ2xCLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixVQUFVO29CQUNWLFdBQVc7aUJBQ1o7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7Z0JBQ3ZHLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQUNwQyxZQUFZLEVBQUU7b0JBQ1osbUJBQW1CO29CQUNuQix3QkFBd0I7b0JBQ3hCLHVCQUF1QjtvQkFDdkIsb0JBQW9CO29CQUNwQix5QkFBeUI7b0JBQ3pCLGdCQUFnQjtpQkFDakI7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JqZWN0Rm9ybUdyb3VwQ29tcG9uZW50fSBmcm9tICcuL29iamVjdC1mb3JtL29iamVjdC1mb3JtLWdyb3VwL29iamVjdC1mb3JtLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge09iamVjdEZvcm1Db21wb25lbnR9IGZyb20gJy4vb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0Rm9ybUVkaXRDb21wb25lbnR9IGZyb20gJy4vb2JqZWN0LWZvcm0tZWRpdC9vYmplY3QtZm9ybS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQge1VpTW9kdWxlfSBmcm9tICcuLi91aS91aS5tb2R1bGUnO1xuaW1wb3J0IHtTaG9ydGN1dHNNb2R1bGV9IGZyb20gJy4uL3Nob3J0Y3V0cy9zaG9ydGN1dHMubW9kdWxlJztcbmltcG9ydCB7XG4gIFNoYXJlZE1vZHVsZSxcbiAgVGFiVmlld01vZHVsZSxcbiAgRmllbGRzZXRNb2R1bGUsXG4gIERpYWxvZ01vZHVsZVxufSBmcm9tICdwcmltZW5nL3ByaW1lbmcnO1xuaW1wb3J0IHtBZ0dyaWRNb2R1bGV9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7T2JqZWN0Rm9ybUhlbHBlclNlcnZpY2V9IGZyb20gJy4vb2JqZWN0LWZvcm0taGVscGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtQaXBlc01vZHVsZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRzTW9kdWxlfSBmcm9tICcuLi9mb3JtLWVsZW1lbnRzL2Zvcm0tZWxlbWVudHMubW9kdWxlJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRDb21wb25lbnR9IGZyb20gJy4vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtGb3JtRWxlbWVudFRhYmxlQ29tcG9uZW50fSBmcm9tICcuL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC10YWJsZS9mb3JtLWVsZW1lbnQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7Um93RWRpdENvbXBvbmVudH0gZnJvbSAnLi9vYmplY3QtZm9ybS9mb3JtLWVsZW1lbnQtdGFibGUvcm93LWVkaXQvcm93LWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7U3BsaXRNb2R1bGV9IGZyb20gJy4uL3NwbGl0L3NwbGl0Lm1vZHVsZSc7XG5pbXBvcnQge1Jlc3VsdExpc3RNb2R1bGV9IGZyb20gJy4uL3Jlc3VsdC1saXN0L3Jlc3VsdC1saXN0Lm1vZHVsZSc7XG5pbXBvcnQge0dyaWRNb2R1bGV9IGZyb20gJy4uL2dyaWQvZ3JpZC5tb2R1bGUnO1xuaW1wb3J0IHtMaXN0Q29udGFpbmVyTW9kdWxlfSBmcm9tICcuLi9saXN0LWNvbnRhaW5lci9saXN0LWNvbnRhaW5lci5tb2R1bGUnO1xuaW1wb3J0IHtNZWRpYU1vZHVsZX0gZnJvbSAnLi4vbWVkaWEvbWVkaWEubW9kdWxlJztcblxuXG4vKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogTW9kdWxlIHJlbmRlcmluZyBhIGRtcyBvYmplY3RzIGZvcm0uXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgVGFiVmlld01vZHVsZSxcbiAgICBGaWVsZHNldE1vZHVsZSxcbiAgICBVaU1vZHVsZSxcbiAgICBEaWFsb2dNb2R1bGUsXG4gICAgUGlwZXNNb2R1bGUsXG4gICAgQWdHcmlkTW9kdWxlLFxuICAgIFNob3J0Y3V0c01vZHVsZSxcbiAgICBGb3JtRWxlbWVudHNNb2R1bGUsXG4gICAgU3BsaXRNb2R1bGUsXG4gICAgTGlzdENvbnRhaW5lck1vZHVsZSxcbiAgICBHcmlkTW9kdWxlLFxuICAgIE1lZGlhTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtPYmplY3RGb3JtQ29tcG9uZW50LCBPYmplY3RGb3JtR3JvdXBDb21wb25lbnQsIE9iamVjdEZvcm1FZGl0Q29tcG9uZW50LCBGb3JtRWxlbWVudENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW09iamVjdEZvcm1IZWxwZXJTZXJ2aWNlXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgT2JqZWN0Rm9ybUNvbXBvbmVudCxcbiAgICBPYmplY3RGb3JtR3JvdXBDb21wb25lbnQsXG4gICAgT2JqZWN0Rm9ybUVkaXRDb21wb25lbnQsXG4gICAgRm9ybUVsZW1lbnRDb21wb25lbnQsXG4gICAgRm9ybUVsZW1lbnRUYWJsZUNvbXBvbmVudCxcbiAgICBSb3dFZGl0Q29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Rm9ybU1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -173,9 +173,9 @@ export class ResultListComponent extends UnsubscribeOnDestroy {
|
|
|
173
173
|
const searchMode = result.fields.mode ? result.fields.mode : null;
|
|
174
174
|
this.settings = this.limitedList && this.query ? { total: this.totalHits, size: this.VIRTUAL_LIST_CHUNK_SIZE, relation: result.count.relation } : null;
|
|
175
175
|
gridOptions.rowData = result.hits;
|
|
176
|
-
const { elements, sortorder, grouporder, pinned } = result.fields;
|
|
176
|
+
const { elements, sortorder, grouporder, pinned, alignmentx } = result.fields;
|
|
177
177
|
gridOptions.context.count = result.count;
|
|
178
|
-
gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, false, this._cachedColumns, searchMode);
|
|
178
|
+
gridOptions.columnDefs = this.gridApi.getColumnDefs(elements, sortorder, grouporder, pinned, alignmentx, false, this._cachedColumns, searchMode);
|
|
179
179
|
const refreshGrid = this.hasGridOptions;
|
|
180
180
|
Object.assign(this.resultGridOptions, gridOptions, this.gridOptions);
|
|
181
181
|
if (refreshGrid) {
|
|
@@ -295,4 +295,4 @@ ResultListComponent.propDecorators = {
|
|
|
295
295
|
query: [{ type: Input }],
|
|
296
296
|
searchResult: [{ type: Input }]
|
|
297
297
|
};
|
|
298
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFtSDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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b0JBQW9CO1lBRW5GLE1BQU07OzttQkFTN0IsU0FBUyxTQUFDLFFBQVE7b0JBc0JsQixLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSztnQ0FJTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSzswQkFDTCxLQUFLO3NCQUNMLEtBQUs7d0JBQ0wsS0FBSztpQ0FDTCxNQUFNOzZCQUNOLE1BQU07NEJBQ04sTUFBTTs0QkFDTixNQUFNOzZCQUNOLE1BQU07d0JBQ04sTUFBTTt1QkFDTixNQUFNOzZCQUNOLE1BQU07b0JBRU4sS0FBSzsyQkFtREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7b2YgYXMgb2JzZXJ2YWJsZU9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0dyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlYXJjaC9hcHAtc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vdXRpbC91bnN1YnNjcmliZS91bnN1YnNjcmliZS5jb21wb25lbnQnO1xuaW1wb3J0IHtHcmlkRmlsdGVyfSBmcm9tICcuLi9ncmlkL2dyaWQtZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7XG4gIFNlYXJjaFF1ZXJ5LCBTZWFyY2hSZXN1bHQsIFNvcnRPcHRpb24sIENvbmZpZywgU2VhcmNoU2VydmljZSwgRXZlbnRTZXJ2aWNlLCBCYWNrZW5kU2VydmljZSxcbiAgRW5haW9FdmVudCwgTG9jYWxTdG9yYWdlU2VydmljZSwgRmllbGREZWZpbml0aW9uLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlscywgT2JqZWN0VHlwZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5XG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge05hdmlnYXRpb25FeHRyYXMsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcmVzdWx0LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdExpc3RDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZ3JpZDogR3JpZENvbXBvbmVudDtcblxuICAvLyBmb3IgbGlzdHMgdGhhdCBleGNlZWQgdGhlIGNvbmZpZ3VyZWQgbWF4IHJlc3VsdCBzaXplLCBkYXRhIHdpbGwgYmUgZmV0Y2hlZCBpbiBjaHVua3NcbiAgcHJpdmF0ZSBWSVJUVUFMX0xJU1RfQ0hVTktfU0laRTogbnVtYmVyO1xuICBzdGF0aWMgQ09MVU1OU19ERUZJTklUSU9OID0gJ2VvLmZyYW1ld29yay5jYWNoZS5jb2x1bW5zLmRlZmluaXRpb24nO1xuXG4gIHByaXZhdGUgX3Jlc3VsdDogU2VhcmNoUmVzdWx0O1xuICBwcml2YXRlIF9xdWVyeTogU2VhcmNoUXVlcnk7XG4gIHByaXZhdGUgX2NhY2hlZENvbHVtbnM6IGFueVtdO1xuICBwcml2YXRlIGRlZmF1bHRRdWVyeTogU2VhcmNoUXVlcnk7XG4gIGNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIHZpc2libGVDb25maWcgPSBmYWxzZTtcbiAgc2hvd0xvYWRlciA9IGZhbHNlO1xuICBwdWJsaWMgdG90YWxIaXRzOiBhbnk7XG4gIHB1YmxpYyBsaW1pdGVkTGlzdCA9IGZhbHNlO1xuICBwdWJsaWMgcmVzdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge307XG4gIHNldHRpbmdzID0ge307XG4gIHF1ZXJ5U3VidGl0bGUgPSAnJztcbiAgc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcblxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBjb25maWdUeXBlOiBPYmplY3RUeXBlIHwgbnVsbDtcbiAgQElucHV0KCkgY29uZmlnQ29udGV4dDogT2JqZWN0VHlwZSB8IG51bGw7XG5cbiAgLy8gSWYgc2V0IHRvIHRydWUgcXVlcnkgd2lsbCBiZSB0cmVhdGVkIGxpa2UgYSB0ZW1wb3Jhcnkgc2VhcmNoLlxuICAvLyBUaGF0IG1lYW5zLCBnbG9iYWwgc2VhcmNoIHdpbGwgbm90IGJlIGFmZmVjdGVkIChnbG9iYWwgcXVlcnkgd2lsbCBiZSByZXNldCBhZnRlciBleGVjdXRpb24pXG4gIEBJbnB1dCgpIGNsZWFyQWZ0ZXJFeGVjdXRlOiBib29sZWFuO1xuICBASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuICBASW5wdXQoKSBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIEBJbnB1dCgpIGhhc0ljb24gPSBmYWxzZTtcbiAgQElucHV0KCkgcmVmZXJlbmNlID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBvblNlbGVjdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkZvY3VzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Db3VudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblJlc3VsdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUXVlcnlJbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBxdWVyeShxdWVyeTogYW55KSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyeSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocXVlcnkubmFtZSkge1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlLmdldFN0b3JlZFF1ZXJpZXMkKClcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHF1ZXJpZXNTdWJzY3JpcHRpb24gPT4ge1xuICAgICAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHF1ZXJpZXNTdWJzY3JpcHRpb24ucXVlcmllcy5maWx0ZXIocSA9PiBxLm5hbWUgPT09IHF1ZXJ5Lm5hbWUpWzBdO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShxdWVyeSk7XG4gICAgICBpZiAodGhpcy5fcXVlcnkpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0UXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKSk7XG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5zZXRRdWVyeSh0aGlzLmRlZmF1bHRRdWVyeSk7XG4gICAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5hZ2dyZWdhdGUoKTtcblxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLnNlYXJjaFNlcnZpY2UuZ2V0UmVzdWx0RmllbGREZWZpbml0aW9uQ29uZmlnKHRoaXMucXVlcnkpO1xuICAgICAgICB0aGlzLmNvbmZpZ1R5cGUgPSBjb25maWcudHlwZTtcbiAgICAgICAgdGhpcy5jb25maWdDb250ZXh0ID0gY29uZmlnLmNvbnRleHRUeXBlO1xuICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgICAuZ2V0Q2h1bmtlZFJlc3VsdCh0aGlzLl9xdWVyeSwgMCwgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJRdWVyeSh0aGlzLmNsZWFyQWZ0ZXJFeGVjdXRlKTtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICAgIH0sIFV0aWxzLnRocm93KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRydWUpO1xuICAgICAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucXVlcnkudHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5U3VidGl0bGUgKz0gdGhpcy5xdWVyeS50eXBlc1tpXS5sYWJlbDtcbiAgICAgICAgICBpZiAoaSAhPT0gdGhpcy5xdWVyeS50eXBlcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLnF1ZXJ5U3VidGl0bGUgKz0gJywgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IHF1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBzZWFyY2hSZXN1bHQocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICAvLyB0b2RvOiBiYWNrZW5kIHNob3VsZCByZXNvbHZlIHF1ZXJ5LmZpZWxkcyBhbmQgcmV0dXJuIGNvbmZpZyBpbiBzcGVjaWZpYyBvcmRlclxuICAgIGNvbnN0IF9maWVsZHMgPSByZXN1bHQuZmllbGRzID8gb2JzZXJ2YWJsZU9mKHJlc3VsdC5maWVsZHMpIDpcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5mZXRjaFJlc3VsdEZpZWxkRGVmaW5pdGlvbih0aGlzLmNvbmZpZ1R5cGUsIHRoaXMuY29uZmlnQ29udGV4dCwgJ0FMTCcpO1xuICAgIF9maWVsZHMuc3Vic2NyaWJlKGZpZWxkcyA9PiB7XG4gICAgICBpZiAoZmllbGRzICYmIHRoaXMucXVlcnkgJiYgdGhpcy5xdWVyeS5maWVsZHMgJiYgdGhpcy5xdWVyeS5maWVsZHMubGVuZ3RoKSB7XG4gICAgICAgIGZpZWxkcy5lbGVtZW50cyA9IHRoaXMucXVlcnkuZmllbGRzLm1hcChmID0+IGZpZWxkcy5lbGVtZW50cy5maW5kKGUgPT4gZiA9PT0gZS5oaXRuYW1lKSk7XG4gICAgICB9XG4gICAgICByZXN1bHQuZmllbGRzID0gZmllbGRzIHx8IG5ldyBGaWVsZERlZmluaXRpb24oKTtcbiAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMucHJvY2Vzc1Jlc3VsdHModGhpcy5fcmVzdWx0KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBzZWFyY2hSZXN1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlc3VsdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWcsIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHB1YmxpYyBncmlkQXBpOiBHcmlkU2VydmljZSwgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhcHBTZWFyY2hTZXJ2aWNlOiBBcHBTZWFyY2hTZXJ2aWNlLCBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFID0gdGhpcy5jb25maWcuZ2V0UmF3KCdzZWFyY2gubGltaXQnKSBhcyBudW1iZXI7XG4gICAgdGhpcy5fY2FjaGVkQ29sdW1ucyA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShSZXN1bHRMaXN0Q29tcG9uZW50LkNPTFVNTlNfREVGSU5JVElPTikgfHwgW107XG4gIH1cblxuICBjbGVhclF1ZXJ5KGNsZWFyQWZ0ZXJFeGVjdXRlKSB7XG4gICAgaWYgKGNsZWFyQWZ0ZXJFeGVjdXRlKSB7XG4gICAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2UuY2xlYXJRdWVyeSgpO1xuICAgIH1cbiAgfVxuXG4gIGludmFsaWRRdWVyeSgpIHtcbiAgICB0aGlzLm9uUXVlcnlJbnZhbGlkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX0RFTEVURUQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZCkge1xuICAgICAgICAgIHRoaXMuZ3JpZC51cGRhdGVSb3dzKHRoaXMuYmFja2VuZC51cGRhdGUoW3Jlcy5kYXRhXSwgW3tpZDogcmVzLmRhdGEuaWR9XSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZCkge1xuICAgICAgICAgIC8vIHRoaXMuZ3JpZC51cGRhdGVSb3dzKHRoaXMuYmFja2VuZC51cGRhdGUoW3Jlcy5kYXRhXSwgW3tpZDogcmVzLmRhdGEuaWQsIGl0ZW06IHJlcy5kYXRhLmRhdGF9XSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgaWYgKHRoaXMucXVlcnkpIHtcbiAgICAgIHRoaXMucXVlcnkgPSB0aGlzLmRlZmF1bHRRdWVyeTtcbiAgICB9XG4gICAgdGhpcy5vblJlZnJlc2guZW1pdCh0aGlzLnF1ZXJ5KTtcbiAgfVxuXG4gIG9uQ29sdW1uUmVzaXplZChjb2x1bW46IGFueSkge1xuICAgIGxldCBjb2wgPSB0aGlzLl9jYWNoZWRDb2x1bW5zLmZpbmQoYyA9PiBjLnFuYW1lID09PSBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUpO1xuICAgIGlmIChjb2wpIHtcbiAgICAgIGNvbC53aWR0aCA9IGNvbHVtbi5hY3R1YWxXaWR0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2FjaGVkQ29sdW1ucy5wdXNoKHtxbmFtZTogY29sdW1uLmNvbERlZi5yZWZEYXRhLnFuYW1lLCB3aWR0aDogY29sdW1uLmFjdHVhbFdpZHRofSk7XG4gICAgfVxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShSZXN1bHRMaXN0Q29tcG9uZW50LkNPTFVNTlNfREVGSU5JVElPTiwgdGhpcy5fY2FjaGVkQ29sdW1ucyk7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgZ3JpZCBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSAkZXZlbnRcbiAgICovXG4gIG9uQ29uZmlnQ2hhbmdlZChyZWZyZXNoKSB7XG4gICAgaWYgKHJlZnJlc2gpIHtcbiAgICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBTZWFyY2ggcmVzdWx0ICYgZ2VuZXJhdGUgY29sdW1uIGRlZmluaXRpb25zXG4gICAqIEBwYXJhbSByZXN1bHRcbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc1Jlc3VsdHMocmVzdWx0OiBTZWFyY2hSZXN1bHQpIHtcbiAgICB0aGlzLnZpc2libGVDb25maWcgPSBmYWxzZTtcbiAgICB0aGlzLm9uUmVzdWx0LmVtaXQocmVzdWx0KTtcbiAgICB0aGlzLnRvdGFsSGl0cyA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICB0aGlzLmxpbWl0ZWRMaXN0ID0gdGhpcy50b3RhbEhpdHMgPiByZXN1bHQuaGl0cy5sZW5ndGg7XG4gICAgbGV0IGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtjb250ZXh0OiB7fSwgb25Tb3J0Q2hhbmdlZDogKCkgPT4gdGhpcy5vblBhZ2VDaGFuZ2VkKCksIG9uRmlsdGVyQ2hhbmdlZDogKCkgPT4gdGhpcy5vblBhZ2VDaGFuZ2VkKCl9O1xuICAgIGNvbnN0IHNlYXJjaE1vZGUgPSByZXN1bHQuZmllbGRzLm1vZGUgPyByZXN1bHQuZmllbGRzLm1vZGUgOiBudWxsO1xuXG4gICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSA/IHt0b3RhbDogdGhpcy50b3RhbEhpdHMsIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHJlbGF0aW9uOiByZXN1bHQuY291bnQucmVsYXRpb259IDogbnVsbDtcbiAgICBncmlkT3B0aW9ucy5yb3dEYXRhID0gcmVzdWx0LmhpdHM7XG5cbiAgICBjb25zdCB7ZWxlbWVudHMsIHNvcnRvcmRlciwgZ3JvdXBvcmRlciwgcGlubmVkfSA9IHJlc3VsdC5maWVsZHM7XG5cbiAgICBncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gcmVzdWx0LmNvdW50O1xuICAgIGdyaWRPcHRpb25zLmNvbHVtbkRlZnMgPSB0aGlzLmdyaWRBcGkuZ2V0Q29sdW1uRGVmcyhlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGZhbHNlLCB0aGlzLl9jYWNoZWRDb2x1bW5zLCBzZWFyY2hNb2RlKTtcblxuICAgIGNvbnN0IHJlZnJlc2hHcmlkID0gdGhpcy5oYXNHcmlkT3B0aW9ucztcbiAgICBPYmplY3QuYXNzaWduKHRoaXMucmVzdWx0R3JpZE9wdGlvbnMsIGdyaWRPcHRpb25zLCB0aGlzLmdyaWRPcHRpb25zKTtcblxuICAgIGlmIChyZWZyZXNoR3JpZCkge1xuICAgICAgLy8gcmVsb2FkIGdyaWQgY29tcG9uZW50XG4gICAgICB0aGlzLnJlc3VsdEdyaWRPcHRpb25zID0ge307XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpLCAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc3RmaXhTb3J0KGlkKSB7XG4gICAgLy8gdG9kbzogcmVtb3ZlIHdoZW4gaXQncyBmaXhlZCBvbiBiYWNrZW5kXG4gICAgcmV0dXJuIGlkLm1hdGNoKC8oXnN5c29iamVjdFxcLnxec3lzZG9jdW1lbnRcXC4pKGNyZWF0b3IkfG1vZGlmaWVyJCkvKSA/ICd0aXRsZScgOiAnJztcbiAgfVxuXG4gIG9uUGFnZUNoYW5nZWQocGFnZTogbnVtYmVyID0gMSkge1xuICAgIGlmICh0aGlzLmxpbWl0ZWRMaXN0ICYmIHRoaXMucXVlcnkpIHtcbiAgICAgIHRoaXMuZmV0Y2hSb3dEYXRhKHtcbiAgICAgICAgc3RhcnRSb3c6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgKiAocGFnZSAtIDEpLFxuICAgICAgICBzb3J0TW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0U29ydE1vZGVsKCksXG4gICAgICAgIGZpbHRlck1vZGVsOiB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCksXG4gICAgICAgIHN1Y2Nlc3NDYWxsYmFjazogKHJvd3MsIHRvdGFsLCByZWxhdGlvbikgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0dGluZ3MgPSB7dG90YWwsIHJlbGF0aW9uLCBzaXplOiB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFLCBwYWdlfTtcbiAgICAgICAgICB0aGlzLmdyaWQuYXBpLnNldFJvd0RhdGEocm93cyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBmb3IgZmV0Y2hpbmcgdGhlIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCB3aXRoIGEgdmlydHVhbCByb3cgbW9kZWwuXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSByb3cgbW9kZWwgcGFyYW1zIChpbmNsLiBzdGFydFJvdywgZW5kUm93LCBzb3J0TW9kZWwgYW5kIGZpbHRlck1vZGVsKVxuICAgKi9cbiAgcHJpdmF0ZSBmZXRjaFJvd0RhdGEocGFyYW1zOiBhbnkpIHtcblxuICAgIGlmICh0aGlzLnF1ZXJ5KSB7XG5cbiAgICAgIHRoaXMudXBkYXRlUXVlcnkocGFyYW1zKTtcblxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlXG4gICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMucXVlcnksIHBhcmFtcy5zdGFydFJvdywgdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSlcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMudG90YWxIaXRzID0gdGhpcy5ncmlkLmdyaWRPcHRpb25zLmNvbnRleHQucm93Q291bnQgPSByZXN1bHQuY291bnQudmFsdWU7XG4gICAgICAgICAgdGhpcy5ncmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgICAgICAgcGFyYW1zLnN1Y2Nlc3NDYWxsYmFjayhyZXN1bHQuaGl0cywgdGhpcy50b3RhbEhpdHMsIHJlc3VsdC5jb3VudC5yZWxhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUXVlcnkocGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLnF1ZXJ5LnNvcnRPcHRpb25zID0gKHBhcmFtcy5zb3J0TW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSB8fCBbXSlcbiAgICAgICAgLm1hcChtb2RlbCA9PiBuZXcgU29ydE9wdGlvbihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihtb2RlbC5jb2xJZCArIHRoaXMucG9zdGZpeFNvcnQobW9kZWwuY29sSWQpKSwgbW9kZWwuc29ydCkpO1xuXG4gICAgdGhpcy5xdWVyeS5maWx0ZXJzID0gdGhpcy5kZWZhdWx0UXVlcnkuZmlsdGVyc1xuICAgICAgLmNvbmNhdCgoT2JqZWN0LmtleXMocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSkgfHwgW10pXG4gICAgICAgIC5tYXAoa2V5ID0+IEdyaWRGaWx0ZXIub3BlcmF0b3IoR3JpZFNlcnZpY2UucW5hbWVGb3JtYXR0ZXIoa2V5KSwgKHBhcmFtcy5maWx0ZXJNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldEZpbHRlck1vZGVsKCkpW2tleV0pKSk7XG5cbiAgICB0aGlzLnF1ZXJ5LnNlYXJjaE1vZGUgPSBTZWFyY2hRdWVyeS5ERUZBVUxUX1NFQVJDSF9NT0RFO1xuICB9XG5cbiAgZXhlY3V0ZVN1Z2dlc3RTZWFyY2goKSB7XG4gICAgLy8gdG9kbzogaW1wbGVtZW50XG4gIH1cblxuICBleHBvcnRDU1YoKSB7XG4gICAgdGhpcy5jc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSB0cnVlO1xuICAgIHRoaXMudXBkYXRlUXVlcnkoe30pO1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5kb3dubG9hZENzdkZyb21RdWVyeSh0aGlzLnF1ZXJ5LmdldFF1ZXJ5SnNvbigpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jc3ZMb2FkaW5nU3Bpbm5lclZpc2liaWxpdHkgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhcnNlRG1zUGFyYW1zKGRhdGEpIHtcbiAgICByZXR1cm4ge2lkOiBkYXRhICYmIGRhdGEuaWQgPyBkYXRhLmlkIDogbnVsbCwgdHlwZTogZGF0YSAmJiBkYXRhLnR5cGUgPyBkYXRhLnR5cGUgOiBudWxsfTtcbiAgfVxuXG4gIGdldCBoYXNHcmlkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gISEodGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5kYXRhc291cmNlIHx8IHRoaXMucmVzdWx0R3JpZE9wdGlvbnMucm93RGF0YSk7XG4gIH1cblxuICBvblN0b3JlZFF1ZXJ5TG9hZGVkKCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlFeGVjdXRlKGV2dCkge1xuICAgIHRoaXMuc2F2ZWRTZWFyY2hDbGlja2VkID0gZmFsc2U7XG4gICAgY29uc3QgdXJpUGFyYW0gPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZXZ0LnF1ZXJ5SnNvbikpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Jlc3VsdCddLCB1cmlQYXJhbVF1ZXJ5KTtcbiAgfVxufVxuIl19
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVzdWx0LWxpc3QvcmVzdWx0LWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxFQUFFLElBQUksWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd4RixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDbkYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxXQUFXLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQzFGLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFjLG9CQUFvQixFQUM1RyxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQW1CLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBT3pELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFtSDNELFlBQW9CLE1BQWMsRUFBUyxTQUEyQixFQUFTLE9BQW9CLEVBQVUsT0FBdUIsRUFDaEgsZ0JBQWtDLEVBQVUsYUFBNEIsRUFBVSxZQUEwQixFQUM1RyxjQUFtQyxFQUFVLG9CQUEwQyxFQUFVLE1BQWM7UUFDakksS0FBSyxF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O1lBQzlELG1CQUFtQjtZQUF3RCxvQkFBb0I7WUFFbkYsTUFBTTs7O21CQVM3QixTQUFTLFNBQUMsUUFBUTtvQkFzQmxCLEtBQUs7eUJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUlMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLOzBCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLO2lDQUNMLE1BQU07NkJBQ04sTUFBTTs0QkFDTixNQUFNOzRCQUNOLE1BQU07NkJBQ04sTUFBTTt3QkFDTixNQUFNO3VCQUNOLE1BQU07NkJBQ04sTUFBTTtvQkFFTixLQUFLOzJCQW1ETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtvZiBhcyBvYnNlcnZhYmxlT2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRTZXJ2aWNlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7QXBwU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VhcmNoL2FwcC1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRGaWx0ZXJ9IGZyb20gJy4uL2dyaWQvZ3JpZC1maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtcbiAgU2VhcmNoUXVlcnksIFNlYXJjaFJlc3VsdCwgU29ydE9wdGlvbiwgQ29uZmlnLCBTZWFyY2hTZXJ2aWNlLCBFdmVudFNlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLFxuICBFbmFpb0V2ZW50LCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBGaWVsZERlZmluaXRpb24sIFRyYW5zbGF0ZVNlcnZpY2UsIFV0aWxzLCBPYmplY3RUeXBlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnlcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZXN1bHQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXN1bHQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdC1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0TGlzdENvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBncmlkOiBHcmlkQ29tcG9uZW50O1xuXG4gIC8vIGZvciBsaXN0cyB0aGF0IGV4Y2VlZCB0aGUgY29uZmlndXJlZCBtYXggcmVzdWx0IHNpemUsIGRhdGEgd2lsbCBiZSBmZXRjaGVkIGluIGNodW5rc1xuICBwcml2YXRlIFZJUlRVQUxfTElTVF9DSFVOS19TSVpFOiBudW1iZXI7XG4gIHN0YXRpYyBDT0xVTU5TX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmNvbHVtbnMuZGVmaW5pdGlvbic7XG5cbiAgcHJpdmF0ZSBfcmVzdWx0OiBTZWFyY2hSZXN1bHQ7XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcHJpdmF0ZSBfY2FjaGVkQ29sdW1uczogYW55W107XG4gIHByaXZhdGUgZGVmYXVsdFF1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgY3N2TG9hZGluZ1NwaW5uZXJWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgdmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICBzaG93TG9hZGVyID0gZmFsc2U7XG4gIHB1YmxpYyB0b3RhbEhpdHM6IGFueTtcbiAgcHVibGljIGxpbWl0ZWRMaXN0ID0gZmFsc2U7XG4gIHB1YmxpYyByZXN1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7fTtcbiAgc2V0dGluZ3MgPSB7fTtcbiAgcXVlcnlTdWJ0aXRsZSA9ICcnO1xuICBzYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGNvbmZpZ1R5cGU6IE9iamVjdFR5cGUgfCBudWxsO1xuICBASW5wdXQoKSBjb25maWdDb250ZXh0OiBPYmplY3RUeXBlIHwgbnVsbDtcblxuICAvLyBJZiBzZXQgdG8gdHJ1ZSBxdWVyeSB3aWxsIGJlIHRyZWF0ZWQgbGlrZSBhIHRlbXBvcmFyeSBzZWFyY2guXG4gIC8vIFRoYXQgbWVhbnMsIGdsb2JhbCBzZWFyY2ggd2lsbCBub3QgYmUgYWZmZWN0ZWQgKGdsb2JhbCBxdWVyeSB3aWxsIGJlIHJlc2V0IGFmdGVyIGV4ZWN1dGlvbilcbiAgQElucHV0KCkgY2xlYXJBZnRlckV4ZWN1dGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBzZWxlY3RGaXJzdCA9IHRydWU7XG4gIEBJbnB1dCgpIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgQElucHV0KCkgaGFzSWNvbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZWZlcmVuY2UgPSBmYWxzZTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQ29udGV4dE1lbnUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkNvdW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmVzdWx0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25RdWVyeUludmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgc2V0IHF1ZXJ5KHF1ZXJ5OiBhbnkpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdW5kZWZpbmVkO1xuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHRoaXMuaW52YWxpZFF1ZXJ5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChxdWVyeS5uYW1lKSB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcmllcyQoKVxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUocXVlcmllc1N1YnNjcmlwdGlvbiA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gcXVlcmllc1N1YnNjcmlwdGlvbi5xdWVyaWVzLmZpbHRlcihxID0+IHEubmFtZSA9PT0gcXVlcnkubmFtZSlbMF07XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHF1ZXJ5KTtcbiAgICAgIGlmICh0aGlzLl9xdWVyeSkge1xuICAgICAgICB0aGlzLmRlZmF1bHRRdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuZGVmYXVsdFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLmFnZ3JlZ2F0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuc2VhcmNoU2VydmljZS5nZXRSZXN1bHRGaWVsZERlZmluaXRpb25Db25maWcodGhpcy5xdWVyeSk7XG4gICAgICAgIHRoaXMuY29uZmlnVHlwZSA9IGNvbmZpZy50eXBlO1xuICAgICAgICB0aGlzLmNvbmZpZ0NvbnRleHQgPSBjb25maWcuY29udGV4dFR5cGU7XG4gICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZVxuICAgICAgICAgIC5nZXRDaHVua2VkUmVzdWx0KHRoaXMuX3F1ZXJ5LCAwLCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jbGVhclF1ZXJ5KHRoaXMuY2xlYXJBZnRlckV4ZWN1dGUpO1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNsZWFyUXVlcnkodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmludmFsaWRRdWVyeSgpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5xdWVyeVN1YnRpdGxlID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5xdWVyeS50eXBlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSB0aGlzLnF1ZXJ5LnR5cGVzW2ldLmxhYmVsO1xuICAgICAgICAgIGlmIChpICE9PSB0aGlzLnF1ZXJ5LnR5cGVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVlcnlTdWJ0aXRsZSArPSAnLCAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkUXVlcnkoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNlYXJjaFJlc3VsdChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIC8vIHRvZG86IGJhY2tlbmQgc2hvdWxkIHJlc29sdmUgcXVlcnkuZmllbGRzIGFuZCByZXR1cm4gY29uZmlnIGluIHNwZWNpZmljIG9yZGVyXG4gICAgY29uc3QgX2ZpZWxkcyA9IHJlc3VsdC5maWVsZHMgPyBvYnNlcnZhYmxlT2YocmVzdWx0LmZpZWxkcykgOlxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmZldGNoUmVzdWx0RmllbGREZWZpbml0aW9uKHRoaXMuY29uZmlnVHlwZSwgdGhpcy5jb25maWdDb250ZXh0LCAnQUxMJyk7XG4gICAgX2ZpZWxkcy5zdWJzY3JpYmUoZmllbGRzID0+IHtcbiAgICAgIGlmIChmaWVsZHMgJiYgdGhpcy5xdWVyeSAmJiB0aGlzLnF1ZXJ5LmZpZWxkcyAmJiB0aGlzLnF1ZXJ5LmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgICAgZmllbGRzLmVsZW1lbnRzID0gdGhpcy5xdWVyeS5maWVsZHMubWFwKGYgPT4gZmllbGRzLmVsZW1lbnRzLmZpbmQoZSA9PiBmID09PSBlLmhpdG5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHMgfHwgbmV3IEZpZWxkRGVmaW5pdGlvbigpO1xuICAgICAgdGhpcy5fcmVzdWx0ID0gcmVzdWx0O1xuICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0cyh0aGlzLl9yZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHNlYXJjaFJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZywgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLCBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGFwcFNlYXJjaFNlcnZpY2U6IEFwcFNlYXJjaFNlcnZpY2UsIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSwgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSwgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU2VydmljZTogU3RvcmVkUXVlcmllc1NlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3NlYXJjaC5saW1pdCcpIGFzIG51bWJlcjtcbiAgICB0aGlzLl9jYWNoZWRDb2x1bW5zID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OKSB8fCBbXTtcbiAgfVxuXG4gIGNsZWFyUXVlcnkoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICBpZiAoY2xlYXJBZnRlckV4ZWN1dGUpIHtcbiAgICAgIHRoaXMuYXBwU2VhcmNoU2VydmljZS5jbGVhclF1ZXJ5KCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZFF1ZXJ5KCkge1xuICAgIHRoaXMub25RdWVyeUludmFsaWQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZH1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBpZiAodGhpcy5ncmlkKSB7XG4gICAgICAgICAgLy8gdGhpcy5ncmlkLnVwZGF0ZVJvd3ModGhpcy5iYWNrZW5kLnVwZGF0ZShbcmVzLmRhdGFdLCBbe2lkOiByZXMuZGF0YS5pZCwgaXRlbTogcmVzLmRhdGEuZGF0YX1dKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICBpZiAodGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5xdWVyeSA9IHRoaXMuZGVmYXVsdFF1ZXJ5O1xuICAgIH1cbiAgICB0aGlzLm9uUmVmcmVzaC5lbWl0KHRoaXMucXVlcnkpO1xuICB9XG5cbiAgb25Db2x1bW5SZXNpemVkKGNvbHVtbjogYW55KSB7XG4gICAgbGV0IGNvbCA9IHRoaXMuX2NhY2hlZENvbHVtbnMuZmluZChjID0+IGMucW5hbWUgPT09IGNvbHVtbi5jb2xEZWYucmVmRGF0YS5xbmFtZSk7XG4gICAgaWYgKGNvbCkge1xuICAgICAgY29sLndpZHRoID0gY29sdW1uLmFjdHVhbFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jYWNoZWRDb2x1bW5zLnB1c2goe3FuYW1lOiBjb2x1bW4uY29sRGVmLnJlZkRhdGEucW5hbWUsIHdpZHRoOiBjb2x1bW4uYWN0dWFsV2lkdGh9KTtcbiAgICB9XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKFJlc3VsdExpc3RDb21wb25lbnQuQ09MVU1OU19ERUZJTklUSU9OLCB0aGlzLl9jYWNoZWRDb2x1bW5zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBncmlkIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtICRldmVudFxuICAgKi9cbiAgb25Db25maWdDaGFuZ2VkKHJlZnJlc2gpIHtcbiAgICBpZiAocmVmcmVzaCkge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIFNlYXJjaCByZXN1bHQgJiBnZW5lcmF0ZSBjb2x1bW4gZGVmaW5pdGlvbnNcbiAgICogQHBhcmFtIHJlc3VsdFxuICAgKi9cbiAgcHJpdmF0ZSBwcm9jZXNzUmVzdWx0cyhyZXN1bHQ6IFNlYXJjaFJlc3VsdCkge1xuICAgIHRoaXMudmlzaWJsZUNvbmZpZyA9IGZhbHNlO1xuICAgIHRoaXMub25SZXN1bHQuZW1pdChyZXN1bHQpO1xuICAgIHRoaXMudG90YWxIaXRzID0gcmVzdWx0LmNvdW50LnZhbHVlO1xuICAgIHRoaXMubGltaXRlZExpc3QgPSB0aGlzLnRvdGFsSGl0cyA+IHJlc3VsdC5oaXRzLmxlbmd0aDtcbiAgICBsZXQgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge2NvbnRleHQ6IHt9LCBvblNvcnRDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKSwgb25GaWx0ZXJDaGFuZ2VkOiAoKSA9PiB0aGlzLm9uUGFnZUNoYW5nZWQoKX07XG4gICAgY29uc3Qgc2VhcmNoTW9kZSA9IHJlc3VsdC5maWVsZHMubW9kZSA/IHJlc3VsdC5maWVsZHMubW9kZSA6IG51bGw7XG5cbiAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5saW1pdGVkTGlzdCAmJiB0aGlzLnF1ZXJ5ID8ge3RvdGFsOiB0aGlzLnRvdGFsSGl0cywgc2l6ZTogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSwgcmVsYXRpb246IHJlc3VsdC5jb3VudC5yZWxhdGlvbn0gOiBudWxsO1xuICAgIGdyaWRPcHRpb25zLnJvd0RhdGEgPSByZXN1bHQuaGl0cztcblxuICAgIGNvbnN0IHtlbGVtZW50cywgc29ydG9yZGVyLCBncm91cG9yZGVyLCBwaW5uZWQsIGFsaWdubWVudHh9ID0gcmVzdWx0LmZpZWxkcztcblxuICAgIGdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyA9IHRoaXMuZ3JpZEFwaS5nZXRDb2x1bW5EZWZzKGVsZW1lbnRzLCBzb3J0b3JkZXIsIGdyb3Vwb3JkZXIsIHBpbm5lZCwgYWxpZ25tZW50eCwgZmFsc2UsIHRoaXMuX2NhY2hlZENvbHVtbnMsIHNlYXJjaE1vZGUpO1xuXG4gICAgY29uc3QgcmVmcmVzaEdyaWQgPSB0aGlzLmhhc0dyaWRPcHRpb25zO1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5yZXN1bHRHcmlkT3B0aW9ucywgZ3JpZE9wdGlvbnMsIHRoaXMuZ3JpZE9wdGlvbnMpO1xuXG4gICAgaWYgKHJlZnJlc2hHcmlkKSB7XG4gICAgICAvLyByZWxvYWQgZ3JpZCBjb21wb25lbnRcbiAgICAgIHRoaXMucmVzdWx0R3JpZE9wdGlvbnMgPSB7fTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gT2JqZWN0LmFzc2lnbih0aGlzLnJlc3VsdEdyaWRPcHRpb25zLCBncmlkT3B0aW9ucywgdGhpcy5ncmlkT3B0aW9ucyksIDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zdGZpeFNvcnQoaWQpIHtcbiAgICAvLyB0b2RvOiByZW1vdmUgd2hlbiBpdCdzIGZpeGVkIG9uIGJhY2tlbmRcbiAgICByZXR1cm4gaWQubWF0Y2goLyhec3lzb2JqZWN0XFwufF5zeXNkb2N1bWVudFxcLikoY3JlYXRvciR8bW9kaWZpZXIkKS8pID8gJ3RpdGxlJyA6ICcnO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlZChwYWdlOiBudW1iZXIgPSAxKSB7XG4gICAgaWYgKHRoaXMubGltaXRlZExpc3QgJiYgdGhpcy5xdWVyeSkge1xuICAgICAgdGhpcy5mZXRjaFJvd0RhdGEoe1xuICAgICAgICBzdGFydFJvdzogdGhpcy5WSVJUVUFMX0xJU1RfQ0hVTktfU0laRSAqIChwYWdlIC0gMSksXG4gICAgICAgIHNvcnRNb2RlbDogdGhpcy5ncmlkLmFwaS5nZXRTb3J0TW9kZWwoKSxcbiAgICAgICAgZmlsdGVyTW9kZWw6IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSxcbiAgICAgICAgc3VjY2Vzc0NhbGxiYWNrOiAocm93cywgdG90YWwsIHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHt0b3RhbCwgcmVsYXRpb24sIHNpemU6IHRoaXMuVklSVFVBTF9MSVNUX0NIVU5LX1NJWkUsIHBhZ2V9O1xuICAgICAgICAgIHRoaXMuZ3JpZC5hcGkuc2V0Um93RGF0YShyb3dzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIGZvciBmZXRjaGluZyB0aGUgaXRlbXMgdG8gYmUgZGlzcGxheWVkIHdpdGggYSB2aXJ0dWFsIHJvdyBtb2RlbC5cbiAgICpcbiAgICogQHBhcmFtIHBhcmFtcyAtIHJvdyBtb2RlbCBwYXJhbXMgKGluY2wuIHN0YXJ0Um93LCBlbmRSb3csIHNvcnRNb2RlbCBhbmQgZmlsdGVyTW9kZWwpXG4gICAqL1xuICBwcml2YXRlIGZldGNoUm93RGF0YShwYXJhbXM6IGFueSkge1xuXG4gICAgaWYgKHRoaXMucXVlcnkpIHtcblxuICAgICAgdGhpcy51cGRhdGVRdWVyeShwYXJhbXMpO1xuXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2VcbiAgICAgICAgLmdldENodW5rZWRSZXN1bHQodGhpcy5xdWVyeSwgcGFyYW1zLnN0YXJ0Um93LCB0aGlzLlZJUlRVQUxfTElTVF9DSFVOS19TSVpFKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy50b3RhbEhpdHMgPSB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5yb3dDb3VudCA9IHJlc3VsdC5jb3VudC52YWx1ZTtcbiAgICAgICAgICB0aGlzLmdyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKHJlc3VsdC5oaXRzLCB0aGlzLnRvdGFsSGl0cywgcmVzdWx0LmNvdW50LnJlbGF0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVRdWVyeShwYXJhbXM6IGFueSkge1xuICAgIHRoaXMucXVlcnkuc29ydE9wdGlvbnMgPSAocGFyYW1zLnNvcnRNb2RlbCB8fCB0aGlzLmdyaWQuYXBpLmdldFNvcnRNb2RlbCgpIHx8IFtdKVxuICAgICAgICAubWFwKG1vZGVsID0+IG5ldyBTb3J0T3B0aW9uKEdyaWRTZXJ2aWNlLnFuYW1lRm9ybWF0dGVyKG1vZGVsLmNvbElkICsgdGhpcy5wb3N0Zml4U29ydChtb2RlbC5jb2xJZCkpLCBtb2RlbC5zb3J0KSk7XG5cbiAgICB0aGlzLnF1ZXJ5LmZpbHRlcnMgPSB0aGlzLmRlZmF1bHRRdWVyeS5maWx0ZXJzXG4gICAgICAuY29uY2F0KChPYmplY3Qua2V5cyhwYXJhbXMuZmlsdGVyTW9kZWwgfHwgdGhpcy5ncmlkLmFwaS5nZXRGaWx0ZXJNb2RlbCgpKSB8fCBbXSlcbiAgICAgICAgLm1hcChrZXkgPT4gR3JpZEZpbHRlci5vcGVyYXRvcihHcmlkU2VydmljZS5xbmFtZUZvcm1hdHRlcihrZXkpLCAocGFyYW1zLmZpbHRlck1vZGVsIHx8IHRoaXMuZ3JpZC5hcGkuZ2V0RmlsdGVyTW9kZWwoKSlba2V5XSkpKTtcblxuICAgIHRoaXMucXVlcnkuc2VhcmNoTW9kZSA9IFNlYXJjaFF1ZXJ5LkRFRkFVTFRfU0VBUkNIX01PREU7XG4gIH1cblxuICBleGVjdXRlU3VnZ2VzdFNlYXJjaCgpIHtcbiAgICAvLyB0b2RvOiBpbXBsZW1lbnRcbiAgfVxuXG4gIGV4cG9ydENTVigpIHtcbiAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IHRydWU7XG4gICAgdGhpcy51cGRhdGVRdWVyeSh7fSk7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmRvd25sb2FkQ3N2RnJvbVF1ZXJ5KHRoaXMucXVlcnkuZ2V0UXVlcnlKc29uKCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNzdkxvYWRpbmdTcGlubmVyVmlzaWJpbGl0eSA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcGFyc2VEbXNQYXJhbXMoZGF0YSkge1xuICAgIHJldHVybiB7aWQ6IGRhdGEgJiYgZGF0YS5pZCA/IGRhdGEuaWQgOiBudWxsLCB0eXBlOiBkYXRhICYmIGRhdGEudHlwZSA/IGRhdGEudHlwZSA6IG51bGx9O1xuICB9XG5cbiAgZ2V0IGhhc0dyaWRPcHRpb25zKCkge1xuICAgIHJldHVybiAhISh0aGlzLnJlc3VsdEdyaWRPcHRpb25zLmRhdGFzb3VyY2UgfHwgdGhpcy5yZXN1bHRHcmlkT3B0aW9ucy5yb3dEYXRhKTtcbiAgfVxuXG4gIG9uU3RvcmVkUXVlcnlMb2FkZWQoKSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICB9XG5cbiAgb25TdG9yZWRRdWVyeUV4ZWN1dGUoZXZ0KSB7XG4gICAgdGhpcy5zYXZlZFNlYXJjaENsaWNrZWQgPSBmYWxzZTtcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShldnQucXVlcnlKc29uKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcmVzdWx0J10sIHVyaVBhcmFtUXVlcnkpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,8 +3,8 @@ import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
|
|
|
3
3
|
import { Component, EventEmitter, HostListener, Input, Output, Renderer2, ViewChild, ViewEncapsulation, ViewContainerRef } from '@angular/core';
|
|
4
4
|
import { EnaioEvent, EventService, Utils } from '@eo-sdk/core';
|
|
5
5
|
import { filter, takeUntil } from 'rxjs/operators';
|
|
6
|
-
import { PendingChangesService } from '../../../eo-framework-core';
|
|
7
6
|
import { UnsubscribeOnDestroy } from '../../util';
|
|
7
|
+
import { PendingChangesService } from '../../../eo-framework-core/pending-changes/pending-changes.service';
|
|
8
8
|
export class EoDialogComponent extends UnsubscribeOnDestroy {
|
|
9
9
|
constructor(eventService, pendingChanges, renderer, overlay, viewContainerRef) {
|
|
10
10
|
super();
|
|
@@ -175,4 +175,4 @@ EoDialogComponent.propDecorators = {
|
|
|
175
175
|
onKeydownHandler: [{ type: HostListener, args: ['document:keydown.escape', ['$event'],] }],
|
|
176
176
|
onMousedown: [{ type: HostListener, args: ['document:mousedown', ['$event.target'],] }]
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFTaEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQThEekQsWUFDVSxZQUEwQixFQUMxQixjQUFxQyxFQUNyQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExRHBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FB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RTtJQUNyQyxDQUFDOzs7WUE1S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix3dkNBQXlDO2dCQUV6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVhtQixZQUFZO1lBRXhCLHFCQUFxQjtZQVQzQixTQUFTO1lBVEgsT0FBTztZQWNiLGdCQUFnQjs7OzJCQWlCZixTQUFTLFNBQUMsZUFBZTs0QkFDekIsU0FBUyxTQUFDLGVBQWU7NkJBVXpCLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBR0wsS0FBSzt1QkFFTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFFTCxNQUFNOzRCQUNOLE1BQU07bUJBQ04sTUFBTTttQkFDTixNQUFNO3NCQUVOLEtBQUs7K0JBWUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDOzBCQVFsRCxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVGVtcGxhdGVSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUnO1xuaW1wb3J0IHtVbnN1YnNjcmliZU9uRGVzdHJveX0gZnJvbSAnLi4vLi4vdXRpbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuICBAVmlld0NoaWxkKCdkaWFsb2dDb250ZW50JykgZGlhbG9nQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZHk6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0Rm9jdXNlZDtcbiAgcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW47XG4gIHByaXZhdGUgaWQgPSBVdGlscy51dWlkKCk7XG4gIHByaXZhdGUgcGFyZW50SWQgPSAnJztcbiAgQElucHV0KCkgaGFzUHJldmlld0ZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuXG4gIC8vIGFycmF5IG9mIHBlbmRpbmdUYXNrIElEcyB0byBiZSBjaGVja2VkIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlc1xuICBASW5wdXQoKSBkaXJ0eUNoZWNrOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAyMDA7XG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgZm9jdXNPblNob3cgPSB0cnVlO1xuICBASW5wdXQoKSBhbGlnbjogJ2NlbnRlcicgfCAnc3RhcnQnID0gJ2NlbnRlcic7XG4gIEBJbnB1dCgpIGlzRm9ybVRhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQcmV2aWV3ID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVG9nZ2xlUHJldmlldzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWwpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gISF2YWw7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XG4gICAgdGhpcy5fdmlzaWJsZSA/IHRoaXMuc2hvdy5lbWl0KHZhbCkgOiB0aGlzLmhpZGUuZW1pdCh2YWwpO1xuICAgIHRoaXMudG9nZ2xlQWN0aXZlKHRoaXMuX3Zpc2libGUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gY2xvc2UgYWN0aXZlIGRpYWxvZyBvbiBFc2NhcGUgZXZlbnRcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZWRvd24nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Nb3VzZWRvd24odGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAvLyBjbG9zZSBhY3RpdmUgZGlhbG9nIG9uIGJhY2tncm91bmQvbWFzayBjbGlja1xuICAgIGlmICh0aGlzLmFjdGl2ZSAmJiB0YXJnZXRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndWktZGlhbG9nLW1hc2snKSkge1xuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbGFzdEZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGV2dCA9PlxuICAgICAgICAgICAgKHRoaXMuYWN0aXZlIHx8IGV2dC5kYXRhLmlkID09PSB0aGlzLnBhcmVudElkKSAmJlxuICAgICAgICAgICAgZXZ0LmRhdGEuaWQgIT09IHRoaXMuaWRcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnBhcmVudElkID0gZXZlbnQuZGF0YS5hY3RpdmUgPyBldmVudC5kYXRhLmlkIDogJyc7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpIHtcbiAgICAvLyBXZSBjcmVhdGUgdGhlIG92ZXJsYXlcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCxcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXG4gICAgfSk7XG4gICAgLy9UaGVuIHdlIGNyZWF0ZSBhIHBvcnRhbCB0byByZW5kZXIgYSBjb21wb25lbnRcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kaWFsb2dDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIC8vIFdlIGFkZCBhIGN1c3RvbSBDU1MgY2xhc3MgdG8gb3VyIG92ZXJsYXlcbiAgICAvLyB0aGlzLm92ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyhcImV4YW1wbGUtb3ZlcmxheVwiKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5hbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGlnbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZ2xvYmFsKClcbiAgICAgICAgLmxlZnQoKVxuICAgICAgICAudG9wKCk7XG4gICAgfVxuICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5O1xuICB9XG5cbiAgdG9nZ2xlQWN0aXZlKGFjdGl2ZTogYm9vbGVhbiwgdHJpZ2dlciA9IHRydWUpIHtcbiAgICB0aGlzLmFjdGl2ZSA9ICEhYWN0aXZlO1xuXG4gICAgaWYgKGFjdGl2ZSAmJiB0aGlzLnJlYWR5ICYmICF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmICFhY3RpdmUpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRCwge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgaWYgKHRoaXMuZGlydHlDaGVjaykge1xuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrRm9yUGVuZGluZ1Rhc2tzKHRoaXMuZGlydHlDaGVjaykpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVByZXZpZXcoKSB7XG4gICAgdGhpcy5zaG93UHJldmlldyA9ICF0aGlzLnNob3dQcmV2aWV3O1xuICAgIHRoaXMub25Ub2dnbGVQcmV2aWV3LmVtaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgdGhpcy50b2dnbGVBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSkgeyB0aGlzLm9wZW4oKTsgfVxuICB9XG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW8tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBR2pCLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFVekcsTUFBTSxPQUFPLGlCQUFrQixTQUFRLG9CQUFvQjtJQThEekQsWUFDVSxZQUEwQixFQUMxQixjQUFxQyxFQUNyQyxRQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExRHBDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsT0FB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RTtJQUNyQyxDQUFDOzs7WUE1S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQix3dkNBQXlDO2dCQUV6QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVptQixZQUFZO1lBR3hCLHFCQUFxQjtZQVYzQixTQUFTO1lBVEgsT0FBTztZQWNiLGdCQUFnQjs7OzJCQWtCZixTQUFTLFNBQUMsZUFBZTs0QkFDekIsU0FBUyxTQUFDLGVBQWU7NkJBVXpCLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7eUJBR0wsS0FBSzt1QkFFTCxLQUFLO3dCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQUNMLEtBQUs7MEJBQ0wsS0FBSzs4QkFFTCxNQUFNOzRCQUNOLE1BQU07bUJBQ04sTUFBTTttQkFDTixNQUFNO3NCQUVOLEtBQUs7K0JBWUwsWUFBWSxTQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDOzBCQVFsRCxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7Q2RrUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgVGVtcGxhdGVSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2ZpbHRlciwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW8tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRW9EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZChDZGtQb3J0YWxPdXRsZXQpIHBvcnRhbE91dGxldDogQ2RrUG9ydGFsT3V0bGV0O1xuICBAVmlld0NoaWxkKCdkaWFsb2dDb250ZW50JykgZGlhbG9nQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgcmVhZHk6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IGZhbHNlO1xuICBwcml2YXRlIF9sYXN0Rm9jdXNlZDtcbiAgcHJpdmF0ZSBhY3RpdmU6IGJvb2xlYW47XG4gIHByaXZhdGUgaWQgPSBVdGlscy51dWlkKCk7XG4gIHByaXZhdGUgcGFyZW50SWQgPSAnJztcbiAgQElucHV0KCkgaGFzUHJldmlld0ZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgc3R5bGVDbGFzcyA9ICcnO1xuXG4gIC8vIGFycmF5IG9mIHBlbmRpbmdUYXNrIElEcyB0byBiZSBjaGVja2VkIGJlZm9yZSB0aGUgZGlhbG9nIGNsb3Nlc1xuICBASW5wdXQoKSBkaXJ0eUNoZWNrOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1pbldpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAyMDA7XG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICdhdXRvJztcbiAgQElucHV0KCkgZm9jdXNPblNob3cgPSB0cnVlO1xuICBASW5wdXQoKSBhbGlnbjogJ2NlbnRlcicgfCAnc3RhcnQnID0gJ2NlbnRlcic7XG4gIEBJbnB1dCgpIGlzRm9ybVRhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dQcmV2aWV3ID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9uVG9nZ2xlUHJldmlldzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvdzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBzZXQgdmlzaWJsZSh2YWwpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gISF2YWw7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5fdmlzaWJsZSk7XG4gICAgdGhpcy5fdmlzaWJsZSA/IHRoaXMuc2hvdy5lbWl0KHZhbCkgOiB0aGlzLmhpZGUuZW1pdCh2YWwpO1xuICAgIHRoaXMudG9nZ2xlQWN0aXZlKHRoaXMuX3Zpc2libGUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgLy8gY2xvc2UgYWN0aXZlIGRpYWxvZyBvbiBFc2NhcGUgZXZlbnRcbiAgICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZWRvd24nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Nb3VzZWRvd24odGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAvLyBjbG9zZSBhY3RpdmUgZGlhbG9nIG9uIGJhY2tncm91bmQvbWFzayBjbGlja1xuICAgIGlmICh0aGlzLmFjdGl2ZSAmJiB0YXJnZXRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygndWktZGlhbG9nLW1hc2snKSkge1xuICAgICAgdGhpcy5jbG9zZURpYWxvZygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fbGFzdEZvY3VzZWQgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIGV2dCA9PlxuICAgICAgICAgICAgKHRoaXMuYWN0aXZlIHx8IGV2dC5kYXRhLmlkID09PSB0aGlzLnBhcmVudElkKSAmJlxuICAgICAgICAgICAgZXZ0LmRhdGEuaWQgIT09IHRoaXMuaWRcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnBhcmVudElkID0gZXZlbnQuZGF0YS5hY3RpdmUgPyBldmVudC5kYXRhLmlkIDogJyc7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpIHtcbiAgICAvLyBXZSBjcmVhdGUgdGhlIG92ZXJsYXlcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuZ2V0UG9zaXRpb25TdHJhdGVneSgpLFxuICAgICAgbWluSGVpZ2h0OiB0aGlzLm1pbkhlaWdodCxcbiAgICAgIG1pbldpZHRoOiB0aGlzLm1pbldpZHRoXG4gICAgfSk7XG4gICAgLy9UaGVuIHdlIGNyZWF0ZSBhIHBvcnRhbCB0byByZW5kZXIgYSBjb21wb25lbnRcbiAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kaWFsb2dDb250ZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgIC8vIFdlIGFkZCBhIGN1c3RvbSBDU1MgY2xhc3MgdG8gb3VyIG92ZXJsYXlcbiAgICAvLyB0aGlzLm92ZXJsYXlSZWYuYWRkUGFuZWxDbGFzcyhcImV4YW1wbGUtb3ZlcmxheVwiKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbCk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25TdHJhdGVneSgpIHtcbiAgICBsZXQgcG9zaXRpb25TdHJhdGVneTtcbiAgICBpZiAodGhpcy5hbGlnbiA9PT0gJ2NlbnRlcicpIHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmdsb2JhbCgpXG4gICAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgICAuY2VudGVyVmVydGljYWxseSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGlnbiA9PT0gJ3N0YXJ0Jykge1xuICAgICAgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAuZ2xvYmFsKClcbiAgICAgICAgLmxlZnQoKVxuICAgICAgICAudG9wKCk7XG4gICAgfVxuICAgIHJldHVybiBwb3NpdGlvblN0cmF0ZWd5O1xuICB9XG5cbiAgdG9nZ2xlQWN0aXZlKGFjdGl2ZTogYm9vbGVhbiwgdHJpZ2dlciA9IHRydWUpIHtcbiAgICB0aGlzLmFjdGl2ZSA9ICEhYWN0aXZlO1xuXG4gICAgaWYgKGFjdGl2ZSAmJiB0aGlzLnJlYWR5ICYmICF0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vdmVybGF5UmVmICYmICFhY3RpdmUpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyaWdnZXIpIHtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5FT19ESUFMT0dfU1RBQ0tfQ0hBTkdFRCwge1xuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEaWFsb2coKSB7XG4gICAgaWYgKHRoaXMuZGlydHlDaGVjaykge1xuICAgICAgaWYgKCF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrRm9yUGVuZGluZ1Rhc2tzKHRoaXMuZGlydHlDaGVjaykpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVByZXZpZXcoKSB7XG4gICAgdGhpcy5zaG93UHJldmlldyA9ICF0aGlzLnNob3dQcmV2aWV3O1xuICAgIHRoaXMub25Ub2dnbGVQcmV2aWV3LmVtaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgdGhpcy50b2dnbGVBY3RpdmUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5fdmlzaWJsZSkgeyB0aGlzLm9wZW4oKTsgfVxuICB9XG59XG4iXX0=
|